2020-11-17 14:00:35

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.4 000/151] 5.4.78-rc1 review

This is the start of the stable review cycle for the 5.4.78 release.
There are 151 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 Thu, 19 Nov 2020 12:20: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.78-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.78-rc1

Boris Protopopov <[email protected]>
Convert trailing spaces and periods in path components

Yunsheng Lin <[email protected]>
net: sch_generic: fix the missing new qdisc assignment bug

Jiri Olsa <[email protected]>
perf/core: Fix race in the perf_mmap_close() function

Arnaldo Carvalho de Melo <[email protected]>
perf scripting python: Avoid declaring function pointers with a visibility attribute

Anand K Mistry <[email protected]>
x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-on STIBP

Christophe Leroy <[email protected]>
powerpc/603: Always fault when _PAGE_ACCESSED is not set

Venkata Sandeep Dhanalakota <[email protected]>
drm/i915: Correctly set SFC capability for video engines

Heiner Kallweit <[email protected]>
r8169: fix potential skb double free in an error path

Wang Hai <[email protected]>
tipc: fix memory leak in tipc_topsrv_start()

Martin Schiller <[email protected]>
net/x25: Fix null-ptr-deref in x25_connect

Mao Wenan <[email protected]>
net: Update window_clamp if SOCK_RCVBUF is set

Alexander Lobakin <[email protected]>
net: udp: fix UDP header access on Fast/frag0 UDP GRO

Ursula Braun <[email protected]>
net/af_iucv: fix null pointer dereference on shutdown

Oliver Herms <[email protected]>
IPv6: Set SIT tunnel hard_header_len to zero

Stefano Stabellini <[email protected]>
swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"

Coiby Xu <[email protected]>
pinctrl: amd: fix incorrect way to disable debounce filter

Coiby Xu <[email protected]>
pinctrl: amd: use higher precision for 512 RtcClk

Thomas Zimmermann <[email protected]>
drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]

Al Viro <[email protected]>
don't dump the threads that had been already exiting when zapped.

Yoshihiro Shimoda <[email protected]>
mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove

Yangbo Lu <[email protected]>
mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs

Arnaud de Turckheim <[email protected]>
gpio: pcie-idio-24: Enable PEX8311 interrupts

Arnaud de Turckheim <[email protected]>
gpio: pcie-idio-24: Fix IRQ Enable Register value

Arnaud de Turckheim <[email protected]>
gpio: pcie-idio-24: Fix irq mask when masking

Chen Zhou <[email protected]>
selinux: Fix error return code in sel_ib_pkey_sid_slow()

Matthew Wilcox (Oracle) <[email protected]>
btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch

Wengang Wang <[email protected]>
ocfs2: initialize ip_next_orphan

Matteo Croce <[email protected]>
reboot: fix overflow parsing reboot cpu number

Matteo Croce <[email protected]>
Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"

Laurent Dufour <[email protected]>
mm/slub: fix panic in slab_alloc_node()

Theodore Ts'o <[email protected]>
jbd2: fix up sparse warnings in checkpoint code

Dan Carpenter <[email protected]>
futex: Don't enable IRQs unconditionally in put_pi_state()

Alexander Usyskin <[email protected]>
mei: protect mei_cl_mtu from null dereference

Alexander Lobakin <[email protected]>
virtio: virtio_console: fix DMA memory allocation for rproc serial

Zhang Qilong <[email protected]>
xhci: hisilicon: fix refercence leak in xhci_histb_probe

Chris Brandt <[email protected]>
usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode

Shin'ichiro Kawasaki <[email protected]>
uio: Fix use-after-free in uio_unregister_device()

Jing Xiangfeng <[email protected]>
thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()

Mika Westerberg <[email protected]>
thunderbolt: Fix memory leak if ida_simple_get() fails in enumerate_services()

Andrew Jones <[email protected]>
KVM: arm64: Don't hide ID registers from userspace

Anand Jain <[email protected]>
btrfs: dev-replace: fail mount if we don't have replace item with target device

Josef Bacik <[email protected]>
btrfs: fix min reserved size calculation in merge_reloc_root

Dinghao Liu <[email protected]>
btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod

Joseph Qi <[email protected]>
ext4: unlock xattr_sem properly in ext4_inline_data_truncate()

Kaixu Xia <[email protected]>
ext4: correctly report "not supported" for {usr,grp}jquota when !CONFIG_QUOTA

Gao Xiang <[email protected]>
erofs: derive atime instead of leaving it empty

Peter Zijlstra <[email protected]>
perf: Fix get_recursion_context()

Martin Willi <[email protected]>
vrf: Fix fast path output packet handling with async Netfilter rules

Wang Hai <[email protected]>
cosa: Add missing kfree in error path of cosa_write

Evan Nimmo <[email protected]>
of/address: Fix of_node memory leak in of_dma_is_coherent

Christoph Hellwig <[email protected]>
xfs: fix a missing unlock on error in xfs_fs_map_blocks

Sven Van Asbroeck <[email protected]>
lan743x: fix "BUG: invalid wait context" when setting rx mode

Darrick J. Wong <[email protected]>
xfs: fix brainos in the refcount scrubber's rmap fragment processor

Darrick J. Wong <[email protected]>
xfs: fix rmap key and record comparison functions

Darrick J. Wong <[email protected]>
xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents

Darrick J. Wong <[email protected]>
xfs: fix flags argument to rmap lookup when converting shared file rmaps

Vinicius Costa Gomes <[email protected]>
igc: Fix returning wrong statistics

Christoph Hellwig <[email protected]>
nbd: fix a block_device refcount leak in nbd_release

David Verbeiren <[email protected]>
bpf: Zero-fill re-used per-cpu map element

Chuck Lever <[email protected]>
SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()

Maor Gottlieb <[email protected]>
net/mlx5: Fix deletion of duplicate rules

Billy Tsai <[email protected]>
pinctrl: aspeed: Fix GPI only function problem.

Ard Biesheuvel <[email protected]>
bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE

Andrew Jeffery <[email protected]>
ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template

Andy Shevchenko <[email protected]>
pinctrl: intel: Set default bias in case no particular value given

Baolin Wang <[email protected]>
mfd: sprd: Add wakeup capability for PMIC IRQ

Chunyan Zhang <[email protected]>
tick/common: Touch watchdog in tick_unfreeze() on all CPUs

Martin Hundebøll <[email protected]>
spi: bcm2835: remove use of uninitialized gpio flags variable

