This is the start of the stable review cycle for the 5.4.54 release.
There are 138 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Wed, 29 Jul 2020 13:48:51 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.54-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 5.4.54-rc1
Mark O'Donovan <[email protected]>
ath9k: Fix regression with Atheros 9271
Qiujun Huang <[email protected]>
ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
Mikulas Patocka <[email protected]>
dm integrity: fix integrity recalculation that is improperly skipped
Pierre-Louis Bossart <[email protected]>
ASoC: topology: fix tlvs in error handling for widget_dmixer
Pierre-Louis Bossart <[email protected]>
ASoC: topology: fix kernel oops on route addition error
Geert Uytterhoeven <[email protected]>
ASoC: qcom: Drop HAS_DMA dependency to fix link failure
Hans de Goede <[email protected]>
ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on the Lenovo Miix 2 10
Joerg Roedel <[email protected]>
x86, vmlinux.lds: Page-align end of ..page_aligned sections
John David Anglin <[email protected]>
parisc: Add atomic64_set_release() define to avoid CPU soft lockups
Qiu Wenbo <[email protected]>
drm/amd/powerplay: fix a crash when overclocking Vega M
Paweł Gronowski <[email protected]>
drm/amdgpu: Fix NULL dereference in dpm sysfs handlers
Eddie James <[email protected]>
mmc: sdhci-of-aspeed: Fix clock divider calculation
Michael J. Ruhl <[email protected]>
io-mapping: indicate mapping failure
Kirill A. Shutemov <[email protected]>
khugepaged: fix null-pointer dereference due to race
Muchun Song <[email protected]>
mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
Hugh Dickins <[email protected]>
mm/memcg: fix refcount error while moving and swapping
Kirill A. Shutemov <[email protected]>
mm/mmap.c: close race between munmap() and expand_upwards()/downwards()
Fangrui Song <[email protected]>
Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation
Tetsuo Handa <[email protected]>
vt: Reject zero-sized screen buffer size.
Tetsuo Handa <[email protected]>
fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
Eric Biggers <[email protected]>
/dev/mem: Add missing memory barriers for devmem_inode
Serge Semin <[email protected]>
serial: 8250_mtk: Fix high-speed baud rates clamping
Yang Yingliang <[email protected]>
serial: 8250: fix null-ptr-deref in serial8250_start_tx()
Johan Hovold <[email protected]>
serial: tegra: fix CREAD handling for PIO
Ian Abbott <[email protected]>
staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift
Ian Abbott <[email protected]>
staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
Ian Abbott <[email protected]>
staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support
Ian Abbott <[email protected]>
staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift
Rustam Kovhaev <[email protected]>
staging: wlan-ng: properly check endpoint types
Helmut Grohne <[email protected]>
tty: xilinx_uartps: Really fix id assignment
Johannes Berg <[email protected]>
iwlwifi: mvm: don't call iwl_mvm_free_inactive_queue() under RCU
Steve French <[email protected]>
Revert "cifs: Fix the target file was deleted when rename failed."
Forest Crossman <[email protected]>
usb: xhci: Fix ASM2142/ASM3142 DMA addressing
Chunfeng Yun <[email protected]>
usb: xhci-mtk: fix the failure of bandwidth allocation
Tetsuo Handa <[email protected]>
binder: Don't use mmput() from shrinker function.
Palmer Dabbelt <[email protected]>
RISC-V: Upgrade smp_mb__after_spinlock() to iorw,iorw
Qi Liu <[email protected]>
drivers/perf: Prevent forced unbinding of PMU drivers
Will Deacon <[email protected]>
asm-generic/mmiowb: Allow mmiowb_set_pending() when preemptible()
Arnd Bergmann <[email protected]>
x86: math-emu: Fix up 'cmp' insn for clang ias
Will Deacon <[email protected]>
arm64: Use test_tsk_thread_flag() for checking TIF_SINGLESTEP
Qi Liu <[email protected]>
drivers/perf: Fix kernel panic when rmmod PMU modules during perf sampling
PeiSen Hou <[email protected]>
ALSA: hda/realtek - fixup for yet another Intel reference board
Cristian Marussi <[email protected]>
hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe()
Vasiliy Kupriakov <[email protected]>
platform/x86: asus-wmi: allow BAT1 battery name
Srinivas Pandruvada <[email protected]>
platform/x86: ISST: Add new PCI device ids
Guenter Roeck <[email protected]>
hwmon: (nct6775) Accept PECI Calibration as temperature source for NCT6798D
Jack Xiao <[email protected]>
drm/amdgpu: fix preemption unit test
Jack Xiao <[email protected]>
drm/amdgpu/gfx10: fix race condition for kiq
Chu Lin <[email protected]>
hwmon: (adm1275) Make sure we are reading enough data for different chips
Peter Chen <[email protected]>
usb: cdns3: trace: fix some endian issues
Peter Chen <[email protected]>
usb: cdns3: ep0: fix some endian issues
Evgeny Novikov <[email protected]>
usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
Heikki Krogerus <[email protected]>
usb: dwc3: pci: add support for the Intel Jasper Lake
Heikki Krogerus <[email protected]>
usb: dwc3: pci: add support for the Intel Tiger Lake PCH -H variant
Derek Basehore <[email protected]>
Input: elan_i2c - only increment wakeup count on touch
Ilya Katsnelson <[email protected]>
Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
Leonid Ravich <[email protected]>
dmaengine: ioat setting ioat timeout as module parameter
Angelo Dureghello <[email protected]>
dmaengine: fsl-edma: fix wrong tcd endianness for big-endian cpu
Evgeny Novikov <[email protected]>
hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow
Marc Kleine-Budde <[email protected]>
regmap: dev_get_regmap_match(): fix string comparison
leilk.liu <[email protected]>
spi: mediatek: use correct SPI_CFG2_REG MACRO
Merlijn Wajer <[email protected]>
ARM: dts: n900: remove mmc1 card detect gpio
Merlijn Wajer <[email protected]>
Input: add `SW_MACHINE_COVER`
Dinghao Liu <[email protected]>
dmaengine: tegra210-adma: Fix runtime PM imbalance on error
Hans de Goede <[email protected]>
HID: apple: Disable Fn-key key-re-mapping on clone keyboards
Rodrigo Rivas Costa <[email protected]>
HID: steam: fixes race in handling device list.
Caiyuan Xie <[email protected]>
HID: alps: support devices with report id 2
Federico Ricchiuto <[email protected]>
HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override
Stefano Garzarella <[email protected]>
scripts/gdb: fix lx-symbols 'gdb.error' while loading modules
Pi-Hsun Shih <[email protected]>
scripts/decode_stacktrace: strip basepath from all paths
Matthew Howell <[email protected]>
serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X
Cong Wang <[email protected]>
geneve: fix an uninitialized value in geneve_changelink()
Cong Wang <[email protected]>
bonding: check return value of register_netdevice() in bond_newlink()
Douglas Anderson <[email protected]>
i2c: i2c-qcom-geni: Fix DMA transfer race
Wolfram Sang <[email protected]>
i2c: rcar: always clear ICSAR to avoid side effects
Claudiu Manoil <[email protected]>
enetc: Remove the mdio bus on PF probe bailout
J. Bruce Fields <[email protected]>
nfsd4: fix NULL dereference in nfsd/clients display code
Bjorn Helgaas <[email protected]>
Revert "PCI/PM: Assume ports without DLL Link Active train links in 100 ms"
Wang Hai <[email protected]>
net: ethernet: ave: Fix error returns in ave_init
guodeqing <[email protected]>
ipvs: fix the connection sync failed in some cases
Alexander Lobakin <[email protected]>
qed: suppress false-positives interrupt error messages on HW init
Alexander Lobakin <[email protected]>
qed: suppress "don't support RoCE & iWARP" flooding on HW init
Taehee Yoo <[email protected]>
netdevsim: fix unbalaced locking in nsim_create()
Helmut Grohne <[email protected]>
net: dsa: microchip: call phy_remove_link_mode during probe
Yunsheng Lin <[email protected]>
net: hns3: fix error handling for desc filling
Huang Guobin <[email protected]>
net: ag71xx: add missed clk_disable_unprepare in error path of probe
Shannon Nelson <[email protected]>
ionic: fix up filter locks and debug msgs
Shannon Nelson <[email protected]>
ionic: use offset for ethtool regs data
Liu Jian <[email protected]>
mlxsw: destroy workqueue when trap_register in mlxsw_emad_init
Taehee Yoo <[email protected]>
bonding: check error value of register_netdevice() immediately
Wang Hai <[email protected]>
net: smc91x: Fix possible memory leak in smc_drv_probe()
Chen-Yu Tsai <[email protected]>
drm: sun4i: hdmi: Fix inverted HPD result
Liu Jian <[email protected]>
ieee802154: fix one possible memleak in adf7242_probe
Sergey Organov <[email protected]>
net: dp83640: fix SIOCSHWTSTAMP to update the struct with actual configuration
Jing Xiangfeng <[email protected]>
ASoC: Intel: bytcht_es8316: Add missed put_device()
Maor Gottlieb <[email protected]>
RDMA/mlx5: Use xa_lock_irq when access to SRQ table
George Kennedy <[email protected]>
ax88172a: fix ax88172a_unbind() failures
Stefano Garzarella <[email protected]>
vsock/virtio: annotate 'the_virtio_vsock' RCU pointer
Christophe JAILLET <[email protected]>
hippi: Fix a size used in a 'pci_free_consistent()' in an error handling path
Matthew Gerlach <[email protected]>
fpga: dfl: fix bug in port reset handshake
Xu Yilun <[email protected]>
fpga: dfl: pci: reduce the scope of variable 'ret'
Michael Chan <[email protected]>
bnxt_en: Fix completion ring sizing with TPA enabled.
Vasundhara Volam <[email protected]>
bnxt_en: Fix race when modifying pause settings.
Robbie Ko <[email protected]>
btrfs: fix page leaks after failure to lock page for delalloc
Boris Burkov <[email protected]>
btrfs: fix mount failure caused by race with umount
Filipe Manana <[email protected]>
btrfs: fix double free on ulist after backref resolution failure
Hans de Goede <[email protected]>
ASoC: rt5670: Correct RT5670_LDO_SEL_MASK
Takashi Iwai <[email protected]>
ALSA: info: Drop WARN_ON() from buffer NULL sanity check
Joonho Wohn <[email protected]>
ALSA: hda/realtek: Fixed ALC298 sound bug by adding quirk for Samsung Notebook Pen S
Oleg Nesterov <[email protected]>
uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix GDB regression
Qu Wenruo <[email protected]>
btrfs: reloc: clear DEAD_RELOC_TREE bit for orphan roots to prevent runaway balance
Qu Wenruo <[email protected]>
btrfs: reloc: fix reloc root leak and NULL pointer dereference
Olga Kornievskaia <[email protected]>
SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion")
Ming Lei <[email protected]>
dm: do not use waitqueue for request-based DM
Gabriel Krisman Bertazi <[email protected]>
dm mpath: pass IO start time to path selector
Jerry (Fangzhi) Zuo <[email protected]>
drm/amd/display: Check DMCU Exists Before Loading
Charan Teja Kalla <[email protected]>
dmabuf: use spinlock to access dmabuf->name
Tim Harvey <[email protected]>
ARM: dts: imx6qdl-gw551x: fix audio SSI
Fabio Estevam <[email protected]>
ARM: dts: imx6qdl-gw551x: Do not use 'simple-audio-card,dai-link'
Thomas Gleixner <[email protected]>
irqdomain/treewide: Keep firmware node unconditionally allocated
Miklos Szeredi <[email protected]>
fuse: fix weird page warning
Gavin Shan <[email protected]>
drivers/firmware/psci: Fix memory leakage in alloc_init_cpu_groups()
Christoph Hellwig <[email protected]>
dm: use bio_uninit instead of bio_disassociate_blkg
Steve Schremmer <[email protected]>
scsi: dh: Add Fujitsu device to devinfo and dh lists
Johannes Thumshirn <[email protected]>
scsi: mpt3sas: Fix error returns in BRM_status_show
Ben Skeggs <[email protected]>
drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
Tom Rix <[email protected]>
net: sky2: initialize return of gm_phy_read
Kai Vehmanen <[email protected]>
ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later
Xie He <[email protected]>
drivers/net/wan/lapbether: Fixed the value of hard_header_len
Damien Le Moal <[email protected]>
scsi: mpt3sas: Fix unlock imbalance
Max Filippov <[email protected]>
xtensa: update *pos in cpuinfo_op.next
Max Filippov <[email protected]>
xtensa: fix __sync_fetch_and_{and,or}_4 declarations
Tom Rix <[email protected]>
scsi: scsi_transport_spi: Fix function pointer check
Markus Theil <[email protected]>
mac80211: allow rx of mesh eapol frames with default rx key
Jacky Hu <[email protected]>
pinctrl: amd: fix npins for uart0 in kerncz_groups
Navid Emamdoost <[email protected]>
gpio: arizona: put pm_runtime in case of failure
Navid Emamdoost <[email protected]>
gpio: arizona: handle pm_runtime_get_sync failure case
Douglas Anderson <[email protected]>
soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner
-------------
Diffstat:
Makefile | 6 +-
arch/arm/boot/dts/imx6qdl-gw551x.dtsi | 19 ++---
arch/arm/boot/dts/omap3-n900.dts | 12 ++-
arch/arm64/kernel/debug-monitors.c | 4 +-
arch/mips/pci/pci-xtalk-bridge.c | 5 +-
arch/parisc/include/asm/atomic.h | 2 +
arch/riscv/include/asm/barrier.h | 10 ++-
arch/x86/kernel/apic/io_apic.c | 10 +--
arch/x86/kernel/apic/msi.c | 18 +++--
arch/x86/kernel/apic/vector.c | 1 -
arch/x86/kernel/vmlinux.lds.S | 1 +
arch/x86/math-emu/wm_sqrt.S | 2 +-
arch/x86/platform/uv/uv_irq.c | 3 +-
arch/xtensa/kernel/setup.c | 3 +-
arch/xtensa/kernel/xtensa_ksyms.c | 4 +-
drivers/android/binder_alloc.c | 2 +-
drivers/base/regmap/regmap.c | 2 +-
drivers/char/mem.c | 10 ++-
drivers/dma-buf/dma-buf.c | 11 ++-
drivers/dma/fsl-edma-common.c | 26 ++++---
drivers/dma/ioat/dma.c | 12 +++
drivers/dma/ioat/dma.h | 2 -
drivers/dma/tegra210-adma.c | 5 +-
drivers/firmware/psci/psci_checker.c | 5 +-
drivers/fpga/dfl-afu-main.c | 3 +-
drivers/fpga/dfl-pci.c | 3 +-
drivers/gpio/gpio-arizona.c | 7 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 20 +++--
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 9 +--
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 9 ++-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 +-
.../gpu/drm/amd/powerplay/smumgr/vegam_smumgr.c | 10 ++-
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c | 4 +-
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 2 +-
drivers/hid/hid-alps.c | 2 +
drivers/hid/hid-apple.c | 18 +++++
drivers/hid/hid-steam.c | 6 +-
drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c | 8 ++
drivers/hwmon/aspeed-pwm-tacho.c | 2 +
drivers/hwmon/nct6775.c | 6 +-
drivers/hwmon/pmbus/adm1275.c | 10 ++-
drivers/hwmon/scmi-hwmon.c | 2 +-
drivers/i2c/busses/i2c-qcom-geni.c | 6 +-
drivers/i2c/busses/i2c-rcar.c | 3 +
drivers/infiniband/hw/mlx5/srq_cmd.c | 4 +-
drivers/input/mouse/elan_i2c_core.c | 9 ++-
drivers/input/mouse/synaptics.c | 1 +
drivers/iommu/amd_iommu.c | 5 +-
drivers/iommu/hyperv-iommu.c | 5 +-
drivers/iommu/intel_irq_remapping.c | 2 +-
drivers/md/dm-integrity.c | 4 +-
drivers/md/dm-mpath.c | 9 ++-
drivers/md/dm-path-selector.h | 2 +-
drivers/md/dm-queue-length.c | 2 +-
drivers/md/dm-rq.c | 4 -
drivers/md/dm-service-time.c | 2 +-
drivers/md/dm.c | 87 ++++++++++++++++------
drivers/mmc/host/sdhci-of-aspeed.c | 2 +-
drivers/net/bonding/bond_main.c | 10 ++-
drivers/net/bonding/bond_netlink.c | 3 +-
drivers/net/dsa/microchip/ksz9477.c | 42 ++++++-----
drivers/net/dsa/microchip/ksz_common.c | 2 -
drivers/net/dsa/microchip/ksz_common.h | 2 -
drivers/net/ethernet/atheros/ag71xx.c | 3 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 12 ++-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 5 +-
drivers/net/ethernet/freescale/enetc/enetc_pf.c | 1 +
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 1 +
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 8 ++
drivers/net/ethernet/marvell/sky2.c | 2 +-
drivers/net/ethernet/mellanox/mlxsw/core.c | 3 +-
.../net/ethernet/pensando/ionic/ionic_ethtool.c | 7 +-
drivers/net/ethernet/pensando/ionic/ionic_lif.c | 17 ++---
.../net/ethernet/pensando/ionic/ionic_rx_filter.c | 5 ++
drivers/net/ethernet/qlogic/qed/qed_cxt.c | 4 +-
drivers/net/ethernet/qlogic/qed/qed_dev.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_int.c | 50 +++++++------
drivers/net/ethernet/qlogic/qed/qed_int.h | 4 +-
drivers/net/ethernet/smsc/smc91x.c | 4 +-
drivers/net/ethernet/socionext/sni_ave.c | 2 +-
drivers/net/geneve.c | 2 +-
drivers/net/hippi/rrunner.c | 2 +-
drivers/net/ieee802154/adf7242.c | 4 +-
drivers/net/netdevsim/netdev.c | 4 +-
drivers/net/phy/dp83640.c | 4 +
drivers/net/usb/ax88172a.c | 1 +
drivers/net/wan/lapbether.c | 9 ++-
drivers/net/wireless/ath/ath9k/hif_usb.c | 52 ++++++++++---
drivers/net/wireless/ath/ath9k/hif_usb.h | 5 ++
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 8 +-
drivers/pci/controller/vmd.c | 5 +-
drivers/pci/pci.c | 30 +++-----
drivers/perf/arm-cci.c | 1 +
drivers/perf/arm-ccn.c | 1 +
drivers/perf/arm_dsu_pmu.c | 1 +
drivers/perf/arm_smmuv3_pmu.c | 2 +
drivers/perf/arm_spe_pmu.c | 1 +
drivers/perf/fsl_imx8_ddr_perf.c | 2 +
drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 2 +
drivers/perf/hisilicon/hisi_uncore_hha_pmu.c | 2 +
drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c | 2 +
drivers/perf/qcom_l2_pmu.c | 1 +
drivers/perf/qcom_l3_pmu.c | 1 +
drivers/perf/thunderx2_pmu.c | 1 +
drivers/perf/xgene_pmu.c | 1 +
drivers/pinctrl/pinctrl-amd.h | 2 +-
drivers/platform/x86/asus-wmi.c | 1 +
.../x86/intel_speed_select_if/isst_if_common.h | 3 +
.../x86/intel_speed_select_if/isst_if_mbox_pci.c | 1 +
.../x86/intel_speed_select_if/isst_if_mmio.c | 1 +
drivers/scsi/mpt3sas/mpt3sas_ctl.c | 12 +--
drivers/scsi/scsi_devinfo.c | 1 +
drivers/scsi/scsi_dh.c | 1 +
drivers/scsi/scsi_transport_spi.c | 2 +-
drivers/soc/qcom/rpmh.c | 8 +-
drivers/spi/spi-mt65xx.c | 15 ++--
drivers/staging/comedi/drivers/addi_apci_1032.c | 20 +++--
drivers/staging/comedi/drivers/addi_apci_1500.c | 24 ++++--
drivers/staging/comedi/drivers/addi_apci_1564.c | 20 +++--
drivers/staging/comedi/drivers/ni_6527.c | 2 +-
drivers/staging/wlan-ng/prism2usb.c | 16 +++-
drivers/tty/serial/8250/8250_core.c | 2 +-
drivers/tty/serial/8250/8250_exar.c | 12 ++-
drivers/tty/serial/8250/8250_mtk.c | 18 +++++
drivers/tty/serial/serial-tegra.c | 7 +-
drivers/tty/serial/xilinx_uartps.c | 8 +-
drivers/tty/vt/vt.c | 29 +++++---
drivers/usb/cdns3/ep0.c | 30 ++++----
drivers/usb/cdns3/trace.h | 6 +-
drivers/usb/dwc3/dwc3-pci.c | 8 ++
drivers/usb/gadget/udc/gr_udc.c | 7 +-
drivers/usb/host/xhci-mtk-sch.c | 4 +
drivers/usb/host/xhci-pci.c | 3 +
drivers/video/fbdev/core/bitblit.c | 4 +-
drivers/video/fbdev/core/fbcon_ccw.c | 4 +-
drivers/video/fbdev/core/fbcon_cw.c | 4 +-
drivers/video/fbdev/core/fbcon_ud.c | 4 +-
fs/btrfs/backref.c | 1 +
fs/btrfs/extent_io.c | 3 +-
fs/btrfs/relocation.c | 11 ++-
fs/btrfs/volumes.c | 8 ++
fs/cifs/inode.c | 10 +--
fs/fuse/dev.c | 3 +-
fs/nfs/direct.c | 13 +---
fs/nfs/file.c | 1 -
fs/nfsd/nfs4state.c | 20 ++++-
include/asm-generic/mmiowb.h | 6 +-
include/asm-generic/vmlinux.lds.h | 5 +-
include/linux/device-mapper.h | 3 +
include/linux/dma-buf.h | 1 +
include/linux/io-mapping.h | 5 +-
include/linux/mod_devicetable.h | 2 +-
include/sound/rt5670.h | 1 +
include/uapi/linux/input-event-codes.h | 3 +-
kernel/events/uprobes.c | 2 +-
mm/khugepaged.c | 3 +
mm/memcontrol.c | 4 +-
mm/mmap.c | 16 +++-
mm/slab_common.c | 35 +++++++--
net/mac80211/rx.c | 26 +++++++
net/netfilter/ipvs/ip_vs_sync.c | 12 ++-
net/vmw_vsock/virtio_transport.c | 2 +-
scripts/decode_stacktrace.sh | 4 +-
scripts/gdb/linux/symbols.py | 2 +-
sound/core/info.c | 4 +-
sound/pci/hda/patch_hdmi.c | 36 +++++----
sound/pci/hda/patch_realtek.c | 2 +
sound/soc/codecs/rt5670.c | 71 ++++++++++++++----
sound/soc/codecs/rt5670.h | 2 +-
sound/soc/intel/boards/bytcht_es8316.c | 4 +-
sound/soc/qcom/Kconfig | 2 +-
sound/soc/soc-topology.c | 24 ++++--
173 files changed, 975 insertions(+), 438 deletions(-)
From: Fabio Estevam <[email protected]>
[ Upstream commit e52928e8d5c1c4837a0c6ec2068beea99defde8b ]
According to Documentation/devicetree/bindings/sound/simple-card.txt
the 'simple-audio-card,dai-link' may be omitted when the card has
only one DAI link, which is the case here.
Get rid of 'simple-audio-card,dai-link' in order to fix the following
build warning with W=1:
arch/arm/boot/dts/imx6qdl-gw551x.dtsi:109.32-121.5: Warning (unit_address_vs_reg): /sound-digital/simple-audio-card,dai-link@0: node has a unit name, but no reg property
Cc: Tim Harvey <[email protected]>
Signed-off-by: Fabio Estevam <[email protected]>
Signed-off-by: Shawn Guo <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/arm/boot/dts/imx6qdl-gw551x.dtsi | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
index c23ba229fd057..c38e86eedcc01 100644
--- a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
@@ -105,19 +105,16 @@
sound-digital {
compatible = "simple-audio-card";
simple-audio-card,name = "tda1997x-audio";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,bitclock-master = <&sound_codec>;
+ simple-audio-card,frame-master = <&sound_codec>;
- simple-audio-card,dai-link@0 {
- format = "i2s";
-
- cpu {
- sound-dai = <&ssi2>;
- };
+ sound_cpu: simple-audio-card,cpu {
+ sound-dai = <&ssi2>;
+ };
- codec {
- bitclock-master;
- frame-master;
- sound-dai = <&hdmi_receiver>;
- };
+ sound_codec: simple-audio-card,codec {
+ sound-dai = <&hdmi_receiver>;
};
};
};
--
2.25.1
From: Yunsheng Lin <[email protected]>
[ Upstream commit 8ceca59fb3ed48a693171bd571c4fcbd555b7f1f ]
The content of the TX desc is automatically cleared by the HW
when the HW has sent out the packet to the wire. When desc filling
fails in hns3_nic_net_xmit(), it will call hns3_clear_desc() to do
the error handling, which miss zeroing of the TX desc and the
checking if a unmapping is needed.
So add the zeroing and checking in hns3_clear_desc() to avoid the
above problem. Also add DESC_TYPE_UNKNOWN to indicate the info in
desc_cb is not valid, because hns3_nic_reclaim_desc() may treat
the desc_cb->type of zero as packet and add to the sent pkt
statistics accordingly.
Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
Signed-off-by: Yunsheng Lin <[email protected]>
Signed-off-by: Huazhong Tan <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 1 +
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hnae3.h b/drivers/net/ethernet/hisilicon/hns3/hnae3.h
index a0998937727d8..0db835d87d09d 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hnae3.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hnae3.h
@@ -77,6 +77,7 @@
((ring)->p = ((ring)->p - 1 + (ring)->desc_num) % (ring)->desc_num)
enum hns_desc_type {
+ DESC_TYPE_UNKNOWN,
DESC_TYPE_SKB,
DESC_TYPE_PAGE,
};
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 37537c3020806..506381224559f 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -1292,6 +1292,10 @@ static void hns3_clear_desc(struct hns3_enet_ring *ring, int next_to_use_orig)
unsigned int i;
for (i = 0; i < ring->desc_num; i++) {
+ struct hns3_desc *desc = &ring->desc[ring->next_to_use];
+
+ memset(desc, 0, sizeof(*desc));
+
/* check if this is where we started */
if (ring->next_to_use == next_to_use_orig)
break;
@@ -1299,6 +1303,9 @@ static void hns3_clear_desc(struct hns3_enet_ring *ring, int next_to_use_orig)
/* rollback one */
ring_ptr_move_bw(ring, next_to_use);
+ if (!ring->desc_cb[ring->next_to_use].dma)
+ continue;
+
/* unmap the descriptor dma address */
if (ring->desc_cb[ring->next_to_use].type == DESC_TYPE_SKB)
dma_unmap_single(dev,
@@ -1313,6 +1320,7 @@ static void hns3_clear_desc(struct hns3_enet_ring *ring, int next_to_use_orig)
ring->desc_cb[ring->next_to_use].length = 0;
ring->desc_cb[ring->next_to_use].dma = 0;
+ ring->desc_cb[ring->next_to_use].type = DESC_TYPE_UNKNOWN;
}
}
--
2.25.1
From: Charan Teja Kalla <[email protected]>
[ Upstream commit 6348dd291e3653534a9e28e6917569bc9967b35b ]
There exists a sleep-while-atomic bug while accessing the dmabuf->name
under mutex in the dmabuffs_dname(). This is caused from the SELinux
permissions checks on a process where it tries to validate the inherited
files from fork() by traversing them through iterate_fd() (which
traverse files under spin_lock) and call
match_file(security/selinux/hooks.c) where the permission checks happen.
This audit information is logged using dump_common_audit_data() where it
calls d_path() to get the file path name. If the file check happen on
the dmabuf's fd, then it ends up in ->dmabuffs_dname() and use mutex to
access dmabuf->name. The flow will be like below:
flush_unauthorized_files()
iterate_fd()
spin_lock() --> Start of the atomic section.
match_file()
file_has_perm()
avc_has_perm()
avc_audit()
slow_avc_audit()
common_lsm_audit()
dump_common_audit_data()
audit_log_d_path()
d_path()
dmabuffs_dname()
mutex_lock()--> Sleep while atomic.
Call trace captured (on 4.19 kernels) is below:
___might_sleep+0x204/0x208
__might_sleep+0x50/0x88
__mutex_lock_common+0x5c/0x1068
__mutex_lock_common+0x5c/0x1068
mutex_lock_nested+0x40/0x50
dmabuffs_dname+0xa0/0x170
d_path+0x84/0x290
audit_log_d_path+0x74/0x130
common_lsm_audit+0x334/0x6e8
slow_avc_audit+0xb8/0xf8
avc_has_perm+0x154/0x218
file_has_perm+0x70/0x180
match_file+0x60/0x78
iterate_fd+0x128/0x168
selinux_bprm_committing_creds+0x178/0x248
security_bprm_committing_creds+0x30/0x48
install_exec_creds+0x1c/0x68
load_elf_binary+0x3a4/0x14e0
search_binary_handler+0xb0/0x1e0
So, use spinlock to access dmabuf->name to avoid sleep-while-atomic.
Cc: <[email protected]> [5.3+]
Signed-off-by: Charan Teja Kalla <[email protected]>
Reviewed-by: Michael J. Ruhl <[email protected]>
Acked-by: Christian König <[email protected]>
[sumits: added comment to spinlock_t definition to avoid warning]
Signed-off-by: Sumit Semwal <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/dma-buf/dma-buf.c | 11 +++++++----
include/linux/dma-buf.h | 1 +
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index cf65a47310c3a..eba7e3fe769cf 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -45,10 +45,10 @@ static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
size_t ret = 0;
dmabuf = dentry->d_fsdata;
- mutex_lock(&dmabuf->lock);
+ spin_lock(&dmabuf->name_lock);
if (dmabuf->name)
ret = strlcpy(name, dmabuf->name, DMA_BUF_NAME_LEN);
- mutex_unlock(&dmabuf->lock);
+ spin_unlock(&dmabuf->name_lock);
return dynamic_dname(dentry, buffer, buflen, "/%s:%s",
dentry->d_name.name, ret > 0 ? name : "");
@@ -338,8 +338,10 @@ static long dma_buf_set_name(struct dma_buf *dmabuf, const char __user *buf)
kfree(name);
goto out_unlock;
}
+ spin_lock(&dmabuf->name_lock);
kfree(dmabuf->name);
dmabuf->name = name;
+ spin_unlock(&dmabuf->name_lock);
out_unlock:
mutex_unlock(&dmabuf->lock);
@@ -402,10 +404,10 @@ static void dma_buf_show_fdinfo(struct seq_file *m, struct file *file)
/* Don't count the temporary reference taken inside procfs seq_show */
seq_printf(m, "count:\t%ld\n", file_count(dmabuf->file) - 1);
seq_printf(m, "exp_name:\t%s\n", dmabuf->exp_name);
- mutex_lock(&dmabuf->lock);
+ spin_lock(&dmabuf->name_lock);
if (dmabuf->name)
seq_printf(m, "name:\t%s\n", dmabuf->name);
- mutex_unlock(&dmabuf->lock);
+ spin_unlock(&dmabuf->name_lock);
}
static const struct file_operations dma_buf_fops = {
@@ -537,6 +539,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
dmabuf->size = exp_info->size;
dmabuf->exp_name = exp_info->exp_name;
dmabuf->owner = exp_info->owner;
+ spin_lock_init(&dmabuf->name_lock);
init_waitqueue_head(&dmabuf->poll);
dmabuf->cb_excl.poll = dmabuf->cb_shared.poll = &dmabuf->poll;
dmabuf->cb_excl.active = dmabuf->cb_shared.active = 0;
diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
index ec212cb27fdc6..12eac4293af66 100644
--- a/include/linux/dma-buf.h
+++ b/include/linux/dma-buf.h
@@ -303,6 +303,7 @@ struct dma_buf {
void *vmap_ptr;
const char *exp_name;
const char *name;
+ spinlock_t name_lock; /* spinlock to protect name access */
struct module *owner;
struct list_head list_node;
void *priv;
--
2.25.1
From: Ming Lei <[email protected]>
[ Upstream commit 85067747cf9888249fa11fa49ef75af5192d3988 ]
Given request-based DM now uses blk-mq's blk_mq_queue_inflight() to
determine if outstanding IO has completed (and DM has no control over
the blk-mq state machine used to track outstanding IO) it is unsafe to
wakeup waiter (dm_wait_for_completion) before blk-mq has cleared a
request's state bits (e.g. MQ_RQ_IN_FLIGHT or MQ_RQ_COMPLETE). As
such dm_wait_for_completion() could be left to wait indefinitely if no
other requests complete.
Fix this by eliminating request-based DM's use of waitqueue to wait
for blk-mq requests to complete in dm_wait_for_completion.
Signed-off-by: Ming Lei <[email protected]>
Depends-on: 3c94d83cb3526 ("blk-mq: change blk_mq_queue_busy() to blk_mq_queue_inflight()")
Cc: [email protected]
Signed-off-by: Mike Snitzer <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/md/dm-rq.c | 4 ---
drivers/md/dm.c | 64 ++++++++++++++++++++++++++++------------------
2 files changed, 39 insertions(+), 29 deletions(-)
diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c
index 3f8577e2c13be..9fb46a6301d80 100644
--- a/drivers/md/dm-rq.c
+++ b/drivers/md/dm-rq.c
@@ -146,10 +146,6 @@ static void rq_end_stats(struct mapped_device *md, struct request *orig)
*/
static void rq_completed(struct mapped_device *md)
{
- /* nudge anyone waiting on suspend queue */
- if (unlikely(wq_has_sleeper(&md->wait)))
- wake_up(&md->wait);
-
/*
* dm_put() must be at the end of this function. See the comment above
*/
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 1e7ad2ad48295..87319c473594a 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -627,28 +627,6 @@ static void free_tio(struct dm_target_io *tio)
bio_put(&tio->clone);
}
-static bool md_in_flight_bios(struct mapped_device *md)
-{
- int cpu;
- struct hd_struct *part = &dm_disk(md)->part0;
- long sum = 0;
-
- for_each_possible_cpu(cpu) {
- sum += part_stat_local_read_cpu(part, in_flight[0], cpu);
- sum += part_stat_local_read_cpu(part, in_flight[1], cpu);
- }
-
- return sum != 0;
-}
-
-static bool md_in_flight(struct mapped_device *md)
-{
- if (queue_is_mq(md->queue))
- return blk_mq_queue_inflight(md->queue);
- else
- return md_in_flight_bios(md);
-}
-
u64 dm_start_time_ns_from_clone(struct bio *bio)
{
struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone);
@@ -2439,15 +2417,29 @@ void dm_put(struct mapped_device *md)
}
EXPORT_SYMBOL_GPL(dm_put);
-static int dm_wait_for_completion(struct mapped_device *md, long task_state)
+static bool md_in_flight_bios(struct mapped_device *md)
+{
+ int cpu;
+ struct hd_struct *part = &dm_disk(md)->part0;
+ long sum = 0;
+
+ for_each_possible_cpu(cpu) {
+ sum += part_stat_local_read_cpu(part, in_flight[0], cpu);
+ sum += part_stat_local_read_cpu(part, in_flight[1], cpu);
+ }
+
+ return sum != 0;
+}
+
+static int dm_wait_for_bios_completion(struct mapped_device *md, long task_state)
{
int r = 0;
DEFINE_WAIT(wait);
- while (1) {
+ while (true) {
prepare_to_wait(&md->wait, &wait, task_state);
- if (!md_in_flight(md))
+ if (!md_in_flight_bios(md))
break;
if (signal_pending_state(task_state, current)) {
@@ -2462,6 +2454,28 @@ static int dm_wait_for_completion(struct mapped_device *md, long task_state)
return r;
}
+static int dm_wait_for_completion(struct mapped_device *md, long task_state)
+{
+ int r = 0;
+
+ if (!queue_is_mq(md->queue))
+ return dm_wait_for_bios_completion(md, task_state);
+
+ while (true) {
+ if (!blk_mq_queue_inflight(md->queue))
+ break;
+
+ if (signal_pending_state(task_state, current)) {
+ r = -EINTR;
+ break;
+ }
+
+ msleep(5);
+ }
+
+ return r;
+}
+
/*
* Process the deferred bios
*/
--
2.25.1
From: Qu Wenruo <[email protected]>
commit 1dae7e0e58b484eaa43d530f211098fdeeb0f404 upstream.
[BUG]
There are several reported runaway balance, that balance is flooding the
log with "found X extents" where the X never changes.
[CAUSE]
Commit d2311e698578 ("btrfs: relocation: Delay reloc tree deletion after
merge_reloc_roots") introduced BTRFS_ROOT_DEAD_RELOC_TREE bit to
indicate that one subvolume has finished its tree blocks swap with its
reloc tree.
However if balance is canceled or hits ENOSPC halfway, we didn't clear
the BTRFS_ROOT_DEAD_RELOC_TREE bit, leaving that bit hanging forever
until unmount.
Any subvolume root with that bit, would cause backref cache to skip this
tree block, as it has finished its tree block swap. This would cause
all tree blocks of that root be ignored by balance, leading to runaway
balance.
[FIX]
Fix the problem by also clearing the BTRFS_ROOT_DEAD_RELOC_TREE bit for
the original subvolume of orphan reloc root.
Add an umount check for the stale bit still set.
Fixes: d2311e698578 ("btrfs: relocation: Delay reloc tree deletion after merge_reloc_roots")
Signed-off-by: Qu Wenruo <[email protected]>
Signed-off-by: David Sterba <[email protected]>
[Manually solve the conflicts due to no btrfs root refs rework]
Signed-off-by: David Sterba <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
fs/btrfs/relocation.c | 2 ++
1 file changed, 2 insertions(+)
--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -2540,6 +2540,8 @@ again:
if (!IS_ERR(root)) {
if (root->reloc_root == reloc_root)
root->reloc_root = NULL;
+ clear_bit(BTRFS_ROOT_DEAD_RELOC_TREE,
+ &root->state);
}
list_del_init(&reloc_root->root_list);
On 7/27/20 8:03 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.4.54 release.
> There are 138 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Wed, 29 Jul 2020 13:48:51 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.54-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>
Compiled and booted on my test system. No dmesg regressions.
Tested-by: Shuah Khan <[email protected]>
thanks,
-- Shuah
On Mon, 27 Jul 2020 at 19:48, Greg Kroah-Hartman
<[email protected]> wrote:
>
> This is the start of the stable review cycle for the 5.4.54 release.
> There are 138 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Wed, 29 Jul 2020 13:48:51 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.54-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
Summary
------------------------------------------------------------------------
kernel: 5.4.54-rc1
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-5.4.y
git commit: 7a4613493cc30754cf5159b126623d26314454bd
git describe: v5.4.53-139-g7a4613493cc3
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-5.4-oe/build/v5.4.53-139-g7a4613493cc3
No regressions (compared to build v5.4.53)
No fixes (compared to build v5.4.53)
Ran 35091 total tests in the following environments and test suites.
Environments
--------------
- dragonboard-410c
- hi6220-hikey
- i386
- juno-r2
- juno-r2-compat
- juno-r2-kasan
- nxp-ls2088
- qemu_arm
- qemu_arm64
- qemu_i386
- qemu_x86_64
- x15
- x86
- x86-kasan
Test Suites
-----------
* build
* install-android-platform-tools-r2600
* install-android-platform-tools-r2800
* kvm-unit-tests
* libhugetlbfs
* linux-log-parser
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-io-tests
* ltp-math-tests
* ltp-nptl-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* perf
* v4l2-compliance
* kselftest
* kselftest/drivers
* kselftest/filesystems
* ltp-containers-tests
* ltp-controllers-tests
* ltp-hugetlb-tests
* ltp-ipc-tests
* ltp-mm-tests
* network-basic-tests
* kselftest/net
* ltp-fs-tests
* ltp-open-posix-tests
* kselftest-vsyscall-mode-native
* kselftest-vsyscall-mode-native/drivers
* kselftest-vsyscall-mode-native/filesystems
* kselftest-vsyscall-mode-native/net
* kselftest-vsyscall-mode-none
* kselftest-vsyscall-mode-none/drivers
* kselftest-vsyscall-mode-none/filesystems
* kselftest-vsyscall-mode-none/net
* ssuite
--
Linaro LKFT
https://lkft.linaro.org
On Mon, Jul 27, 2020 at 04:03:15PM +0200, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.4.54 release.
> There are 138 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Wed, 29 Jul 2020 13:48:51 +0000.
> Anything received after that time might be too late.
>
Build results:
total: 157 pass: 157 fail: 0
Qemu test results:
total: 430 pass: 430 fail: 0
Guenter