Skip to contentSkip to conversation

Linux 5.16.13

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 8, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.16.13 kernel.

All users of the 5.16 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/admin-guide/mm/pagemap.rst                             |    2 
 Documentation/arm64/silicon-errata.rst                               |    2 
 Documentation/trace/events.rst                                       |   19 
 Documentation/virt/kvm/api.rst                                       |    2 
 Makefile                                                             |    2 
 arch/arm/boot/dts/omap3-devkit8000-common.dtsi                       |   18 
 arch/arm/boot/dts/omap3-devkit8000.dts                               |   33 -
 arch/arm/boot/dts/tegra124-nyan-big.dts                              |   15 
 arch/arm/boot/dts/tegra124-nyan-blaze.dts                            |   15 
 arch/arm/boot/dts/tegra124-venice2.dts                               |   14 
 arch/arm/kernel/kgdb.c                                               |   36 +
 arch/arm/mm/mmu.c                                                    |    2 
 arch/arm64/Kconfig                                                   |   16 
 arch/arm64/boot/dts/arm/juno-base.dtsi                               |    3 
 arch/arm64/boot/dts/freescale/imx8mm.dtsi                            |    1 
 arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi                         |   17 
 arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts                   |    2 
 arch/arm64/boot/dts/rockchip/rk3568.dtsi                             |    6 
 arch/arm64/kernel/cpu_errata.c                                       |    8 
 arch/arm64/kernel/stacktrace.c                                       |    3 
 arch/arm64/kvm/hyp/include/hyp/switch.h                              |   20 
 arch/arm64/kvm/vgic/vgic-mmio.c                                      |    2 
 arch/arm64/tools/cpucaps                                             |    5 
 arch/mips/kernel/setup.c                                             |    2 
 arch/mips/ralink/mt7621.c                                            |   36 -
 arch/riscv/mm/Makefile                                               |    3 
 arch/riscv/mm/kasan_init.c                                           |    3 
 arch/s390/include/asm/extable.h                                      |    9 
 arch/s390/include/asm/ftrace.h                                       |   10 
 arch/s390/include/asm/ptrace.h                                       |    2 
 arch/s390/kernel/ftrace.c                                            |   37 +
 arch/s390/kernel/mcount.S                                            |    9 
 arch/s390/kernel/setup.c                                             |    2 
 arch/x86/kernel/kvmclock.c                                           |    3 
 arch/x86/kvm/mmu/mmu.c                                               |    2 
 arch/x86/kvm/x86.c                                                   |    1 
 block/blk-map.c                                                      |    2 
 drivers/ata/pata_hpt37x.c                                            |    4 
 drivers/auxdisplay/lcd2s.c                                           |   24 
 drivers/block/loop.c                                                 |    8 
 drivers/clocksource/timer-ti-dm-systimer.c                           |    3 
 drivers/dma/sh/shdma-base.c                                          |    4 
 drivers/firmware/arm_scmi/driver.c                                   |    2 
 drivers/firmware/efi/libstub/riscv-stub.c                            |   17 
 drivers/firmware/efi/vars.c                                          |    5 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c                               |   10 
 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c                     |    4 
 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c              |   26 -
 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.h              |    8 
 drivers/gpu/drm/bridge/ti-sn65dsi86.c                                |    5 
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c                          |    2 
 drivers/gpu/drm/i915/intel_pch.c                                     |    2 
 drivers/gpu/drm/i915/intel_pch.h                                     |    2 
 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c                               |   69 ++
 drivers/hid/amd-sfh-hid/amd_sfh_pcie.h                               |    2 
 drivers/hid/hid-debug.c                                              |    5 
 drivers/hid/hid-input.c                                              |    3 
 drivers/i2c/busses/Kconfig                                           |    6 
 drivers/i2c/busses/i2c-bcm2835.c                                     |   11 
 drivers/input/input.c                                                |    6 
 drivers/input/keyboard/Kconfig                                       |    2 
 drivers/input/mouse/elan_i2c_core.c                                  |   64 --
 drivers/iommu/amd/amd_iommu.h                                        |    1 
 drivers/iommu/amd/amd_iommu_types.h                                  |    1 
 drivers/iommu/amd/init.c                                             |   10 
 drivers/iommu/amd/io_pgtable.c                                       |   12 
 drivers/iommu/amd/iommu.c                                            |   10 
 drivers/iommu/intel/iommu.c                                          |    2 
 drivers/iommu/tegra-smmu.c                                           |    4 
 drivers/net/arcnet/com20020-pci.c                                    |    3 
 drivers/net/can/usb/etas_es58x/es58x_core.c                          |    9 
 drivers/net/can/usb/etas_es58x/es58x_core.h                          |    8 
 drivers/net/can/usb/gs_usb.c                                         |   10 
 drivers/net/dsa/microchip/ksz_common.c                               |   26 -
 drivers/net/ethernet/chelsio/cxgb3/t3_hw.c                           |    2 
 drivers/net/ethernet/ibm/ibmvnic.c                                   |  247 +++++++---
 drivers/net/ethernet/ibm/ibmvnic.h                                   |    1 
 drivers/net/ethernet/intel/e1000e/hw.h                               |    1 
 drivers/net/ethernet/intel/e1000e/ich8lan.c                          |    8 
 drivers/net/ethernet/intel/e1000e/ich8lan.h                          |    1 
 drivers/net/ethernet/intel/e1000e/netdev.c                           |   26 +
 drivers/net/ethernet/intel/iavf/iavf.h                               |    6 
 drivers/net/ethernet/intel/iavf/iavf_main.c                          |  152 ++++--
 drivers/net/ethernet/intel/iavf/iavf_virtchnl.c                      |   14 
 drivers/net/ethernet/intel/igc/igc_phy.c                             |    4 
 drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c                         |    6 
 drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c                  |   20 
 drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c                      |    6 
 drivers/net/ethernet/stmicro/stmmac/stmmac.h                         |    4 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c                    |  170 ++++++
 drivers/net/ethernet/stmicro/stmmac/stmmac_xdp.c                     |    4 
 drivers/net/ipa/Kconfig                                              |    2 
 drivers/net/usb/cdc_mbim.c                                           |    5 
 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c                     |   11 
 drivers/net/wireless/mac80211_hwsim.c                                |   13 
 drivers/net/xen-netfront.c                                           |   39 -
 drivers/ntb/hw/intel/ntb_hw_gen4.c                                   |   17 
 drivers/ntb/hw/intel/ntb_hw_gen4.h                                   |   16 
 drivers/pinctrl/sunxi/pinctrl-sunxi.c                                |    9 
 drivers/platform/x86/amd-pmc.c                                       |   34 +
 drivers/ptp/ptp_ocp.c                                                |   25 -
 drivers/regulator/core.c                                             |   13 
 drivers/soc/fsl/guts.c                                               |   14 
 drivers/soc/fsl/qe/qe_io.c                                           |    2 
 drivers/soc/imx/gpcv2.c                                              |    3 
 drivers/thermal/thermal_netlink.c                                    |    5 
 drivers/tty/serial/stm32-usart.c                                     |   12 
 drivers/usb/gadget/legacy/inode.c                                    |   10 
 fs/binfmt_elf.c                                                      |   25 -
 fs/btrfs/ctree.h                                                     |   10 
 fs/btrfs/disk-io.c                                                   |   10 
 fs/btrfs/extent-tree.c                                               |   10 
 fs/btrfs/extent_io.c                                                 |   16 
 fs/btrfs/extent_map.c                                                |    2 
 fs/btrfs/extent_map.h                                                |    8 
 fs/btrfs/inode.c                                                     |  170 ++++--
 fs/btrfs/ioctl.c                                                     |  175 ++++++-
 fs/btrfs/qgroup.c                                                    |    9 
 fs/btrfs/relocation.c                                                |   13 
 fs/btrfs/root-tree.c                                                 |   15 
 fs/btrfs/subpage.c                                                   |    2 
 fs/btrfs/transaction.c                                               |   77 ++-
 fs/btrfs/transaction.h                                               |    1 
 fs/btrfs/tree-log.c                                                  |   61 +-
 fs/cifs/cifsacl.c                                                    |    9 
 fs/cifs/cifsfs.c                                                     |    1 
 fs/exfat/file.c                                                      |   18 
 fs/exfat/inode.c                                                     |   13 
 fs/exfat/namei.c                                                     |    6 
 fs/exfat/super.c                                                     |   10 
 fs/ext4/ext4.h                                                       |   15 
 fs/ext4/extents.c                                                    |    6 
 fs/ext4/fast_commit.c                                                |  218 +++-----
 fs/ext4/fast_commit.h                                                |   27 -
 fs/ext4/inode.c                                                      |    4 
 fs/ext4/ioctl.c                                                      |    5 
 fs/ext4/namei.c                                                      |    4 
 fs/ext4/super.c                                                      |    3 
 fs/ext4/xattr.c                                                      |    6 
 fs/jbd2/commit.c                                                     |    2 
 fs/jbd2/journal.c                                                    |    2 
 fs/proc/task_mmu.c                                                   |    3 
 include/linux/jbd2.h                                                 |    2 
 include/linux/sched/task.h                                           |    4 
 include/net/bluetooth/bluetooth.h                                    |    3 
 include/net/ndisc.h                                                  |    4 
 include/net/netfilter/nf_queue.h                                     |    2 
 include/net/xfrm.h                                                   |    1 
 include/uapi/linux/input-event-codes.h                               |    4 
 include/uapi/linux/xfrm.h                                            |    6 
 kernel/fork.c                                                        |   13 
 kernel/sched/core.c                                                  |   23 
 kernel/trace/blktrace.c                                              |   26 -
 kernel/trace/trace.c                                                 |    4 
 kernel/trace/trace_events_filter.c                                   |  107 ++++
 kernel/trace/trace_events_hist.c                                     |    6 
 kernel/trace/trace_kprobe.c                                          |    2 
 kernel/user_namespace.c                                              |   14 
 mm/memfd.c                                                           |   40 +
 mm/util.c                                                            |    4 
 net/batman-adv/hard-interface.c                                      |   29 -
 net/core/skbuff.c                                                    |    2 
 net/core/skmsg.c                                                     |    2 
 net/dcb/dcbnl.c                                                      |   44 +
 net/ipv4/esp4.c                                                      |    2 
 net/ipv6/addrconf.c                                                  |    8 
 net/ipv6/esp6.c                                                      |    2 
 net/ipv6/ip6_output.c                                                |   11 
 net/ipv6/mcast.c                                                     |   32 -
 net/mac80211/ieee80211_i.h                                           |    2 
 net/mac80211/mlme.c                                                  |   16 
 net/mac80211/rx.c                                                    |   14 
 net/mptcp/protocol.c                                                 |    7 
 net/netfilter/core.c                                                 |    5 
 net/netfilter/nf_queue.c                                             |   36 +
 net/netfilter/nf_tables_api.c                                        |    4 
 net/netfilter/nfnetlink_queue.c                                      |   12 
 net/smc/af_smc.c                                                     |   10 
 net/smc/smc_core.c                                                   |    5 
 net/tipc/crypto.c                                                    |    2 
 net/wireless/nl80211.c                                               |   12 
 net/xfrm/xfrm_device.c                                               |    6 
 net/xfrm/xfrm_interface.c                                            |    2 
 net/xfrm/xfrm_state.c                                                |   14 
 sound/soc/codecs/cs4265.c                                            |    3 
 sound/soc/codecs/rt5668.c                                            |   12 
 sound/soc/codecs/rt5682.c                                            |   12 
 sound/soc/codecs/rt5682s.c                                           |   12 
 sound/soc/soc-ops.c                                                  |    4 
 sound/x86/intel_hdmi_audio.c                                         |    2 
 tools/testing/selftests/drivers/net/mlxsw/spectrum/resource_scale.sh |    2 
 tools/testing/selftests/drivers/net/mlxsw/tc_police_scale.sh         |    3 
 tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc |    2 
 tools/testing/selftests/seccomp/Makefile                             |    2 
 194 files changed, 2342 insertions(+), 868 deletions(-)

Aaron Lewis (1):
KVM: x86: Add KVM_CAP_ENABLE_CAP to x86

Adam Ford (1):
arm64: dts: imx8mm: Fix VPU Hanging

Adrian Huang (1):
iommu/vt-d: Fix double list_add when enabling VMD in scalable mode

Alex Elder (2):
net: ipa: fix a build dependency
net: ipa: add an interconnect dependency

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

Alexandre Ghiti (2):

      riscv: Fix config KASAN && SPARSEMEM && !SPARSE_VMEMMAP
      riscv: Fix config KASAN && DEBUG_VIRTUAL

Alyssa Ross (1):
firmware: arm_scmi: Remove space in MODULE_ALIAS name

Amit Cohen (2):
selftests: mlxsw: tc_police_scale: Make test more robust
selftests: mlxsw: resource_scale: Fix return value

Andy Shevchenko (3):
auxdisplay: lcd2s: Fix lcd2s_redefine_char() feature
auxdisplay: lcd2s: Fix memory leak in ->remove()
auxdisplay: lcd2s: Use proper API to free the instance of charlcd object

Anthoine Bourgeois (2):
ARM: dts: switch timer config to common devkit8000 devicetree
ARM: dts: Use 32KiHz oscillator on devkit8000

Antony Antony (1):
xfrm: fix the if_id check in changelink

Basavaraj Natikar (3):
HID: amd_sfh: Handle amd_sfh work buffer in PM ops
HID: amd_sfh: Add functionality to clear interrupts
HID: amd_sfh: Add interrupt handler to process interrupts

Benjamin Beichler (1):
mac80211_hwsim: report NOACK frames in tx_status

Brian Norris (1):
arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output

Casper Andersson (1):
net: sparx5: Fix add vlan when invalid operation

Christophe JAILLET (2):
soc: fsl: guts: Revert commit 3c0d64e867ed
soc: fsl: guts: Add a missing memory allocation failure check

Christophe Vu-Brugier (2):
exfat: reuse exfat_inode_info variable instead of calling EXFAT_I()
exfat: fix i_blocks for files truncated over 4 GiB

Chuanhong Guo (1):
MIPS: ralink: mt7621: do memory detection on KSEG1

Corinna Vinschen (1):
igc: igc_read_phy_reg_gpy: drop premature return

D. Wythe (3):
net/smc: fix connection leak
net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server

Daniel Borkmann (1):
mm: Consider __GFP_NOWARN flag for oversized kvmalloc() calls

Daniele Palmas (1):
net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990

Dany Madden (1):
ibmvnic: Update driver return codes

Dave Jiang (1):
ntb: intel: fix port config status offset for SPR

David Gow (1):
Input: samsung-keypad - properly state IOMEM dependency

Deren Wu (1):
mac80211: fix EAPoL rekey fail in 802.3 rx path

Dexuan Cui (1):
x86/kvmclock: Fix Hyper-V Isolated VM's boot issue when vCPUs > 64

Douglas Anderson (1):
drm/bridge: ti-sn65dsi86: Properly undo autosuspend

Eric Anholt (1):
i2c: bcm2835: Avoid clock stretching timeouts

Eric Dumazet (4):
ipv6: fix skb drops in igmp6_event_query() and igmp6_event_report()
netfilter: fix use-after-free in __nf_register_net_hook() bpf, sockmap: Do not ignore orig_len parameter
netfilter: nf_tables: prefer kfree_rcu(ptr, rcu) variant

Eric W. Biederman (1):
ucounts: Fix systemd LimitNPROC with private users regression

Evan Quan (1):
drm/amd/pm: correct UMD pstate clocks for Dimgrey Cavefish and Beige Goby

Fabio Estevam (1):
ASoC: cs4265: Fix the duplicated control name

Filipe Manana (5):
btrfs: get rid of warning on transaction commit when using flushoncommit
btrfs: fix ENOSPC failure when attempting direct IO write into NOCOW range
btrfs: fix lost prealloc extents beyond eof after full fsync
btrfs: add missing run of delayed items after unlink during log replay
btrfs: fallback to blocking mode when doing async dio over multiple extents