Jerry Snitselaar <[email protected]>
tpm_tis: Disable interrupts on ThinkPad T490s

Ulrich Hecht <[email protected]>
i2c: sh_mobile: implement atomic transfers

Sean Anderson <[email protected]>
riscv: Set text_offset correctly for M-Mode

Tommi Rantala <[email protected]>
selftests: proc: fix warning: _GNU_SOURCE redefined

Veerabadhran Gopalakrishnan <[email protected]>
amd/amdgpu: Disable VCN DPG mode for Picasso

Qii Wang <[email protected]>
i2c: mediatek: move dma reset before i2c reset

Fred Gao <[email protected]>
vfio/pci: Bypass IGD init in case of -ENODEV

Zhang Qilong <[email protected]>
vfio: platform: fix reference leak in vfio_platform_open

Qian Cai <[email protected]>
s390/smp: move rcu_cpu_starting() earlier

Suravee Suthikulpanit <[email protected]>
iommu/amd: Increase interrupt remapping table limit to 512 entries

Sagi Grimberg <[email protected]>
nvme-tcp: avoid repeated request completion

Sagi Grimberg <[email protected]>
nvme-rdma: avoid repeated request completion

Chao Leng <[email protected]>
nvme-tcp: avoid race between time out and tear down

Chao Leng <[email protected]>
nvme-rdma: avoid race between time out and tear down

Chao Leng <[email protected]>
nvme: introduce nvme_sync_io_queues

Sreekanth Reddy <[email protected]>
scsi: mpt3sas: Fix timeouts observed while reenabling IRQ

Hannes Reinecke <[email protected]>
scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()

Qiujun Huang <[email protected]>
tracing: Fix the checking of stackidx in __ftrace_trace_stack

Ye Bin <[email protected]>
cfg80211: regulatory: Fix inconsistent format argument

Johannes Berg <[email protected]>
mac80211: always wind down STA state

Johannes Berg <[email protected]>
cfg80211: initialize wdev data earlier

Johannes Berg <[email protected]>
mac80211: fix use of skb payload instead of header

Evan Quan <[email protected]>
drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running

Evan Quan <[email protected]>
drm/amd/pm: perform SMC reset on suspend/hibernation

Evan Quan <[email protected]>
drm/amdgpu: perform srbm soft reset always on SDMA resume

Keita Suzuki <[email protected]>
scsi: hpsa: Fix memory leak in hpsa_init_one()

Bob Peterson <[email protected]>
gfs2: check for live vs. read-only file system in gfs2_fitrim

Bob Peterson <[email protected]>
gfs2: Add missing truncate_inode_pages_final for sd_aspace

Bob Peterson <[email protected]>
gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free

Kai-Heng Feng <[email protected]>
ALSA: hda: Reinstate runtime_allow() for all hda controllers

Kai-Heng Feng <[email protected]>
ALSA: hda: Separate runtime and system suspend

Tommi Rantala <[email protected]>
selftests: pidfd: fix compilation errors due to wait.h

Colin Ian King <[email protected]>
selftests/ftrace: check for do_sys_openat2 in user-memory test

Evgeny Novikov <[email protected]>
usb: gadget: goku_udc: fix potential crashes in probe

Viresh Kumar <[email protected]>
opp: Reduce the size of critical section in _opp_table_kref_release()

Heikki Krogerus <[email protected]>
usb: dwc3: pci: add support for the Intel Alder Lake-S

Olivier Moysan <[email protected]>
ASoC: cs42l51: manage mclk shutdown delay

Srinivas Kandagatla <[email protected]>
ASoC: qcom: sdm845: set driver name correctly

Masashi Honma <[email protected]>
ath9k_htc: Use appropriate rs_datalen type

Maxim Levitsky <[email protected]>
KVM: x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally

Stephen Boyd <[email protected]>
KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return SMCCC_RET_NOT_REQUIRED

George Spelvin <[email protected]>
random32: make prandom_u32() output unpredictable

Tyler Hicks <[email protected]>
tpm: efi: Don't create binary_bios_measurements file for an empty log

Darrick J. Wong <[email protected]>
xfs: fix scrub flagging rtinherit even if there is no rt device

Brian Foster <[email protected]>
xfs: flush new eof page on truncate to avoid post-eof corruption

Joakim Zhang <[email protected]>
can: flexcan: flexcan_remove(): disable wakeup completely

Joakim Zhang <[email protected]>
can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A

Stephane Grosjean <[email protected]>
can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is on

Stephane Grosjean <[email protected]>
can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping

Dan Carpenter <[email protected]>
can: peak_usb: add range checking in decode operations

Navid Emamdoost <[email protected]>
can: xilinx_can: handle failure cases of pm_runtime_get_sync

Zhang Changzhong <[email protected]>
can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error path

Zhang Changzhong <[email protected]>
can: j1939: j1939_sk_bind(): return failure if netdev is down

Yegor Yefremov <[email protected]>
can: j1939: swap addr and pgn in the send example

Oleksij Rempel <[email protected]>
can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()

Oliver Hartkopp <[email protected]>
can: dev: __can_get_echo_skb(): fix real payload length return value for RTR frames

Vincent Mailhol <[email protected]>
can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ context

Marc Kleine-Budde <[email protected]>
can: rx-offload: don't call kfree_skb() from IRQ context

David Howells <[email protected]>
afs: Fix warning due to unadvanced marshalling pointer

Liu, Yi L <[email protected]>
iommu/vt-d: Fix a bug for PDP check in prq_event_thread

Dan Carpenter <[email protected]>
ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()

Jiri Olsa <[email protected]>
perf tools: Add missing swap for ino_generation

Stanislav Ivanichkin <[email protected]>
perf trace: Fix segfault when trying to trace events by cgroup

Qian Cai <[email protected]>
powerpc/eeh_cache: Fix a possible debugfs deadlock

Stefano Brivio <[email protected]>
netfilter: ipset: Update byte and packet counters regardless of whether they match

Pablo Neira Ayuso <[email protected]>
netfilter: nf_tables: missing validation from the abort path

Jason A. Donenfeld <[email protected]>
netfilter: use actual socket sk rather than skb sk when routing harder

Darrick J. Wong <[email protected]>
xfs: set xefi_discard when creating a deferred agfl free log intent item

Srinivas Kandagatla <[email protected]>
ASoC: codecs: wcd9335: Set digital gain range correctly

zhuoliang zhang <[email protected]>
net: xfrm: fix a race condition during allocing spi

Olaf Hering <[email protected]>
hv_balloon: disable warning when floor reached

Marc Zyngier <[email protected]>
genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY

Tomasz Figa <[email protected]>
ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function

Johannes Thumshirn <[email protected]>
btrfs: reschedule when cloning lots of extents

Josef Bacik <[email protected]>
btrfs: sysfs: init devices outside of the chunk_mutex

Qu Wenruo <[email protected]>
btrfs: tracepoints: output proper root owner for trace_find_free_extent()

Thinh Nguyen <[email protected]>
usb: dwc3: gadget: Reclaim extra TRBs after request completion

Thinh Nguyen <[email protected]>
usb: dwc3: gadget: Continue to process pending requests

Ansuel Smith <[email protected]>
PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0

Santosh Shukla <[email protected]>
KVM: arm64: Force PTE mapping on fault resulting in a device mapping

Ming Lei <[email protected]>
nbd: don't update block size after device is started

Zeng Tao <[email protected]>
time: Prevent undefined behaviour in timespec64_to_ns()

Chris Wilson <[email protected]>
drm/i915/gem: Flush coherency domains on first set-domain-ioctl


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

Diffstat:

Documentation/networking/j1939.rst | 4 +-
Makefile | 4 +-
arch/arm/include/asm/kprobes.h | 22 +-
arch/arm/probes/kprobes/opt-arm.c | 18 +-
arch/arm64/kvm/sys_regs.c | 18 +-
arch/powerpc/kernel/eeh_cache.c | 5 +-
arch/powerpc/kernel/head_32.S | 12 -
arch/riscv/kernel/head.S | 5 +
arch/s390/kernel/smp.c | 3 +-
arch/x86/kernel/cpu/bugs.c | 52 ++-
arch/x86/kvm/x86.c | 4 +
drivers/block/nbd.c | 10 +-
drivers/char/random.c | 1 -
drivers/char/tpm/eventlog/efi.c | 5 +
drivers/char/tpm/tpm_tis.c | 29 +-
drivers/char/virtio_console.c | 8 +-
drivers/gpio/gpio-pcie-idio-24.c | 62 ++-
drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 27 +-
drivers/gpu/drm/amd/amdgpu/soc15.c | 3 +-
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 4 +
drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 1 +
drivers/gpu/drm/amd/powerplay/inc/smumgr.h | 2 +
drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c | 29 +-
drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 8 +
drivers/gpu/drm/gma500/psb_irq.c | 34 +-
drivers/gpu/drm/i915/gem/i915_gem_domain.c | 28 +-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 3 +-
drivers/hv/hv_balloon.c | 2 +-
drivers/i2c/busses/i2c-mt65xx.c | 8 +-
drivers/i2c/busses/i2c-sh_mobile.c | 86 +++-
drivers/iommu/amd_iommu_types.h | 6 +-
drivers/iommu/intel-svm.c | 2 +-
drivers/mfd/sprd-sc27xx-spi.c | 28 +-
drivers/misc/mei/client.h | 4 +-
drivers/mmc/host/renesas_sdhi_core.c | 1 +
drivers/mmc/host/sdhci-of-esdhc.c | 2 +
drivers/net/can/dev.c | 14 +-
drivers/net/can/flexcan.c | 5 +-
drivers/net/can/peak_canfd/peak_canfd.c | 11 +-
drivers/net/can/rx-offload.c | 4 +-
drivers/net/can/ti_hecc.c | 8 +-
drivers/net/can/usb/peak_usb/pcan_usb_core.c | 51 ++-
drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 48 ++-
drivers/net/can/xilinx_can.c | 6 +-
drivers/net/ethernet/intel/igc/igc_main.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 7 +-
drivers/net/ethernet/microchip/lan743x_main.c | 12 +-
drivers/net/ethernet/microchip/lan743x_main.h | 3 -
drivers/net/ethernet/realtek/r8169_main.c | 3 +-
drivers/net/vrf.c | 92 +++-
drivers/net/wan/cosa.c | 1 +
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 2 +-
drivers/nvme/host/core.c | 8 +-
drivers/nvme/host/nvme.h | 1 +
drivers/nvme/host/rdma.c | 14 +-
drivers/nvme/host/tcp.c | 16 +-
drivers/of/address.c | 4 +-
drivers/opp/core.c | 7 +-
drivers/pci/controller/dwc/pcie-qcom.c | 13 +
drivers/pinctrl/aspeed/pinctrl-aspeed.c | 7 +-
drivers/pinctrl/intel/pinctrl-intel.c | 8 +
drivers/pinctrl/pinctrl-amd.c | 6 +-
drivers/scsi/device_handler/scsi_dh_alua.c | 9 +-
drivers/scsi/hpsa.c | 4 +-
drivers/scsi/mpt3sas/mpt3sas_base.c | 7 +
drivers/spi/spi-bcm2835.c | 3 +-
drivers/thunderbolt/nhi.c | 19 +-
drivers/thunderbolt/xdomain.c | 1 +
drivers/uio/uio.c | 10 +-
drivers/usb/class/cdc-acm.c | 9 +
drivers/usb/dwc3/dwc3-pci.c | 4 +
drivers/usb/dwc3/gadget.c | 32 +-
drivers/usb/gadget/udc/goku_udc.c | 2 +-
drivers/usb/host/xhci-histb.c | 2 +-
drivers/vfio/pci/vfio_pci.c | 2 +-
drivers/vfio/platform/vfio_platform_common.c | 3 +-
fs/afs/yfsclient.c | 1 +
fs/btrfs/dev-replace.c | 26 +-
fs/btrfs/extent-tree.c | 7 +-
fs/btrfs/ioctl.c | 12 +-
fs/btrfs/ref-verify.c | 1 +
fs/btrfs/relocation.c | 4 +-
fs/btrfs/volumes.c | 33 +-
fs/cifs/cifs_unicode.c | 8 +-
fs/erofs/inode.c | 21 +-
fs/ext4/inline.c | 1 +
fs/ext4/super.c | 4 +-
fs/gfs2/rgrp.c | 5 +-
fs/gfs2/super.c | 1 +
fs/jbd2/checkpoint.c | 2 +
fs/jbd2/transaction.c | 4 +-
fs/ocfs2/super.c | 1 +
fs/xfs/libxfs/xfs_alloc.c | 1 +
fs/xfs/libxfs/xfs_bmap.h | 2 +-
fs/xfs/libxfs/xfs_rmap.c | 2 +-
fs/xfs/libxfs/xfs_rmap_btree.c | 16 +-
fs/xfs/scrub/bmap.c | 2 +
fs/xfs/scrub/inode.c | 3 +-
fs/xfs/scrub/refcount.c | 8 +-
fs/xfs/xfs_iops.c | 10 +
fs/xfs/xfs_pnfs.c | 2 +-
include/linux/arm-smccc.h | 2 +
include/linux/can/skb.h | 20 +-
include/linux/compiler-gcc.h | 2 -
include/linux/compiler_types.h | 4 -
include/linux/netfilter/nfnetlink.h | 9 +-
include/linux/netfilter_ipv4.h | 2 +-
include/linux/netfilter_ipv6.h | 10 +-
include/linux/prandom.h | 36 +-
include/linux/time64.h | 4 +
include/trace/events/btrfs.h | 10 +-
include/trace/events/sunrpc.h | 8 +-
kernel/bpf/Makefile | 6 +-
kernel/bpf/core.c | 2 +-
kernel/bpf/hashtab.c | 30 +-
kernel/dma/swiotlb.c | 6 +-
kernel/events/core.c | 7 +-
kernel/events/internal.h | 2 +-
kernel/exit.c | 5 +-
kernel/futex.c | 5 +-
kernel/irq/Kconfig | 1 +
kernel/reboot.c | 28 +-
kernel/time/itimer.c | 4 -
kernel/time/tick-common.c | 2 +
kernel/time/timer.c | 7 -
kernel/trace/trace.c | 4 +-
lib/random32.c | 462 +++++++++++++--------
mm/slub.c | 2 +-
net/can/j1939/socket.c | 6 +
net/ipv4/netfilter.c | 8 +-
net/ipv4/netfilter/iptable_mangle.c | 2 +-
net/ipv4/netfilter/nf_reject_ipv4.c | 2 +-
net/ipv4/syncookies.c | 9 +-
net/ipv4/udp_offload.c | 2 +-
net/ipv6/netfilter.c | 6 +-
net/ipv6/netfilter/ip6table_mangle.c | 2 +-
net/ipv6/sit.c | 2 -
net/ipv6/syncookies.c | 10 +-
net/iucv/af_iucv.c | 3 +-
net/mac80211/sta_info.c | 18 +
net/mac80211/tx.c | 37 +-
net/netfilter/ipset/ip_set_core.c | 3 +-
net/netfilter/ipvs/ip_vs_core.c | 4 +-
net/netfilter/nf_nat_proto.c | 4 +-
net/netfilter/nf_synproxy_core.c | 2 +-
net/netfilter/nf_tables_api.c | 15 +-
net/netfilter/nfnetlink.c | 22 +-
net/netfilter/nft_chain_route.c | 4 +-
net/netfilter/utils.c | 4 +-
net/sched/sch_generic.c | 3 +
net/tipc/topsrv.c | 10 +-
net/wireless/core.c | 57 +--
net/wireless/core.h | 5 +-
net/wireless/nl80211.c | 3 +-
net/wireless/reg.c | 2 +-
net/x25/af_x25.c | 2 +-
net/xfrm/xfrm_state.c | 8 +-
security/selinux/ibpkey.c | 4 +-
sound/hda/ext/hdac_ext_controller.c | 2 +
sound/pci/hda/hda_controller.h | 3 +-
sound/pci/hda/hda_intel.c | 63 +--
sound/soc/codecs/cs42l51.c | 22 +-
sound/soc/codecs/wcd9335.c | 2 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 39 +-
sound/soc/qcom/sdm845.c | 2 +
tools/perf/builtin-trace.c | 15 +-
.../util/scripting-engines/trace-event-python.c | 7 +-
tools/perf/util/session.c | 1 +
tools/testing/selftests/bpf/prog_tests/map_init.c | 214 ++++++++++
tools/testing/selftests/bpf/progs/test_map_init.c | 33 ++
.../ftrace/test.d/kprobe/kprobe_args_user.tc | 4 +
tools/testing/selftests/pidfd/pidfd_open_test.c | 1 -
tools/testing/selftests/pidfd/pidfd_poll_test.c | 1 -
tools/testing/selftests/proc/proc-loadavg-001.c | 1 -
tools/testing/selftests/proc/proc-self-syscall.c | 1 -
tools/testing/selftests/proc/proc-uptime-002.c | 1 -
virt/kvm/arm/mmu.c | 1 +
virt/kvm/arm/psci.c | 2 +-
178 files changed, 1759 insertions(+), 784 deletions(-)