Florian Westphal (3):
netfilter: nf_queue: don't assume sk is full socket
netfilter: nf_queue: fix possible use-after-free
netfilter: nf_queue: handle socket prefetch

Frank Wunderlich (1):
arm64: dts: rockchip: drop pclk_xpcs from gmac0 on rk3568

Greg Kroah-Hartman (1):

      Linux 5.16.13

Haimin Zhang (1):
block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern

Hangyu Hua (3):
tipc: fix a bit overflow in tipc_crypto_key_rcv()
usb: gadget: don't release an existing dev->buf
usb: gadget: clear related members when goto fail

Hans de Goede (2):
Input: elan_i2c - move regulator_[en|dis]able() out of elan_[en|dis]able_power()
Input: elan_i2c - fix regulator enable count imbalance after suspend/resume

Harshad Shirwadkar (2):
ext4: drop ineligible txn start stop APIs
ext4: simplify updating of fast commit stats

Heiko Carstens (3):
s390/extable: fix exception table sorting s390/ftrace: fix arch_ftrace_get_regs implementation s390/ftrace: fix ftrace_caller/ftrace_regs_caller generation

Hugh Dickins (1):
memfd: fix F_SEAL_WRITE after shmem huge page allocated

Ilya Lipnitskiy (1):
MIPS: ralink: mt7621: use bitwise NOT instead of logical

JaeMan Park (1):

      mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work

James Morse (1):
KVM: arm64: Workaround Cortex-A510's single-step and PAC trap errata

Jann Horn (1):
efivars: Respect "block" flag in efivar_entry_set_safe()

Jedrzej Jagielski (1):
iavf: Add trace while removing device

Jia-Ju Bai (1):
net: chelsio: cxgb3: check the return value of pci_find_capability()

Jiasheng Jiang (2):
soc: fsl: qe: Check of ioremap return value
nl80211: Handle nla_memdup failures in handle_nan_filter

Jiri Bohac (2):
xfrm: fix MTU regression
Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"

Johannes Berg (1):
mac80211: treat some SAE auth steps as final

Jonathan Lemon (1):
ptp: ocp: Add ptp_ocp_adjtime_coarse for large adjustments

Josef Bacik (2):
btrfs: do not WARN_ON() if we have PageError set
btrfs: do not start relocation until in progress drops are done

José Expósito (1):
Input: clear BTN_RIGHT/MIDDLE on buttonpads

Kai Vehmanen (3):
ASoC: rt5682s: do not block workqueue if card is unbound
ASoC: rt5668: do not block workqueue if card is unbound
ASoC: rt5682: do not block workqueue if card is unbound

Kees Cook (1):
binfmt_elf: Avoid total_mapping_size for ET_EXEC

Krzysztof Kozlowski (1):
selftests/ftrace: Do not trace do_softirq because of PREEMPT_RT

Laurent Pinchart (1):
soc: imx: gpcv2: Fix clock disabling imbalance in error path

Lennert Buytenhek (1):
iommu/amd: Recover from event log overflow

Leo (Hanghong) Ma (1):
drm/amd/display: Reduce dmesg error to a debug print

Leon Romanovsky (1):
xfrm: enforce validity of offload input flags

Like Xu (1):
KVM: x86/mmu: Passing up the error state of mmu_alloc_shadow_roots()

Luiz Augusto von Dentz (1):
Bluetooth: Fix bt_skb_sendmmsg not allocating partial chunks

Maciej Fijalkowski (1):
ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc()

Marc Zyngier (1):
KVM: arm64: vgic: Read HW interrupt pending state from the HW

Marek Marczykowski-Górecki (1):
xen/netfront: destroy queues before real_num_tx_queues is zeroed

Marek Vasut (1):
ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min

Mario Limonciello (1):
platform/x86: amd-pmc: Set QOS during suspend on CZN w/ timer wakeup

Masami Hiramatsu (1):
arm64: Mark start_backtrace() notrace and NOKPROBE_SYMBOL

Mat Martineau (1):
mptcp: Correctly set DATA_FIN timeout when number of retransmits is large

Miaoqian Lin (1):
iommu/tegra-smmu: Fix missing put_device() call in tegra_smmu_find

Ming Lei (1):
block: loop:use kstatfs.f_bsize of backing file to set discard granularity

Nicolas Cavallari (1):
thermal: core: Fix TZ_GET_TRIP NULL pointer dereference

Nicolas Escande (1):
mac80211: fix forwarded mesh frames AC & queue selection

Oliver Barta (1):
regulator: core: fix false positive in regulator_late_cleanup()

Omar Sandoval (1):
btrfs: fix relocation crash due to premature return from btrfs_commit_transaction()

Ong Boon Leong (2):
net: stmmac: enhance XDP ZC driver level switching performance
net: stmmac: perserve TX and RX coalesce value during XDP setup

Peter Geis (1):
arm64: dts: rockchip: fix Quartz64-A ddr regulator voltage

Peter Zijlstra (1):
sched: Fix yet more sched_fork() races

Qiang Yu (2):
drm/amdgpu: check vm ready by amdgpu_vm->evicting flag drm/amdgpu: fix suspend/resume hang regression

Qu Wenruo (3):
btrfs: defrag: bring back the old file extent search behavior
btrfs: defrag: don't use merged extent map for their generation check
btrfs: subpage: fix a wrong check on subpage->writers

Randy Dunlap (6):
iwlwifi: mvm: check debugfs_dir ptr before use
net: stmmac: fix return value of __setup handler
net: sxgbe: fix return value of __setup handler
mips: setup: fix setnocoherentio() boolean setting
ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions
tracing: Fix return value of __setup handlers

Robin Murphy (1):
arm64: dts: juno: Remove GICv2m dma-range

Ronnie Sahlberg (3):
cifs: do not use uninitialized data in the owner/group sid
cifs: fix double free race when mount fails in cifs_get_root()
cifs: modefromsids must add an ACE for authenticated users

Russell King (Oracle) (1):
ARM: Fix kgdb breakpoint for Thumb2

Samuel Holland (1):
pinctrl: sunxi: Use unique lockdep classes for IRQs

Sasha Neftin (3):
e1000e: Correct NVM checksum verification flow
igc: igc_write_phy_reg_gpy: drop premature return
e1000e: Fix possible HW unit hang after an s0ix exit

Sergey Shtylyov (1):
ata: pata_hpt37x: fix PCI clock detection

Sherry Yang (1):
selftests/seccomp: Fix seccomp failure by adding missing headers

Sidong Yang (1):
btrfs: qgroup: fix deadlock between rescan worker and remove qgroup

Slawomir Laba (8):
iavf: Fix missing check for running netdev
iavf: Fix deadlock in iavf_reset_task
iavf: Rework mutexes for better synchronisation
iavf: Add waiting so the port is initialized in remove
iavf: Fix init state closure on remove
iavf: Fix locking for VIRTCHNL_OP_GET_OFFLOAD_VLAN_V2_CAPS
iavf: Fix race in init state
iavf: Fix __IAVF_RESETTING state usage

Steven Rostedt (2):
tracing: Add test for user space strings when filtering on string pointers
tracing: Add ustring operation to filtering string pointers

Steven Rostedt (Google) (1):
tracing/histogram: Fix sorting on old "cpu" value

Sukadev Bhattiprolu (8):
ibmvnic: register netdev after init of adapter
ibmvnic: free reset-work-item when flushing
ibmvnic: initialize rc before completing wait
ibmvnic: define flush_reset_queue helper
ibmvnic: complete init_done on transport events
ibmvnic: init init_done_rc earlier
ibmvnic: clear fop when retrying probe
ibmvnic: Allow queueing resets during probe

Sunil V L (1):
riscv/efi_stub: Fix get_boot_hartid_from_fdt() return value

Suravee Suthikulpanit (1):
iommu/amd: Fix I/O page table memory leak

Sven Eckelmann (3):
batman-adv: Request iflink once in batadv-on-batadv check
batman-adv: Request iflink once in batadv_get_real_netdevice
batman-adv: Don't expect inter-netns unique iflink indices

Svenning Sørensen (1):
net: dsa: microchip: fix bridging with more than two member ports

Tadeusz Struk (1):
sched/fair: Fix fault in reweight_entity

Thierry Reding (1):
ARM: tegra: Move panels to AUX bus

Valentin Caron (1):
serial: stm32: prevent TDR register overwrite when sending x_char

Ville Syrjälä (1):

      drm/i915: s/JSP2/ICP2/ PCH

Vinay Belgaumkar (1):
drm/i915/guc/slpc: Correct the param count for unset param

Vincent Mailhol (2):
can: gs_usb: change active_channels's type from atomic_t to u8
can: etas_es58x: change opened_channel_cnt's type from atomic_t to u8

Vincent Whitchurch (1):
net: stmmac: only enable DMA interrupts when ready

Vladimir Oltean (2):
net: dcb: flush lingering app table entries for unregistered devices
net: dcb: disable softirqs in dcbnl_flush_dev()

William Mahon (2):
HID: add mapping for KEY_DICTATE
HID: add mapping for KEY_ALL_APPLICATIONS

Wolfram Sang (3):
i2c: cadence: allow COMPILE_TEST
i2c: imx: allow COMPILE_TEST
i2c: qup: allow COMPILE_TEST

Xin Yin (2):
ext4: fast commit may not fallback for ineligible commit
ext4: fast commit may miss file actions

Yongzhi Liu (1):
dmaengine: shdma: Fix runtime PM imbalance on error

Yu Kuai (1):
blktrace: fix use after free for struct blk_trace

Yun Zhou (1):
proc: fix documentation and description of pagemap

Zhen Ni (1):
ALSA: intel_hdmi: Fix reference to PCM buffer address

Zheyu Ma (1):

      net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()

[email protected] (1):
net: ipv6: ensure we call ipv6_mc_down() at most once

lena wang (1):
net: fix up skbs delta_truesize in UDP GRO frag_list

author maintainer
#1 lore raw
Documentation/admin-guide/mm/pagemap.rst +1 -1
index bfc28704856c..6e2e416af783 100644
@@ -23,7 +23,7 @@ There are four components to pagemap:
     * Bit  56    page exclusively mapped (since 4.2)
     * Bit  57    pte is uffd-wp write-protected (since 5.13) (see
       :ref:`Documentation/admin-guide/mm/userfaultfd.rst <userfaultfd>`)
-    * Bits 57-60 zero
+    * Bits 58-60 zero
     * Bit  61    page is file-page or shared-anon (since 3.5)
     * Bit  62    page swapped
     * Bit  63    page present
Documentation/arm64/silicon-errata.rst +2 -0
index 0ec7b7f1524b..ea281dd75517 100644
@@ -100,6 +100,8 @@ stable kernels.
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A510     | #2051678        | ARM64_ERRATUM_2051678       |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A510     | #2077057        | ARM64_ERRATUM_2077057       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A710     | #2119858        | ARM64_ERRATUM_2119858       |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A710     | #2054223        | ARM64_ERRATUM_2054223       |
Documentation/trace/events.rst +19 -0
index 8ddb9b09451c..c47f381d0c00 100644
@@ -198,6 +198,15 @@ The glob (~) accepts a wild card character (\*,?) and character classes
   prev_comm ~ "*sh*"
   prev_comm ~ "ba*sh"
 
+If the field is a pointer that points into user space (for example
+"filename" from sys_enter_openat), then you have to append ".ustring" to the
+field name::
+
+  filename.ustring ~ "password"
+
+As the kernel will have to know how to retrieve the memory that the pointer
+is at from user space.
+
 5.2 Setting filters
 -------------------
 
@@ -230,6 +239,16 @@ Currently the caret ('^') for an error always appears at the beginning of
 the filter string; the error message should still be useful though
 even without more accurate position info.
 
+5.2.1 Filter limitations
+------------------------
+
+If a filter is placed on a string pointer ``(char *)`` that does not point
+to a string on the ring buffer, but instead points to kernel or user space
+memory, then, for safety reasons, at most 1024 bytes of the content is
+copied onto a temporary buffer to do the compare. If the copy of the memory
+faults (the pointer points to memory that should not be accessed), then the
+string compare will be treated as not matching.
+
 5.3 Clearing filters
 --------------------
 
Documentation/virt/kvm/api.rst +1 -1
index aeeb071c7688..9df9eadaeb5c 100644
@@ -1391,7 +1391,7 @@ documentation when it pops into existence).
 -------------------
 
 :Capability: KVM_CAP_ENABLE_CAP
-:Architectures: mips, ppc, s390
+:Architectures: mips, ppc, s390, x86
 :Type: vcpu ioctl
 :Parameters: struct kvm_enable_cap (in)
 :Returns: 0 on success; -1 on error
Makefile +1 -1
index 09a9bb824afa..6702e44821eb 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 16
-SUBLEVEL = 12
+SUBLEVEL = 13
 EXTRAVERSION =
 NAME = Gobble Gobble
 
arch/arm/boot/dts/omap3-devkit8000-common.dtsi +18 -0
index 5e55198e4576..54cd37336be7 100644
@@ -158,6 +158,24 @@ &mmc3 {
 	status = "disabled";
 };
 
+/* Unusable as clockevent because if unreliable oscillator, allow to idle */
+&timer1_target {
+	/delete-property/ti,no-reset-on-init;
+	/delete-property/ti,no-idle;
+	timer@0 {
+		/delete-property/ti,timer-alwon;
+	};
+};
+
+/* Preferred timer for clockevent */
+&timer12_target {
+	ti,no-reset-on-init;
+	ti,no-idle;
+	timer@0 {
+		/* Always clocked by secure_32k_fck */
+	};
+};
+
 &twl_gpio {
 	ti,use-leds;
 	/*
arch/arm/boot/dts/omap3-devkit8000.dts +0 -33
index c2995a280729..162d0726b008 100644
@@ -14,36 +14,3 @@ aliases {
 		display2 = &tv0;
 	};
 };
-
-/* Unusable as clocksource because of unreliable oscillator */
-&counter32k {
-	status = "disabled";
-};
-
-/* Unusable as clockevent because if unreliable oscillator, allow to idle */
-&timer1_target {
-	/delete-property/ti,no-reset-on-init;
-	/delete-property/ti,no-idle;
-	timer@0 {
-		/delete-property/ti,timer-alwon;
-	};
-};
-
-/* Preferred always-on timer for clocksource */
-&timer12_target {
-	ti,no-reset-on-init;
-	ti,no-idle;
-	timer@0 {
-		/* Always clocked by secure_32k_fck */
-	};
-};
-
-/* Preferred timer for clockevent */
-&timer2_target {
-	ti,no-reset-on-init;
-	ti,no-idle;
-	timer@0 {
-		assigned-clocks = <&gpt2_fck>;
-		assigned-clock-parents = <&sys_ck>;
-	};
-};
arch/arm/boot/dts/tegra124-nyan-big.dts +9 -6
index 1d2aac2cb6d0..fdc1d64dfff9 100644
@@ -13,12 +13,15 @@ / {
 		     "google,nyan-big-rev1", "google,nyan-big-rev0",
 		     "google,nyan-big", "google,nyan", "nvidia,tegra124";
 
-	panel: panel {
-		compatible = "auo,b133xtn01";
-
-		power-supply = <&vdd_3v3_panel>;
-		backlight = <&backlight>;
-		ddc-i2c-bus = <&dpaux>;
+	host1x@50000000 {
+		dpaux@545c0000 {
+			aux-bus {
+				panel: panel {
+					compatible = "auo,b133xtn01";
+					backlight = <&backlight>;
+				};
+			};
+		};
 	};
 
 	mmc@700b0400 { /* SD Card on this bus */
arch/arm/boot/dts/tegra124-nyan-blaze.dts +9 -6
index 677babde6460..abdf4456826f 100644
@@ -15,12 +15,15 @@ / {
 		     "google,nyan-blaze-rev0", "google,nyan-blaze",
 		     "google,nyan", "nvidia,tegra124";
 
-	panel: panel {
-		compatible = "samsung,ltn140at29-301";
-
-		power-supply = <&vdd_3v3_panel>;
-		backlight = <&backlight>;
-		ddc-i2c-bus = <&dpaux>;
+	host1x@50000000 {
+		dpaux@545c0000 {
+			aux-bus {
+				panel: panel {
+					compatible = "samsung,ltn140at29-301";
+					backlight = <&backlight>;
+				};
+			};
+		};
 	};
 
 	sound {
arch/arm/boot/dts/tegra124-venice2.dts +7 -7
index e6b54ac1ebd1..84e2d24065e9 100644
@@ -48,6 +48,13 @@ sor@54540000 {
 		dpaux@545c0000 {
 			vdd-supply = <&vdd_3v3_panel>;
 			status = "okay";
+
+			aux-bus {
+				panel: panel {
+					compatible = "lg,lp129qe";
+					backlight = <&backlight>;
+				};
+			};
 		};
 	};
 
@@ -1079,13 +1086,6 @@ power {
 		};
 	};
 
-	panel: panel {
-		compatible = "lg,lp129qe";
-		power-supply = <&vdd_3v3_panel>;
-		backlight = <&backlight>;
-		ddc-i2c-bus = <&dpaux>;
-	};
-
 	vdd_mux: regulator@0 {
 		compatible = "regulator-fixed";
 		regulator-name = "+VDD_MUX";
arch/arm/kernel/kgdb.c +28 -8
index 7bd30c0a4280..22f937e6f3ff 100644
@@ -154,22 +154,38 @@ static int kgdb_compiled_brk_fn(struct pt_regs *regs, unsigned int instr)
 	return 0;
 }
 
-static struct undef_hook kgdb_brkpt_hook = {
+static struct undef_hook kgdb_brkpt_arm_hook = {
 	.instr_mask		= 0xffffffff,
 	.instr_val		= KGDB_BREAKINST,
-	.cpsr_mask		= MODE_MASK,
+	.cpsr_mask		= PSR_T_BIT | MODE_MASK,
 	.cpsr_val		= SVC_MODE,
 	.fn			= kgdb_brk_fn
 };
 
-static struct undef_hook kgdb_compiled_brkpt_hook = {
+static struct undef_hook kgdb_brkpt_thumb_hook = {
+	.instr_mask		= 0xffff,
+	.instr_val		= KGDB_BREAKINST & 0xffff,
+	.cpsr_mask		= PSR_T_BIT | MODE_MASK,
+	.cpsr_val		= PSR_T_BIT | SVC_MODE,
+	.fn			= kgdb_brk_fn
+};
+
+static struct undef_hook kgdb_compiled_brkpt_arm_hook = {
 	.instr_mask		= 0xffffffff,
 	.instr_val		= KGDB_COMPILED_BREAK,
-	.cpsr_mask		= MODE_MASK,
+	.cpsr_mask		= PSR_T_BIT | MODE_MASK,
 	.cpsr_val		= SVC_MODE,
 	.fn			= kgdb_compiled_brk_fn
 };
 
+static struct undef_hook kgdb_compiled_brkpt_thumb_hook = {
+	.instr_mask		= 0xffff,
+	.instr_val		= KGDB_COMPILED_BREAK & 0xffff,
+	.cpsr_mask		= PSR_T_BIT | MODE_MASK,
+	.cpsr_val		= PSR_T_BIT | SVC_MODE,
+	.fn			= kgdb_compiled_brk_fn
+};
+
 static int __kgdb_notify(struct die_args *args, unsigned long cmd)
 {
 	struct pt_regs *regs = args->regs;
@@ -210,8 +226,10 @@ int kgdb_arch_init(void)
 	if (ret != 0)
 		return ret;
 
-	register_undef_hook(&kgdb_brkpt_hook);
-	register_undef_hook(&kgdb_compiled_brkpt_hook);
+	register_undef_hook(&kgdb_brkpt_arm_hook);
+	register_undef_hook(&kgdb_brkpt_thumb_hook);
+	register_undef_hook(&kgdb_compiled_brkpt_arm_hook);
+	register_undef_hook(&kgdb_compiled_brkpt_thumb_hook);
 
 	return 0;
 }
@@ -224,8 +242,10 @@ int kgdb_arch_init(void)
  */
 void kgdb_arch_exit(void)
 {
-	unregister_undef_hook(&kgdb_brkpt_hook);
-	unregister_undef_hook(&kgdb_compiled_brkpt_hook);
+	unregister_undef_hook(&kgdb_brkpt_arm_hook);
+	unregister_undef_hook(&kgdb_brkpt_thumb_hook);
+	unregister_undef_hook(&kgdb_compiled_brkpt_arm_hook);
+	unregister_undef_hook(&kgdb_compiled_brkpt_thumb_hook);
 	unregister_die_notifier(&kgdb_notifier);
 }
 
arch/arm/mm/mmu.c +2 -0
index 274e4f73fd33..5e2be37a198e 100644
@@ -212,12 +212,14 @@ early_param("ecc", early_ecc);
 static int __init early_cachepolicy(char *p)
 {
 	pr_warn("cachepolicy kernel parameter not supported without cp15\n");
+	return 0;
 }
 early_param("cachepolicy", early_cachepolicy);
 
 static int __init noalign_setup(char *__unused)
 {
 	pr_warn("noalign kernel parameter not supported without cp15\n");
+	return 1;
 }
 __setup("noalign", noalign_setup);
 
arch/arm64/Kconfig +16 -0
index ae0e93871ee5..651bf217465e 100644
@@ -681,6 +681,22 @@ config ARM64_ERRATUM_2051678
 
 	  If unsure, say Y.
 
+config ARM64_ERRATUM_2077057
+	bool "Cortex-A510: 2077057: workaround software-step corrupting SPSR_EL2"
+	help
+	  This option adds the workaround for ARM Cortex-A510 erratum 2077057.
+	  Affected Cortex-A510 may corrupt SPSR_EL2 when the a step exception is
+	  expected, but a Pointer Authentication trap is taken instead. The
+	  erratum causes SPSR_EL1 to be copied to SPSR_EL2, which could allow
+	  EL1 to cause a return to EL2 with a guest controlled ELR_EL2.
+
+	  This can only happen when EL2 is stepping EL1.
+
+	  When these conditions occur, the SPSR_EL2 value is unchanged from the
+	  previous guest entry, and can be restored from the in-memory copy.
+
+	  If unsure, say Y.
+
 config ARM64_ERRATUM_2119858
 	bool "Cortex-A710/X2: 2119858: workaround TRBE overwriting trace data in FILL mode"
 	default y
arch/arm64/boot/dts/arm/juno-base.dtsi +1 -2
index 6288e104a089..a2635b14da30 100644
@@ -543,8 +543,7 @@ pcie_ctlr: pcie@40000000 {
 			 <0x02000000 0x00 0x50000000 0x00 0x50000000 0x0 0x08000000>,
 			 <0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
 		/* Standard AXI Translation entries as programmed by EDK2 */
-		dma-ranges = <0x02000000 0x0 0x2c1c0000 0x0 0x2c1c0000 0x0 0x00040000>,
-			     <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
+		dma-ranges = <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
 			     <0x43000000 0x8 0x00000000 0x8 0x00000000 0x2 0x00000000>;
 		#interrupt-cells = <1>;
 		interrupt-map-mask = <0 0 0 7>;
arch/arm64/boot/dts/freescale/imx8mm.dtsi +0 -1
index c2f3f118f82e..f13d31ebfcbd 100644
@@ -681,7 +681,6 @@ pgc_vpumix: power-domain@6 {
 						clocks = <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
 						assigned-clocks = <&clk IMX8MM_CLK_VPU_BUS>;
 						assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>;
-						resets = <&src IMX8MQ_RESET_VPU_RESET>;
 					};
 
 					pgc_vpu_g1: power-domain@7 {
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi +12 -5
index 45a5ae5d2027..162f08bca0d4 100644
@@ -286,7 +286,7 @@ max98357a: max98357a {
 
 	sound: sound {
 		compatible = "rockchip,rk3399-gru-sound";
-		rockchip,cpu = <&i2s0 &i2s2>;
+		rockchip,cpu = <&i2s0 &spdif>;
 	};
 };
 
@@ -437,10 +437,6 @@ &i2s0 {
 	status = "okay";
 };
 
-&i2s2 {
-	status = "okay";
-};
-
 &io_domains {
 	status = "okay";
 
@@ -537,6 +533,17 @@ &sdmmc {
 	vqmmc-supply = <&ppvar_sd_card_io>;
 };
 
+&spdif {
+	status = "okay";
+
+	/*
+	 * SPDIF is routed internally to DP; we either don't use these pins, or
+	 * mux them to something else.
+	 */
+	/delete-property/ pinctrl-0;
+	/delete-property/ pinctrl-names;
+};
+
 &spi1 {
 	status = "okay";
 
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts +0 -2
index 4d4b2a301b1a..f6290538c8a4 100644
@@ -285,8 +285,6 @@ regulator-state-mem {
 			vcc_ddr: DCDC_REG3 {
 				regulator-always-on;
 				regulator-boot-on;
-				regulator-min-microvolt = <1100000>;
-				regulator-max-microvolt = <1100000>;
 				regulator-initial-mode = <0x2>;
 				regulator-name = "vcc_ddr";
 				regulator-state-mem {
arch/arm64/boot/dts/rockchip/rk3568.dtsi +2 -4
index 2fd313a295f8..d91df1cde736 100644
@@ -32,13 +32,11 @@ gmac0: ethernet@fe2a0000 {
 		clocks = <&cru SCLK_GMAC0>, <&cru SCLK_GMAC0_RX_TX>,
 			 <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_MAC0_REFOUT>,
 			 <&cru ACLK_GMAC0>, <&cru PCLK_GMAC0>,
-			 <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_GMAC0_PTP_REF>,
-			 <&cru PCLK_XPCS>;
+			 <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_GMAC0_PTP_REF>;
 		clock-names = "stmmaceth", "mac_clk_rx",
 			      "mac_clk_tx", "clk_mac_refout",
 			      "aclk_mac", "pclk_mac",
-			      "clk_mac_speed", "ptp_ref",
-			      "pclk_xpcs";
+			      "clk_mac_speed", "ptp_ref";
 		resets = <&cru SRST_A_GMAC0>;
 		reset-names = "stmmaceth";
 		rockchip,grf = <&grf>;
arch/arm64/kernel/cpu_errata.c +8 -0
index 066098198c24..b217941713a8 100644
@@ -600,6 +600,14 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
 		CAP_MIDR_RANGE_LIST(trbe_write_out_of_range_cpus),
 	},
 #endif
+#ifdef CONFIG_ARM64_ERRATUM_2077057
+	{
+		.desc = "ARM erratum 2077057",
+		.capability = ARM64_WORKAROUND_2077057,
+		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
+		ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2),
+	},
+#endif
 #ifdef CONFIG_ARM64_ERRATUM_2064142
 	{
 		.desc = "ARM erratum 2064142",
arch/arm64/kernel/stacktrace.c +2 -1
index 94f83cd44e50..0ee6bd390bd0 100644
@@ -33,7 +33,7 @@
  */
 
 
-void start_backtrace(struct stackframe *frame, unsigned long fp,
+notrace void start_backtrace(struct stackframe *frame, unsigned long fp,
 		     unsigned long pc)
 {
 	frame->fp = fp;
@@ -55,6 +55,7 @@ void start_backtrace(struct stackframe *frame, unsigned long fp,
 	frame->prev_fp = 0;
 	frame->prev_type = STACK_TYPE_UNKNOWN;
 }
+NOKPROBE_SYMBOL(start_backtrace);
 
 /*
  * Unwind from one frame record (A) to the next frame record (B).
arch/arm64/kvm/hyp/include/hyp/switch.h +19 -1
index adb67f8c9d7d..3ae9c0b94487 100644
@@ -424,6 +424,24 @@ static inline bool kvm_hyp_handle_exit(struct kvm_vcpu *vcpu, u64 *exit_code)
 	return false;
 }
 
+static inline void synchronize_vcpu_pstate(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	/*
+	 * Check for the conditions of Cortex-A510's #2077057. When these occur
+	 * SPSR_EL2 can't be trusted, but isn't needed either as it is
+	 * unchanged from the value in vcpu_gp_regs(vcpu)->pstate.
+	 * Are we single-stepping the guest, and took a PAC exception from the
+	 * active-not-pending state?
+	 */
+	if (cpus_have_final_cap(ARM64_WORKAROUND_2077057)		&&
+	    vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP			&&
+	    *vcpu_cpsr(vcpu) & DBG_SPSR_SS				&&
+	    ESR_ELx_EC(read_sysreg_el2(SYS_ESR)) == ESR_ELx_EC_PAC)
+		write_sysreg_el2(*vcpu_cpsr(vcpu), SYS_SPSR);
+
+	vcpu->arch.ctxt.regs.pstate = read_sysreg_el2(SYS_SPSR);
+}
+
 /*
  * Return true when we were able to fixup the guest exit and should return to
  * the guest, false when we should restore the host state and return to the
@@ -435,7 +453,7 @@ static inline bool fixup_guest_exit(struct kvm_vcpu *vcpu, u64 *exit_code)
 	 * Save PSTATE early so that we can evaluate the vcpu mode
 	 * early on.
 	 */
-	vcpu->arch.ctxt.regs.pstate = read_sysreg_el2(SYS_SPSR);
+	synchronize_vcpu_pstate(vcpu, exit_code);
 
 	/*
 	 * Check whether we want to repaint the state one way or
arch/arm64/kvm/vgic/vgic-mmio.c +2 -0
index 48c6067fc5ec..f97299268274 100644
@@ -248,6 +248,8 @@ unsigned long vgic_mmio_read_pending(struct kvm_vcpu *vcpu,
 						    IRQCHIP_STATE_PENDING,
 						    &val);
 			WARN_RATELIMIT(err, "IRQ %d", irq->host_irq);
+		} else if (vgic_irq_is_mapped_level(irq)) {
+			val = vgic_get_phys_line_level(irq);
 		} else {
 			val = irq_is_pending(irq);
 		}
arch/arm64/tools/cpucaps +3 -2
index e7719e8f18de..9c65b1e25a96 100644
@@ -55,9 +55,10 @@ WORKAROUND_1418040
 WORKAROUND_1463225
 WORKAROUND_1508412
 WORKAROUND_1542419
-WORKAROUND_2064142
-WORKAROUND_2038923
 WORKAROUND_1902691
+WORKAROUND_2038923
+WORKAROUND_2064142
+WORKAROUND_2077057
 WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 WORKAROUND_TSB_FLUSH_FAILURE
 WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
arch/mips/kernel/setup.c +1 -1
index f979adfd4fc2..ef73ba1e0ec1 100644
@@ -803,7 +803,7 @@ early_param("coherentio", setcoherentio);
 
 static int __init setnocoherentio(char *str)
 {
-	dma_default_coherent = true;
+	dma_default_coherent = false;
 	pr_info("Software DMA cache coherency (command line)\n");
 	return 0;
 }
arch/mips/ralink/mt7621.c +23 -13
index bd71f5b14238..4c8378661219 100644
@@ -20,31 +20,41 @@
 
 #include "common.h"
 
-static void *detect_magic __initdata = detect_memory_region;
+#define MT7621_MEM_TEST_PATTERN         0xaa5555aa
+
+static u32 detect_magic __initdata;
 
 phys_addr_t mips_cpc_default_phys_base(void)
 {
 	panic("Cannot detect cpc address");
 }
 
+static bool __init mt7621_addr_wraparound_test(phys_addr_t size)
+{
+	void *dm = (void *)KSEG1ADDR(&detect_magic);
+
+	if (CPHYSADDR(dm + size) >= MT7621_LOWMEM_MAX_SIZE)
+		return true;
+	__raw_writel(MT7621_MEM_TEST_PATTERN, dm);
+	if (__raw_readl(dm) != __raw_readl(dm + size))
+		return false;
+	__raw_writel(~MT7621_MEM_TEST_PATTERN, dm);
+	return __raw_readl(dm) == __raw_readl(dm + size);
+}
+
 static void __init mt7621_memory_detect(void)
 {
-	void *dm = &detect_magic;
 	phys_addr_t size;
 
-	for (size = 32 * SZ_1M; size < 256 * SZ_1M; size <<= 1) {
-		if (!__builtin_memcmp(dm, dm + size, sizeof(detect_magic)))
-			break;
+	for (size = 32 * SZ_1M; size <= 256 * SZ_1M; size <<= 1) {
+		if (mt7621_addr_wraparound_test(size)) {
+			memblock_add(MT7621_LOWMEM_BASE, size);
+			return;
+		}
 	}
 
-	if ((size == 256 * SZ_1M) &&
-	    (CPHYSADDR(dm + size) < MT7621_LOWMEM_MAX_SIZE) &&
-	    __builtin_memcmp(dm, dm + size, sizeof(detect_magic))) {
-		memblock_add(MT7621_LOWMEM_BASE, MT7621_LOWMEM_MAX_SIZE);
-		memblock_add(MT7621_HIGHMEM_BASE, MT7621_HIGHMEM_SIZE);
-	} else {
-		memblock_add(MT7621_LOWMEM_BASE, size);
-	}
+	memblock_add(MT7621_LOWMEM_BASE, MT7621_LOWMEM_MAX_SIZE);
+	memblock_add(MT7621_HIGHMEM_BASE, MT7621_HIGHMEM_SIZE);
 }
 
 void __init ralink_of_remap(void)
arch/riscv/mm/Makefile +3 -0
index 7ebaef10ea1b..ac7a25298a04 100644
@@ -24,6 +24,9 @@ obj-$(CONFIG_KASAN)   += kasan_init.o
 ifdef CONFIG_KASAN
 KASAN_SANITIZE_kasan_init.o := n
 KASAN_SANITIZE_init.o := n
+ifdef CONFIG_DEBUG_VIRTUAL
+KASAN_SANITIZE_physaddr.o := n
+endif
 endif
 
 obj-$(CONFIG_DEBUG_VIRTUAL) += physaddr.o
arch/riscv/mm/kasan_init.c +1 -2
index 54294f83513d..e26e367a3d9e 100644
@@ -22,8 +22,7 @@ asmlinkage void __init kasan_early_init(void)
 
 	for (i = 0; i < PTRS_PER_PTE; ++i)
 		set_pte(kasan_early_shadow_pte + i,
-			mk_pte(virt_to_page(kasan_early_shadow_page),
-			       PAGE_KERNEL));
+			pfn_pte(virt_to_pfn(kasan_early_shadow_page), PAGE_KERNEL));
 
 	for (i = 0; i < PTRS_PER_PMD; ++i)
 		set_pmd(kasan_early_shadow_pmd + i,
arch/s390/include/asm/extable.h +7 -2
index 16dc57dd90b3..8511f0e59290 100644
@@ -69,8 +69,13 @@ static inline void swap_ex_entry_fixup(struct exception_table_entry *a,
 {
 	a->fixup = b->fixup + delta;
 	b->fixup = tmp.fixup - delta;
-	a->handler = b->handler + delta;
-	b->handler = tmp.handler - delta;
+	a->handler = b->handler;
+	if (a->handler)
+		a->handler += delta;
+	b->handler = tmp.handler;
+	if (b->handler)
+		b->handler -= delta;
 }
+#define swap_ex_entry_fixup swap_ex_entry_fixup
 
 #endif
arch/s390/include/asm/ftrace.h +6 -4
index 267f70f4393f..6f80ec9c04be 100644
@@ -47,15 +47,17 @@ struct ftrace_regs {
 
 static __always_inline struct pt_regs *arch_ftrace_get_regs(struct ftrace_regs *fregs)
 {
-	return &fregs->regs;
+	struct pt_regs *regs = &fregs->regs;
+
+	if (test_pt_regs_flag(regs, PIF_FTRACE_FULL_REGS))
+		return regs;
+	return NULL;
 }
 
 static __always_inline void ftrace_instruction_pointer_set(struct ftrace_regs *fregs,
 							   unsigned long ip)
 {
-	struct pt_regs *regs = arch_ftrace_get_regs(fregs);
-
-	regs->psw.addr = ip;
+	fregs->regs.psw.addr = ip;
 }
 
 /*
arch/s390/include/asm/ptrace.h +2 -0
index 4ffa8e7f0ed3..ddb70fb13fbc 100644
@@ -15,11 +15,13 @@
 #define PIF_EXECVE_PGSTE_RESTART	1	/* restart execve for PGSTE binaries */
 #define PIF_SYSCALL_RET_SET		2	/* return value was set via ptrace */
 #define PIF_GUEST_FAULT			3	/* indicates program check in sie64a */
+#define PIF_FTRACE_FULL_REGS		4	/* all register contents valid (ftrace) */
 
 #define _PIF_SYSCALL			BIT(PIF_SYSCALL)
 #define _PIF_EXECVE_PGSTE_RESTART	BIT(PIF_EXECVE_PGSTE_RESTART)
 #define _PIF_SYSCALL_RET_SET		BIT(PIF_SYSCALL_RET_SET)
 #define _PIF_GUEST_FAULT		BIT(PIF_GUEST_FAULT)
+#define _PIF_FTRACE_FULL_REGS		BIT(PIF_FTRACE_FULL_REGS)
 
 #ifndef __ASSEMBLY__
 
arch/s390/kernel/ftrace.c +36 -1
index 21d62d8b6b9a..89c0870d5679 100644
@@ -159,9 +159,38 @@ int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
 	return 0;
 }
 
+static struct ftrace_hotpatch_trampoline *ftrace_get_trampoline(struct dyn_ftrace *rec)
+{
+	struct ftrace_hotpatch_trampoline *trampoline;
+	struct ftrace_insn insn;
+	s64 disp;
+	u16 opc;
+
+	if (copy_from_kernel_nofault(&insn, (void *)rec->ip, sizeof(insn)))
+		return ERR_PTR(-EFAULT);
+	disp = (s64)insn.disp * 2;
+	trampoline = (void *)(rec->ip + disp);
+	if (get_kernel_nofault(opc, &trampoline->brasl_opc))
+		return ERR_PTR(-EFAULT);
+	if (opc != 0xc015)
+		return ERR_PTR(-EINVAL);
+	return trampoline;
+}
+
 int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
 		       unsigned long addr)
 {
+	struct ftrace_hotpatch_trampoline *trampoline;
+	u64 old;
+
+	trampoline = ftrace_get_trampoline(rec);
+	if (IS_ERR(trampoline))
+		return PTR_ERR(trampoline);
+	if (get_kernel_nofault(old, &trampoline->interceptor))
+		return -EFAULT;
+	if (old != old_addr)
+		return -EINVAL;
+	s390_kernel_write(&trampoline->interceptor, &addr, sizeof(addr));
 	return 0;
 }
 
@@ -188,6 +217,12 @@ static void brcl_enable(void *brcl)
 
 int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
 {
+	struct ftrace_hotpatch_trampoline *trampoline;
+
+	trampoline = ftrace_get_trampoline(rec);
+	if (IS_ERR(trampoline))
+		return PTR_ERR(trampoline);
+	s390_kernel_write(&trampoline->interceptor, &addr, sizeof(addr));
 	brcl_enable((void *)rec->ip);
 	return 0;
 }
@@ -291,7 +326,7 @@ void kprobe_ftrace_handler(unsigned long ip, unsigned long parent_ip,
 
 	regs = ftrace_get_regs(fregs);
 	p = get_kprobe((kprobe_opcode_t *)ip);
-	if (unlikely(!p) || kprobe_disabled(p))
+	if (!regs || unlikely(!p) || kprobe_disabled(p))
 		goto out;
 
 	if (kprobe_running()) {
arch/s390/kernel/mcount.S +9 -0
index 39bcc0e39a10..a24177dcd12a 100644
@@ -27,6 +27,7 @@ ENDPROC(ftrace_stub)
 #define STACK_PTREGS_GPRS	(STACK_PTREGS + __PT_GPRS)
 #define STACK_PTREGS_PSW	(STACK_PTREGS + __PT_PSW)
 #define STACK_PTREGS_ORIG_GPR2	(STACK_PTREGS + __PT_ORIG_GPR2)
+#define STACK_PTREGS_FLAGS	(STACK_PTREGS + __PT_FLAGS)
 #ifdef __PACK_STACK
 /* allocate just enough for r14, r15 and backchain */
 #define TRACED_FUNC_FRAME_SIZE	24
@@ -57,6 +58,14 @@ ENDPROC(ftrace_stub)
 	.if \allregs == 1
 	stg	%r14,(STACK_PTREGS_PSW)(%r15)
 	stosm	(STACK_PTREGS_PSW)(%r15),0
+#ifdef CONFIG_HAVE_MARCH_Z10_FEATURES
+	mvghi	STACK_PTREGS_FLAGS(%r15),_PIF_FTRACE_FULL_REGS
+#else
+	lghi	%r14,_PIF_FTRACE_FULL_REGS
+	stg	%r14,STACK_PTREGS_FLAGS(%r15)
+#endif
+	.else
+	xc	STACK_PTREGS_FLAGS(8,%r15),STACK_PTREGS_FLAGS(%r15)
 	.endif
 
 	lg	%r14,(__SF_GPRS+8*8)(%r1)	# restore original return address
arch/s390/kernel/setup.c +2 -0
index 225ab2d0a4c6..65a31cb0611f 100644
@@ -800,6 +800,8 @@ static void __init check_initrd(void)
 static void __init reserve_kernel(void)
 {
 	memblock_reserve(0, STARTUP_NORMAL_OFFSET);
+	memblock_reserve(OLDMEM_BASE, sizeof(unsigned long));
+	memblock_reserve(OLDMEM_SIZE, sizeof(unsigned long));
 	memblock_reserve(__amode31_base, __eamode31 - __samode31);
 	memblock_reserve(__pa(sclp_early_sccb), EXT_SCCB_READ_SCP);
 	memblock_reserve(__pa(_stext), _end - _stext);
arch/x86/kernel/kvmclock.c +3 -0
index 462dd8e9b03d..f6ccf92203c5 100644
@@ -239,6 +239,9 @@ static void __init kvmclock_init_mem(void)
 
 static int __init kvm_setup_vsyscall_timeinfo(void)
 {
+	if (!kvm_para_available())
+		return 0;
+
 	kvmclock_init_mem();
 
 #ifdef CONFIG_X86_64
arch/x86/kvm/mmu/mmu.c +1 -1
index 84e23b9864f4..d70eee9e6716 100644
@@ -3573,7 +3573,7 @@ static int mmu_alloc_shadow_roots(struct kvm_vcpu *vcpu)
 out_unlock:
 	write_unlock(&vcpu->kvm->mmu_lock);
 
-	return 0;
+	return r;
 }
 
 static int mmu_alloc_special_roots(struct kvm_vcpu *vcpu)
arch/x86/kvm/x86.c +1 -0
index 0714fa0e7ede..c6eb3e45e3d8 100644
@@ -4163,6 +4163,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
 	case KVM_CAP_SREGS2:
 	case KVM_CAP_EXIT_ON_EMULATION_FAILURE:
 	case KVM_CAP_VCPU_ATTRIBUTES:
+	case KVM_CAP_ENABLE_CAP:
 		r = 1;
 		break;
 	case KVM_CAP_EXIT_HYPERCALL:
block/blk-map.c +1 -1
index 4526adde0156..c7f71d83eff1 100644
@@ -446,7 +446,7 @@ static struct bio *bio_copy_kern(struct request_queue *q, void *data,
 		if (bytes > len)
 			bytes = len;
 
-		page = alloc_page(GFP_NOIO | gfp_mask);
+		page = alloc_page(GFP_NOIO | __GFP_ZERO | gfp_mask);
 		if (!page)
 			goto cleanup;
 
drivers/ata/pata_hpt37x.c +2 -2
index ae8375e9d268..9d371859e81e 100644
@@ -964,14 +964,14 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id)
 
 	if ((freq >> 12) != 0xABCDE) {
 		int i;
-		u8 sr;
+		u16 sr;
 		u32 total = 0;
 
 		pr_warn("BIOS has not set timing clocks\n");
 
 		/* This is the process the HPT371 BIOS is reported to use */
 		for (i = 0; i < 128; i++) {
-			pci_read_config_byte(dev, 0x78, &sr);
+			pci_read_config_word(dev, 0x78, &sr);
 			total += sr & 0x1FF;
 			udelay(15);
 		}
drivers/auxdisplay/lcd2s.c +10 -14
index 38ba08628ccb..2578b2d45439 100644
@@ -238,7 +238,7 @@ static int lcd2s_redefine_char(struct charlcd *lcd, char *esc)
 	if (buf[1] > 7)
 		return 1;
 
-	i = 0;
+	i = 2;
 	shift = 0;
 	value = 0;
 	while (*esc && i < LCD2S_CHARACTER_SIZE + 2) {
@@ -298,6 +298,10 @@ static int lcd2s_i2c_probe(struct i2c_client *i2c,
 			I2C_FUNC_SMBUS_WRITE_BLOCK_DATA))
 		return -EIO;
 
+	lcd2s = devm_kzalloc(&i2c->dev, sizeof(*lcd2s), GFP_KERNEL);
+	if (!lcd2s)
+		return -ENOMEM;
+
 	/* Test, if the display is responding */
 	err = lcd2s_i2c_smbus_write_byte(i2c, LCD2S_CMD_DISPLAY_OFF);
 	if (err < 0)
@@ -307,12 +311,6 @@ static int lcd2s_i2c_probe(struct i2c_client *i2c,
 	if (!lcd)
 		return -ENOMEM;
 
-	lcd2s = kzalloc(sizeof(struct lcd2s_data), GFP_KERNEL);
-	if (!lcd2s) {
-		err = -ENOMEM;
-		goto fail1;
-	}
-
 	lcd->drvdata = lcd2s;
 	lcd2s->i2c = i2c;
 	lcd2s->charlcd = lcd;
@@ -321,26 +319,24 @@ static int lcd2s_i2c_probe(struct i2c_client *i2c,
 	err = device_property_read_u32(&i2c->dev, "display-height-chars",
 			&lcd->height);
 	if (err)
-		goto fail2;
+		goto fail1;
 
 	err = device_property_read_u32(&i2c->dev, "display-width-chars",
 			&lcd->width);
 	if (err)
-		goto fail2;
+		goto fail1;
 
 	lcd->ops = &lcd2s_ops;
 
 	err = charlcd_register(lcd2s->charlcd);
 	if (err)
-		goto fail2;
+		goto fail1;
 
 	i2c_set_clientdata(i2c, lcd2s);
 	return 0;
 
-fail2:
-	kfree(lcd2s);
 fail1:
-	kfree(lcd);
+	charlcd_free(lcd2s->charlcd);
 	return err;
 }
 
@@ -349,7 +345,7 @@ static int lcd2s_i2c_remove(struct i2c_client *i2c)
 	struct lcd2s_data *lcd2s = i2c_get_clientdata(i2c);
 
 	charlcd_unregister(lcd2s->charlcd);
-	kfree(lcd2s->charlcd);
+	charlcd_free(lcd2s->charlcd);
 	return 0;
 }
 
drivers/block/loop.c +7 -1
index c3a36cfaa855..fdb4798cb006 100644
@@ -79,6 +79,7 @@
 #include <linux/ioprio.h>
 #include <linux/blk-cgroup.h>
 #include <linux/sched/mm.h>
+#include <linux/statfs.h>
 
 #include "loop.h"
 
@@ -774,8 +775,13 @@ static void loop_config_discard(struct loop_device *lo)
 		granularity = 0;
 
 	} else {
+		struct kstatfs sbuf;
+
 		max_discard_sectors = UINT_MAX >> 9;
-		granularity = inode->i_sb->s_blocksize;
+		if (!vfs_statfs(&file->f_path, &sbuf))
+			granularity = sbuf.f_bsize;
+		else
+			max_discard_sectors = 0;
 	}
 
 	if (max_discard_sectors) {
drivers/clocksource/timer-ti-dm-systimer.c +1 -2
index 5c40ca1d4740..1fccb457fcc5 100644
@@ -241,8 +241,7 @@ static void __init dmtimer_systimer_assign_alwon(void)
 	bool quirk_unreliable_oscillator = false;
 
 	/* Quirk unreliable 32 KiHz oscillator with incomplete dts */
-	if (of_machine_is_compatible("ti,omap3-beagle-ab4") ||
-	    of_machine_is_compatible("timll,omap3-devkit8000")) {
+	if (of_machine_is_compatible("ti,omap3-beagle-ab4")) {
 		quirk_unreliable_oscillator = true;
 		counter_32k = -ENODEV;
 	}
drivers/dma/sh/shdma-base.c +3 -1
index 7f72b3f4cd1a..19ac95c0098f 100644
@@ -115,8 +115,10 @@ static dma_cookie_t shdma_tx_submit(struct dma_async_tx_descriptor *tx)
 		ret = pm_runtime_get(schan->dev);
 
 		spin_unlock_irq(&schan->chan_lock);
-		if (ret < 0)
+		if (ret < 0) {
 			dev_err(schan->dev, "%s(): GET = %d\n", __func__, ret);
+			pm_runtime_put(schan->dev);
+		}
 
 		pm_runtime_barrier(schan->dev);
 
drivers/firmware/arm_scmi/driver.c +1 -1
index b406b3f78f46..d76bab3aaac4 100644
@@ -2112,7 +2112,7 @@ static void __exit scmi_driver_exit(void)
 }
 module_exit(scmi_driver_exit);
 
-MODULE_ALIAS("platform: arm-scmi");
+MODULE_ALIAS("platform:arm-scmi");
 MODULE_AUTHOR("Sudeep Holla <[email protected]>");
 MODULE_DESCRIPTION("ARM SCMI protocol driver");
 MODULE_LICENSE("GPL v2");
drivers/firmware/efi/libstub/riscv-stub.c +10 -7
index 380e4e251399..9c460843442f 100644
@@ -25,7 +25,7 @@ typedef void __noreturn (*jump_kernel_func)(unsigned int, unsigned long);
 
 static u32 hartid;
 
-static u32 get_boot_hartid_from_fdt(void)
+static int get_boot_hartid_from_fdt(void)
 {
 	const void *fdt;
 	int chosen_node, len;
@@ -33,23 +33,26 @@ static u32 get_boot_hartid_from_fdt(void)
 
 	fdt = get_efi_config_table(DEVICE_TREE_GUID);
 	if (!fdt)
-		return U32_MAX;
+		return -EINVAL;
 
 	chosen_node = fdt_path_offset(fdt, "/chosen");
 	if (chosen_node < 0)
-		return U32_MAX;
+		return -EINVAL;
 
 	prop = fdt_getprop((void *)fdt, chosen_node, "boot-hartid", &len);
 	if (!prop || len != sizeof(u32))
-		return U32_MAX;
+		return -EINVAL;
 
-	return fdt32_to_cpu(*prop);
+	hartid = fdt32_to_cpu(*prop);
+	return 0;
 }
 
 efi_status_t check_platform_features(void)
 {
-	hartid = get_boot_hartid_from_fdt();
-	if (hartid == U32_MAX) {
+	int ret;
+
+	ret = get_boot_hartid_from_fdt();
+	if (ret) {
 		efi_err("/chosen/boot-hartid missing or invalid!\n");
 		return EFI_UNSUPPORTED;
 	}
drivers/firmware/efi/vars.c +4 -1
index abdc8a6a3963..cae590bd08f2 100644
@@ -742,6 +742,7 @@ int efivar_entry_set_safe(efi_char16_t *name, efi_guid_t vendor, u32 attributes,
 {
 	const struct efivar_operations *ops;
 	efi_status_t status;
+	unsigned long varsize;
 
 	if (!__efivars)
 		return -EINVAL;
@@ -764,15 +765,17 @@ int efivar_entry_set_safe(efi_char16_t *name, efi_guid_t vendor, u32 attributes,
 		return efivar_entry_set_nonblocking(name, vendor, attributes,
 						    size, data);
 
+	varsize = size + ucs2_strsize(name, 1024);
 	if (!block) {
 		if (down_trylock(&efivars_lock))
 			return -EBUSY;
+		status = check_var_size_nonblocking(attributes, varsize);
 	} else {
 		if (down_interruptible(&efivars_lock))
 			return -EINTR;
+		status = check_var_size(attributes, varsize);
 	}
 
-	status = check_var_size(attributes, size + ucs2_strsize(name, 1024));
 	if (status != EFI_SUCCESS) {
 		up(&efivars_lock);
 		return -ENOSPC;
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +8 -2
index 0e7dc23f78e7..e73c09d05b6e 100644
@@ -768,11 +768,17 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm,
  * Check if all VM PDs/PTs are ready for updates
  *
  * Returns:
- * True if eviction list is empty.
+ * True if VM is not evicting.
  */
 bool amdgpu_vm_ready(struct amdgpu_vm *vm)
 {
-	return list_empty(&vm->evicted);
+	bool ret;
+
+	amdgpu_vm_eviction_lock(vm);
+	ret = !vm->evicting;
+	amdgpu_vm_eviction_unlock(vm);
+
+	return ret && list_empty(&vm->evicted);
 }
 
 /**
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +3 -1
index 94e75199d942..135ea1c422f2 100644
@@ -4454,7 +4454,9 @@ bool dp_retrieve_lttpr_cap(struct dc_link *link)
 				lttpr_dpcd_data,
 				sizeof(lttpr_dpcd_data));
 		if (status != DC_OK) {
-			dm_error("%s: Read LTTPR caps data failed.\n", __func__);
+#if defined(CONFIG_DRM_AMD_DC_DCN)
+			DC_LOG_DP2("%s: Read LTTPR caps data failed.\n", __func__);
+#endif
 			return false;
 		}
 
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +21 -5
index b55118388d2d..59e1b92f0d27 100644
@@ -1261,21 +1261,37 @@ static int sienna_cichlid_populate_umd_state_clk(struct smu_context *smu)
 				&dpm_context->dpm_tables.soc_table;
 	struct smu_umd_pstate_table *pstate_table =
 				&smu->pstate_table;
+	struct amdgpu_device *adev = smu->adev;
 
 	pstate_table->gfxclk_pstate.min = gfx_table->min;
 	pstate_table->gfxclk_pstate.peak = gfx_table->max;
-	if (gfx_table->max >= SIENNA_CICHLID_UMD_PSTATE_PROFILING_GFXCLK)
-		pstate_table->gfxclk_pstate.standard = SIENNA_CICHLID_UMD_PSTATE_PROFILING_GFXCLK;
 
 	pstate_table->uclk_pstate.min = mem_table->min;
 	pstate_table->uclk_pstate.peak = mem_table->max;
-	if (mem_table->max >= SIENNA_CICHLID_UMD_PSTATE_PROFILING_MEMCLK)
-		pstate_table->uclk_pstate.standard = SIENNA_CICHLID_UMD_PSTATE_PROFILING_MEMCLK;
 
 	pstate_table->socclk_pstate.min = soc_table->min;
 	pstate_table->socclk_pstate.peak = soc_table->max;
-	if (soc_table->max >= SIENNA_CICHLID_UMD_PSTATE_PROFILING_SOCCLK)
+
+	switch (adev->asic_type) {
+	case CHIP_SIENNA_CICHLID:
+	case CHIP_NAVY_FLOUNDER:
+		pstate_table->gfxclk_pstate.standard = SIENNA_CICHLID_UMD_PSTATE_PROFILING_GFXCLK;
+		pstate_table->uclk_pstate.standard = SIENNA_CICHLID_UMD_PSTATE_PROFILING_MEMCLK;
 		pstate_table->socclk_pstate.standard = SIENNA_CICHLID_UMD_PSTATE_PROFILING_SOCCLK;
+		break;
+	case CHIP_DIMGREY_CAVEFISH:
+		pstate_table->gfxclk_pstate.standard = DIMGREY_CAVEFISH_UMD_PSTATE_PROFILING_GFXCLK;
+		pstate_table->uclk_pstate.standard = DIMGREY_CAVEFISH_UMD_PSTATE_PROFILING_MEMCLK;
+		pstate_table->socclk_pstate.standard = DIMGREY_CAVEFISH_UMD_PSTATE_PROFILING_SOCCLK;
+		break;
+	case CHIP_BEIGE_GOBY:
+		pstate_table->gfxclk_pstate.standard = BEIGE_GOBY_UMD_PSTATE_PROFILING_GFXCLK;
+		pstate_table->uclk_pstate.standard = BEIGE_GOBY_UMD_PSTATE_PROFILING_MEMCLK;
+		pstate_table->socclk_pstate.standard = BEIGE_GOBY_UMD_PSTATE_PROFILING_SOCCLK;
+		break;
+	default:
+		break;
+	}
 
 	return 0;
 }
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.h +8 -0
index 38cd0ece24f6..42f705c7a36f 100644
@@ -33,6 +33,14 @@ typedef enum {
 #define SIENNA_CICHLID_UMD_PSTATE_PROFILING_SOCCLK    960
 #define SIENNA_CICHLID_UMD_PSTATE_PROFILING_MEMCLK    1000
 
+#define DIMGREY_CAVEFISH_UMD_PSTATE_PROFILING_GFXCLK 1950
+#define DIMGREY_CAVEFISH_UMD_PSTATE_PROFILING_SOCCLK 960
+#define DIMGREY_CAVEFISH_UMD_PSTATE_PROFILING_MEMCLK 676
+
+#define BEIGE_GOBY_UMD_PSTATE_PROFILING_GFXCLK 2200
+#define BEIGE_GOBY_UMD_PSTATE_PROFILING_SOCCLK 960
+#define BEIGE_GOBY_UMD_PSTATE_PROFILING_MEMCLK 1000
+
 extern void sienna_cichlid_set_ppt_funcs(struct smu_context *smu);
 
 #endif
drivers/gpu/drm/bridge/ti-sn65dsi86.c +3 -2
index 83d06c16d4d7..b7f74c146dee 100644
@@ -1474,6 +1474,7 @@ static inline void ti_sn_gpio_unregister(void) {}
 
 static void ti_sn65dsi86_runtime_disable(void *data)
 {
+	pm_runtime_dont_use_autosuspend(data);
 	pm_runtime_disable(data);
 }
 
@@ -1533,11 +1534,11 @@ static int ti_sn65dsi86_probe(struct i2c_client *client,
 				     "failed to get reference clock\n");
 
 	pm_runtime_enable(dev);
+	pm_runtime_set_autosuspend_delay(pdata->dev, 500);
+	pm_runtime_use_autosuspend(pdata->dev);
 	ret = devm_add_action_or_reset(dev, ti_sn65dsi86_runtime_disable, dev);
 	if (ret)
 		return ret;
-	pm_runtime_set_autosuspend_delay(pdata->dev, 500);
-	pm_runtime_use_autosuspend(pdata->dev);
 
 	ti_sn65dsi86_debugfs_init(pdata);
 
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c +1 -1
index 65a3e7fdb2b2..95ff630157b9 100644
@@ -133,7 +133,7 @@ static int guc_action_slpc_unset_param(struct intel_guc *guc, u8 id)
 {
 	u32 request[] = {
 		GUC_ACTION_HOST2GUC_PC_SLPC_REQUEST,
-		SLPC_EVENT(SLPC_EVENT_PARAMETER_UNSET, 2),
+		SLPC_EVENT(SLPC_EVENT_PARAMETER_UNSET, 1),
 		id,
 	};
 
drivers/gpu/drm/i915/intel_pch.c +1 -1
index d1d4b97b86f5..287f5a3d0b35 100644
@@ -108,6 +108,7 @@ intel_pch_type(const struct drm_i915_private *dev_priv, unsigned short id)
 		/* Comet Lake V PCH is based on KBP, which is SPT compatible */
 		return PCH_SPT;
 	case INTEL_PCH_ICP_DEVICE_ID_TYPE:
+	case INTEL_PCH_ICP2_DEVICE_ID_TYPE:
 		drm_dbg_kms(&dev_priv->drm, "Found Ice Lake PCH\n");
 		drm_WARN_ON(&dev_priv->drm, !IS_ICELAKE(dev_priv));
 		return PCH_ICP;
@@ -123,7 +124,6 @@ intel_pch_type(const struct drm_i915_private *dev_priv, unsigned short id)
 			    !IS_GEN9_BC(dev_priv));
 		return PCH_TGP;
 	case INTEL_PCH_JSP_DEVICE_ID_TYPE:
-	case INTEL_PCH_JSP2_DEVICE_ID_TYPE:
 		drm_dbg_kms(&dev_priv->drm, "Found Jasper Lake PCH\n");
 		drm_WARN_ON(&dev_priv->drm, !IS_JSL_EHL(dev_priv));
 		return PCH_JSP;
drivers/gpu/drm/i915/intel_pch.h +1 -1
index 7c0d83d292dc..994c56fcb199 100644
@@ -50,11 +50,11 @@ enum intel_pch {
 #define INTEL_PCH_CMP2_DEVICE_ID_TYPE		0x0680
 #define INTEL_PCH_CMP_V_DEVICE_ID_TYPE		0xA380
 #define INTEL_PCH_ICP_DEVICE_ID_TYPE		0x3480
+#define INTEL_PCH_ICP2_DEVICE_ID_TYPE		0x3880
 #define INTEL_PCH_MCC_DEVICE_ID_TYPE		0x4B00
 #define INTEL_PCH_TGP_DEVICE_ID_TYPE		0xA080
 #define INTEL_PCH_TGP2_DEVICE_ID_TYPE		0x4380
 #define INTEL_PCH_JSP_DEVICE_ID_TYPE		0x4D80
-#define INTEL_PCH_JSP2_DEVICE_ID_TYPE		0x3880
 #define INTEL_PCH_ADP_DEVICE_ID_TYPE		0x7A80
 #define INTEL_PCH_ADP2_DEVICE_ID_TYPE		0x5180
 #define INTEL_PCH_P2X_DEVICE_ID_TYPE		0x7100
drivers/hid/amd-sfh-hid/amd_sfh_pcie.c +68 -1

113 lines not on this page · raw message

drivers/hid/amd-sfh-hid/amd_sfh_pcie.h +2 -0
index 8a9c544c27ae..97b99861fae2 100644
@@ -141,5 +141,7 @@ struct amd_mp2_ops {
 	 void (*stop)(struct amd_mp2_dev *privdata, u16 sensor_idx);
 	 void (*stop_all)(struct amd_mp2_dev *privdata);
 	 int (*response)(struct amd_mp2_dev *mp2, u8 sid, u32 sensor_sts);
+	 void (*clear_intr)(struct amd_mp2_dev *privdata);
+	 int (*init_intr)(struct amd_mp2_dev *privdata);
 };
 #endif
drivers/hid/hid-debug.c +4 -1
index 7a92e2a04a09..cbd7d318f87c 100644
@@ -825,7 +825,9 @@ static const char *keys[KEY_MAX + 1] = {
 	[KEY_F22] = "F22",			[KEY_F23] = "F23",
 	[KEY_F24] = "F24",			[KEY_PLAYCD] = "PlayCD",
 	[KEY_PAUSECD] = "PauseCD",		[KEY_PROG3] = "Prog3",
-	[KEY_PROG4] = "Prog4",			[KEY_SUSPEND] = "Suspend",
+	[KEY_PROG4] = "Prog4",
+	[KEY_ALL_APPLICATIONS] = "AllApplications",
+	[KEY_SUSPEND] = "Suspend",
 	[KEY_CLOSE] = "Close",			[KEY_PLAY] = "Play",
 	[KEY_FASTFORWARD] = "FastForward",	[KEY_BASSBOOST] = "BassBoost",
 	[KEY_PRINT] = "Print",			[KEY_HP] = "HP",
@@ -934,6 +936,7 @@ static const char *keys[KEY_MAX + 1] = {
 	[KEY_ASSISTANT] = "Assistant",
 	[KEY_KBD_LAYOUT_NEXT] = "KbdLayoutNext",
 	[KEY_EMOJI_PICKER] = "EmojiPicker",
+	[KEY_DICTATE] = "Dictate",
 	[KEY_BRIGHTNESS_MIN] = "BrightnessMin",
 	[KEY_BRIGHTNESS_MAX] = "BrightnessMax",
 	[KEY_BRIGHTNESS_AUTO] = "BrightnessAuto",
drivers/hid/hid-input.c +3 -0
index 87fee137ff65..b05d41848cd9 100644
@@ -994,6 +994,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
 		case 0x0cd: map_key_clear(KEY_PLAYPAUSE);	break;
 		case 0x0cf: map_key_clear(KEY_VOICECOMMAND);	break;
 
+		case 0x0d8: map_key_clear(KEY_DICTATE);		break;
 		case 0x0d9: map_key_clear(KEY_EMOJI_PICKER);	break;
 
 		case 0x0e0: map_abs_clear(ABS_VOLUME);		break;
@@ -1085,6 +1086,8 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
 
 		case 0x29d: map_key_clear(KEY_KBD_LAYOUT_NEXT);	break;
 
+		case 0x2a2: map_key_clear(KEY_ALL_APPLICATIONS);	break;
+
 		case 0x2c7: map_key_clear(KEY_KBDINPUTASSIST_PREV);		break;
 		case 0x2c8: map_key_clear(KEY_KBDINPUTASSIST_NEXT);		break;
 		case 0x2c9: map_key_clear(KEY_KBDINPUTASSIST_PREVGROUP);		break;
drivers/i2c/busses/Kconfig +3 -3
index dce392839017..37233bb483a1 100644
@@ -488,7 +488,7 @@ config I2C_BRCMSTB
 
 config I2C_CADENCE
 	tristate "Cadence I2C Controller"
-	depends on ARCH_ZYNQ || ARM64 || XTENSA
+	depends on ARCH_ZYNQ || ARM64 || XTENSA || COMPILE_TEST
 	help
 	  Say yes here to select Cadence I2C Host Controller. This controller is
 	  e.g. used by Xilinx Zynq.
@@ -680,7 +680,7 @@ config I2C_IMG
 
 config I2C_IMX
 	tristate "IMX I2C interface"
-	depends on ARCH_MXC || ARCH_LAYERSCAPE || COLDFIRE
+	depends on ARCH_MXC || ARCH_LAYERSCAPE || COLDFIRE || COMPILE_TEST
 	select I2C_SLAVE
 	help
 	  Say Y here if you want to use the IIC bus controller on
@@ -935,7 +935,7 @@ config I2C_QCOM_GENI
 
 config I2C_QUP
 	tristate "Qualcomm QUP based I2C controller"
-	depends on ARCH_QCOM
+	depends on ARCH_QCOM || COMPILE_TEST
 	help
 	  If you say yes to this option, support will be included for the
 	  built-in I2C interface on the Qualcomm SoCs.
drivers/i2c/busses/i2c-bcm2835.c +11 -0
index 37443edbf754..ad3b124a2e37 100644
@@ -23,6 +23,11 @@
 #define BCM2835_I2C_FIFO	0x10
 #define BCM2835_I2C_DIV		0x14
 #define BCM2835_I2C_DEL		0x18
+/*
+ * 16-bit field for the number of SCL cycles to wait after rising SCL
+ * before deciding the slave is not responding. 0 disables the
+ * timeout detection.
+ */
 #define BCM2835_I2C_CLKT	0x1c
 
 #define BCM2835_I2C_C_READ	BIT(0)
@@ -477,6 +482,12 @@ static int bcm2835_i2c_probe(struct platform_device *pdev)
 	adap->dev.of_node = pdev->dev.of_node;
 	adap->quirks = of_device_get_match_data(&pdev->dev);
 
+	/*
+	 * Disable the hardware clock stretching timeout. SMBUS
+	 * specifies a limit for how long the device can stretch the
+	 * clock, but core I2C doesn't.
+	 */
+	bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_CLKT, 0);
 	bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, 0);
 
 	ret = i2c_add_adapter(adap);
drivers/input/input.c +6 -0
index ccaeb2426385..c3139bc2aa0d 100644
@@ -2285,6 +2285,12 @@ int input_register_device(struct input_dev *dev)
 	/* KEY_RESERVED is not supposed to be transmitted to userspace. */
 	__clear_bit(KEY_RESERVED, dev->keybit);
 
+	/* Buttonpads should not map BTN_RIGHT and/or BTN_MIDDLE. */
+	if (test_bit(INPUT_PROP_BUTTONPAD, dev->propbit)) {
+		__clear_bit(BTN_RIGHT, dev->keybit);
+		__clear_bit(BTN_MIDDLE, dev->keybit);
+	}
+
 	/* Make sure that bitmasks not mentioned in dev->evbit are clean. */
 	input_cleanse_bitmasks(dev);
 
drivers/input/keyboard/Kconfig +1 -1
index 0c607da9ee10..9417ee0b1eff 100644
@@ -556,7 +556,7 @@ config KEYBOARD_PMIC8XXX
 
 config KEYBOARD_SAMSUNG
 	tristate "Samsung keypad support"
-	depends on HAVE_CLK
+	depends on HAS_IOMEM && HAVE_CLK
 	select INPUT_MATRIXKMAP
 	help
 	  Say Y here if you want to use the keypad on your Samsung mobile
drivers/input/mouse/elan_i2c_core.c +23 -41

99 lines not on this page · raw message

drivers/iommu/amd/amd_iommu.h +1 -0
index 416815a525d6..bb95edf74415 100644
@@ -14,6 +14,7 @@
 extern irqreturn_t amd_iommu_int_thread(int irq, void *data);
 extern irqreturn_t amd_iommu_int_handler(int irq, void *data);
 extern void amd_iommu_apply_erratum_63(u16 devid);
+extern void amd_iommu_restart_event_logging(struct amd_iommu *iommu);
 extern void amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu);
 extern int amd_iommu_init_devices(void);
 extern void amd_iommu_uninit_devices(void);
drivers/iommu/amd/amd_iommu_types.h +1 -0
index ffc89c4fb120..47108ed44fbb 100644
@@ -110,6 +110,7 @@
 #define PASID_MASK		0x0000ffff
 
 /* MMIO status bits */
+#define MMIO_STATUS_EVT_OVERFLOW_INT_MASK	(1 << 0)
 #define MMIO_STATUS_EVT_INT_MASK	(1 << 1)
 #define MMIO_STATUS_COM_WAIT_INT_MASK	(1 << 2)
 #define MMIO_STATUS_PPR_INT_MASK	(1 << 6)
drivers/iommu/amd/init.c +10 -0
index ce952b0afbfd..63146cbf19c7 100644
@@ -657,6 +657,16 @@ static int __init alloc_command_buffer(struct amd_iommu *iommu)
 	return iommu->cmd_buf ? 0 : -ENOMEM;
 }
 
+/*
+ * This function restarts event logging in case the IOMMU experienced
+ * an event log buffer overflow.
+ */
+void amd_iommu_restart_event_logging(struct amd_iommu *iommu)
+{
+	iommu_feature_disable(iommu, CONTROL_EVT_LOG_EN);
+	iommu_feature_enable(iommu, CONTROL_EVT_LOG_EN);
+}
+
 /*
  * This function resets the command buffer if the IOMMU stopped fetching
  * commands from it.
drivers/iommu/amd/io_pgtable.c +6 -6
index 182c93a43efd..1eddf557636d 100644
@@ -519,12 +519,6 @@ static void v1_free_pgtable(struct io_pgtable *iop)
 
 	dom = container_of(pgtable, struct protection_domain, iop);
 
-	/* Update data structure */
-	amd_iommu_domain_clr_pt_root(dom);
-
-	/* Make changes visible to IOMMUs */
-	amd_iommu_domain_update(dom);
-
 	/* Page-table is not visible to IOMMU anymore, so free it */
 	BUG_ON(pgtable->mode < PAGE_MODE_NONE ||
 	       pgtable->mode > PAGE_MODE_6_LEVEL);
@@ -532,6 +526,12 @@ static void v1_free_pgtable(struct io_pgtable *iop)
 	root = (unsigned long)pgtable->root;
 	freelist = free_sub_pt(root, pgtable->mode, freelist);
 
+	/* Update data structure */
+	amd_iommu_domain_clr_pt_root(dom);
+
+	/* Make changes visible to IOMMUs */
+	amd_iommu_domain_update(dom);
+
 	free_page_list(freelist);
 }
 
drivers/iommu/amd/iommu.c +8 -2
index 461f1844ed1f..a18b549951bb 100644
@@ -764,7 +764,8 @@ amd_iommu_set_pci_msi_domain(struct device *dev, struct amd_iommu *iommu) { }
 #endif /* !CONFIG_IRQ_REMAP */
 
 #define AMD_IOMMU_INT_MASK	\
-	(MMIO_STATUS_EVT_INT_MASK | \
+	(MMIO_STATUS_EVT_OVERFLOW_INT_MASK | \
+	 MMIO_STATUS_EVT_INT_MASK | \
 	 MMIO_STATUS_PPR_INT_MASK | \
 	 MMIO_STATUS_GALOG_INT_MASK)
 
@@ -774,7 +775,7 @@ irqreturn_t amd_iommu_int_thread(int irq, void *data)
 	u32 status = readl(iommu->mmio_base + MMIO_STATUS_OFFSET);
 
 	while (status & AMD_IOMMU_INT_MASK) {
-		/* Enable EVT and PPR and GA interrupts again */
+		/* Enable interrupt sources again */
 		writel(AMD_IOMMU_INT_MASK,
 			iommu->mmio_base + MMIO_STATUS_OFFSET);
 
@@ -795,6 +796,11 @@ irqreturn_t amd_iommu_int_thread(int irq, void *data)
 		}
 #endif
 
+		if (status & MMIO_STATUS_EVT_OVERFLOW_INT_MASK) {
+			pr_info_ratelimited("IOMMU event log overflow\n");
+			amd_iommu_restart_event_logging(iommu);
+		}
+
 		/*
 		 * Hardware bug: ERBT1312
 		 * When re-enabling interrupt (by writing 1
drivers/iommu/intel/iommu.c +1 -1
index b6a8f3282411..674ee1bc0116 100644
@@ -2773,7 +2773,7 @@ static struct dmar_domain *dmar_insert_one_dev_info(struct intel_iommu *iommu,
 	spin_unlock_irqrestore(&device_domain_lock, flags);
 
 	/* PASID table is mandatory for a PCI device in scalable mode. */
-	if (dev && dev_is_pci(dev) && sm_supported(iommu)) {
+	if (sm_supported(iommu) && !dev_is_real_dma_subdevice(dev)) {
 		ret = intel_pasid_alloc_table(dev);
 		if (ret) {
 			dev_err(dev, "PASID table allocation failed\n");
drivers/iommu/tegra-smmu.c +3 -1
index e900e3c46903..2561ce8a2ce8 100644
@@ -808,8 +808,10 @@ static struct tegra_smmu *tegra_smmu_find(struct device_node *np)
 		return NULL;
 
 	mc = platform_get_drvdata(pdev);
-	if (!mc)
+	if (!mc) {
+		put_device(&pdev->dev);
 		return NULL;
+	}
 
 	return mc->smmu;
 }
drivers/net/arcnet/com20020-pci.c +3 -0
index 6382e1937cca..c580acb8b1d3 100644
@@ -138,6 +138,9 @@ static int com20020pci_probe(struct pci_dev *pdev,
 		return -ENOMEM;
 
 	ci = (struct com20020_pci_card_info *)id->driver_data;
+	if (!ci)
+		return -EINVAL;
+
 	priv->ci = ci;
 	mm = &ci->misc_map;
 
drivers/net/can/usb/etas_es58x/es58x_core.c +5 -4
index fb07c33ba0c3..78d0a5947ba1 100644
@@ -1787,7 +1787,7 @@ static int es58x_open(struct net_device *netdev)
 	struct es58x_device *es58x_dev = es58x_priv(netdev)->es58x_dev;
 	int ret;
 
-	if (atomic_inc_return(&es58x_dev->opened_channel_cnt) == 1) {
+	if (!es58x_dev->opened_channel_cnt) {
 		ret = es58x_alloc_rx_urbs(es58x_dev);
 		if (ret)
 			return ret;
@@ -1805,12 +1805,13 @@ static int es58x_open(struct net_device *netdev)
 	if (ret)
 		goto free_urbs;
 
+	es58x_dev->opened_channel_cnt++;
 	netif_start_queue(netdev);
 
 	return ret;
 
  free_urbs:
-	if (atomic_dec_and_test(&es58x_dev->opened_channel_cnt))
+	if (!es58x_dev->opened_channel_cnt)
 		es58x_free_urbs(es58x_dev);
 	netdev_err(netdev, "%s: Could not open the network device: %pe\n",
 		   __func__, ERR_PTR(ret));
@@ -1845,7 +1846,8 @@ static int es58x_stop(struct net_device *netdev)
 
 	es58x_flush_pending_tx_msg(netdev);
 
-	if (atomic_dec_and_test(&es58x_dev->opened_channel_cnt))
+	es58x_dev->opened_channel_cnt--;
+	if (!es58x_dev->opened_channel_cnt)
 		es58x_free_urbs(es58x_dev);
 
 	return 0;
@@ -2214,7 +2216,6 @@ static struct es58x_device *es58x_init_es58x_dev(struct usb_interface *intf,
 	init_usb_anchor(&es58x_dev->tx_urbs_idle);
 	init_usb_anchor(&es58x_dev->tx_urbs_busy);
 	atomic_set(&es58x_dev->tx_urbs_idle_cnt, 0);
-	atomic_set(&es58x_dev->opened_channel_cnt, 0);
 	usb_set_intfdata(intf, es58x_dev);
 
 	es58x_dev->rx_pipe = usb_rcvbulkpipe(es58x_dev->udev,
drivers/net/can/usb/etas_es58x/es58x_core.h +5 -3
index 826a15871573..e5033cb5e695 100644
@@ -373,8 +373,6 @@ struct es58x_operators {
  *	queue wake/stop logic should prevent this URB from getting
  *	empty. Please refer to es58x_get_tx_urb() for more details.
  * @tx_urbs_idle_cnt: number of urbs in @tx_urbs_idle.
- * @opened_channel_cnt: number of channels opened (c.f. es58x_open()
- *	and es58x_stop()).
  * @ktime_req_ns: kernel timestamp when es58x_set_realtime_diff_ns()
  *	was called.
  * @realtime_diff_ns: difference in nanoseconds between the clocks of
@@ -384,6 +382,10 @@ struct es58x_operators {
  *	in RX branches.
  * @rx_max_packet_size: Maximum length of bulk-in URB.
  * @num_can_ch: Number of CAN channel (i.e. number of elements of @netdev).
+ * @opened_channel_cnt: number of channels opened. Free of race
+ *	conditions because its two users (net_device_ops:ndo_open()
+ *	and net_device_ops:ndo_close()) guarantee that the network
+ *	stack big kernel lock (a.k.a. rtnl_mutex) is being hold.
  * @rx_cmd_buf_len: Length of @rx_cmd_buf.
  * @rx_cmd_buf: The device might split the URB commands in an
  *	arbitrary amount of pieces. This buffer is used to concatenate
@@ -406,7 +408,6 @@ struct es58x_device {
 	struct usb_anchor tx_urbs_busy;
 	struct usb_anchor tx_urbs_idle;
 	atomic_t tx_urbs_idle_cnt;
-	atomic_t opened_channel_cnt;
 
 	u64 ktime_req_ns;
 	s64 realtime_diff_ns;
@@ -415,6 +416,7 @@ struct es58x_device {
 
 	u16 rx_max_packet_size;
 	u8 num_can_ch;
+	u8 opened_channel_cnt;
 
 	u16 rx_cmd_buf_len;
 	union es58x_urb_cmd rx_cmd_buf;
drivers/net/can/usb/gs_usb.c +5 -5
index 4d43aca2ff56..d9e03a7fede9 100644
@@ -191,8 +191,8 @@ struct gs_can {
 struct gs_usb {
 	struct gs_can *canch[GS_MAX_INTF];
 	struct usb_anchor rx_submitted;
-	atomic_t active_channels;
 	struct usb_device *udev;
+	u8 active_channels;
 };
 
 /* 'allocate' a tx context.
@@ -590,7 +590,7 @@ static int gs_can_open(struct net_device *netdev)
 	if (rc)
 		return rc;
 
-	if (atomic_add_return(1, &parent->active_channels) == 1) {
+	if (!parent->active_channels) {
 		for (i = 0; i < GS_MAX_RX_URBS; i++) {
 			struct urb *urb;
 			u8 *buf;
@@ -691,6 +691,7 @@ static int gs_can_open(struct net_device *netdev)
 
 	dev->can.state = CAN_STATE_ERROR_ACTIVE;
 
+	parent->active_channels++;
 	if (!(dev->can.ctrlmode & CAN_CTRLMODE_LISTENONLY))
 		netif_start_queue(netdev);
 
@@ -706,7 +707,8 @@ static int gs_can_close(struct net_device *netdev)
 	netif_stop_queue(netdev);
 
 	/* Stop polling */
-	if (atomic_dec_and_test(&parent->active_channels))
+	parent->active_channels--;
+	if (!parent->active_channels)
 		usb_kill_anchored_urbs(&parent->rx_submitted);
 
 	/* Stop sending URBs */
@@ -985,8 +987,6 @@ static int gs_usb_probe(struct usb_interface *intf,
 
 	init_usb_anchor(&dev->rx_submitted);
 
-	atomic_set(&dev->active_channels, 0);
-
 	usb_set_intfdata(intf, dev);
 	dev->udev = interface_to_usbdev(intf);
 
drivers/net/dsa/microchip/ksz_common.c +23 -3
index 8a04302018dc..7ab9ab58de65 100644
@@ -26,7 +26,7 @@ void ksz_update_port_member(struct ksz_device *dev, int port)
 	struct dsa_switch *ds = dev->ds;
 	u8 port_member = 0, cpu_port;
 	const struct dsa_port *dp;
-	int i;
+	int i, j;
 
 	if (!dsa_is_user_port(ds, port))
 		return;
@@ -45,13 +45,33 @@ void ksz_update_port_member(struct ksz_device *dev, int port)
 			continue;
 		if (!dp->bridge_dev || dp->bridge_dev != other_dp->bridge_dev)
 			continue;
+		if (other_p->stp_state != BR_STATE_FORWARDING)
+			continue;
 
-		if (other_p->stp_state == BR_STATE_FORWARDING &&
-		    p->stp_state == BR_STATE_FORWARDING) {
+		if (p->stp_state == BR_STATE_FORWARDING) {
 			val |= BIT(port);
 			port_member |= BIT(i);
 		}
 
+		/* Retain port [i]'s relationship to other ports than [port] */
+		for (j = 0; j < ds->num_ports; j++) {
+			const struct dsa_port *third_dp;
+			struct ksz_port *third_p;
+
+			if (j == i)
+				continue;
+			if (j == port)
+				continue;
+			if (!dsa_is_user_port(ds, j))
+				continue;
+			third_p = &dev->ports[j];
+			if (third_p->stp_state != BR_STATE_FORWARDING)
+				continue;
+			third_dp = dsa_to_port(ds, j);
+			if (third_dp->bridge_dev == dp->bridge_dev)
+				val |= BIT(j);
+		}
+
 		dev->dev_ops->cfg_port_member(dev, i, val | cpu_port);
 	}
 
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c +2 -0
index da41eee2f25c..a06003bfa04b 100644
@@ -3613,6 +3613,8 @@ int t3_prep_adapter(struct adapter *adapter, const struct adapter_info *ai,
 	    MAC_STATS_ACCUM_SECS : (MAC_STATS_ACCUM_SECS * 10);
 	adapter->params.pci.vpd_cap_addr =
 	    pci_find_capability(adapter->pdev, PCI_CAP_ID_VPD);
+	if (!adapter->params.pci.vpd_cap_addr)
+		return -ENODEV;
 	ret = get_vpd_params(adapter, &adapter->params.vpd);
 	if (ret < 0)
 		return ret;
drivers/net/ethernet/ibm/ibmvnic.c +189 -58

523 lines not on this page · raw message

drivers/net/ethernet/ibm/ibmvnic.h +1 -0
index b8e42f67d897..549a9b7b1a70 100644
@@ -933,6 +933,7 @@ struct ibmvnic_adapter {
 
 	struct ibmvnic_tx_pool *tx_pool;
 	struct ibmvnic_tx_pool *tso_pool;
+	struct completion probe_done;
 	struct completion init_done;
 	int init_done_rc;
 
drivers/net/ethernet/intel/e1000e/hw.h +1 -0
index bcf680e83811..13382df2f2ef 100644
@@ -630,6 +630,7 @@ struct e1000_phy_info {
 	bool disable_polarity_correction;
 	bool is_mdix;
 	bool polarity_correction;
+	bool reset_disable;
 	bool speed_downgraded;
 	bool autoneg_wait_to_complete;
 };
drivers/net/ethernet/intel/e1000e/ich8lan.c +6 -2
index c908c84b86d2..d60e2016d03c 100644
@@ -2050,6 +2050,10 @@ static s32 e1000_check_reset_block_ich8lan(struct e1000_hw *hw)
 	bool blocked = false;
 	int i = 0;
 
+	/* Check the PHY (LCD) reset flag */
+	if (hw->phy.reset_disable)
+		return true;
+
 	while ((blocked = !(er32(FWSM) & E1000_ICH_FWSM_RSPCIPHY)) &&
 	       (i++ < 30))
 		usleep_range(10000, 11000);
@@ -4136,9 +4140,9 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw)
 		return ret_val;
 
 	if (!(data & valid_csum_mask)) {
-		e_dbg("NVM Checksum Invalid\n");
+		e_dbg("NVM Checksum valid bit not set\n");
 
-		if (hw->mac.type < e1000_pch_cnp) {
+		if (hw->mac.type < e1000_pch_tgp) {
 			data |= valid_csum_mask;
 			ret_val = e1000_write_nvm(hw, word, 1, &data);
 			if (ret_val)
drivers/net/ethernet/intel/e1000e/ich8lan.h +1 -0
index 2504b11c3169..638a3ddd7ada 100644
@@ -271,6 +271,7 @@
 #define I217_CGFREG_ENABLE_MTA_RESET	0x0002
 #define I217_MEMPWR			PHY_REG(772, 26)
 #define I217_MEMPWR_DISABLE_SMB_RELEASE	0x0010
+#define I217_MEMPWR_MOEM		0x1000
 
 /* Receive Address Initial CRC Calculation */
 #define E1000_PCH_RAICC(_n)	(0x05F50 + ((_n) * 4))
drivers/net/ethernet/intel/e1000e/netdev.c +26 -0
index c063128ed1df..f2db4ff0003f 100644
@@ -6991,8 +6991,21 @@ static __maybe_unused int e1000e_pm_suspend(struct device *dev)
 	struct net_device *netdev = pci_get_drvdata(to_pci_dev(dev));
 	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct pci_dev *pdev = to_pci_dev(dev);
+	struct e1000_hw *hw = &adapter->hw;
+	u16 phy_data;
 	int rc;
 
+	if (er32(FWSM) & E1000_ICH_FWSM_FW_VALID &&
+	    hw->mac.type >= e1000_pch_adp) {
+		/* Mask OEM Bits / Gig Disable / Restart AN (772_26[12] = 1) */
+		e1e_rphy(hw, I217_MEMPWR, &phy_data);
+		phy_data |= I217_MEMPWR_MOEM;
+		e1e_wphy(hw, I217_MEMPWR, phy_data);
+
+		/* Disable LCD reset */
+		hw->phy.reset_disable = true;
+	}
+
 	e1000e_flush_lpic(pdev);
 
 	e1000e_pm_freeze(dev);
@@ -7014,6 +7027,8 @@ static __maybe_unused int e1000e_pm_resume(struct device *dev)
 	struct net_device *netdev = pci_get_drvdata(to_pci_dev(dev));
 	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct pci_dev *pdev = to_pci_dev(dev);
+	struct e1000_hw *hw = &adapter->hw;
+	u16 phy_data;
 	int rc;
 
 	/* Introduce S0ix implementation */
@@ -7024,6 +7039,17 @@ static __maybe_unused int e1000e_pm_resume(struct device *dev)
 	if (rc)
 		return rc;
 
+	if (er32(FWSM) & E1000_ICH_FWSM_FW_VALID &&
+	    hw->mac.type >= e1000_pch_adp) {
+		/* Unmask OEM Bits / Gig Disable / Restart AN 772_26[12] = 0 */
+		e1e_rphy(hw, I217_MEMPWR, &phy_data);
+		phy_data &= ~I217_MEMPWR_MOEM;
+		e1e_wphy(hw, I217_MEMPWR, phy_data);
+
+		/* Enable LCD reset */
+		hw->phy.reset_disable = false;
+	}
+
 	return e1000e_pm_thaw(dev);
 }
 
drivers/net/ethernet/intel/iavf/iavf.h +5 -1
index 3789269ce741..9a122aea6979 100644
@@ -188,6 +188,10 @@ enum iavf_state_t {
 	__IAVF_RUNNING,		/* opened, working */
 };
 
+enum iavf_critical_section_t {
+	__IAVF_IN_REMOVE_TASK,	/* device being removed */
+};
+
 #define IAVF_CLOUD_FIELD_OMAC		0x01
 #define IAVF_CLOUD_FIELD_IMAC		0x02
 #define IAVF_CLOUD_FIELD_IVLAN	0x04
@@ -233,7 +237,6 @@ struct iavf_adapter {
 	struct list_head mac_filter_list;
 	struct mutex crit_lock;
 	struct mutex client_lock;
-	struct mutex remove_lock;
 	/* Lock to protect accesses to MAC and VLAN lists */
 	spinlock_t mac_vlan_list_lock;
 	char misc_vector_name[IFNAMSIZ + 9];
@@ -271,6 +274,7 @@ struct iavf_adapter {
 #define IAVF_FLAG_LEGACY_RX			BIT(15)
 #define IAVF_FLAG_REINIT_ITR_NEEDED		BIT(16)
 #define IAVF_FLAG_QUEUES_DISABLED		BIT(17)
+#define IAVF_FLAG_SETUP_NETDEV_FEATURES		BIT(18)
 /* duplicates for common code */
 #define IAVF_FLAG_DCB_ENABLED			0
 	/* flags for admin queue service task */
drivers/net/ethernet/intel/iavf/iavf_main.c +102 -50

297 lines not on this page · raw message

drivers/net/ethernet/intel/iavf/iavf_virtchnl.c +1 -13
index d60bf7c21200..d3da65d24bd6 100644
@@ -1752,19 +1752,7 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
 
 		spin_unlock_bh(&adapter->mac_vlan_list_lock);
 		iavf_process_config(adapter);
-
-		/* unlock crit_lock before acquiring rtnl_lock as other
-		 * processes holding rtnl_lock could be waiting for the same
-		 * crit_lock
-		 */
-		mutex_unlock(&adapter->crit_lock);
-		rtnl_lock();
-		netdev_update_features(adapter->netdev);
-		rtnl_unlock();
-		if (iavf_lock_timeout(&adapter->crit_lock, 10000))
-			dev_warn(&adapter->pdev->dev, "failed to acquire crit_lock in %s\n",
-				 __FUNCTION__);
-
+		adapter->flags |= IAVF_FLAG_SETUP_NETDEV_FEATURES;
 		}
 		break;
 	case VIRTCHNL_OP_ENABLE_QUEUES:
drivers/net/ethernet/intel/igc/igc_phy.c +0 -4
index 5cad31c3c7b0..40dbf4b43234 100644
@@ -746,8 +746,6 @@ s32 igc_write_phy_reg_gpy(struct igc_hw *hw, u32 offset, u16 data)
 		if (ret_val)
 			return ret_val;
 		ret_val = igc_write_phy_reg_mdic(hw, offset, data);
-		if (ret_val)
-			return ret_val;
 		hw->phy.ops.release(hw);
 	} else {
 		ret_val = igc_write_xmdio_reg(hw, (u16)offset, dev_addr,
@@ -779,8 +777,6 @@ s32 igc_read_phy_reg_gpy(struct igc_hw *hw, u32 offset, u16 *data)
 		if (ret_val)
 			return ret_val;
 		ret_val = igc_read_phy_reg_mdic(hw, offset, data);
-		if (ret_val)
-			return ret_val;
 		hw->phy.ops.release(hw);
 	} else {
 		ret_val = igc_read_xmdio_reg(hw, (u16)offset, dev_addr,
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c +4 -2
index db2bc58dfcfd..666ff2c07ab9 100644
@@ -390,12 +390,14 @@ static bool ixgbe_xmit_zc(struct ixgbe_ring *xdp_ring, unsigned int budget)
 	u32 cmd_type;
 
 	while (budget-- > 0) {
-		if (unlikely(!ixgbe_desc_unused(xdp_ring)) ||
-		    !netif_carrier_ok(xdp_ring->netdev)) {
+		if (unlikely(!ixgbe_desc_unused(xdp_ring))) {
 			work_done = false;
 			break;
 		}
 
+		if (!netif_carrier_ok(xdp_ring->netdev))
+			break;
+
 		if (!xsk_tx_peek_desc(pool, &desc))
 			break;
 
drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c +10 -10
index 4ce490a25f33..8e56ffa1c4f7 100644
@@ -58,16 +58,6 @@ int sparx5_vlan_vid_add(struct sparx5_port *port, u16 vid, bool pvid,
 	struct sparx5 *sparx5 = port->sparx5;
 	int ret;
 
-	/* Make the port a member of the VLAN */
-	set_bit(port->portno, sparx5->vlan_mask[vid]);
-	ret = sparx5_vlant_set_mask(sparx5, vid);
-	if (ret)
-		return ret;
-
-	/* Default ingress vlan classification */
-	if (pvid)
-		port->pvid = vid;
-
 	/* Untagged egress vlan classification */
 	if (untagged && port->vid != vid) {
 		if (port->vid) {
@@ -79,6 +69,16 @@ int sparx5_vlan_vid_add(struct sparx5_port *port, u16 vid, bool pvid,
 		port->vid = vid;
 	}
 
+	/* Make the port a member of the VLAN */
+	set_bit(port->portno, sparx5->vlan_mask[vid]);
+	ret = sparx5_vlant_set_mask(sparx5, vid);
+	if (ret)
+		return ret;
+
+	/* Default ingress vlan classification */
+	if (pvid)
+		port->pvid = vid;
+
 	sparx5_vlan_port_apply(sparx5, port);
 
 	return 0;
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c +3 -3
index 32161a56726c..2881f5b2b5f4 100644
@@ -2285,18 +2285,18 @@ static int __init sxgbe_cmdline_opt(char *str)
 	char *opt;
 
 	if (!str || !*str)
-		return -EINVAL;
+		return 1;
 	while ((opt = strsep(&str, ",")) != NULL) {
 		if (!strncmp(opt, "eee_timer:", 10)) {
 			if (kstrtoint(opt + 10, 0, &eee_timer))
 				goto err;
 		}
 	}
-	return 0;
+	return 1;
 
 err:
 	pr_err("%s: ERROR broken module parameter conversion\n", __func__);
-	return -EINVAL;
+	return 1;
 }
 
 __setup("sxgbeeth=", sxgbe_cmdline_opt);
drivers/net/ethernet/stmicro/stmmac/stmmac.h +2 -2
index 873b9e3e5da2..05b5371ca036 100644
@@ -334,8 +334,8 @@ void stmmac_set_ethtool_ops(struct net_device *netdev);
 int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags);
 void stmmac_ptp_register(struct stmmac_priv *priv);
 void stmmac_ptp_unregister(struct stmmac_priv *priv);
-int stmmac_open(struct net_device *dev);
-int stmmac_release(struct net_device *dev);
+int stmmac_xdp_open(struct net_device *dev);
+void stmmac_xdp_release(struct net_device *dev);
 int stmmac_resume(struct device *dev);
 int stmmac_suspend(struct device *dev);
 int stmmac_dvr_remove(struct device *dev);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +164 -6

228 lines not on this page · raw message

drivers/net/ethernet/stmicro/stmmac/stmmac_xdp.c +2 -2
index 2a616c6f7cd0..9d4d8c3dad0a 100644
@@ -119,7 +119,7 @@ int stmmac_xdp_set_prog(struct stmmac_priv *priv, struct bpf_prog *prog,
 
 	need_update = !!priv->xdp_prog != !!prog;
 	if (if_running && need_update)
-		stmmac_release(dev);
+		stmmac_xdp_release(dev);
 
 	old_prog = xchg(&priv->xdp_prog, prog);
 	if (old_prog)
@@ -129,7 +129,7 @@ int stmmac_xdp_set_prog(struct stmmac_priv *priv, struct bpf_prog *prog,
 	priv->sph = priv->sph_cap && !stmmac_xdp_is_enabled(priv);
 
 	if (if_running && need_update)
-		stmmac_open(dev);
+		stmmac_xdp_open(dev);
 
 	return 0;
 }
drivers/net/ipa/Kconfig +2 -0
index d037682fb7ad..6782c2cbf542 100644
@@ -2,7 +2,9 @@ config QCOM_IPA
 	tristate "Qualcomm IPA support"
 	depends on NET && QCOM_SMEM
 	depends on ARCH_QCOM || COMPILE_TEST
+	depends on INTERCONNECT
 	depends on QCOM_RPROC_COMMON || (QCOM_RPROC_COMMON=n && COMPILE_TEST)
+	depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
 	select QCOM_MDT_LOADER if ARCH_QCOM
 	select QCOM_SCM
 	select QCOM_QMI_HELPERS
drivers/net/usb/cdc_mbim.c +5 -0
index 82bb5ed94c48..c0b8b4aa78f3 100644
@@ -659,6 +659,11 @@ static const struct usb_device_id mbim_devs[] = {
 	  .driver_info = (unsigned long)&cdc_mbim_info_avoid_altsetting_toggle,
 	},
 
+	/* Telit FN990 */
+	{ USB_DEVICE_AND_INTERFACE_INFO(0x1bc7, 0x1071, USB_CLASS_COMM, USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
+	  .driver_info = (unsigned long)&cdc_mbim_info_avoid_altsetting_toggle,
+	},
+
 	/* default entry */
 	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
 	  .driver_info = (unsigned long)&cdc_mbim_info_zlp,
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c +8 -3
index 64100e73b5bc..a0d6194f8a52 100644
@@ -5,6 +5,7 @@
  * Copyright (C) 2016-2017 Intel Deutschland GmbH
  */
 #include <linux/vmalloc.h>
+#include <linux/err.h>
 #include <linux/ieee80211.h>
 #include <linux/netdevice.h>
 
@@ -1849,7 +1850,6 @@ void iwl_mvm_sta_add_debugfs(struct ieee80211_hw *hw,
 void iwl_mvm_dbgfs_register(struct iwl_mvm *mvm)
 {
 	struct dentry *bcast_dir __maybe_unused;
-	char buf[100];
 
 	spin_lock_init(&mvm->drv_stats_lock);
 
@@ -1930,6 +1930,11 @@ void iwl_mvm_dbgfs_register(struct iwl_mvm *mvm)
 	 * Create a symlink with mac80211. It will be removed when mac80211
 	 * exists (before the opmode exists which removes the target.)
 	 */
-	snprintf(buf, 100, "../../%pd2", mvm->debugfs_dir->d_parent);
-	debugfs_create_symlink("iwlwifi", mvm->hw->wiphy->debugfsdir, buf);
+	if (!IS_ERR(mvm->debugfs_dir)) {
+		char buf[100];
+
+		snprintf(buf, 100, "../../%pd2", mvm->debugfs_dir->d_parent);
+		debugfs_create_symlink("iwlwifi", mvm->hw->wiphy->debugfsdir,
+				       buf);
+	}
 }
drivers/net/wireless/mac80211_hwsim.c +13 -0
index 23219f3747f8..f7cfda9192de 100644
@@ -2336,6 +2336,15 @@ static void hw_scan_work(struct work_struct *work)
 			if (req->ie_len)
 				skb_put_data(probe, req->ie, req->ie_len);
 
+			if (!ieee80211_tx_prepare_skb(hwsim->hw,
+						      hwsim->hw_scan_vif,
+						      probe,
+						      hwsim->tmp_chan->band,
+						      NULL)) {
+				kfree_skb(probe);
+				continue;
+			}
+
 			local_bh_disable();
 			mac80211_hwsim_tx_frame(hwsim->hw, probe,
 						hwsim->tmp_chan);
@@ -3770,6 +3779,10 @@ static int hwsim_tx_info_frame_received_nl(struct sk_buff *skb_2,
 		}
 		txi->flags |= IEEE80211_TX_STAT_ACK;
 	}
+
+	if (hwsim_flags & HWSIM_TX_CTL_NO_ACK)
+		txi->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED;
+
 	ieee80211_tx_status_irqsafe(data2->hw, skb);
 	return 0;
 out:
drivers/net/xen-netfront.c +23 -16
index d514d96027a6..039ca902c5bf 100644
@@ -842,6 +842,28 @@ static int xennet_close(struct net_device *dev)
 	return 0;
 }
 
+static void xennet_destroy_queues(struct netfront_info *info)
+{
+	unsigned int i;
+
+	for (i = 0; i < info->netdev->real_num_tx_queues; i++) {
+		struct netfront_queue *queue = &info->queues[i];
+
+		if (netif_running(info->netdev))
+			napi_disable(&queue->napi);
+		netif_napi_del(&queue->napi);
+	}
[… more lines in the raw message]

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

drivers/ntb/hw/intel/ntb_hw_gen4.c +16 -1
index fede05151f69..4081fc538ff4 100644

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

drivers/ntb/hw/intel/ntb_hw_gen4.h +16 -0
index 3fcd3fdce9ed..f91323eaf5ce 100644

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

drivers/pinctrl/sunxi/pinctrl-sunxi.c +9 -0
index 862c84efb718..ce3f9ea41511 100644

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

drivers/platform/x86/amd-pmc.c +30 -4
index 8c74733530e3..11d0f829302b 100644

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

drivers/ptp/ptp_ocp.c +23 -2
index 0f1b5a7d2a89..17ad5f0d13b2 100644

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

drivers/regulator/core.c +3 -10
index 86aa4141efa9..d2553970a67b 100644

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

drivers/soc/fsl/guts.c +9 -5
index 072473a16f4d..5ed2fc1c53a0 100644

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

drivers/soc/fsl/qe/qe_io.c +2 -0
index e277c827bdf3..a5e2d0e5ab51 100644

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

drivers/soc/imx/gpcv2.c +2 -1
index 8176380b02e6..4415f07e1fa9 100644

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

drivers/thermal/thermal_netlink.c +3 -2
index a16dd4d5d710..73e68cce292e 100644

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

drivers/tty/serial/stm32-usart.c +12 -0
index 2d3fbcbfaf10..93c2a5c95654 100644

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

drivers/usb/gadget/legacy/inode.c +7 -3
index 3b58f4fc0a80..25c8809e0a38 100644

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

fs/binfmt_elf.c +18 -7
index f8c7f26f1fbb..d19762dc90fe 100644

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

fs/btrfs/ctree.h +10 -0
index 269094176b8b..fd77eca085b4 100644

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

fs/btrfs/disk-io.c +10 -0
index 5f0a879c1043..15ffb237a489 100644

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

fs/btrfs/extent-tree.c +10 -0
index 7b4ee1b2d5d8..852348189ecb 100644

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

fs/btrfs/extent_io.c +13 -3
index 9234d96a7fd5..5512d7028091 100644

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

fs/btrfs/extent_map.c +2 -0
index 5a36add21305..c28ceddefae4 100644

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

fs/btrfs/extent_map.h +8 -0
index 8e217337dff9..d2fa32ffe304 100644

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

fs/btrfs/inode.c +106 -64

170 lines not on this page · raw message

fs/btrfs/ioctl.c +171 -4

175 lines not on this page · raw message

fs/btrfs/qgroup.c +8 -1
index 26134b7476a2..4ca809fa80ea 100644

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

fs/btrfs/relocation.c +13 -0
index 33a0ee7ac590..f129e0718b11 100644

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

fs/btrfs/root-tree.c +15 -0
index d20166336557..c6a173e81118 100644

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

fs/btrfs/subpage.c +1 -1
index 29bd8c7a7706..ef7ae20d2b77 100644

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

fs/btrfs/transaction.c +73 -4

77 lines not on this page · raw message

fs/btrfs/transaction.h +1 -0
index eba07b8119bb..0ded32bbd001 100644

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

fs/btrfs/tree-log.c +49 -12

61 lines not on this page · raw message

fs/cifs/cifsacl.c +6 -3
index ee3aab3dd4ac..bf861fef2f0c 100644

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

fs/cifs/cifsfs.c +1 -0
index dca42aa87d30..99c51391a48d 100644

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

fs/exfat/file.c +9 -9
index 6af0191b648f..d890fd34bb2d 100644

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

fs/exfat/inode.c +6 -7
index 1c7aa1ea4724..72a0ccfb616c 100644

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

fs/exfat/namei.c +3 -3
index 24b41103d1cc..9d8ada781250 100644

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

fs/exfat/super.c +5 -5
index 5539ffc20d16..4b5d02b1df58 100644

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

fs/ext4/ext4.h +5 -10
index d248a01132c3..c2cc9d78915b 100644

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

fs/ext4/extents.c +2 -4
index 9b37d16b24ff..d2667189be7e 100644

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

fs/ext4/fast_commit.c +98 -120

218 lines not on this page · raw message

fs/ext4/fast_commit.h +14 -13
index 937c381b4c85..083ad1cb705a 100644

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

fs/ext4/inode.c +2 -2
index 3bdfe010e17f..2f5686dfa30d 100644

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

fs/ext4/ioctl.c +2 -3
index 220a4c8178b5..f61b59045c6d 100644

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

fs/ext4/namei.c +2 -2
index 52c9bd154122..47b9f87dbc6f 100644

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

fs/ext4/super.c +1 -2
index 24a7ad80353b..32ca34403dce 100644

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

fs/ext4/xattr.c +3 -3
index 1e0fc1ed845b..042325349098 100644

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

fs/jbd2/commit.c +1 -1
index 3cc4ab2ba7f4..d188fa913a07 100644

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

fs/jbd2/journal.c +1 -1
index bd9ac9891604..1f8493ef181d 100644

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

fs/proc/task_mmu.c +2 -1
index cbb22354f380..7df985e3cada 100644

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

include/linux/jbd2.h +1 -1
index fd933c45281a..d63b8106796e 100644

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

include/linux/sched/task.h +2 -2
index 058d7f371e25..8db25fcc1eba 100644

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

include/net/bluetooth/bluetooth.h +1 -2
index 3271870fd85e..a1093994e5e4 100644

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

include/net/ndisc.h +2 -2
index 04341d86585d..5e37e5858679 100644

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

include/net/netfilter/nf_queue.h +1 -1
index 9eed51e920e8..980daa6e1e3a 100644

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

include/net/xfrm.h +0 -1
index 2b1ce8534993..301a164f17e9 100644

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

include/uapi/linux/input-event-codes.h +3 -1
index 225ec87d4f22..7989d9483ea7 100644

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

include/uapi/linux/xfrm.h +6 -0
index 4e29d7851890..65e13a099b1a 100644

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

kernel/fork.c +12 -1
index 50d02e3103a5..d846dfde6691 100644

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

kernel/sched/core.c +16 -7
index d24823b3c3f9..65082cab2906 100644

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

kernel/trace/blktrace.c +18 -8
index 1183c88634aa..3812a33b9fcb 100644

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

kernel/trace/trace.c +2 -2
index bb1505902044..24683115eade 100644

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

kernel/trace/trace_events_filter.c +100 -7

107 lines not on this page · raw message

kernel/trace/trace_events_hist.c +3 -3
index e697bfedac2f..8fa373d4de39 100644

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

kernel/trace/trace_kprobe.c +1 -1
index 1bb85f7a4593..bc2a2bc5a453 100644

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

kernel/user_namespace.c +13 -1
index 6b2e3ca7ee99..5481ba44a8d6 100644

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

mm/memfd.c +28 -12
index 9f80f162791a..08f5f8304746 100644

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

mm/util.c +3 -1
index 741ba32a43ac..c8261c4ca58b 100644

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

net/batman-adv/hard-interface.c +20 -9
index 8a2b78f9c4b2..35fadb924849 100644

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

net/core/skbuff.c +1 -1
index f78969d8d816..56e23333e708 100644

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

net/core/skmsg.c +1 -1
index 8eb671c827f9..929a2b096b04 100644

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

net/dcb/dcbnl.c +44 -0

44 lines not on this page · raw message

net/ipv4/esp4.c +1 -1
index 851f542928a3..e1b1d080e908 100644

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

net/ipv6/addrconf.c +6 -2
index 6652d96329a0..7c78e1215ae3 100644

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

net/ipv6/esp6.c +1 -1
index f0bac6f7ab6b..883b53fd7846 100644

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

net/ipv6/ip6_output.c +7 -4
index 22bf8fb61716..61970fd839c3 100644

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

net/ipv6/mcast.c +12 -20
index a8861db52c18..909f937befd7 100644

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

net/mac80211/ieee80211_i.h +1 -1
index 482c98ede19b..3354a3b905b8 100644

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

net/mac80211/mlme.c +12 -4
index 311b4d934495..404b84650161 100644

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

net/mac80211/rx.c +5 -9
index d2e8b84ed283..2225b6b8689f 100644

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

net/mptcp/protocol.c +5 -2
index 0cd55e4c30fa..7566c9dc6681 100644

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

net/netfilter/core.c +3 -2
index 6dec9cd395f1..c3634744e37b 100644

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

net/netfilter/nf_queue.c +31 -5
index 6d12afabfe8a..63d1516816b1 100644

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

net/netfilter/nf_tables_api.c +2 -2
index a65b530975f5..2b2e0210a7f9 100644

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

net/netfilter/nfnetlink_queue.c +9 -3
index f0b9e21a2452..ff79c267d10c 100644

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

net/smc/af_smc.c +8 -2
index 10d2d81f9337..a0fb596459a3 100644

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

net/smc/smc_core.c +3 -2
index 6dddcfd6cf73..d1cdc891c211 100644

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

net/tipc/crypto.c +1 -1
index d293614d5fc6..b5074957e881 100644

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

net/wireless/nl80211.c +12 -0
index a27b3b5fa210..f73251828782 100644

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

net/xfrm/xfrm_device.c +5 -1
index e843b0d9e2a6..c255aac6b816 100644

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

net/xfrm/xfrm_interface.c +1 -1
index 57448fc519fc..4e3c62d1ad9e 100644

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

net/xfrm/xfrm_state.c +2 -12
index 78d51399a0f4..100b4b3723e7 100644

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

sound/soc/codecs/cs4265.c +1 -2
index cffd6111afac..b49cb92d7b9e 100644

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

sound/soc/codecs/rt5668.c +7 -5
index fb09715bf932..5b12cbf2ba21 100644

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

sound/soc/codecs/rt5682.c +7 -5
index 7e6e2f26accd..e3643ae6de66 100644

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

sound/soc/codecs/rt5682s.c +7 -5
index d49a4f68566d..d79b548d23fa 100644

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

sound/soc/soc-ops.c +2 -2
index 53457a0d466d..ee3782ecd7e3 100644

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

sound/x86/intel_hdmi_audio.c +1 -1
index 378826312abe..7aa947274900 100644

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

tools/testing/selftests/drivers/net/mlxsw/spectrum/resource_scale.sh +1 -1
index bcb110e830ce..dea33dc93790 100755

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

tools/testing/selftests/drivers/net/mlxsw/tc_police_scale.sh +2 -1
index 3e3e06ea5703..86e787895f78 100644

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

tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc +1 -1
index e96e279e0533..25432b8cd5bd 100644

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

tools/testing/selftests/seccomp/Makefile +1 -1
index 0ebfe8b0e147..585f7a0c10cb 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.