2020-11-17 14:00:35

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.4 003/151] nbd: dont update block size after device is started

From: Ming Lei <[email protected]>

[ Upstream commit b40813ddcd6bf9f01d020804e4cb8febc480b9e4 ]

Mounted NBD device can be resized, one use case is rbd-nbd.

Fix the issue by setting up default block size, then not touch it
in nbd_size_update() any more. This kind of usage is aligned with loop
which has same use case too.

Cc: [email protected]
Fixes: c8a83a6b54d0 ("nbd: Use set_blocksize() to set device blocksize")
Reported-by: lining <[email protected]>
Signed-off-by: Ming Lei <[email protected]>
Cc: Josef Bacik <[email protected]>
Cc: Jan Kara <[email protected]>
Tested-by: lining <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/block/nbd.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 742f8160b6e28..62a873718b5bb 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -296,7 +296,7 @@ static void nbd_size_clear(struct nbd_device *nbd)
}
}

-static void nbd_size_update(struct nbd_device *nbd)
+static void nbd_size_update(struct nbd_device *nbd, bool start)
{
struct nbd_config *config = nbd->config;
struct block_device *bdev = bdget_disk(nbd->disk, 0);
@@ -312,7 +312,8 @@ static void nbd_size_update(struct nbd_device *nbd)
if (bdev) {
if (bdev->bd_disk) {
bd_set_size(bdev, config->bytesize);
- set_blocksize(bdev, config->blksize);
+ if (start)
+ set_blocksize(bdev, config->blksize);
} else
bdev->bd_invalidated = 1;
bdput(bdev);
@@ -327,7 +328,7 @@ static void nbd_size_set(struct nbd_device *nbd, loff_t blocksize,
config->blksize = blocksize;
config->bytesize = blocksize * nr_blocks;
if (nbd->task_recv != NULL)
- nbd_size_update(nbd);
+ nbd_size_update(nbd, false);
}

static void nbd_complete_rq(struct request *req)
@@ -1293,7 +1294,7 @@ static int nbd_start_device(struct nbd_device *nbd)
args->index = i;
queue_work(nbd->recv_workq, &args->work);
}
- nbd_size_update(nbd);
+ nbd_size_update(nbd, true);
return error;
}

--
2.27.0



2020-11-17 14:00:38

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.4 016/151] xfs: set xefi_discard when creating a deferred agfl free log intent item

From: Darrick J. Wong <[email protected]>

[ Upstream commit 2c334e12f957cd8c6bb66b4aa3f79848b7c33cab ]

Make sure that we actually initialize xefi_discard when we're scheduling
a deferred free of an AGFL block. This was (eventually) found by the
UBSAN while I was banging on realtime rmap problems, but it exists in
the upstream codebase. While we're at it, rearrange the structure to
reduce the struct size from 64 to 56 bytes.

Fixes: fcb762f5de2e ("xfs: add bmapi nodiscard flag")
Signed-off-by: Darrick J. Wong <[email protected]>
Reviewed-by: Brian Foster <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
fs/xfs/libxfs/xfs_alloc.c | 1 +
fs/xfs/libxfs/xfs_bmap.h | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
index 0a36f532cf86c..436f686a98918 100644
--- a/fs/xfs/libxfs/xfs_alloc.c
+++ b/fs/xfs/libxfs/xfs_alloc.c
@@ -2209,6 +2209,7 @@ xfs_defer_agfl_block(
new->xefi_startblock = XFS_AGB_TO_FSB(mp, agno, agbno);
new->xefi_blockcount = 1;
new->xefi_oinfo = *oinfo;
+ new->xefi_skip_discard = false;

trace_xfs_agfl_free_defer(mp, agno, 0, agbno, 1);

diff --git a/fs/xfs/libxfs/xfs_bmap.h b/fs/xfs/libxfs/xfs_bmap.h
index e2798c6f3a5f3..093716a074fb7 100644
--- a/fs/xfs/libxfs/xfs_bmap.h
+++ b/fs/xfs/libxfs/xfs_bmap.h
@@ -52,9 +52,9 @@ struct xfs_extent_free_item
{
xfs_fsblock_t xefi_startblock;/* starting fs block number */
xfs_extlen_t xefi_blockcount;/* number of blocks in extent */
+ bool xefi_skip_discard;
struct list_head xefi_list;
struct xfs_owner_info xefi_oinfo; /* extent owner */
- bool xefi_skip_discard;
};

#define XFS_BMAP_MAX_NMAP 4
--
2.27.0



2020-11-17 14:00:45

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.4 018/151] netfilter: nf_tables: missing validation from the abort path

From: Pablo Neira Ayuso <[email protected]>

[ Upstream commit c0391b6ab810381df632677a1dcbbbbd63d05b6d ]

If userspace does not include the trailing end of batch message, then
nfnetlink aborts the transaction. This allows to check that ruleset
updates trigger no errors.

After this patch, invoking this command from the prerouting chain:

# nft -c add rule x y fib saddr . oif type local

fails since oif is not supported there.

This patch fixes the lack of rule validation from the abort/check path
to catch configuration errors such as the one above.

Fixes: a654de8fdc18 ("netfilter: nf_tables: fix chain dependency validation")
Signed-off-by: Pablo Neira Ayuso <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
include/linux/netfilter/nfnetlink.h | 9 ++++++++-
net/netfilter/nf_tables_api.c | 15 ++++++++++-----
net/netfilter/nfnetlink.c | 22 ++++++++++++++++++----
3 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
index 89016d08f6a27..f6267e2883f26 100644
--- a/include/linux/netfilter/nfnetlink.h
+++ b/include/linux/netfilter/nfnetlink.h
@@ -24,6 +24,12 @@ struct nfnl_callback {
const u_int16_t attr_count; /* number of nlattr's */
};

+enum nfnl_abort_action {
+ NFNL_ABORT_NONE = 0,
+ NFNL_ABORT_AUTOLOAD,
+ NFNL_ABORT_VALIDATE,
+};
+
struct nfnetlink_subsystem {
const char *name;
__u8 subsys_id; /* nfnetlink subsystem ID */
@@ -31,7 +37,8 @@ struct nfnetlink_subsystem {
const struct nfnl_callback *cb; /* callback for individual types */
struct module *owner;
int (*commit)(struct net *net, struct sk_buff *skb);
- int (*abort)(struct net *net, struct sk_buff *skb, bool autoload);
+ int (*abort)(struct net *net, struct sk_buff *skb,
+ enum nfnl_abort_action action);
void (*cleanup)(struct net *net);
bool (*valid_genid)(struct net *net, u32 genid);
};
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 5a77b7a177229..51391d5d22656 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -7010,11 +7010,15 @@ static void nf_tables_abort_release(struct nft_trans *trans)
kfree(trans);
}

-static int __nf_tables_abort(struct net *net, bool autoload)
+static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action)
{
struct nft_trans *trans, *next;
struct nft_trans_elem *te;

+ if (action == NFNL_ABORT_VALIDATE &&
+ nf_tables_validate(net) < 0)
+ return -EAGAIN;
+
list_for_each_entry_safe_reverse(trans, next, &net->nft.commit_list,
list) {
switch (trans->msg_type) {
@@ -7132,7 +7136,7 @@ static int __nf_tables_abort(struct net *net, bool autoload)
nf_tables_abort_release(trans);
}

- if (autoload)
+ if (action == NFNL_ABORT_AUTOLOAD)
nf_tables_module_autoload(net);
else
nf_tables_module_autoload_cleanup(net);
@@ -7145,9 +7149,10 @@ static void nf_tables_cleanup(struct net *net)
nft_validate_state_update(net, NFT_VALIDATE_SKIP);
}

-static int nf_tables_abort(struct net *net, struct sk_buff *skb, bool autoload)
+static int nf_tables_abort(struct net *net, struct sk_buff *skb,
+ enum nfnl_abort_action action)
{
- int ret = __nf_tables_abort(net, autoload);
+ int ret = __nf_tables_abort(net, action);

mutex_unlock(&net->nft.commit_mutex);

@@ -7754,7 +7759,7 @@ static void __net_exit nf_tables_exit_net(struct net *net)
{
mutex_lock(&net->nft.commit_mutex);
if (!list_empty(&net->nft.commit_list))
- __nf_tables_abort(net, false);
+ __nf_tables_abort(net, NFNL_ABORT_NONE);
__nft_release_tables(net);
mutex_unlock(&net->nft.commit_mutex);
WARN_ON_ONCE(!list_empty(&net->nft.tables));
diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c
index 6d03b09096210..81c86a156c6c0 100644
--- a/net/netfilter/nfnetlink.c
+++ b/net/netfilter/nfnetlink.c
@@ -315,7 +315,7 @@ static void nfnetlink_rcv_batch(struct sk_buff *skb, struct nlmsghdr *nlh,
return netlink_ack(skb, nlh, -EINVAL, NULL);
replay:
status = 0;
-
+replay_abort:
skb = netlink_skb_clone(oskb, GFP_KERNEL);
if (!skb)
return netlink_ack(oskb, nlh, -ENOMEM, NULL);
@@ -481,7 +481,7 @@ ack:
}
done:
if (status & NFNL_BATCH_REPLAY) {
- ss->abort(net, oskb, true);
+ ss->abort(net, oskb, NFNL_ABORT_AUTOLOAD);
nfnl_err_reset(&err_list);
kfree_skb(skb);
module_put(ss->owner);
@@ -492,11 +492,25 @@ done:
status |= NFNL_BATCH_REPLAY;
goto done;
} else if (err) {
- ss->abort(net, oskb, false);
+ ss->abort(net, oskb, NFNL_ABORT_NONE);
netlink_ack(oskb, nlmsg_hdr(oskb), err, NULL);
}
} else {
- ss->abort(net, oskb, false);
+ enum nfnl_abort_action abort_action;
+
+ if (status & NFNL_BATCH_FAILURE)
+ abort_action = NFNL_ABORT_NONE;
+ else
+ abort_action = NFNL_ABORT_VALIDATE;
+
+ err = ss->abort(net, oskb, abort_action);
+ if (err == -EAGAIN) {
+ nfnl_err_reset(&err_list);
+ kfree_skb(skb);
+ module_put(ss->owner);
+ status |= NFNL_BATCH_FAILURE;
+ goto replay_abort;
+ }
}
if (ss->cleanup)
ss->cleanup(net);
--
2.27.0



2020-11-17 16:14:25

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.4 024/151] iommu/vt-d: Fix a bug for PDP check in prq_event_thread

From: Liu, Yi L <[email protected]>

[ Upstream commit 71cd8e2d16703a9df5c86a9e19f4cba99316cc53 ]

In prq_event_thread(), the QI_PGRP_PDP is wrongly set by
'req->pasid_present' which should be replaced to
'req->priv_data_present'.

Fixes: 5b438f4ba315 ("iommu/vt-d: Support page request in scalable mode")
Signed-off-by: Liu, Yi L <[email protected]>
Signed-off-by: Yi Sun <[email protected]>
Acked-by: Lu Baolu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Joerg Roedel <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/iommu/intel-svm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c
index 1d3816cd65d57..ec69a99b99bab 100644
--- a/drivers/iommu/intel-svm.c
+++ b/drivers/iommu/intel-svm.c
@@ -646,7 +646,7 @@ static irqreturn_t prq_event_thread(int irq, void *d)
resp.qw0 = QI_PGRP_PASID(req->pasid) |
QI_PGRP_DID(req->rid) |
QI_PGRP_PASID_P(req->pasid_present) |
- QI_PGRP_PDP(req->pasid_present) |
+ QI_PGRP_PDP(req->priv_data_present) |
QI_PGRP_RESP_CODE(result) |
QI_PGRP_RESP_TYPE;
resp.qw1 = QI_PGRP_IDX(req->prg_index) |
--
2.27.0



2020-11-17 16:14:52

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.4 112/151] KVM: arm64: Dont hide ID registers from userspace

From: Andrew Jones <[email protected]>

commit f81cb2c3ad41ac6d8cb2650e3d72d5f67db1aa28 upstream.

ID registers are RAZ until they've been allocated a purpose, but
that doesn't mean they should be removed from the KVM_GET_REG_LIST
list. So far we only have one register, SYS_ID_AA64ZFR0_EL1, that
is hidden from userspace when its function, SVE, is not present.

Expose SYS_ID_AA64ZFR0_EL1 to userspace as RAZ when SVE is not
implemented. Removing the userspace visibility checks is enough
to reexpose it, as it will already return zero to userspace when
SVE is not present. The register already behaves as RAZ for the
guest when SVE is not present.

Fixes: 73433762fcae ("KVM: arm64/sve: System register context switch and access support")
Reported-by: 张东旭 <[email protected]>
Signed-off-by: Andrew Jones <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Cc: [email protected]#v5.2+
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
arch/arm64/kvm/sys_regs.c | 18 +-----------------
1 file changed, 1 insertion(+), 17 deletions(-)

--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -1132,16 +1132,6 @@ static unsigned int sve_visibility(const
return REG_HIDDEN_USER | REG_HIDDEN_GUEST;
}

-/* Visibility overrides for SVE-specific ID registers */
-static unsigned int sve_id_visibility(const struct kvm_vcpu *vcpu,
- const struct sys_reg_desc *rd)
-{
- if (vcpu_has_sve(vcpu))
- return 0;
-
- return REG_HIDDEN_USER;
-}
-
/* Generate the emulated ID_AA64ZFR0_EL1 value exposed to the guest */
static u64 guest_id_aa64zfr0_el1(const struct kvm_vcpu *vcpu)
{
@@ -1168,9 +1158,6 @@ static int get_id_aa64zfr0_el1(struct kv
{
u64 val;

- if (WARN_ON(!vcpu_has_sve(vcpu)))
- return -ENOENT;
-
val = guest_id_aa64zfr0_el1(vcpu);
return reg_to_user(uaddr, &val, reg->id);
}
@@ -1183,9 +1170,6 @@ static int set_id_aa64zfr0_el1(struct kv
int err;
u64 val;

- if (WARN_ON(!vcpu_has_sve(vcpu)))
- return -ENOENT;
-
err = reg_from_user(&val, uaddr, id);
if (err)
return err;
@@ -1448,7 +1432,7 @@ static const struct sys_reg_desc sys_reg
ID_SANITISED(ID_AA64PFR1_EL1),
ID_UNALLOCATED(4,2),
ID_UNALLOCATED(4,3),
- { SYS_DESC(SYS_ID_AA64ZFR0_EL1), access_id_aa64zfr0_el1, .get_user = get_id_aa64zfr0_el1, .set_user = set_id_aa64zfr0_el1, .visibility = sve_id_visibility },
+ { SYS_DESC(SYS_ID_AA64ZFR0_EL1), access_id_aa64zfr0_el1, .get_user = get_id_aa64zfr0_el1, .set_user = set_id_aa64zfr0_el1, },
ID_UNALLOCATED(4,5),
ID_UNALLOCATED(4,6),
ID_UNALLOCATED(4,7),


2020-11-17 16:15:09

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.4 134/151] drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]

From: Thomas Zimmermann <[email protected]>

commit 06ad8d339524bf94b89859047822c31df6ace239 upstream.

The gma500 driver expects 3 pipelines in several it's IRQ functions.
Accessing struct drm_device.vblank[], this fails with devices that only
have 2 pipelines. An example KASAN report is shown below.

[ 62.267688] ==================================================================
[ 62.268856] BUG: KASAN: slab-out-of-bounds in psb_irq_postinstall+0x250/0x3c0 [gma500_gfx]
[ 62.269450] Read of size 1 at addr ffff8880012bc6d0 by task systemd-udevd/285
[ 62.269949]
[ 62.270192] CPU: 0 PID: 285 Comm: systemd-udevd Tainted: G E 5.10.0-rc1-1-default+ #572
[ 62.270807] Hardware name: /DN2800MT, BIOS MTCDT10N.86A.0164.2012.1213.1024 12/13/2012
[ 62.271366] Call Trace:
[ 62.271705] dump_stack+0xae/0xe5
[ 62.272180] print_address_description.constprop.0+0x17/0xf0
[ 62.272987] ? psb_irq_postinstall+0x250/0x3c0 [gma500_gfx]
[ 62.273474] __kasan_report.cold+0x20/0x38
[ 62.273989] ? psb_irq_postinstall+0x250/0x3c0 [gma500_gfx]
[ 62.274460] kasan_report+0x3a/0x50
[ 62.274891] psb_irq_postinstall+0x250/0x3c0 [gma500_gfx]
[ 62.275380] drm_irq_install+0x131/0x1f0
<...>
[ 62.300751] Allocated by task 285:
[ 62.301223] kasan_save_stack+0x1b/0x40
[ 62.301731] __kasan_kmalloc.constprop.0+0xbf/0xd0
[ 62.302293] drmm_kmalloc+0x55/0x100
[ 62.302773] drm_vblank_init+0x77/0x210

Resolve the issue by only handling vblank entries up to the number of
CRTCs.

I'm adding a Fixes tag for reference, although the bug has been present
since the driver's initial commit.

Signed-off-by: Thomas Zimmermann <[email protected]>
Reviewed-by: Daniel Vetter <[email protected]>
Fixes: 5c49fd3aa0ab ("gma500: Add the core DRM files and headers")
Cc: Alan Cox <[email protected]>
Cc: Dave Airlie <[email protected]>
Cc: Patrik Jakobsson <[email protected]>
Cc: [email protected]
Cc: [email protected]#v3.3+
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/gpu/drm/gma500/psb_irq.c | 34 ++++++++++++----------------------
1 file changed, 12 insertions(+), 22 deletions(-)

--- a/drivers/gpu/drm/gma500/psb_irq.c
+++ b/drivers/gpu/drm/gma500/psb_irq.c
@@ -337,6 +337,7 @@ int psb_irq_postinstall(struct drm_devic
{
struct drm_psb_private *dev_priv = dev->dev_private;
unsigned long irqflags;
+ unsigned int i;

spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);

@@ -349,20 +350,12 @@ int psb_irq_postinstall(struct drm_devic
PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R);
PSB_WVDC32(0xFFFFFFFF, PSB_HWSTAM);

- if (dev->vblank[0].enabled)
- psb_enable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
- else
- psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-
- if (dev->vblank[1].enabled)
- psb_enable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
- else
- psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-
- if (dev->vblank[2].enabled)
- psb_enable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
- else
- psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
+ for (i = 0; i < dev->num_crtcs; ++i) {
+ if (dev->vblank[i].enabled)
+ psb_enable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+ else
+ psb_disable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+ }

if (dev_priv->ops->hotplug_enable)
dev_priv->ops->hotplug_enable(dev, true);
@@ -375,6 +368,7 @@ void psb_irq_uninstall(struct drm_device
{
struct drm_psb_private *dev_priv = dev->dev_private;
unsigned long irqflags;
+ unsigned int i;

spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);

@@ -383,14 +377,10 @@ void psb_irq_uninstall(struct drm_device

PSB_WVDC32(0xFFFFFFFF, PSB_HWSTAM);

- if (dev->vblank[0].enabled)
- psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-
- if (dev->vblank[1].enabled)
- psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-
- if (dev->vblank[2].enabled)
- psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
+ for (i = 0; i < dev->num_crtcs; ++i) {
+ if (dev->vblank[i].enabled)
+ psb_disable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+ }

dev_priv->vdc_irq_mask &= _PSB_IRQ_SGX_FLAG |
_PSB_IRQ_MSVDX_FLAG |


2020-11-17 21:59:35

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.4 130/151] gpio: pcie-idio-24: Enable PEX8311 interrupts

From: Arnaud de Turckheim <[email protected]>

commit 10a2f11d3c9e48363c729419e0f0530dea76e4fe upstream.

This enables the PEX8311 internal PCI wire interrupt and the PEX8311
local interrupt input so the local interrupts are forwarded to the PCI.

Fixes: 585562046628 ("gpio: Add GPIO support for the ACCES PCIe-IDIO-24 family")
Cc: [email protected]
Signed-off-by: Arnaud de Turckheim <[email protected]>
Reviewed-by: William Breathitt Gray <[email protected]>
Signed-off-by: Bartosz Golaszewski <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/gpio/gpio-pcie-idio-24.c | 52 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 51 insertions(+), 1 deletion(-)

--- a/drivers/gpio/gpio-pcie-idio-24.c
+++ b/drivers/gpio/gpio-pcie-idio-24.c
@@ -28,6 +28,47 @@
#include <linux/spinlock.h>
#include <linux/types.h>

+/*
+ * PLX PEX8311 PCI LCS_INTCSR Interrupt Control/Status
+ *
+ * Bit: Description
+ * 0: Enable Interrupt Sources (Bit 0)
+ * 1: Enable Interrupt Sources (Bit 1)
+ * 2: Generate Internal PCI Bus Internal SERR# Interrupt
+ * 3: Mailbox Interrupt Enable
+ * 4: Power Management Interrupt Enable
+ * 5: Power Management Interrupt
+ * 6: Slave Read Local Data Parity Check Error Enable
+ * 7: Slave Read Local Data Parity Check Error Status
+ * 8: Internal PCI Wire Interrupt Enable
+ * 9: PCI Express Doorbell Interrupt Enable
+ * 10: PCI Abort Interrupt Enable
+ * 11: Local Interrupt Input Enable
+ * 12: Retry Abort Enable
+ * 13: PCI Express Doorbell Interrupt Active
+ * 14: PCI Abort Interrupt Active
+ * 15: Local Interrupt Input Active
+ * 16: Local Interrupt Output Enable
+ * 17: Local Doorbell Interrupt Enable
+ * 18: DMA Channel 0 Interrupt Enable
+ * 19: DMA Channel 1 Interrupt Enable
+ * 20: Local Doorbell Interrupt Active
+ * 21: DMA Channel 0 Interrupt Active
+ * 22: DMA Channel 1 Interrupt Active
+ * 23: Built-In Self-Test (BIST) Interrupt Active
+ * 24: Direct Master was the Bus Master during a Master or Target Abort
+ * 25: DMA Channel 0 was the Bus Master during a Master or Target Abort
+ * 26: DMA Channel 1 was the Bus Master during a Master or Target Abort
+ * 27: Target Abort after internal 256 consecutive Master Retrys
+ * 28: PCI Bus wrote data to LCS_MBOX0
+ * 29: PCI Bus wrote data to LCS_MBOX1
+ * 30: PCI Bus wrote data to LCS_MBOX2
+ * 31: PCI Bus wrote data to LCS_MBOX3
+ */
+#define PLX_PEX8311_PCI_LCS_INTCSR 0x68
+#define INTCSR_INTERNAL_PCI_WIRE BIT(8)
+#define INTCSR_LOCAL_INPUT BIT(11)
+
/**
* struct idio_24_gpio_reg - GPIO device registers structure
* @out0_7: Read: FET Outputs 0-7
@@ -92,6 +133,7 @@ struct idio_24_gpio_reg {
struct idio_24_gpio {
struct gpio_chip chip;
raw_spinlock_t lock;
+ __u8 __iomem *plx;
struct idio_24_gpio_reg __iomem *reg;
unsigned long irq_mask;
};
@@ -481,6 +523,7 @@ static int idio_24_probe(struct pci_dev
struct device *const dev = &pdev->dev;
struct idio_24_gpio *idio24gpio;
int err;
+ const size_t pci_plx_bar_index = 1;
const size_t pci_bar_index = 2;
const char *const name = pci_name(pdev);

@@ -494,12 +537,13 @@ static int idio_24_probe(struct pci_dev
return err;
}

- err = pcim_iomap_regions(pdev, BIT(pci_bar_index), name);
+ err = pcim_iomap_regions(pdev, BIT(pci_plx_bar_index) | BIT(pci_bar_index), name);
if (err) {
dev_err(dev, "Unable to map PCI I/O addresses (%d)\n", err);
return err;
}

+ idio24gpio->plx = pcim_iomap_table(pdev)[pci_plx_bar_index];
idio24gpio->reg = pcim_iomap_table(pdev)[pci_bar_index];

idio24gpio->chip.label = name;
@@ -520,6 +564,12 @@ static int idio_24_probe(struct pci_dev

/* Software board reset */
iowrite8(0, &idio24gpio->reg->soft_reset);
+ /*
+ * enable PLX PEX8311 internal PCI wire interrupt and local interrupt
+ * input
+ */
+ iowrite8((INTCSR_INTERNAL_PCI_WIRE | INTCSR_LOCAL_INPUT) >> 8,
+ idio24gpio->plx + PLX_PEX8311_PCI_LCS_INTCSR + 1);

err = devm_gpiochip_add_data(dev, &idio24gpio->chip, idio24gpio);
if (err) {


2020-11-17 22:08:13

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 5.4 000/151] 5.4.78-rc1 review

On 11/17/20 6:03 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.4.78 release.
> There are 151 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 Thu, 19 Nov 2020 12:20: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.78-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

2020-11-18 06:39:11

by Naresh Kamboju

[permalink] [raw]
Subject: Re: [PATCH 5.4 000/151] 5.4.78-rc1 review

On Tue, 17 Nov 2020 at 18:55, Greg Kroah-Hartman
<[email protected]> wrote:
>
> This is the start of the stable review cycle for the 5.4.78 release.
> There are 151 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 Thu, 19 Nov 2020 12:20: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.78-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.

Tested-by: Linux Kernel Functional Testing <[email protected]>

NOTE:
This intermittent kernel warning was noticed on arm64 NXP ls2088 while booting
which was reported on stable-rc 5.8 and stable-rc 5.4.
WARNING: CPU: 1 PID: 441 at kernel/irq/chip.c:242 __irq_startup+0x9c/0xa8
https://lore.kernel.org/stable/CA+G9fYsfEVK86ask=fL=M5juerbz+BwbFGcAZ_UxWrPHXYpA1Q@mail.gmail.com/T/#t

Summary
------------------------------------------------------------------------

kernel: 5.4.78-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: a3746663c34792114dfa71148be3dcc3f3f089ea
git describe: v5.4.77-152-ga3746663c347
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.77-152-ga3746663c347

No regressions (compared to build v5.4.77)

No fixes (compared to build v5.4.77)

Ran 49989 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-clang
- qemu-arm64-clang
- qemu-arm64-kasan
- qemu-x86_64-clang
- qemu-x86_64-kasan
- qemu_arm
- qemu_arm64
- qemu_arm64-compat
- qemu_i386
- qemu_x86_64
- qemu_x86_64-compat
- x15
- x86
- x86-kasan

Test Suites
-----------
* build
* install-android-platform-tools-r2600
* kselftest
* linux-log-parser
* ltp-containers-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-io-tests
* ltp-ipc-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* perf
* v4l2-compliance
* libhugetlbfs
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-controllers-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-math-tests
* network-basic-tests
* ltp-open-posix-tests
* ltp-tracing-tests
* kvm-unit-tests
* kselftest-vsyscall-mode-native
* kselftest-vsyscall-mode-none

--
Linaro LKFT
https://lkft.linaro.org

2020-11-18 15:52:25

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 5.4 000/151] 5.4.78-rc1 review

On Tue, Nov 17, 2020 at 02:03:50PM +0100, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.4.78 release.
> There are 151 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 Thu, 19 Nov 2020 12:20:51 +0000.
> Anything received after that time might be too late.
>

Build results:
total: 157 pass: 157 fail: 0
Qemu test results:
total: 426 pass: 426 fail: 0

Reviewed-by: Guenter Roeck <[email protected]>

Guenter