Skip to contentSkip to conversation

Linux 5.16.10

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Feb 16, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.16.10 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/ABI/testing/sysfs-driver-aspeed-uart-routing |    6 
 Documentation/arm64/silicon-errata.rst                     |   12 
 Documentation/devicetree/bindings/arm/omap/omap.txt        |    3 
 Makefile                                                   |    2 
 arch/arm/boot/dts/Makefile                                 |    1 
 arch/arm/boot/dts/imx23-evk.dts                            |    1 
 arch/arm/boot/dts/imx6qdl-udoo.dtsi                        |    5 
 arch/arm/boot/dts/imx7ulp.dtsi                             |    2 
 arch/arm/boot/dts/meson.dtsi                               |    8 
 arch/arm/boot/dts/meson8.dtsi                              |   24 -
 arch/arm/boot/dts/meson8b.dtsi                             |   24 -
 arch/arm/boot/dts/omap3-beagle-ab4.dts                     |   47 +++
 arch/arm/boot/dts/omap3-beagle.dts                         |   33 --
 arch/arm/boot/dts/ste-ux500-samsung-skomer.dts             |    4 
 arch/arm/mach-socfpga/Kconfig                              |    2 
 arch/arm64/Kconfig                                         |   82 +++++-
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi      |    4 
 arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts      |    2 
 arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi          |    2 
 arch/arm64/boot/dts/freescale/imx8mq.dtsi                  |   10 
 arch/arm64/include/asm/cputype.h                           |    2 
 arch/arm64/kernel/cpu_errata.c                             |   29 ++
 arch/arm64/kernel/cpufeature.c                             |    3 
 arch/arm64/tools/cpucaps                                   |    3 
 arch/mips/cavium-octeon/octeon-memcpy.S                    |    2 
 arch/mips/include/asm/asm.h                                |    4 
 arch/mips/include/asm/ftrace.h                             |    4 
 arch/mips/include/asm/r4kcache.h                           |    4 
 arch/mips/include/asm/unaligned-emul.h                     |  176 ++++++-------
 arch/mips/kernel/mips-r2-to-r6-emul.c                      |  104 +++----
 arch/mips/kernel/r2300_fpu.S                               |    6 
 arch/mips/kernel/r4k_fpu.S                                 |    2 
 arch/mips/kernel/relocate_kernel.S                         |   22 -
 arch/mips/kernel/scall32-o32.S                             |   10 
 arch/mips/kernel/scall64-n32.S                             |    2 
 arch/mips/kernel/scall64-n64.S                             |    2 
 arch/mips/kernel/scall64-o32.S                             |   10 
 arch/mips/kernel/syscall.c                                 |    8 
 arch/mips/lib/csum_partial.S                               |    4 
 arch/mips/lib/memcpy.S                                     |    4 
 arch/mips/lib/memset.S                                     |    2 
 arch/mips/lib/strncpy_user.S                               |    4 
 arch/mips/lib/strnlen_user.S                               |    2 
 arch/powerpc/include/asm/book3s/32/pgtable.h               |    1 
 arch/powerpc/include/asm/book3s/64/pgtable.h               |    2 
 arch/powerpc/include/asm/fixmap.h                          |    6 
 arch/powerpc/include/asm/nohash/32/pgtable.h               |    1 
 arch/powerpc/include/asm/nohash/64/pgtable.h               |    1 
 arch/powerpc/mm/pgtable.c                                  |    9 
 arch/riscv/Makefile                                        |    6 
 arch/riscv/kernel/cpu-hotplug.c                            |    2 
 arch/riscv/kernel/head.S                                   |   11 
 arch/riscv/kernel/stacktrace.c                             |    9 
 arch/riscv/mm/init.c                                       |    1 
 arch/s390/Kconfig                                          |   15 +
 arch/s390/lib/Makefile                                     |    3 
 arch/s390/lib/test_modules.c                               |   32 ++
 arch/s390/lib/test_modules.h                               |   53 +++
 arch/s390/lib/test_modules_helpers.c                       |   13 
 arch/x86/events/intel/lbr.c                                |    3 
 arch/x86/events/rapl.c                                     |    9 
 arch/x86/kernel/cpu/sgx/encl.c                             |    2 
 arch/x86/kvm/cpuid.c                                       |   13 
 arch/x86/kvm/svm/svm.c                                     |   16 +
 arch/x86/kvm/vmx/evmcs.c                                   |    1 
 arch/x86/kvm/vmx/evmcs.h                                   |    4 
 arch/x86/kvm/vmx/vmx.c                                     |   25 +
 drivers/accessibility/speakup/speakup_dectlk.c             |    1 
 drivers/acpi/arm64/iort.c                                  |   14 -
 drivers/acpi/ec.c                                          |   10 
 drivers/acpi/sleep.c                                       |   15 -
 drivers/base/power/wakeup.c                                |   41 ++-
 drivers/bus/mhi/pci_generic.c                              |    2 
 drivers/clocksource/timer-ti-dm-systimer.c                 |    2 
 drivers/gpio/gpio-aggregator.c                             |   18 +
 drivers/gpio/gpio-sifive.c                                 |    2 
 drivers/gpio/gpiolib-cdev.c                                |    6 
 drivers/gpio/gpiolib-sysfs.c                               |    7 
 drivers/gpio/gpiolib.h                                     |   12 
 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c           |    6 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c      |    2 
 drivers/gpu/drm/amd/display/dc/dcn301/dcn301_resource.c    |    2 
 drivers/gpu/drm/amd/pm/amdgpu_pm.c                         |    3 
 drivers/gpu/drm/bridge/nwl-dsi.c                           |   12 
 drivers/gpu/drm/drm_panel_orientation_quirks.c             |   12 
 drivers/gpu/drm/i915/display/intel_display.c               |    1 
 drivers/gpu/drm/i915/display/intel_drrs.c                  |    8 
 drivers/gpu/drm/i915/intel_pm.c                            |  143 ++++++++--
 drivers/gpu/drm/i915/intel_pm.h                            |    1 
 drivers/gpu/drm/panel/panel-simple.c                       |    1 
 drivers/gpu/drm/rockchip/rockchip_vop_reg.c                |    8 
 drivers/gpu/drm/vc4/vc4_dsi.c                              |   14 -
 drivers/gpu/drm/vc4/vc4_hdmi.c                             |    2 
 drivers/iio/industrialio-buffer.c                          |   14 -
 drivers/iommu/iommu.c                                      |    9 
 drivers/irqchip/irq-realtek-rtl.c                          |    8 
 drivers/misc/eeprom/ee1004.c                               |    3 
 drivers/misc/fastrpc.c                                     |    9 
 drivers/mmc/core/sd.c                                      |    8 
 drivers/mmc/host/sdhci-of-esdhc.c                          |    8 
 drivers/mmc/host/sh_mmcif.c                                |    3 
 drivers/net/bonding/bond_3ad.c                             |    3 
 drivers/net/dsa/bcm_sf2.c                                  |    7 
 drivers/net/dsa/lantiq_gswip.c                             |   14 -
 drivers/net/dsa/mt7530.c                                   |    2 
 drivers/net/dsa/mv88e6xxx/chip.c                           |   15 -
 drivers/net/dsa/ocelot/felix_vsc9959.c                     |    4 
 drivers/net/dsa/ocelot/seville_vsc9953.c                   |    6 
 drivers/net/dsa/qca/ar9331.c                               |    3 
 drivers/net/ethernet/amd/xgbe/xgbe-pci.c                   |    3 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c           |    4 
 drivers/net/ethernet/google/gve/gve_rx.c                   |    1 
 drivers/net/ethernet/ibm/ibmvnic.c                         |   13 
 drivers/net/ethernet/intel/ice/ice.h                       |    3 
 drivers/net/ethernet/intel/ice/ice_common.c                |    3 
 drivers/net/ethernet/intel/ice/ice_lag.c                   |   34 ++
 drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h             |    1 
 drivers/net/ethernet/intel/ice/ice_main.c                  |   28 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c          |   13 
 drivers/net/ethernet/litex/Kconfig                         |    2 
 drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c     |    2 
 drivers/net/ethernet/mscc/ocelot.c                         |   19 +
 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c    |   12 
 drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c          |    2 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c          |   13 
 drivers/net/mdio/mdio-aspeed.c                             |    1 
 drivers/net/phy/marvell.c                                  |   17 -
 drivers/net/usb/ax88179_178a.c                             |   68 ++---
 drivers/net/veth.c                                         |   13 
 drivers/nvme/host/pci.c                                    |    3 
 drivers/nvme/host/tcp.c                                    |   10 
 drivers/pci/pcie/portdrv_core.c                            |   47 +--
 drivers/phy/amlogic/phy-meson-axg-mipi-dphy.c              |    3 
 drivers/phy/broadcom/Kconfig                               |    3 
 drivers/phy/phy-core-mipi-dphy.c                           |    4 
 drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c           |    3 
 drivers/phy/st/phy-stm32-usbphyc.c                         |    2 
 drivers/phy/ti/phy-j721e-wiz.c                             |    1 
 drivers/phy/xilinx/phy-zynqmp.c                            |   11 
 drivers/s390/cio/device.c                                  |    2 
 drivers/scsi/lpfc/lpfc.h                                   |   13 
 drivers/scsi/lpfc/lpfc_attr.c                              |    4 
 drivers/scsi/lpfc/lpfc_init.c                              |    2 
 drivers/scsi/lpfc/lpfc_sli.c                               |    8 
 drivers/scsi/myrs.c                                        |    3 
 drivers/scsi/pm8001/pm80xx_hwi.c                           |   16 +
 drivers/scsi/pm8001/pm80xx_hwi.h                           |    6 
 drivers/scsi/qedf/qedf_io.c                                |    1 
 drivers/scsi/qedf/qedf_main.c                              |    7 
 drivers/scsi/ufs/ufshcd-pltfrm.c                           |    7 
 drivers/scsi/ufs/ufshcd.c                                  |    9 
 drivers/scsi/ufs/ufshci.h                                  |    3 
 drivers/staging/fbtft/fbtft.h                              |    5 
 drivers/target/iscsi/iscsi_target_tpg.c                    |    3 
 drivers/tee/optee/ffa_abi.c                                |   15 -
 drivers/tee/optee/smc_abi.c                                |   10 
 drivers/tty/n_tty.c                                        |    4 
 drivers/tty/vt/vt_ioctl.c                                  |    3 
 drivers/usb/common/ulpi.c                                  |   10 
 drivers/usb/dwc2/gadget.c                                  |    2 
 drivers/usb/dwc3/gadget.c                                  |   13 
 drivers/usb/gadget/composite.c                             |    3 
 drivers/usb/gadget/function/f_fs.c                         |   56 +++-
 drivers/usb/gadget/function/f_uac2.c                       |    4 
 drivers/usb/gadget/function/rndis.c                        |    9 
 drivers/usb/gadget/legacy/raw_gadget.c                     |    2 
 drivers/usb/gadget/udc/renesas_usb3.c                      |    2 
 drivers/usb/serial/ch341.c                                 |    1 
 drivers/usb/serial/cp210x.c                                |    2 
 drivers/usb/serial/ftdi_sio.c                              |    3 
 drivers/usb/serial/ftdi_sio_ids.h                          |    3 
 drivers/usb/serial/option.c                                |    2 
 drivers/video/fbdev/core/fbcon.c                           |    7 
 fs/gfs2/file.c                                             |    7 
 fs/gfs2/glock.c                                            |    3 
 fs/nfs/callback.h                                          |    2 
 fs/nfs/callback_proc.c                                     |    2 
 fs/nfs/callback_xdr.c                                      |   18 -
 fs/nfs/client.c                                            |    9 
 fs/nfs/dir.c                                               |   44 +--
 fs/nfs/nfs4_fs.h                                           |   12 
 fs/nfs/nfs4client.c                                        |    5 
 fs/nfs/nfs4namespace.c                                     |   19 -
 fs/nfs/nfs4proc.c                                          |   96 +++++--
 fs/nfs/nfs4state.c                                         |    6 
 fs/nfs/nfs4xdr.c                                           |    9 
 fs/nfsd/nfs3proc.c                                         |   13 
 fs/nfsd/nfs3xdr.c                                          |    2 
 fs/nfsd/nfs4proc.c                                         |   13 
 fs/nfsd/nfs4xdr.c                                          |    8 
 fs/nfsd/trace.h                                            |   14 -
 fs/nfsd/vfs.c                                              |    4 
 fs/proc/task_mmu.c                                         |   40 ++
 include/linux/memcontrol.h                                 |    5 
 include/linux/nfs_fs.h                                     |    5 
 include/linux/nfs_fs_sb.h                                  |    2 
 include/linux/nfs_xdr.h                                    |    1 
 include/linux/suspend.h                                    |   15 -
 include/net/dst_metadata.h                                 |   14 -
 include/uapi/linux/netfilter/nf_conntrack_common.h         |    2 
 kernel/auditsc.c                                           |    2 
 kernel/events/core.c                                       |   16 -
 kernel/power/main.c                                        |    5 
 kernel/power/process.c                                     |    2 
 kernel/power/snapshot.c                                    |   21 -
 kernel/power/suspend.c                                     |    2 
 kernel/sched/core.c                                        |   12 
 kernel/seccomp.c                                           |   10 
 kernel/signal.c                                            |    5 
 lib/test_kasan.c                                           |    5 
 mm/memcontrol.c                                            |   10 
 mm/vmscan.c                                                |    4 
 net/can/isotp.c                                            |   29 +-
 net/dsa/dsa2.c                                             |   25 -
 net/ipv4/ipmr.c                                            |    2 
 net/ipv4/tcp.c                                             |   33 +-
 net/ipv6/ip6mr.c                                           |    2 
 net/mptcp/pm_netlink.c                                     |    8 
 net/netfilter/nf_conntrack_netlink.c                       |    3 
 net/netfilter/nft_exthdr.c                                 |    2 
 net/netfilter/nft_payload.c                                |    9 
 net/sched/sch_api.c                                        |    2 
 net/sunrpc/clnt.c                                          |    5 
 net/sunrpc/sysfs.c                                         |   46 +--
 net/sunrpc/xprtsock.c                                      |    7 
 net/tipc/name_distr.c                                      |    2 
 scripts/Makefile.extrawarn                                 |    1 
 scripts/kconfig/confdata.c                                 |   12 
 security/integrity/digsig_asymmetric.c                     |   15 -
 security/integrity/ima/ima_fs.c                            |    2 
 security/integrity/ima/ima_policy.c                        |    8 
 security/integrity/ima/ima_template.c                      |   10 
 security/integrity/integrity_audit.c                       |    2 
 virt/kvm/eventfd.c                                         |    8 
 234 files changed, 1804 insertions(+), 854 deletions(-)

Adam Ford (1):
usb: gadget: udc: renesas_usb3: Fix host to USB_ROLE_NONE transition

Al Cooper (1):
phy: broadcom: Kconfig: Fix PHY_BRCM_USB config option

Alex Deucher (3):
drm/amdgpu/display: adjust msleep limit in dp_wait_for_training_aux_rd_interval drm/amdgpu/display: use msleep rather than udelay for long delays drm/amdgpu/display: change pipe policy for DCN 2.0

Alexander Stein (1):
arm64: dts: imx8mq: fix lcdif port node

Amadeusz Sławiński (1):
PM: hibernate: Remove register_nosave_region_late()

Amelie Delaunay (1):
usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend

Andi Kleen (1):
x86/perf: Avoid warning for Arch LBR without XSAVE

Andreas Gruenbacher (1):
Revert "gfs2: check context in gfs2_glock_put"

Andrey Skvortsov (1):
mmc: core: Wait for command setting 'Power Off Notification' bit to complete

Andy Shevchenko (1):
gpiolib: Never return internal error codes to user space

Anna Schumaker (1):
sunrpc: Fix potential race conditions in rpc_sysfs_xprt_state_change()

Anshuman Khandual (5):
arm64: Add Cortex-X2 CPU part definition
arm64: errata: Update ARM64_ERRATUM_[2119858|2224489] with Cortex-X2 ranges
arm64: errata: Add detection for TRBE ignored system register writes
arm64: errata: Add detection for TRBE invalid prohibited states
arm64: errata: Add detection for TRBE trace data corruption

Antoine Tenart (2):
net: do not keep the dst cache when uncloning an skb dst and its metadata
net: fix a memleak when uncloning an skb dst and its metadata

Aurelien Jarno (1):
riscv: fix build with binutils 2.38

Bjorn Helgaas (1):
Revert "PCI/portdrv: Do not setup up IRQs if there are no users"

Bob Peterson (1):
gfs2: Fix gfs2_release for non-writers regression

Brian Norris (1):
drm/rockchip: vop: Correct RK3399 VOP register fields

Cai Huoqing (1):
net: ethernet: litex: Add the dependency on HAS_IOMEM

Cameron Williams (1):
USB: serial: ftdi_sio: add support for Brainboxes US-159/235/320

Changbin Du (1):
riscv: eliminate unreliable __builtin_frame_address(1)

Chia-Wei Wang (1):
docs/ABI: testing: aspeed-uart-routing: Escape asterisk

Christoph Niedermaier (1):
drm/panel: simple: Assign data from panel_dpi_probe() correctly

Christophe Leroy (1):
powerpc/fixmap: Fix VM debug warning on unmap

Chuck Lever (5):
NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes
NFSD: Fix ia_size underflow
NFSD: Clamp WRITE offsets
NFSD: Fix offset type in I/O trace points
NFSD: Fix the behavior of READ near OFFSET_MAX

Colin Foster (2):
net: dsa: ocelot: seville: utilize of_mdiobus_register
net: mscc: ocelot: fix mutex lock error during ethtool stats read

Dan Carpenter (2):
phy: stm32: fix a refcount leak in stm32_usbphyc_pll_enable()
ice: fix an error code in ice_cfg_phy_fec()

Dave Ertman (2):
ice: Fix KASAN error in LAG NETDEV_UNREGISTER handler
ice: Avoid RTNL lock when re-creating auxiliary device

Dave Stevenson (1):
drm/vc4: hdmi: Allow DBLCLK modes even if horz timing is odd.

Dongjin Kim (2):
arm64: dts: meson-g12b-odroid-n2: fix typo 'dio2133'
arm64: dts: meson-sm1-bananapi-m5: fix wrong GPIO domain for GPIOE_2

Eric Biggers (1):
ima: fix reference leak in asymmetric_verify()

Eric Dumazet (3):
tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY) case ipmr,ip6mr: acquire RTNL before calling ip[6]mr_free_table() on failure path
veth: fix races around rq->rx_notify_masked

Fabio Estevam (2):
ARM: dts: imx23-evk: Remove MX23_PAD_SSP1_DETECT from hog group
ARM: dts: imx6qdl-udoo: Properly describe the SD card detect

Fabrice Gasnier (1):
usb: dwc2: drd: fix soft connect when gadget is unconfigured

Florian Westphal (2):
netfilter: nft_payload: don't allow th access for fragments
netfilter: ctnetlink: disable helper autoassign

Geert Uytterhoeven (1):
gpio: aggregator: Fix calling into sleeping GPIO controllers

Greg Kroah-Hartman (3):
Revert "usb: dwc2: drd: fix soft connect when gadget is unconfigured"
usb: gadget: rndis: check size of RNDIS_MSG_SET command Linux 5.16.10

Helge Deller (1):
fbcon: Avoid 'cap' set but not used warning

Hou Wenlong (1):
KVM: eventfd: Fix false positive RCU usage warning

Ilya Leoshkevich (2):
s390/module: test loading modules with a lot of relocations s390/module: fix building test_modules_helpers.o with clang

Jakob Koschel (2):
vt_ioctl: fix array_index_nospec in vt_setactivate
vt_ioctl: add array_index_nospec to VT_ACTIVATE

James Clark (1):
perf: Always wake the parent event

James Morse (1):
arm64: cpufeature: List early Cortex-A510 parts as having broken dbm

James Smart (2):
scsi: lpfc: Remove NVMe support if kernel has NVME_FC disabled
scsi: lpfc: Reduce log messages seen after firmware download

Jann Horn (2):
net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup
usb: raw-gadget: fix handling of dual-direction-capable endpoints

Jens Wiklander (1):
optee: add error checks in optee_ffa_do_call_with_arg()

Jerome Forissier (1):
tee: optee: do not check memref size on return from Secure World

Jesse Brandeburg (1):
ice: fix IPIP and SIT TSO offload

Jiasheng Jiang (2):
mmc: sdhci-of-esdhc: Check for error num after setting mask
mmc: sh_mmcif: Check for null res pointer

Jim Mattson (1):
KVM: x86: Report deprecated x87 features in supported CPUID

Jisheng Zhang (2):
net: stmmac: reduce unnecessary wakeups from eee sw timer
net: stmmac: dwmac-sun8i: use return val of readl_poll_timeout()

Joel Stanley (1):
net: mdio: aspeed: Add missing MODULE_DEVICE_TABLE

Johan Hovold (2):

      USB: serial: cp210x: add NCR Retail IO box id
      USB: serial: cp210x: add CPI Bulk Coin Recycler id

John Garry (1):
scsi: pm8001: Fix bogus FW crash for maxcpus=1

Jon Maloy (1):
tipc: rate limit warning for received illegal binding update

Jonas Malaco (1):
eeprom: ee1004: limit i2c reads to I2C_SMBUS_BLOCK_MAX

Kees Cook (2):
seccomp: Invalidate seccomp mode to catch death failures
signal: HANDLER_EXIT should clear SIGNAL_UNKILLABLE

Kishen Maloor (1):
mptcp: netlink: process IPv6 addrs in creating listening sockets

Kishon Vijay Abraham I (1):
phy: ti: Fix missing sentinel for clk_div_table

Kiwoong Kim (2):
scsi: ufs: Use generic error code in ufshcd_set_dev_pwr_mode()
scsi: ufs: Treat link loss as fatal error

Krzysztof Kozlowski (1):
ARM: socfpga: fix missing RESET_CONTROLLER

Linus Walleij (1):
ARM: dts: Fix boot regression on Skomer

Liu Ying (1):
phy: dphy: Correct clk_pre parameter

Louis Peens (1):
nfp: flower: fix ida_idx not being released

Lutz Koschorreck (2):
arm64: dts: meson-sm1-odroid: use correct enable-gpio pin for tf-io regulator
arm64: dts: meson-sm1-odroid: fix boot loop after reboot

Mahesh Bandewar (1):
bonding: pair enable_port with slave_arr_updates

Marco Elver (1):
kasan: test: fix compatibility with FORTIFY_SOURCE

Mark Brown (1):

      arm64: Enable Cortex-A510 erratum 2051678 by default

Martin Blumenstingl (3):
ARM: dts: meson: Fix the UART compatible strings
ARM: dts: meson8: Fix the UART device-tree schema validation
ARM: dts: meson8b: Fix the UART device-tree schema validation

Martin Kepplinger (1):
arm64: dts: imx8mq: fix mipi_csi bidirectional port numbers

Masahiro Yamada (1):
kconfig: fix missing fclose() on error paths

Mathias Krause (2):
misc: fastrpc: avoid double fput() on failed usercopy
iio: buffer: Fix file related error handling in IIO_BUFFER_GET_FD_IOCTL

Mel Gorman (1):
mm: vmscan: remove deadlock due to throttling failing to make progress

Myrtle Shah (1):
riscv: Fix XIP_FIXUP_FLASH_OFFSET

Nathan Chancellor (1):
Makefile.extrawarn: Move -Wunaligned-access to W=1

NeilBrown (2):
NFS: change nfs_access_get_cached to only report the mask
SUNRPC: lock against ->sock changing during sysfs read

Niklas Cassel (1):
gpio: sifive: use the correct register to read output values

Olga Kornievskaia (7):
NFSv4 only print the label when its queried
NFSv4 remove zero number of fs_locations entries error check NFSv4 store server support for fs_location attribute NFSv4.1 query for fs_location attr on a new file system NFSv4 expose nfs_parse_server_name function
NFSv4 handle port presence in fs_location server string SUNRPC allow for unspecified transport time in rpc_clnt_add_xprt

Oliver Hartkopp (2):
can: isotp: fix potential CAN frame reception race in isotp_rcv()
can: isotp: fix error path in isotp_sendmsg() to unlock wait queue

Padmanabha Srinivasaiah (1):
drm/vc4: Fix deadlock on DSI device attach error

Palmer Dabbelt (1):
riscv/mm: Add XIP_FIXUP for phys_ram_base

Paul Moore (1):
audit: don't deref the syscall args when checking the openat2 open_how::flags

Pavel Hofman (1):
usb: gadget: f_uac2: Define specific wTerminalType

Pavel Parkhomenko (2):
net: phy: marvell: Fix RGMII Tx/Rx delays setting in 88e1121-compatible PHYs
net: phy: marvell: Fix MDI-x polarity setting in 88e1118-compatible PHYs

Pawel Dembicki (1):
USB: serial: option: add ZTE MF286D modem

Peter Zijlstra (1):
sched: Avoid double preemption in __cond_resched_*lock*()

Pingfan Liu (1):
riscv: cpu-hotplug: clear cpu from numa map when teardown

Rafael J. Wysocki (2):
PM: s2idle: ACPI: Fix wakeup interrupts handling
ACPI: PM: s2idle: Cancel wakeup before dispatching EC GPE

Raju Rangoju (1):
net: amd-xgbe: disable interrupts during pci removal

Raymond Jay Golo (1):
drm: panel-orientation-quirks: Add quirk for the 1Netbook OneXPlayer

Reinette Chatre (1):
x86/sgx: Silence softlockup detection when releasing large enclaves

Rob Herring (1):
ARM: dts: imx7ulp: Fix 'assigned-clocks-parents' typo

Robert Hancock (1):
phy: xilinx: zynqmp: Fix bus width setting for SGMII

Robert-Ionut Alexa (1):
dpaa2-eth: unregister the netdev before disconnecting from the PHY

Roberto Sassu (1):
ima: Allow template selection with ima_template[_fmt]= after ima_hash=

Robin Murphy (1):
ACPI/IORT: Check node revision for PMCG resources

Roman Gushchin (1):
mm: memcg: synchronize objcg lists with a dedicated spinlock

Sagi Grimberg (1):
nvme-tcp: fix bogus request completion when failing to send AER

Samuel Mendoza-Jonas (1):
ixgbevf: Require large buffers for build_skb on 82599VF

Samuel Thibault (1):
speakup-dectlk: Restore pitch setting

Sander Vanheule (1):
irqchip/realtek-rtl: Service all pending interrupts

Saurav Kashyap (3):
scsi: qedf: Add stag_work to all the vports
scsi: qedf: Fix refcount issue when LOGO is received during TMF
scsi: qedf: Change context reset messages to ratelimited

Sean Anderson (2):
usb: ulpi: Move of_node_put to ulpi_dev_release
usb: ulpi: Call of_node_put correctly

Sean Christopherson (2):
KVM: SVM: Don't kill SEV guest if SMAP erratum triggers in usermode
KVM: VMX: Set vmcs.PENDING_DBG.BS on #DB in STI/MOVSS blocking shadow

Slark Xiao (2):
bus: mhi: pci_generic: Add mru_default for Foxconn SDX55
bus: mhi: pci_generic: Add mru_default for Cinterion MV31-W

Song Liu (1):
perf: Fix list corruption in perf_cgroup_switch()

Steen Hegelund (1):
net: sparx5: Fix get_stat64 crash in tcpdump

Stefan Berger (2):
ima: Remove ima_policy file before directory
ima: Do not print policy rule with inactive LSM labels

Stephan Brunner (1):
USB: serial: ch341: add support for GW Instek USB2.0-Serial devices

Stephane Eranian (1):
perf/x86/rapl: fix AMD event handling

Sukadev Bhattiprolu (1):
ibmvnic: don't release napi in __ibmvnic_open()

Szymon Heidrich (1):
USB: gadget: validate interface OS descriptor requests

TATSUKAWA KOSUKE (立川 江介) (1):
n_tty: wake up poll(POLLRDNORM) on receiving data

Tao Liu (1):
gve: Recording rx queue before sending to napi

Thomas Bogendoerfer (2):
MIPS: Fix build error due to PTR used in more places
MIPS: octeon: Fix missed PTR->PTR_WD conversion

Tong Zhang (1):
scsi: myrs: Fix crash in error case

Tony Lindgren (1):
ARM: dts: Fix timer regression for beagleboard revision c

Trond Myklebust (3):
NFS: Fix initialisation of nfs_client cl_flags field NFSv4.1: Fix uninitialised variable in devicenotify
NFS: Avoid duplicate uncached readdir calls on eof

Udipto Goswami (2):
usb: f_fs: Fix use-after-free for epfile
usb: dwc3: gadget: Prevent core from processing stale TRBs

Uwe Kleine-König (1):
staging: fbtft: Fix error path in fbtft_driver_module_init()

Victor Nogueira (1):
net: sched: Clarify error message when qdisc kind is unknown

Vijayanand Jitta (1):
iommu: Fix potential use-after-free during probe

Ville Syrjälä (4):
drm/i915: Disable DRRS on IVB/HSW port != A
drm/i915: Allow !join_mbus cases for adlp+ dbuf configuration drm/i915: Populate pipe dbuf slices more accurately during readout drm/i915: Workaround broken BIOS DBUF configuration on TGL/RKL

Vineeth Vijayan (1):
s390/cio: verify the driver availability for path_event call

Vitaly Kuznetsov (2):
KVM: nVMX: eVMCS: Filter out VM_EXIT_SAVE_VMX_PREEMPTION_TIMER
KVM: nVMX: Also filter MSR_IA32_VMX_TRUE_PINBASED_CTLS when eVMCS

Vladimir Oltean (10):
net: mscc: ocelot: fix all IP traffic getting trapped to CPU with PTP over IP
net: dsa: mv88e6xxx: don't use devres for mdiobus
net: dsa: ar9331: register the mdiobus under devres
net: dsa: bcm_sf2: don't use devres for mdiobus
net: dsa: felix: don't use devres for mdiobus
net: dsa: seville: register the mdiobus under devres
net: dsa: mt7530: fix kernel bug in mdiobus_free() when unbinding
net: dsa: lantiq_gswip: don't use devres for mdiobus
net: dsa: fix panic when DSA master device unbinds on shutdown
net: dsa: mv88e6xxx: fix use-after-free in mv88e6xxx_mdios_unregister

Wu Zheng (1):
nvme-pci: add the IGNORE_DEV_SUBNQN quirk for Intel P4500/P4600 SSDs

Xiaoke Wang (3):
integrity: check the return value of audit_log_start()
nfs: nfs4clinet: check the return value of kstrdup()
scsi: ufs: ufshcd-pltfrm: Check the return value of devm_kstrdup()

Xiyu Yang (1):
net/sunrpc: fix reference count leaks in rpc_sysfs_xprt_state_change

Yang Shi (1):
fs/proc: task_mmu.c: don't read mapcount for migration entry

Yang Wang (1):
drm/amd/pm: fix hwmon node of power1_label create issue

Zhan Liu (1):
drm/amd/display: Correct MPC split policy for DCN301

ZouMingzhe (1):
scsi: target: iscsi: Make sure the np under each tpg is unique

[email protected] (2):
NFS: Don't overfill uncached readdir pages
NFS: Don't skip directory entries when doing uncached readdir

author maintainer
#1 lore raw
Documentation/ABI/testing/sysfs-driver-aspeed-uart-routing +3 -3
index b363827da437..910df0e5815a 100644
@@ -1,4 +1,4 @@
-What:		/sys/bus/platform/drivers/aspeed-uart-routing/*/uart*
+What:		/sys/bus/platform/drivers/aspeed-uart-routing/\*/uart\*
 Date:		September 2021
 Contact:	Oskar Senft <[email protected]>
 		Chia-Wei Wang <[email protected]>
@@ -9,7 +9,7 @@ Description:	Selects the RX source of the UARTx device.
 		depends on the selected file.
 
 		e.g.
-		cat /sys/bus/platform/drivers/aspeed-uart-routing/*.uart_routing/uart1
+		cat /sys/bus/platform/drivers/aspeed-uart-routing/\*.uart_routing/uart1
 		[io1] io2 io3 io4 uart2 uart3 uart4 io6
 
 		In this case, UART1 gets its input from IO1 (physical serial port 1).
@@ -17,7 +17,7 @@ Description:	Selects the RX source of the UARTx device.
 Users:		OpenBMC.  Proposed changes should be mailed to
 		[email protected]
 
-What:		/sys/bus/platform/drivers/aspeed-uart-routing/*/io*
+What:		/sys/bus/platform/drivers/aspeed-uart-routing/\*/io\*
 Date:		September 2021
 Contact:	Oskar Senft <[email protected]>
 		Chia-Wei Wang <[email protected]>
Documentation/arm64/silicon-errata.rst +12 -0
index 5342e895fb60..0ec7b7f1524b 100644
@@ -52,6 +52,12 @@ stable kernels.
 | Allwinner      | A64/R18         | UNKNOWN1        | SUN50I_ERRATUM_UNKNOWN1     |
 +----------------+-----------------+-----------------+-----------------------------+
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A510     | #2064142        | ARM64_ERRATUM_2064142       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A510     | #2038923        | ARM64_ERRATUM_2038923       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A510     | #1902691        | ARM64_ERRATUM_1902691       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A53      | #826319         | ARM64_ERRATUM_826319        |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A53      | #827319         | ARM64_ERRATUM_827319        |
@@ -92,12 +98,18 @@ stable kernels.
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A77      | #1508412        | ARM64_ERRATUM_1508412       |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A510     | #2051678        | ARM64_ERRATUM_2051678       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A710     | #2119858        | ARM64_ERRATUM_2119858       |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A710     | #2054223        | ARM64_ERRATUM_2054223       |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A710     | #2224489        | ARM64_ERRATUM_2224489       |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-X2       | #2119858        | ARM64_ERRATUM_2119858       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-X2       | #2224489        | ARM64_ERRATUM_2224489       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Neoverse-N1     | #1188873,1418040| ARM64_ERRATUM_1418040       |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Neoverse-N1     | #1349291        | N/A                         |
Documentation/devicetree/bindings/arm/omap/omap.txt +3 -0
index e77635c5422c..fa8b31660cad 100644
@@ -119,6 +119,9 @@ Boards (incomplete list of examples):
 - OMAP3 BeagleBoard : Low cost community board
   compatible = "ti,omap3-beagle", "ti,omap3430", "ti,omap3"
 
+- OMAP3 BeagleBoard A to B4 : Early BeagleBoard revisions A to B4 with a timer quirk
+  compatible = "ti,omap3-beagle-ab4", "ti,omap3-beagle", "ti,omap3430", "ti,omap3"
+
 - OMAP3 Tobi with Overo : Commercial expansion board with daughter board
   compatible = "gumstix,omap3-overo-tobi", "gumstix,omap3-overo", "ti,omap3430", "ti,omap3"
 
Makefile +1 -1
index 1f32bb42f328..36bbff16530b 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 16
-SUBLEVEL = 9
+SUBLEVEL = 10
 EXTRAVERSION =
 NAME = Gobble Gobble
 
arch/arm/boot/dts/Makefile +1 -0
index 0de64f237cd8..a387ebe8919b 100644
@@ -794,6 +794,7 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
 	logicpd-som-lv-37xx-devkit.dtb \
 	omap3430-sdp.dtb \
 	omap3-beagle.dtb \
+	omap3-beagle-ab4.dtb \
 	omap3-beagle-xm.dtb \
 	omap3-beagle-xm-ab.dtb \
 	omap3-cm-t3517.dtb \
arch/arm/boot/dts/imx23-evk.dts +0 -1
index 8cbaf1c81174..3b609d987d88 100644
@@ -79,7 +79,6 @@ hog_pins_a: hog@0 {
 						MX23_PAD_LCD_RESET__GPIO_1_18
 						MX23_PAD_PWM3__GPIO_1_29
 						MX23_PAD_PWM4__GPIO_1_30
-						MX23_PAD_SSP1_DETECT__SSP1_DETECT
 					>;
 					fsl,drive-strength = <MXS_DRIVE_4mA>;
 					fsl,voltage = <MXS_VOLTAGE_HIGH>;
arch/arm/boot/dts/imx6qdl-udoo.dtsi +4 -1
index d07d8f83456d..ccfa8e320be6 100644
@@ -5,6 +5,8 @@
  * Author: Fabio Estevam <[email protected]>
  */
 
+#include <dt-bindings/gpio/gpio.h>
+
 / {
 	aliases {
 		backlight = &backlight;
@@ -226,6 +228,7 @@ MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
 				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
 				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
 				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
+				MX6QDL_PAD_SD3_DAT5__GPIO7_IO00		0x1b0b0
 			>;
 		};
 
@@ -304,7 +307,7 @@ &usbotg {
 &usdhc3 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_usdhc3>;
-	non-removable;
+	cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
 	status = "okay";
 };
 
arch/arm/boot/dts/imx7ulp.dtsi +1 -1
index b7ea37ad4e55..bcec98b96411 100644
@@ -259,7 +259,7 @@ wdog1: watchdog@403d0000 {
 			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&pcc2 IMX7ULP_CLK_WDG1>;
 			assigned-clocks = <&pcc2 IMX7ULP_CLK_WDG1>;
-			assigned-clocks-parents = <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>;
+			assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>;
 			timeout-sec = <40>;
 		};
 
arch/arm/boot/dts/meson.dtsi +4 -4
index 3be7cba603d5..26eaba3fa96f 100644
@@ -59,7 +59,7 @@ hwrng: rng@8100 {
 			};
 
 			uart_A: serial@84c0 {
-				compatible = "amlogic,meson6-uart", "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart";
 				reg = <0x84c0 0x18>;
 				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
 				fifo-size = <128>;
@@ -67,7 +67,7 @@ uart_A: serial@84c0 {
 			};
 
 			uart_B: serial@84dc {
-				compatible = "amlogic,meson6-uart", "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart";
 				reg = <0x84dc 0x18>;
 				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
 				status = "disabled";
@@ -105,7 +105,7 @@ saradc: adc@8680 {
 			};
 
 			uart_C: serial@8700 {
-				compatible = "amlogic,meson6-uart", "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart";
 				reg = <0x8700 0x18>;
 				interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
 				status = "disabled";
@@ -228,7 +228,7 @@ ir_receiver: ir-receiver@480 {
 			};
 
 			uart_AO: serial@4c0 {
-				compatible = "amlogic,meson6-uart", "amlogic,meson-ao-uart", "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart", "amlogic,meson-ao-uart";
 				reg = <0x4c0 0x18>;
 				interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
 				status = "disabled";
arch/arm/boot/dts/meson8.dtsi +12 -12
index f80ddc98d3a2..9997a5d0333a 100644
@@ -736,27 +736,27 @@ &timer_abcde {
 };
 
 &uart_AO {
-	compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
-	clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_CLK81>;
-	clock-names = "baud", "xtal", "pclk";
+	compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart";
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_A {
-	compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
-	clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART0>;
-	clock-names = "baud", "xtal", "pclk";
+	compatible = "amlogic,meson8-uart";
+	clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_B {
-	compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
-	clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART1>;
-	clock-names = "baud", "xtal", "pclk";
+	compatible = "amlogic,meson8-uart";
+	clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_C {
-	compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
-	clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART2>;
-	clock-names = "baud", "xtal", "pclk";
+	compatible = "amlogic,meson8-uart";
+	clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &usb0 {
arch/arm/boot/dts/meson8b.dtsi +12 -12
index b49b7cbaed4e..94f1c03decce 100644
@@ -724,27 +724,27 @@ &timer_abcde {
 };
 
 &uart_AO {
-	compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
-	clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_CLK81>;
-	clock-names = "baud", "xtal", "pclk";
+	compatible = "amlogic,meson8b-uart", "amlogic,meson-ao-uart";
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_A {
-	compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
-	clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART0>;
-	clock-names = "baud", "xtal", "pclk";
+	compatible = "amlogic,meson8b-uart";
+	clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_B {
-	compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
-	clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART1>;
-	clock-names = "baud", "xtal", "pclk";
+	compatible = "amlogic,meson8b-uart";
+	clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_C {
-	compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
-	clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART2>;
-	clock-names = "baud", "xtal", "pclk";
+	compatible = "amlogic,meson8b-uart";
+	clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &usb0 {
arch/arm/boot/dts/omap3-beagle-ab4.dts new file +47 -0

47 lines not on this page · raw message

arch/arm/boot/dts/omap3-beagle.dts +0 -33
index f9f34b8458e9..0548b391334f 100644
@@ -304,39 +304,6 @@ &usbhsehci {
 	phys = <0 &hsusb2_phy>;
 };
 
-/* 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>;
-	};
-};
-
 &twl_gpio {
 	ti,use-leds;
 	/* pullups: BIT(1) */
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts +0 -4
index 580ca497f312..f8c5899fbdba 100644
@@ -185,10 +185,6 @@ mmc@80126000 {
 			cap-sd-highspeed;
 			cap-mmc-highspeed;
 			/* All direction control is used */
-			st,sig-dir-cmd;
-			st,sig-dir-dat0;
-			st,sig-dir-dat2;
-			st,sig-dir-dat31;
 			st,sig-pin-fbclk;
 			full-pwr-cycle;
 			vmmc-supply = <&ab8500_ldo_aux3_reg>;
arch/arm/mach-socfpga/Kconfig +2 -0
index 43ddec677c0b..594edf9bbea4 100644
@@ -2,6 +2,7 @@
 menuconfig ARCH_INTEL_SOCFPGA
 	bool "Altera SOCFPGA family"
 	depends on ARCH_MULTI_V7
+	select ARCH_HAS_RESET_CONTROLLER
 	select ARCH_SUPPORTS_BIG_ENDIAN
 	select ARM_AMBA
 	select ARM_GIC
@@ -18,6 +19,7 @@ menuconfig ARCH_INTEL_SOCFPGA
 	select PL310_ERRATA_727915
 	select PL310_ERRATA_753970 if PL310
 	select PL310_ERRATA_769419
+	select RESET_CONTROLLER
 
 if ARCH_INTEL_SOCFPGA
 config SOCFPGA_SUSPEND
arch/arm64/Kconfig +76 -6

111 lines not on this page · raw message

arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +2 -2
index 3e968b244191..fd3fa82e4c33 100644
@@ -17,7 +17,7 @@ aliases {
 		rtc1 = &vrtc;
 	};
 
-	dioo2133: audio-amplifier-0 {
+	dio2133: audio-amplifier-0 {
 		compatible = "simple-audio-amplifier";
 		enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
 		VCC-supply = <&vcc_5v>;
@@ -219,7 +219,7 @@ sound {
 		audio-widgets = "Line", "Lineout";
 		audio-aux-devs = <&tdmout_b>, <&tdmout_c>, <&tdmin_a>,
 				 <&tdmin_b>, <&tdmin_c>, <&tdmin_lb>,
-				 <&dioo2133>;
+				 <&dio2133>;
 		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
 				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
 				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts +1 -1
index 212c6aa5a3b8..5751c48620ed 100644
@@ -123,7 +123,7 @@ vddio_c: regulator-vddio_c {
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <3300000>;
 
-		enable-gpio = <&gpio GPIOE_2 GPIO_ACTIVE_HIGH>;
+		enable-gpio = <&gpio_ao GPIOE_2 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
 		regulator-always-on;
 
arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi +1 -1
index 5779e70caccd..76ad052fbf0c 100644
@@ -48,7 +48,7 @@ tf_io: gpio-regulator-tf_io {
 		regulator-max-microvolt = <3300000>;
 		vin-supply = <&vcc_5v>;
 
-		enable-gpio = <&gpio GPIOE_2 GPIO_ACTIVE_HIGH>;
+		enable-gpio = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>;
 		enable-active-high;
 		regulator-always-on;
 
arch/arm64/boot/dts/freescale/imx8mq.dtsi +5 -5
index 71bf497f99c2..58e43eb4151e 100644
@@ -526,7 +526,7 @@ lcdif: lcd-controller@30320000 {
 				assigned-clock-rates = <0>, <0>, <0>, <594000000>;
 				status = "disabled";
 
-				port@0 {
+				port {
 					lcdif_mipi_dsi: endpoint {
 						remote-endpoint = <&mipi_dsi_lcdif_in>;
 					};
@@ -1123,8 +1123,8 @@ ports {
 					#address-cells = <1>;
 					#size-cells = <0>;
 
-					port@0 {
-						reg = <0>;
+					port@1 {
+						reg = <1>;
 
 						csi1_mipi_ep: endpoint {
 							remote-endpoint = <&csi1_ep>;
@@ -1175,8 +1175,8 @@ ports {
 					#address-cells = <1>;
 					#size-cells = <0>;
 
-					port@0 {
-						reg = <0>;
+					port@1 {
+						reg = <1>;
 
 						csi2_mipi_ep: endpoint {
 							remote-endpoint = <&csi2_ep>;
arch/arm64/include/asm/cputype.h +2 -0
index e8fdc10395b6..999b9149f856 100644
@@ -75,6 +75,7 @@
 #define ARM_CPU_PART_CORTEX_A77		0xD0D
 #define ARM_CPU_PART_CORTEX_A510	0xD46
 #define ARM_CPU_PART_CORTEX_A710	0xD47
+#define ARM_CPU_PART_CORTEX_X2		0xD48
 #define ARM_CPU_PART_NEOVERSE_N2	0xD49
 
 #define APM_CPU_PART_POTENZA		0x000
@@ -118,6 +119,7 @@
 #define MIDR_CORTEX_A77	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A77)
 #define MIDR_CORTEX_A510 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A510)
 #define MIDR_CORTEX_A710 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710)
+#define MIDR_CORTEX_X2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X2)
 #define MIDR_NEOVERSE_N2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N2)
 #define MIDR_THUNDERX	MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)
 #define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)
arch/arm64/kernel/cpu_errata.c +29 -0
index 9e1c1aef9ebd..066098198c24 100644
@@ -347,6 +347,7 @@ static const struct midr_range trbe_overwrite_fill_mode_cpus[] = {
 #endif
 #ifdef CONFIG_ARM64_ERRATUM_2119858
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
+	MIDR_RANGE(MIDR_CORTEX_X2, 0, 0, 2, 0),
 #endif
 	{},
 };
@@ -371,6 +372,7 @@ static struct midr_range trbe_write_out_of_range_cpus[] = {
 #endif
 #ifdef CONFIG_ARM64_ERRATUM_2224489
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
+	MIDR_RANGE(MIDR_CORTEX_X2, 0, 0, 2, 0),
 #endif
 	{},
 };
@@ -597,6 +599,33 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
 		.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
 		CAP_MIDR_RANGE_LIST(trbe_write_out_of_range_cpus),
 	},
+#endif
+#ifdef CONFIG_ARM64_ERRATUM_2064142
+	{
+		.desc = "ARM erratum 2064142",
+		.capability = ARM64_WORKAROUND_2064142,
+
+		/* Cortex-A510 r0p0 - r0p2 */
+		ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2)
+	},
+#endif
+#ifdef CONFIG_ARM64_ERRATUM_2038923
+	{
+		.desc = "ARM erratum 2038923",
+		.capability = ARM64_WORKAROUND_2038923,
+
+		/* Cortex-A510 r0p0 - r0p2 */
+		ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2)
+	},
+#endif
+#ifdef CONFIG_ARM64_ERRATUM_1902691
+	{
+		.desc = "ARM erratum 1902691",
+		.capability = ARM64_WORKAROUND_1902691,
+
+		/* Cortex-A510 r0p0 - r0p1 */
+		ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 1)
+	},
 #endif
 	{
 	}
arch/arm64/kernel/cpufeature.c +3 -0
index 6f3e677d88f1..d18b953c078d 100644
@@ -1634,6 +1634,9 @@ static bool cpu_has_broken_dbm(void)
 		MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
 		/* Kryo4xx Silver (rdpe => r1p0) */
 		MIDR_REV(MIDR_QCOM_KRYO_4XX_SILVER, 0xd, 0xe),
+#endif
+#ifdef CONFIG_ARM64_ERRATUM_2051678
+		MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2),
 #endif
 		{},
 	};
arch/arm64/tools/cpucaps +3 -0
index 870c39537dd0..e7719e8f18de 100644
@@ -55,6 +55,9 @@ WORKAROUND_1418040
 WORKAROUND_1463225
 WORKAROUND_1508412
 WORKAROUND_1542419
+WORKAROUND_2064142
+WORKAROUND_2038923
+WORKAROUND_1902691
 WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 WORKAROUND_TSB_FLUSH_FAILURE
 WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
arch/mips/cavium-octeon/octeon-memcpy.S +1 -1
index 0a515cde1c18..25860fba6218 100644
@@ -74,7 +74,7 @@
 #define EXC(inst_reg,addr,handler)		\
 9:	inst_reg, addr;				\
 	.section __ex_table,"a";		\
-	PTR	9b, handler;			\
+	PTR_WD	9b, handler;			\
 	.previous
 
 /*
arch/mips/include/asm/asm.h +2 -2
index 2f8ce94ebaaf..cc69f1deb1ca 100644
@@ -276,7 +276,7 @@ symbol		=	value
 
 #define PTR_SCALESHIFT	2
 
-#define PTR		.word
+#define PTR_WD		.word
 #define PTRSIZE		4
 #define PTRLOG		2
 #endif
@@ -301,7 +301,7 @@ symbol		=	value
 
 #define PTR_SCALESHIFT	3
 
-#define PTR		.dword
+#define PTR_WD		.dword
 #define PTRSIZE		8
 #define PTRLOG		3
 #endif
arch/mips/include/asm/ftrace.h +2 -2
index b463f2aa5a61..db497a8167da 100644
@@ -32,7 +32,7 @@ do {							\
 		".previous\n"				\
 							\
 		".section\t__ex_table,\"a\"\n\t"	\
-		STR(PTR) "\t1b, 3b\n\t"			\
+		STR(PTR_WD) "\t1b, 3b\n\t"		\
 		".previous\n"				\
 							\
 		: [tmp_dst] "=&r" (dst), [tmp_err] "=r" (error)\
@@ -54,7 +54,7 @@ do {						\
 		".previous\n"			\
 						\
 		".section\t__ex_table,\"a\"\n\t"\
-		STR(PTR) "\t1b, 3b\n\t"		\
+		STR(PTR_WD) "\t1b, 3b\n\t"	\
 		".previous\n"			\
 						\
 		: [tmp_err] "=r" (error)	\
arch/mips/include/asm/r4kcache.h +2 -2
index af3788589ee6..431a1c9d53fc 100644
@@ -119,7 +119,7 @@ static inline void flush_scache_line(unsigned long addr)
 	"	j	2b			\n"		\
 	"	.previous			\n"		\
 	"	.section __ex_table,\"a\"	\n"		\
-	"	"STR(PTR)" 1b, 3b		\n"		\
+	"	"STR(PTR_WD)" 1b, 3b		\n"		\
 	"	.previous"					\
 	: "+r" (__err)						\
 	: "i" (op), "r" (addr), "i" (-EFAULT));			\
@@ -142,7 +142,7 @@ static inline void flush_scache_line(unsigned long addr)
 	"	j	2b			\n"		\
 	"	.previous			\n"		\
 	"	.section __ex_table,\"a\"	\n"		\
-	"	"STR(PTR)" 1b, 3b		\n"		\
+	"	"STR(PTR_WD)" 1b, 3b		\n"		\
 	"	.previous"					\
 	: "+r" (__err)						\
 	: "i" (op), "r" (addr), "i" (-EFAULT));			\
arch/mips/include/asm/unaligned-emul.h +88 -88

332 lines not on this page · raw message

arch/mips/kernel/mips-r2-to-r6-emul.c +52 -52

176 lines not on this page · raw message

arch/mips/kernel/r2300_fpu.S +3 -3
index cbf6db98cfb3..2748c55820c2 100644
@@ -23,14 +23,14 @@
 #define EX(a,b)							\
 9:	a,##b;							\
 	.section __ex_table,"a";				\
-	PTR	9b,fault;					\
+	PTR_WD	9b,fault;					\
 	.previous
 
 #define EX2(a,b)						\
 9:	a,##b;							\
 	.section __ex_table,"a";				\
-	PTR	9b,fault;					\
-	PTR	9b+4,fault;					\
+	PTR_WD	9b,fault;					\
+	PTR_WD	9b+4,fault;					\
 	.previous
 
 	.set	mips1
arch/mips/kernel/r4k_fpu.S +1 -1
index b91e91106475..2e687c60bc4f 100644
@@ -31,7 +31,7 @@
 .ex\@:	\insn	\reg, \src
 	.set	pop
 	.section __ex_table,"a"
-	PTR	.ex\@, fault
+	PTR_WD	.ex\@, fault
 	.previous
 	.endm
 
arch/mips/kernel/relocate_kernel.S +11 -11
index f3c908abdbb8..cfde14b48fd8 100644
@@ -147,10 +147,10 @@ LEAF(kexec_smp_wait)
 
 kexec_args:
 	EXPORT(kexec_args)
-arg0:	PTR		0x0
-arg1:	PTR		0x0
-arg2:	PTR		0x0
-arg3:	PTR		0x0
+arg0:	PTR_WD		0x0
+arg1:	PTR_WD		0x0
+arg2:	PTR_WD		0x0
+arg3:	PTR_WD		0x0
 	.size	kexec_args,PTRSIZE*4
 
 #ifdef CONFIG_SMP
@@ -161,10 +161,10 @@ arg3:	PTR		0x0
  */
 secondary_kexec_args:
 	EXPORT(secondary_kexec_args)
-s_arg0: PTR		0x0
-s_arg1: PTR		0x0
-s_arg2: PTR		0x0
-s_arg3: PTR		0x0
+s_arg0: PTR_WD		0x0
+s_arg1: PTR_WD		0x0
+s_arg2: PTR_WD		0x0
+s_arg3: PTR_WD		0x0
 	.size	secondary_kexec_args,PTRSIZE*4
 kexec_flag:
 	LONG		0x1
@@ -173,17 +173,17 @@ kexec_flag:
 
 kexec_start_address:
 	EXPORT(kexec_start_address)
-	PTR		0x0
+	PTR_WD		0x0
 	.size		kexec_start_address, PTRSIZE
 
 kexec_indirection_page:
 	EXPORT(kexec_indirection_page)
-	PTR		0
+	PTR_WD		0
 	.size		kexec_indirection_page, PTRSIZE
 
 relocate_new_kernel_end:
 
 relocate_new_kernel_size:
 	EXPORT(relocate_new_kernel_size)
-	PTR		relocate_new_kernel_end - relocate_new_kernel
+	PTR_WD		relocate_new_kernel_end - relocate_new_kernel
 	.size		relocate_new_kernel_size, PTRSIZE
arch/mips/kernel/scall32-o32.S +5 -5
index b1b2e106f711..9bfce5f75f60 100644
@@ -72,10 +72,10 @@ loads_done:
 	.set	pop
 
 	.section __ex_table,"a"
-	PTR	load_a4, bad_stack_a4
-	PTR	load_a5, bad_stack_a5
-	PTR	load_a6, bad_stack_a6
-	PTR	load_a7, bad_stack_a7
+	PTR_WD	load_a4, bad_stack_a4
+	PTR_WD	load_a5, bad_stack_a5
+	PTR_WD	load_a6, bad_stack_a6
+	PTR_WD	load_a7, bad_stack_a7
 	.previous
 
 	lw	t0, TI_FLAGS($28)	# syscall tracing enabled?
@@ -216,7 +216,7 @@ einval: li	v0, -ENOSYS
 #endif /* CONFIG_MIPS_MT_FPAFF */
 
 #define __SYSCALL_WITH_COMPAT(nr, native, compat)	__SYSCALL(nr, native)
-#define __SYSCALL(nr, entry) 	PTR entry
+#define __SYSCALL(nr, entry) 	PTR_WD entry
 	.align	2
 	.type	sys_call_table, @object
 EXPORT(sys_call_table)
arch/mips/kernel/scall64-n32.S +1 -1
index f650c55a17dc..97456b2ca7dc 100644
@@ -101,7 +101,7 @@ not_n32_scall:
 
 	END(handle_sysn32)
 
-#define __SYSCALL(nr, entry)	PTR entry
+#define __SYSCALL(nr, entry)	PTR_WD entry
 	.type	sysn32_call_table, @object
 EXPORT(sysn32_call_table)
 #include <asm/syscall_table_n32.h>
arch/mips/kernel/scall64-n64.S +1 -1
index 5d7bfc65e4d0..5f6ed4b4c399 100644
@@ -109,7 +109,7 @@ illegal_syscall:
 	j	n64_syscall_exit
 	END(handle_sys64)
 
-#define __SYSCALL(nr, entry)	PTR entry
+#define __SYSCALL(nr, entry)	PTR_WD entry
 	.align	3
 	.type	sys_call_table, @object
 EXPORT(sys_call_table)
arch/mips/kernel/scall64-o32.S +5 -5
index cedc8bd88804..d3c2616cba22 100644
@@ -73,10 +73,10 @@ load_a7: lw	a7, 28(t0)		# argument #8 from usp
 loads_done:
 
 	.section __ex_table,"a"
-	PTR	load_a4, bad_stack_a4
-	PTR	load_a5, bad_stack_a5
-	PTR	load_a6, bad_stack_a6
-	PTR	load_a7, bad_stack_a7
+	PTR_WD	load_a4, bad_stack_a4
+	PTR_WD	load_a5, bad_stack_a5
+	PTR_WD	load_a6, bad_stack_a6
+	PTR_WD	load_a7, bad_stack_a7
 	.previous
 
 	li	t1, _TIF_WORK_SYSCALL_ENTRY
@@ -214,7 +214,7 @@ einval: li	v0, -ENOSYS
 	END(sys32_syscall)
 
 #define __SYSCALL_WITH_COMPAT(nr, native, compat)	__SYSCALL(nr, compat)
-#define __SYSCALL(nr, entry)	PTR entry
+#define __SYSCALL(nr, entry)	PTR_WD entry
 	.align	3
 	.type	sys32_call_table,@object
 EXPORT(sys32_call_table)
arch/mips/kernel/syscall.c +4 -4
index 5512cd586e6e..ae93a607ddf7 100644
@@ -122,8 +122,8 @@ static inline int mips_atomic_set(unsigned long addr, unsigned long new)
 		"	j	3b					\n"
 		"	.previous					\n"
 		"	.section __ex_table,\"a\"			\n"
-		"	"STR(PTR)"	1b, 4b				\n"
-		"	"STR(PTR)"	2b, 4b				\n"
+		"	"STR(PTR_WD)"	1b, 4b				\n"
+		"	"STR(PTR_WD)"	2b, 4b				\n"
 		"	.previous					\n"
 		"	.set	pop					\n"
 		: [old] "=&r" (old),
@@ -152,8 +152,8 @@ static inline int mips_atomic_set(unsigned long addr, unsigned long new)
 		"	j	3b					\n"
 		"	.previous					\n"
 		"	.section __ex_table,\"a\"			\n"
-		"	"STR(PTR)"	1b, 5b				\n"
-		"	"STR(PTR)"	2b, 5b				\n"
+		"	"STR(PTR_WD)"	1b, 5b				\n"
+		"	"STR(PTR_WD)"	2b, 5b				\n"
 		"	.previous					\n"
 		"	.set	pop					\n"
 		: [old] "=&r" (old),
arch/mips/lib/csum_partial.S +2 -2
index a46db0807195..7767137c3e49 100644
@@ -347,7 +347,7 @@ EXPORT_SYMBOL(csum_partial)
 	.if \mode == LEGACY_MODE;		\
 9:		insn reg, addr;			\
 		.section __ex_table,"a";	\
-		PTR	9b, .L_exc;		\
+		PTR_WD	9b, .L_exc;		\
 		.previous;			\
 	/* This is enabled in EVA mode */	\
 	.else;					\
@@ -356,7 +356,7 @@ EXPORT_SYMBOL(csum_partial)
 		    ((\to == USEROP) && (type == ST_INSN));	\
 9:			__BUILD_EVA_INSN(insn##e, reg, addr);	\
 			.section __ex_table,"a";		\
-			PTR	9b, .L_exc;			\
+			PTR_WD	9b, .L_exc;			\
 			.previous;				\
 		.else;						\
 			/* EVA without exception */		\
arch/mips/lib/memcpy.S +2 -2
index 277c32296636..18a43f2e29c8 100644
@@ -116,7 +116,7 @@
 	.if \mode == LEGACY_MODE;				\
 9:		insn reg, addr;					\
 		.section __ex_table,"a";			\
-		PTR	9b, handler;				\
+		PTR_WD	9b, handler;				\
 		.previous;					\
 	/* This is assembled in EVA mode */			\
 	.else;							\
@@ -125,7 +125,7 @@
 		    ((\to == USEROP) && (type == ST_INSN));	\
 9:			__BUILD_EVA_INSN(insn##e, reg, addr);	\
 			.section __ex_table,"a";		\
-			PTR	9b, handler;			\
+			PTR_WD	9b, handler;			\
 			.previous;				\
 		.else;						\
 			/*					\
arch/mips/lib/memset.S +1 -1
index b0baa3c79fad..0b342bae9a98 100644
@@ -52,7 +52,7 @@
 9:		___BUILD_EVA_INSN(insn, reg, addr);	\
 	.endif;						\
 	.section __ex_table,"a";			\
-	PTR	9b, handler;				\
+	PTR_WD	9b, handler;				\
 	.previous
 
 	.macro	f_fill64 dst, offset, val, fixup, mode
arch/mips/lib/strncpy_user.S +2 -2
index 556acf684d7b..13aaa9927ad1 100644
@@ -15,7 +15,7 @@
 #define EX(insn,reg,addr,handler)			\
 9:	insn	reg, addr;				\
 	.section __ex_table,"a";			\
-	PTR	9b, handler;				\
+	PTR_WD	9b, handler;				\
 	.previous
 
 /*
@@ -59,7 +59,7 @@ LEAF(__strncpy_from_user_asm)
 	jr		ra
 
 	.section	__ex_table,"a"
-	PTR		1b, .Lfault
+	PTR_WD		1b, .Lfault
 	.previous
 
 	EXPORT_SYMBOL(__strncpy_from_user_asm)
arch/mips/lib/strnlen_user.S +1 -1
index 92b63f20ec05..6de31b616f9c 100644
@@ -14,7 +14,7 @@
 #define EX(insn,reg,addr,handler)			\
 9:	insn	reg, addr;				\
 	.section __ex_table,"a";			\
-	PTR	9b, handler;				\
+	PTR_WD	9b, handler;				\
 	.previous
 
 /*
arch/powerpc/include/asm/book3s/32/pgtable.h +1 -0
index 609c80f67194..f8b94f78403f 100644
@@ -178,6 +178,7 @@ static inline bool pte_user(pte_t pte)
 #ifndef __ASSEMBLY__
 
 int map_kernel_page(unsigned long va, phys_addr_t pa, pgprot_t prot);
+void unmap_kernel_page(unsigned long va);
 
 #endif /* !__ASSEMBLY__ */
 
arch/powerpc/include/asm/book3s/64/pgtable.h +2 -0
index 33e073d6b0c4..875730d5af40 100644
@@ -1082,6 +1082,8 @@ static inline int map_kernel_page(unsigned long ea, unsigned long pa, pgprot_t p
 	return hash__map_kernel_page(ea, pa, prot);
 }
 
+void unmap_kernel_page(unsigned long va);
+
 static inline int __meminit vmemmap_create_mapping(unsigned long start,
 						   unsigned long page_size,
 						   unsigned long phys)
arch/powerpc/include/asm/fixmap.h +4 -2
index 947b5b9c4424..a832aeafe560 100644
@@ -111,8 +111,10 @@ static inline void __set_fixmap(enum fixed_addresses idx,
 		BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
 	else if (WARN_ON(idx >= __end_of_fixed_addresses))
 		return;
-
-	map_kernel_page(__fix_to_virt(idx), phys, flags);
+	if (pgprot_val(flags))
+		map_kernel_page(__fix_to_virt(idx), phys, flags);
+	else
+		unmap_kernel_page(__fix_to_virt(idx));
 }
 
 #define __early_set_fixmap	__set_fixmap
arch/powerpc/include/asm/nohash/32/pgtable.h +1 -0
index b67742e2a9b2..d959c2a73fbf 100644
@@ -64,6 +64,7 @@ extern int icache_44x_need_flush;
 #ifndef __ASSEMBLY__
 
 int map_kernel_page(unsigned long va, phys_addr_t pa, pgprot_t prot);
+void unmap_kernel_page(unsigned long va);
 
 #endif /* !__ASSEMBLY__ */
 
arch/powerpc/include/asm/nohash/64/pgtable.h +1 -0
index 9d2905a47410..2225991c69b5 100644
@@ -308,6 +308,7 @@ static inline void __ptep_set_access_flags(struct vm_area_struct *vma,
 #define __swp_entry_to_pte(x)		__pte((x).val)
 
 int map_kernel_page(unsigned long ea, unsigned long pa, pgprot_t prot);
+void unmap_kernel_page(unsigned long va);
 extern int __meminit vmemmap_create_mapping(unsigned long start,
 					    unsigned long page_size,
 					    unsigned long phys);
arch/powerpc/mm/pgtable.c +9 -0
index ce9482383144..b7385e637e3e 100644
@@ -203,6 +203,15 @@ void set_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep,
 	__set_pte_at(mm, addr, ptep, pte, 0);
 }
 
+void unmap_kernel_page(unsigned long va)
+{
+	pmd_t *pmdp = pmd_off_k(va);
+	pte_t *ptep = pte_offset_kernel(pmdp, va);
+
+	pte_clear(&init_mm, va, ptep);
+	flush_tlb_kernel_range(va, va + PAGE_SIZE);
+}
+
 /*
  * This is called when relaxing access to a PTE. It's also called in the page
  * fault path when we don't hit any of the major fault cases, ie, a minor
arch/riscv/Makefile +6 -0
index 8a107ed18b0d..7d81102cffd4 100644
@@ -50,6 +50,12 @@ riscv-march-$(CONFIG_ARCH_RV32I)	:= rv32ima
 riscv-march-$(CONFIG_ARCH_RV64I)	:= rv64ima
 riscv-march-$(CONFIG_FPU)		:= $(riscv-march-y)fd
 riscv-march-$(CONFIG_RISCV_ISA_C)	:= $(riscv-march-y)c
+
+# Newer binutils versions default to ISA spec version 20191213 which moves some
+# instructions from the I extension to the Zicsr and Zifencei extensions.
+toolchain-need-zicsr-zifencei := $(call cc-option-yn, -march=$(riscv-march-y)_zicsr_zifencei)
+riscv-march-$(toolchain-need-zicsr-zifencei) := $(riscv-march-y)_zicsr_zifencei
+
 KBUILD_CFLAGS += -march=$(subst fd,,$(riscv-march-y))
 KBUILD_AFLAGS += -march=$(riscv-march-y)
 
arch/riscv/kernel/cpu-hotplug.c +2 -0
index df84e0c13db1..66ddfba1cfbe 100644
@@ -12,6 +12,7 @@
 #include <linux/sched/hotplug.h>
 #include <asm/irq.h>
 #include <asm/cpu_ops.h>
+#include <asm/numa.h>
 #include <asm/sbi.h>
 
 void cpu_stop(void);
@@ -46,6 +47,7 @@ int __cpu_disable(void)
 		return ret;
 
 	remove_cpu_topology(cpu);
+	numa_remove_cpu(cpu);
 	set_cpu_online(cpu, false);
 	irq_migrate_all_off_this_cpu();
 
arch/riscv/kernel/head.S +5 -6
index f52f01ecbeea..f11877b9fdf0 100644
@@ -21,14 +21,13 @@
 	add \reg, \reg, t0
 .endm
 .macro XIP_FIXUP_FLASH_OFFSET reg
-	la t1, __data_loc
-	li t0, XIP_OFFSET_MASK
-	and t1, t1, t0
-	li t1, XIP_OFFSET
-	sub t0, t0, t1
-	sub \reg, \reg, t0
+	la t0, __data_loc
+	REG_L t1, _xip_phys_offset
+	sub \reg, \reg, t1
+	add \reg, \reg, t0
 .endm
 _xip_fixup: .dword CONFIG_PHYS_RAM_BASE - CONFIG_XIP_PHYS_ADDR - XIP_OFFSET
+_xip_phys_offset: .dword CONFIG_XIP_PHYS_ADDR + XIP_OFFSET
 #else
 .macro XIP_FIXUP_OFFSET reg
 .endm
arch/riscv/kernel/stacktrace.c +5 -4
index 0fcdc0233fac..2e675d6ba324 100644
@@ -22,15 +22,16 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
 			     bool (*fn)(void *, unsigned long), void *arg)
 {
 	unsigned long fp, sp, pc;
+	int level = 0;
 
 	if (regs) {
 		fp = frame_pointer(regs);
 		sp = user_stack_pointer(regs);
 		pc = instruction_pointer(regs);
 	} else if (task == NULL || task == current) {
-		fp = (unsigned long)__builtin_frame_address(1);
-		sp = (unsigned long)__builtin_frame_address(0);
-		pc = (unsigned long)__builtin_return_address(0);
+		fp = (unsigned long)__builtin_frame_address(0);
+		sp = sp_in_global;
+		pc = (unsigned long)walk_stackframe;
 	} else {
 		/* task blocked in __switch_to */
 		fp = task->thread.s[0];
@@ -42,7 +43,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
 		unsigned long low, high;
 		struct stackframe *frame;
 
-		if (unlikely(!__kernel_text_address(pc) || !fn(arg, pc)))
+		if (unlikely(!__kernel_text_address(pc) || (level++ >= 1 && !fn(arg, pc))))
 			break;
 
 		/* Validate frame pointer */
arch/riscv/mm/init.c +1 -0
index 6fd7532aeab9..5c063ea48277 100644
@@ -41,6 +41,7 @@ phys_addr_t phys_ram_base __ro_after_init;
 EXPORT_SYMBOL(phys_ram_base);
 
 #ifdef CONFIG_XIP_KERNEL
+#define phys_ram_base  (*(phys_addr_t *)XIP_FIXUP(&phys_ram_base))
 extern char _xiprom[], _exiprom[], __data_loc;
 #endif
 
arch/s390/Kconfig +15 -0
index 2a5bb4f29cfe..0344c68f3ffd 100644
@@ -947,6 +947,9 @@ config S390_GUEST
 
 endmenu
 
+config S390_MODULES_SANITY_TEST_HELPERS
+	def_bool n
+
 menu "Selftests"
 
 config S390_UNWIND_SELFTEST
@@ -973,4 +976,16 @@ config S390_KPROBES_SANITY_TEST
 
 	  Say N if you are unsure.
 
+config S390_MODULES_SANITY_TEST
+	def_tristate n
+	depends on KUNIT
+	default KUNIT_ALL_TESTS
+	prompt "Enable s390 specific modules tests"
+	select S390_MODULES_SANITY_TEST_HELPERS
+	help
+	  This option enables an s390 specific modules test. This option is
+	  not useful for distributions or general kernels, but only for
+	  kernel developers working on architecture code.
+
+	  Say N if you are unsure.
 endmenu
arch/s390/lib/Makefile +3 -0
index 707cd4622c13..69feb8ed3312 100644
@@ -17,4 +17,7 @@ KASAN_SANITIZE_uaccess.o := n
 obj-$(CONFIG_S390_UNWIND_SELFTEST) += test_unwind.o
 CFLAGS_test_unwind.o += -fno-optimize-sibling-calls
 
+obj-$(CONFIG_S390_MODULES_SANITY_TEST) += test_modules.o
+obj-$(CONFIG_S390_MODULES_SANITY_TEST_HELPERS) += test_modules_helpers.o
+
 lib-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o
arch/s390/lib/test_modules.c new file +32 -0
new file mode 100644
index 000000000000..9894009fc1f2
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+#include <kunit/test.h>
+#include <linux/module.h>
+
+#include "test_modules.h"
+
+/*
+ * Test that modules with many relocations are loaded properly.
+ */
+static void test_modules_many_vmlinux_relocs(struct kunit *test)
+{
+	int result = 0;
+
+#define CALL_RETURN(i) result += test_modules_return_ ## i()
+	REPEAT_10000(CALL_RETURN);
+	KUNIT_ASSERT_EQ(test, result, 49995000);
+}
+
+static struct kunit_case modules_testcases[] = {
+	KUNIT_CASE(test_modules_many_vmlinux_relocs),
+	{}
+};
+
+static struct kunit_suite modules_test_suite = {
+	.name = "modules_test_s390",
+	.test_cases = modules_testcases,
+};
+
+kunit_test_suites(&modules_test_suite);
+
+MODULE_LICENSE("GPL");
arch/s390/lib/test_modules.h new file +53 -0

53 lines not on this page · raw message

arch/s390/lib/test_modules_helpers.c new file +13 -0
new file mode 100644
index 000000000000..1670349a03eb
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+#include <linux/export.h>
+
+#include "test_modules.h"
+
+#define DEFINE_RETURN(i) \
+	int test_modules_return_ ## i(void) \
+	{ \
+		return 1 ## i - 10000; \
+	} \
+	EXPORT_SYMBOL_GPL(test_modules_return_ ## i)
+REPEAT_10000(DEFINE_RETURN);
arch/x86/events/intel/lbr.c +3 -0
index 8043213b75a5..fa947c4fbd1f 100644
@@ -1726,6 +1726,9 @@ static bool is_arch_lbr_xsave_available(void)
 	 * Check the LBR state with the corresponding software structure.
 	 * Disable LBR XSAVES support if the size doesn't match.
 	 */
+	if (xfeature_size(XFEATURE_LBR) == 0)
+		return false;
+
 	if (WARN_ON(xfeature_size(XFEATURE_LBR) != get_lbr_state_size()))
 		return false;
 
arch/x86/events/rapl.c +6 -3
index 85feafacc445..77e3a47af5ad 100644
@@ -536,11 +536,14 @@ static struct perf_msr intel_rapl_spr_msrs[] = {
  * - perf_msr_probe(PERF_RAPL_MAX)
  * - want to use same event codes across both architectures
  */
-static struct perf_msr amd_rapl_msrs[PERF_RAPL_MAX] = {
-	[PERF_RAPL_PKG]  = { MSR_AMD_PKG_ENERGY_STATUS,  &rapl_events_pkg_group,   test_msr },
+static struct perf_msr amd_rapl_msrs[] = {
+	[PERF_RAPL_PP0]  = { 0, &rapl_events_cores_group, 0, false, 0 },
+	[PERF_RAPL_PKG]  = { MSR_AMD_PKG_ENERGY_STATUS,  &rapl_events_pkg_group,   test_msr, false, RAPL_MSR_MASK },
+	[PERF_RAPL_RAM]  = { 0, &rapl_events_ram_group,   0, false, 0 },
+	[PERF_RAPL_PP1]  = { 0, &rapl_events_gpu_group,   0, false, 0 },
+	[PERF_RAPL_PSYS] = { 0, &rapl_events_psys_group,  0, false, 0 },
 };
 
-
 static int rapl_cpu_offline(unsigned int cpu)
 {
 	struct rapl_pmu *pmu = cpu_to_rapl_pmu(cpu);
arch/x86/kernel/cpu/sgx/encl.c +2 -0
index 001808e3901c..48afe96ae0f0 100644
@@ -410,6 +410,8 @@ void sgx_encl_release(struct kref *ref)
 		}
 
 		kfree(entry);
+		/* Invoke scheduler to prevent soft lockups. */
+		cond_resched();
 	}
 
 	xa_destroy(&encl->page_array);
arch/x86/kvm/cpuid.c +7 -6
index add8f58d686e..bf18679757c7 100644
@@ -532,12 +532,13 @@ void kvm_set_cpu_caps(void)
 	);
 
 	kvm_cpu_cap_mask(CPUID_7_0_EBX,
-		F(FSGSBASE) | F(SGX) | F(BMI1) | F(HLE) | F(AVX2) | F(SMEP) |
-		F(BMI2) | F(ERMS) | F(INVPCID) | F(RTM) | 0 /*MPX*/ | F(RDSEED) |
-		F(ADX) | F(SMAP) | F(AVX512IFMA) | F(AVX512F) | F(AVX512PF) |
-		F(AVX512ER) | F(AVX512CD) | F(CLFLUSHOPT) | F(CLWB) | F(AVX512DQ) |
-		F(SHA_NI) | F(AVX512BW) | F(AVX512VL) | 0 /*INTEL_PT*/
-	);
+		F(FSGSBASE) | F(SGX) | F(BMI1) | F(HLE) | F(AVX2) |
+		F(FDP_EXCPTN_ONLY) | F(SMEP) | F(BMI2) | F(ERMS) | F(INVPCID) |
+		F(RTM) | F(ZERO_FCS_FDS) | 0 /*MPX*/ | F(AVX512F) |
+		F(AVX512DQ) | F(RDSEED) | F(ADX) | F(SMAP) | F(AVX512IFMA) |
+		F(CLFLUSHOPT) | F(CLWB) | 0 /*INTEL_PT*/ | F(AVX512PF) |
+		F(AVX512ER) | F(AVX512CD) | F(SHA_NI) | F(AVX512BW) |
+		F(AVX512VL));
 
 	kvm_cpu_cap_mask(CPUID_7_ECX,
 		F(AVX512VBMI) | F(LA57) | F(PKU) | 0 /*OSPKE*/ | F(RDPID) |
arch/x86/kvm/svm/svm.c +15 -1
index 3efada37272c..d6a4acaa6574 100644
@@ -4530,7 +4530,21 @@ static bool svm_can_emulate_instruction(struct kvm_vcpu *vcpu, void *insn, int i
 	is_user = svm_get_cpl(vcpu) == 3;
 	if (smap && (!smep || is_user)) {
 		pr_err_ratelimited("KVM: SEV Guest triggered AMD Erratum 1096\n");
-		kvm_make_request(KVM_REQ_TRIPLE_FAULT, vcpu);
+
+		/*
+		 * If the fault occurred in userspace, arbitrarily inject #GP
+		 * to avoid killing the guest and to hopefully avoid confusing
+		 * the guest kernel too much, e.g. injecting #PF would not be
+		 * coherent with respect to the guest's page tables.  Request
+		 * triple fault if the fault occurred in the kernel as there's
+		 * no fault that KVM can inject without confusing the guest.
+		 * In practice, the triple fault is moot as no sane SEV kernel
+		 * will execute from user memory while also running with SMAP=1.
+		 */
+		if (is_user)
+			kvm_inject_gp(vcpu, 0);
+		else
+			kvm_make_request(KVM_REQ_TRIPLE_FAULT, vcpu);
 	}
 
 	return false;
arch/x86/kvm/vmx/evmcs.c +1 -0
index 09fac0ddac8b..87e3dc10edf4 100644
@@ -361,6 +361,7 @@ void nested_evmcs_filter_control_msr(u32 msr_index, u64 *pdata)
 	case MSR_IA32_VMX_PROCBASED_CTLS2:
 		ctl_high &= ~EVMCS1_UNSUPPORTED_2NDEXEC;
 		break;
+	case MSR_IA32_VMX_TRUE_PINBASED_CTLS:
 	case MSR_IA32_VMX_PINBASED_CTLS:
 		ctl_high &= ~EVMCS1_UNSUPPORTED_PINCTRL;
 		break;
arch/x86/kvm/vmx/evmcs.h +3 -1
index 6255fa716772..8d70f9aea94b 100644
@@ -59,7 +59,9 @@ DECLARE_STATIC_KEY_FALSE(enable_evmcs);
 	 SECONDARY_EXEC_SHADOW_VMCS |					\
 	 SECONDARY_EXEC_TSC_SCALING |					\
 	 SECONDARY_EXEC_PAUSE_LOOP_EXITING)
-#define EVMCS1_UNSUPPORTED_VMEXIT_CTRL (VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL)
+#define EVMCS1_UNSUPPORTED_VMEXIT_CTRL					\
+	(VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL |				\
+	 VM_EXIT_SAVE_VMX_PREEMPTION_TIMER)
 #define EVMCS1_UNSUPPORTED_VMENTRY_CTRL (VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL)
 #define EVMCS1_UNSUPPORTED_VMFUNC (VMX_VMFUNC_EPTP_SWITCHING)
 
arch/x86/kvm/vmx/vmx.c +25 -0
index 7f4e6f625abc..fe4a36c98446 100644
@@ -4811,8 +4811,33 @@ static int handle_exception_nmi(struct kvm_vcpu *vcpu)
 		dr6 = vmx_get_exit_qual(vcpu);
 		if (!(vcpu->guest_debug &
 		      (KVM_GUESTDBG_SINGLESTEP | KVM_GUESTDBG_USE_HW_BP))) {
+			/*
+			 * If the #DB was due to ICEBP, a.k.a. INT1, skip the
+			 * instruction.  ICEBP generates a trap-like #DB, but
+			 * despite its interception control being tied to #DB,
+			 * is an instruction intercept, i.e. the VM-Exit occurs
+			 * on the ICEBP itself.  Note, skipping ICEBP also
+			 * clears STI and MOVSS blocking.
+			 *
+			 * For all other #DBs, set vmcs.PENDING_DBG_EXCEPTIONS.BS
+			 * if single-step is enabled in RFLAGS and STI or MOVSS
+			 * blocking is active, as the CPU doesn't set the bit
+			 * on VM-Exit due to #DB interception.  VM-Entry has a
+			 * consistency check that a single-step #DB is pending
+			 * in this scenario as the previous instruction cannot
+			 * have toggled RFLAGS.TF 0=>1 (because STI and POP/MOV
+			 * don't modify RFLAGS), therefore the one instruction
+			 * delay when activating single-step breakpoints must
+			 * have already expired.  Note, the CPU sets/clears BS
+			 * as appropriate for all other VM-Exits types.
+			 */
 			if (is_icebp(intr_info))
 				WARN_ON(!skip_emulated_instruction(vcpu));
+			else if ((vmx_get_rflags(vcpu) & X86_EFLAGS_TF) &&
+				 (vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) &
+				  (GUEST_INTR_STATE_STI | GUEST_INTR_STATE_MOV_SS)))
+				vmcs_writel(GUEST_PENDING_DBG_EXCEPTIONS,
+					    vmcs_readl(GUEST_PENDING_DBG_EXCEPTIONS) | DR6_BS);
 
 			kvm_queue_exception_p(vcpu, DB_VECTOR, dr6);
 			return 1;
drivers/accessibility/speakup/speakup_dectlk.c +1 -0
index 580ec796816b..78ca4987e619 100644
@@ -44,6 +44,7 @@ static struct var_t vars[] = {
 	{ CAPS_START, .u.s = {"[:dv ap 160] " } },
 	{ CAPS_STOP, .u.s = {"[:dv ap 100 ] " } },
 	{ RATE, .u.n = {"[:ra %d] ", 180, 75, 650, 0, 0, NULL } },
+	{ PITCH, .u.n = {"[:dv ap %d] ", 122, 50, 350, 0, 0, NULL } },
 	{ INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
 	{ VOL, .u.n = {"[:dv g5 %d] ", 86, 60, 86, 0, 0, NULL } },
 	{ PUNCT, .u.n = {"[:pu %c] ", 0, 0, 2, 0, 0, "nsa" } },
drivers/acpi/arm64/iort.c +11 -3
index 3b23fb775ac4..f2f8f05662de 100644
@@ -1361,9 +1361,17 @@ static void __init arm_smmu_v3_pmcg_init_resources(struct resource *res,
 	res[0].start = pmcg->page0_base_address;
 	res[0].end = pmcg->page0_base_address + SZ_4K - 1;
 	res[0].flags = IORESOURCE_MEM;
-	res[1].start = pmcg->page1_base_address;
-	res[1].end = pmcg->page1_base_address + SZ_4K - 1;
-	res[1].flags = IORESOURCE_MEM;
+	/*
+	 * The initial version in DEN0049C lacked a way to describe register
+	 * page 1, which makes it broken for most PMCG implementations; in
+	 * that case, just let the driver fail gracefully if it expects to
+	 * find a second memory resource.
+	 */
+	if (node->revision > 0) {
+		res[1].start = pmcg->page1_base_address;
+		res[1].end = pmcg->page1_base_address + SZ_4K - 1;
+		res[1].flags = IORESOURCE_MEM;
+	}
 
 	if (pmcg->overflow_gsiv)
 		acpi_iort_register_irq(pmcg->overflow_gsiv, "overflow",
drivers/acpi/ec.c +10 -0
index b9c44e6c5e40..1712990bf2ad 100644
@@ -2051,6 +2051,16 @@ bool acpi_ec_dispatch_gpe(void)
 	if (acpi_any_gpe_status_set(first_ec->gpe))
 		return true;
 
+	/*
+	 * Cancel the SCI wakeup and process all pending events in case there
+	 * are any wakeup ones in there.
+	 *
+	 * Note that if any non-EC GPEs are active at this point, the SCI will
+	 * retrigger after the rearming in acpi_s2idle_wake(), so no events
+	 * should be missed by canceling the wakeup here.
+	 */
+	pm_system_cancel_wakeup();
+
 	/*
 	 * Dispatch the EC GPE in-band, but do not report wakeup in any case
 	 * to allow the caller to process events properly after that.
drivers/acpi/sleep.c +5 -10
index eaa47753b758..8513410ca2fc 100644
@@ -739,21 +739,15 @@ bool acpi_s2idle_wake(void)
 			return true;
 		}
 
-		/* Check non-EC GPE wakeups and dispatch the EC GPE. */
+		/*
+		 * Check non-EC GPE wakeups and if there are none, cancel the
+		 * SCI-related wakeup and dispatch the EC GPE.
+		 */
 		if (acpi_ec_dispatch_gpe()) {
 			pm_pr_dbg("ACPI non-EC GPE wakeup\n");
 			return true;
 		}
 
-		/*
-		 * Cancel the SCI wakeup and process all pending events in case
-		 * there are any wakeup ones in there.
-		 *
-		 * Note that if any non-EC GPEs are active at this point, the
-		 * SCI will retrigger after the rearming below, so no events
-		 * should be missed by canceling the wakeup here.
-		 */
-		pm_system_cancel_wakeup();
 		acpi_os_wait_events_complete();
 
 		/*
@@ -767,6 +761,7 @@ bool acpi_s2idle_wake(void)
 			return true;
 		}
 
+		pm_wakeup_clear(acpi_sci_irq);
 		rearm_wake_irq(acpi_sci_irq);
 	}
 
drivers/base/power/wakeup.c +34 -7

60 lines not on this page · raw message

drivers/bus/mhi/pci_generic.c +2 -0
index b8b2811c7c0a..d340d6864e13 100644
@@ -366,6 +366,7 @@ static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = {
 	.config = &modem_foxconn_sdx55_config,
 	.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
 	.dma_data_width = 32,
+	.mru_default = 32768,
 	.sideband_wake = false,
 };
 
@@ -401,6 +402,7 @@ static const struct mhi_pci_dev_info mhi_mv31_info = {
 	.config = &modem_mv31_config,
 	.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
 	.dma_data_width = 32,
+	.mru_default = 32768,
 };
 
 static const struct pci_device_id mhi_pci_id_table[] = {
drivers/clocksource/timer-ti-dm-systimer.c +1 -1
index b6f97960d8ee..5c40ca1d4740 100644
@@ -241,7 +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") ||
+	if (of_machine_is_compatible("ti,omap3-beagle-ab4") ||
 	    of_machine_is_compatible("timll,omap3-devkit8000")) {
 		quirk_unreliable_oscillator = true;
 		counter_32k = -ENODEV;
drivers/gpio/gpio-aggregator.c +14 -4
index e9671d1660ef..ac20f9bd1be6 100644
@@ -278,7 +278,8 @@ static int gpio_fwd_get(struct gpio_chip *chip, unsigned int offset)
 {
 	struct gpiochip_fwd *fwd = gpiochip_get_data(chip);
 
-	return gpiod_get_value(fwd->descs[offset]);
+	return chip->can_sleep ? gpiod_get_value_cansleep(fwd->descs[offset])
+			       : gpiod_get_value(fwd->descs[offset]);
 }
 
 static int gpio_fwd_get_multiple(struct gpiochip_fwd *fwd, unsigned long *mask,
@@ -293,7 +294,10 @@ static int gpio_fwd_get_multiple(struct gpiochip_fwd *fwd, unsigned long *mask,
 	for_each_set_bit(i, mask, fwd->chip.ngpio)
 		descs[j++] = fwd->descs[i];
 
-	error = gpiod_get_array_value(j, descs, NULL, values);
+	if (fwd->chip.can_sleep)
+		error = gpiod_get_array_value_cansleep(j, descs, NULL, values);
+	else
+		error = gpiod_get_array_value(j, descs, NULL, values);
 	if (error)
 		return error;
 
@@ -328,7 +332,10 @@ static void gpio_fwd_set(struct gpio_chip *chip, unsigned int offset, int value)
 {
 	struct gpiochip_fwd *fwd = gpiochip_get_data(chip);
 
-	gpiod_set_value(fwd->descs[offset], value);
+	if (chip->can_sleep)
+		gpiod_set_value_cansleep(fwd->descs[offset], value);
+	else
+		gpiod_set_value(fwd->descs[offset], value);
 }
 
 static void gpio_fwd_set_multiple(struct gpiochip_fwd *fwd, unsigned long *mask,
@@ -343,7 +350,10 @@ static void gpio_fwd_set_multiple(struct gpiochip_fwd *fwd, unsigned long *mask,
 		descs[j++] = fwd->descs[i];
 	}
 
-	gpiod_set_array_value(j, descs, NULL, values);
+	if (fwd->chip.can_sleep)
+		gpiod_set_array_value_cansleep(j, descs, NULL, values);
+	else
+		gpiod_set_array_value(j, descs, NULL, values);
 }
 
 static void gpio_fwd_set_multiple_locked(struct gpio_chip *chip,
drivers/gpio/gpio-sifive.c +1 -1
index 403f9e833d6a..7d82388b4ab7 100644
@@ -223,7 +223,7 @@ static int sifive_gpio_probe(struct platform_device *pdev)
 			 NULL,
 			 chip->base + SIFIVE_GPIO_OUTPUT_EN,
 			 chip->base + SIFIVE_GPIO_INPUT_EN,
-			 0);
+			 BGPIOF_READ_OUTPUT_REG_SET);
 	if (ret) {
 		dev_err(dev, "unable to init generic GPIO\n");
 		return ret;
drivers/gpio/gpiolib-cdev.c +3 -3
index c7b5446d01fd..ffa0256cad5a 100644
@@ -330,7 +330,7 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip)
 			goto out_free_lh;
 		}
 
-		ret = gpiod_request(desc, lh->label);
+		ret = gpiod_request_user(desc, lh->label);
 		if (ret)
 			goto out_free_lh;
 		lh->descs[i] = desc;
@@ -1378,7 +1378,7 @@ static int linereq_create(struct gpio_device *gdev, void __user *ip)
 			goto out_free_linereq;
 		}
 
-		ret = gpiod_request(desc, lr->label);
+		ret = gpiod_request_user(desc, lr->label);
 		if (ret)
 			goto out_free_linereq;
 
@@ -1764,7 +1764,7 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip)
 		}
 	}
 
-	ret = gpiod_request(desc, le->label);
+	ret = gpiod_request_user(desc, le->label);
 	if (ret)
 		goto out_free_le;
 	le->desc = desc;
drivers/gpio/gpiolib-sysfs.c +2 -5
index 4098bc7f88b7..44c1ad51b3fe 100644
@@ -475,12 +475,9 @@ static ssize_t export_store(struct class *class,
 	 * they may be undone on its behalf too.
 	 */
 
-	status = gpiod_request(desc, "sysfs");
-	if (status) {
-		if (status == -EPROBE_DEFER)
-			status = -ENODEV;
+	status = gpiod_request_user(desc, "sysfs");
+	if (status)
 		goto done;
-	}
 
 	status = gpiod_set_transitory(desc, false);
 	if (!status) {
drivers/gpio/gpiolib.h +12 -0
index 30bc3f80f83e..c31f4626915d 100644
@@ -135,6 +135,18 @@ struct gpio_desc {
 
 int gpiod_request(struct gpio_desc *desc, const char *label);
 void gpiod_free(struct gpio_desc *desc);
+
+static inline int gpiod_request_user(struct gpio_desc *desc, const char *label)
+{
+	int ret;
+
+	ret = gpiod_request(desc, label);
+	if (ret == -EPROBE_DEFER)
+		ret = -ENODEV;
+
+	return ret;
+}
+
 int gpiod_configure_flags(struct gpio_desc *desc, const char *con_id,
 		unsigned long lflags, enum gpiod_flags dflags);
 int gpio_set_debounce_timeout(struct gpio_desc *desc, unsigned int debounce);
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +3 -3
index ccd6cdbe46f4..94e75199d942 100644
@@ -201,7 +201,7 @@ void dp_wait_for_training_aux_rd_interval(
 	uint32_t wait_in_micro_secs)
 {
 #if defined(CONFIG_DRM_AMD_DC_DCN)
-	if (wait_in_micro_secs > 16000)
+	if (wait_in_micro_secs > 1000)
 		msleep(wait_in_micro_secs/1000);
 	else
 		udelay(wait_in_micro_secs);
@@ -6058,7 +6058,7 @@ bool dpcd_write_128b_132b_sst_payload_allocation_table(
 			}
 		}
 		retries++;
-		udelay(5000);
+		msleep(5);
 	}
 
 	if (!result && retries == max_retries) {
@@ -6110,7 +6110,7 @@ bool dpcd_poll_for_allocation_change_trigger(struct dc_link *link)
 			break;
 		}
 
-		udelay(5000);
+		msleep(5);
 	}
 
 	if (result == ACT_FAILED) {
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +1 -1
index 83f5d9aaffcb..3883f918b3bb 100644
@@ -1069,7 +1069,7 @@ static const struct dc_debug_options debug_defaults_drv = {
 		.timing_trace = false,
 		.clock_trace = true,
 		.disable_pplib_clock_request = true,
-		.pipe_split_policy = MPC_SPLIT_DYNAMIC,
+		.pipe_split_policy = MPC_SPLIT_AVOID_MULT_DISP,
 		.force_single_disp_pipe_split = false,
 		.disable_dcc = DCC_ENABLE,
 		.vsr_support = true,
drivers/gpu/drm/amd/display/dc/dcn301/dcn301_resource.c +1 -1
index 9254da120e61..36814d44b19c 100644
@@ -686,7 +686,7 @@ static const struct dc_debug_options debug_defaults_drv = {
 	.disable_clock_gate = true,
 	.disable_pplib_clock_request = true,
 	.disable_pplib_wm_range = true,
-	.pipe_split_policy = MPC_SPLIT_DYNAMIC,
+	.pipe_split_policy = MPC_SPLIT_AVOID,
 	.force_single_disp_pipe_split = false,
 	.disable_dcc = DCC_ENABLE,
 	.vsr_support = true,
drivers/gpu/drm/amd/pm/amdgpu_pm.c +1 -2
index f8370d54100e..d31719b3418f 100644
@@ -3451,8 +3451,7 @@ static umode_t hwmon_attributes_visible(struct kobject *kobj,
 	     attr == &sensor_dev_attr_power2_cap_min.dev_attr.attr ||
 		 attr == &sensor_dev_attr_power2_cap.dev_attr.attr ||
 		 attr == &sensor_dev_attr_power2_cap_default.dev_attr.attr ||
-		 attr == &sensor_dev_attr_power2_label.dev_attr.attr ||
-		 attr == &sensor_dev_attr_power1_label.dev_attr.attr))
+		 attr == &sensor_dev_attr_power2_label.dev_attr.attr))
 		return 0;
 
 	return effective_mode;
drivers/gpu/drm/bridge/nwl-dsi.c +5 -7
index a7389a0facfb..af07eeb47ca0 100644
@@ -7,6 +7,7 @@
  */
 
 #include <linux/bitfield.h>
+#include <linux/bits.h>
 #include <linux/clk.h>
 #include <linux/irq.h>
 #include <linux/math64.h>
@@ -196,12 +197,9 @@ static u32 ps2bc(struct nwl_dsi *dsi, unsigned long long ps)
 /*
  * ui2bc - UI time periods to byte clock cycles
  */
-static u32 ui2bc(struct nwl_dsi *dsi, unsigned long long ui)
+static u32 ui2bc(unsigned int ui)
 {
-	u32 bpp = mipi_dsi_pixel_format_to_bpp(dsi->format);
-
-	return DIV64_U64_ROUND_UP(ui * dsi->lanes,
-				  dsi->mode.clock * 1000 * bpp);
+	return DIV_ROUND_UP(ui, BITS_PER_BYTE);
 }
 
 /*
@@ -232,12 +230,12 @@ static int nwl_dsi_config_host(struct nwl_dsi *dsi)
 	}
 
 	/* values in byte clock cycles */
-	cycles = ui2bc(dsi, cfg->clk_pre);
+	cycles = ui2bc(cfg->clk_pre);
 	DRM_DEV_DEBUG_DRIVER(dsi->dev, "cfg_t_pre: 0x%x\n", cycles);
 	nwl_dsi_write(dsi, NWL_DSI_CFG_T_PRE, cycles);
 	cycles = ps2bc(dsi, cfg->lpx + cfg->clk_prepare + cfg->clk_zero);
 	DRM_DEV_DEBUG_DRIVER(dsi->dev, "cfg_tx_gap (pre): 0x%x\n", cycles);
-	cycles += ui2bc(dsi, cfg->clk_pre);
+	cycles += ui2bc(cfg->clk_pre);
 	DRM_DEV_DEBUG_DRIVER(dsi->dev, "cfg_t_post: 0x%x\n", cycles);
 	nwl_dsi_write(dsi, NWL_DSI_CFG_T_POST, cycles);
 	cycles = ps2bc(dsi, cfg->hs_exit);
drivers/gpu/drm/drm_panel_orientation_quirks.c +12 -0
index 042bb80383c9..b910978d3e48 100644
@@ -115,6 +115,12 @@ static const struct drm_dmi_panel_orientation_data lcd1280x1920_rightside_up = {
 	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
 };
 
+static const struct drm_dmi_panel_orientation_data lcd1600x2560_leftside_up = {
+	.width = 1600,
+	.height = 2560,
+	.orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP,
+};
+
 static const struct dmi_system_id orientation_data[] = {
 	{	/* Acer One 10 (S1003) */
 		.matches = {
@@ -275,6 +281,12 @@ static const struct dmi_system_id orientation_data[] = {
 		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Default string"),
 		},
 		.driver_data = (void *)&onegx1_pro,
+	}, {	/* OneXPlayer */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ONE-NETBOOK TECHNOLOGY CO., LTD."),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ONE XPLAYER"),
+		},
+		.driver_data = (void *)&lcd1600x2560_leftside_up,
 	}, {	/* Samsung GalaxyBook 10.6 */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
drivers/gpu/drm/i915/display/intel_display.c +1 -0
index ec403e46a328..8c178939e82b 100644
@@ -11901,6 +11901,7 @@ intel_modeset_setup_hw_state(struct drm_device *dev,
 		vlv_wm_sanitize(dev_priv);
 	} else if (DISPLAY_VER(dev_priv) >= 9) {
 		skl_wm_get_hw_state(dev_priv);
+		skl_wm_sanitize(dev_priv);
 	} else if (HAS_PCH_SPLIT(dev_priv)) {
 		ilk_wm_get_hw_state(dev_priv);
 	}
drivers/gpu/drm/i915/display/intel_drrs.c +8 -0
index c1439fcb5a95..3ff149df4a77 100644
@@ -405,6 +405,7 @@ intel_drrs_init(struct intel_connector *connector,
 		struct drm_display_mode *fixed_mode)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct intel_encoder *encoder = connector->encoder;
 	struct drm_display_mode *downclock_mode = NULL;
 
 	INIT_DELAYED_WORK(&dev_priv->drrs.work, intel_drrs_downclock_work);
@@ -416,6 +417,13 @@ intel_drrs_init(struct intel_connector *connector,
 		return NULL;
 	}
 
+	if ((DISPLAY_VER(dev_priv) < 8 && !HAS_GMCH(dev_priv)) &&
+	    encoder->port != PORT_A) {
+		drm_dbg_kms(&dev_priv->drm,
+			    "DRRS only supported on eDP port A\n");
+		return NULL;
+	}
+
 	if (dev_priv->vbt.drrs_type != SEAMLESS_DRRS_SUPPORT) {
 		drm_dbg_kms(&dev_priv->drm, "VBT doesn't support DRRS\n");
 		return NULL;
drivers/gpu/drm/i915/intel_pm.c +120 -23

240 lines not on this page · raw message

drivers/gpu/drm/i915/intel_pm.h +1 -0
index 990cdcaf85ce..d2243653a893 100644
@@ -47,6 +47,7 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
 			      struct skl_pipe_wm *out);
 void g4x_wm_sanitize(struct drm_i915_private *dev_priv);
 void vlv_wm_sanitize(struct drm_i915_private *dev_priv);
+void skl_wm_sanitize(struct drm_i915_private *dev_priv);
 bool intel_can_enable_sagv(struct drm_i915_private *dev_priv,
 			   const struct intel_bw_state *bw_state);
 void intel_sagv_pre_plane_update(struct intel_atomic_state *state);
drivers/gpu/drm/panel/panel-simple.c +1 -0
index eb475a3a774b..87f30bced7b7 100644
@@ -588,6 +588,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
 		err = panel_dpi_probe(dev, panel);
 		if (err)
 			goto free_ddc;
+		desc = panel->desc;
 	} else {
 		if (!of_get_display_timing(dev->of_node, "panel-timing", &dt))
 			panel_simple_parse_panel_timing_node(dev, panel, &dt);
drivers/gpu/drm/rockchip/rockchip_vop_reg.c +5 -3
index 1f7353f0684a..798b542e5916 100644
@@ -902,6 +902,7 @@ static const struct vop_win_phy rk3399_win01_data = {
 	.enable = VOP_REG(RK3288_WIN0_CTRL0, 0x1, 0),
 	.format = VOP_REG(RK3288_WIN0_CTRL0, 0x7, 1),
 	.rb_swap = VOP_REG(RK3288_WIN0_CTRL0, 0x1, 12),
+	.x_mir_en = VOP_REG(RK3288_WIN0_CTRL0, 0x1, 21),
 	.y_mir_en = VOP_REG(RK3288_WIN0_CTRL0, 0x1, 22),
 	.act_info = VOP_REG(RK3288_WIN0_ACT_INFO, 0x1fff1fff, 0),
 	.dsp_info = VOP_REG(RK3288_WIN0_DSP_INFO, 0x0fff0fff, 0),
@@ -912,6 +913,7 @@ static const struct vop_win_phy rk3399_win01_data = {
 	.uv_vir = VOP_REG(RK3288_WIN0_VIR, 0x3fff, 16),
 	.src_alpha_ctl = VOP_REG(RK3288_WIN0_SRC_ALPHA_CTRL, 0xff, 0),
 	.dst_alpha_ctl = VOP_REG(RK3288_WIN0_DST_ALPHA_CTRL, 0xff, 0),
+	.channel = VOP_REG(RK3288_WIN0_CTRL2, 0xff, 0),
 };
 
 /*
@@ -922,11 +924,11 @@ static const struct vop_win_phy rk3399_win01_data = {
 static const struct vop_win_data rk3399_vop_win_data[] = {
 	{ .base = 0x00, .phy = &rk3399_win01_data,
 	  .type = DRM_PLANE_TYPE_PRIMARY },
-	{ .base = 0x40, .phy = &rk3288_win01_data,
+	{ .base = 0x40, .phy = &rk3368_win01_data,
 	  .type = DRM_PLANE_TYPE_OVERLAY },
-	{ .base = 0x00, .phy = &rk3288_win23_data,
+	{ .base = 0x00, .phy = &rk3368_win23_data,
 	  .type = DRM_PLANE_TYPE_OVERLAY },
-	{ .base = 0x50, .phy = &rk3288_win23_data,
+	{ .base = 0x50, .phy = &rk3368_win23_data,
 	  .type = DRM_PLANE_TYPE_CURSOR },
 };
 
drivers/gpu/drm/vc4/vc4_dsi.c +4 -10
index a229da58962a..9300d3354c51 100644
@@ -1262,7 +1262,6 @@ static int vc4_dsi_host_attach(struct mipi_dsi_host *host,
 			       struct mipi_dsi_device *device)
 {
 	struct vc4_dsi *dsi = host_to_dsi(host);
-	int ret;
 
 	dsi->lanes = device->lanes;
 	dsi->channel = device->channel;
@@ -1297,18 +1296,15 @@ static int vc4_dsi_host_attach(struct mipi_dsi_host *host,
 		return 0;
 	}
 
-	ret = component_add(&dsi->pdev->dev, &vc4_dsi_ops);
-	if (ret) {
-		mipi_dsi_host_unregister(&dsi->dsi_host);
-		return ret;
-	}
-
-	return 0;
+	return component_add(&dsi->pdev->dev, &vc4_dsi_ops);
 }
 
 static int vc4_dsi_host_detach(struct mipi_dsi_host *host,
 			       struct mipi_dsi_device *device)
 {
+	struct vc4_dsi *dsi = host_to_dsi(host);
+
+	component_del(&dsi->pdev->dev, &vc4_dsi_ops);
 	return 0;
 }
 
@@ -1686,9 +1682,7 @@ static int vc4_dsi_dev_remove(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	struct vc4_dsi *dsi = dev_get_drvdata(dev);
 
-	component_del(&pdev->dev, &vc4_dsi_ops);
 	mipi_dsi_host_unregister(&dsi->dsi_host);
-
 	return 0;
 }
 
drivers/gpu/drm/vc4/vc4_hdmi.c +2 -0
index c000946996ed..24f11c07bc3c 100644
@@ -1090,6 +1090,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder,
 	unsigned long long tmds_rate;
 
 	if (vc4_hdmi->variant->unsupported_odd_h_timings &&
+	    !(mode->flags & DRM_MODE_FLAG_DBLCLK) &&
 	    ((mode->hdisplay % 2) || (mode->hsync_start % 2) ||
 	     (mode->hsync_end % 2) || (mode->htotal % 2)))
 		return -EINVAL;
@@ -1137,6 +1138,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder,
 	struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
 
 	if (vc4_hdmi->variant->unsupported_odd_h_timings &&
+	    !(mode->flags & DRM_MODE_FLAG_DBLCLK) &&
 	    ((mode->hdisplay % 2) || (mode->hsync_start % 2) ||
 	     (mode->hsync_end % 2) || (mode->htotal % 2)))
 		return MODE_H_ILLEGAL;
drivers/iio/industrialio-buffer.c +11 -3
index e180728914c0..84171bb2d52b 100644
@@ -1569,9 +1569,17 @@ static long iio_device_buffer_getfd(struct iio_dev *indio_dev, unsigned long arg
 	}
 
 	if (copy_to_user(ival, &fd, sizeof(fd))) {
-		put_unused_fd(fd);
-		ret = -EFAULT;
-		goto error_free_ib;
+		/*
+		 * "Leak" the fd, as there's not much we can do about this
+		 * anyway. 'fd' might have been closed already, as
+		 * anon_inode_getfd() called fd_install() on it, which made
+		 * it reachable by userland.
+		 *
+		 * Instead of allowing a malicious user to play tricks with
+		 * us, rely on the process exit path to do any necessary
+		 * cleanup, as in releasing the file, if still needed.
+		 */
+		return -EFAULT;
 	}
 
 	return 0;
drivers/iommu/iommu.c +7 -2
index 8b86406b7162..3632bf8b4031 100644
@@ -207,9 +207,14 @@ static struct dev_iommu *dev_iommu_get(struct device *dev)
 
 static void dev_iommu_free(struct device *dev)
 {
-	iommu_fwspec_free(dev);
-	kfree(dev->iommu);
+	struct dev_iommu *param = dev->iommu;
+
 	dev->iommu = NULL;
+	if (param->fwspec) {
+		fwnode_handle_put(param->fwspec->iommu_fwnode);
+		kfree(param->fwspec);
+	}
+	kfree(param);
 }
 
 static int __iommu_probe_device(struct device *dev, struct list_head *group_list)
drivers/irqchip/irq-realtek-rtl.c +6 -2
index 568614edd88f..50a56820c99b 100644
@@ -76,16 +76,20 @@ static void realtek_irq_dispatch(struct irq_desc *desc)
 {
 	struct irq_chip *chip = irq_desc_get_chip(desc);
 	struct irq_domain *domain;
-	unsigned int pending;
+	unsigned long pending;
+	unsigned int soc_int;
 
 	chained_irq_enter(chip, desc);
 	pending = readl(REG(RTL_ICTL_GIMR)) & readl(REG(RTL_ICTL_GISR));
+
 	if (unlikely(!pending)) {
 		spurious_interrupt();
 		goto out;
 	}
+
 	domain = irq_desc_get_handler_data(desc);
-	generic_handle_domain_irq(domain, __ffs(pending));
+	for_each_set_bit(soc_int, &pending, 32)
+		generic_handle_domain_irq(domain, soc_int);
 
 out:
 	chained_irq_exit(chip, desc);
drivers/misc/eeprom/ee1004.c +3 -0
index bb9c4512c968..9fbfe784d710 100644
@@ -114,6 +114,9 @@ static ssize_t ee1004_eeprom_read(struct i2c_client *client, char *buf,
 	if (offset + count > EE1004_PAGE_SIZE)
 		count = EE1004_PAGE_SIZE - offset;
 
+	if (count > I2C_SMBUS_BLOCK_MAX)
+		count = I2C_SMBUS_BLOCK_MAX;
+
 	return i2c_smbus_read_i2c_block_data_or_emulated(client, offset, count, buf);
 }
 
drivers/misc/fastrpc.c +8 -1
index 4ccbf43e6bfa..aa1682b94a23 100644
@@ -1288,7 +1288,14 @@ static int fastrpc_dmabuf_alloc(struct fastrpc_user *fl, char __user *argp)
 	}
 
 	if (copy_to_user(argp, &bp, sizeof(bp))) {
-		dma_buf_put(buf->dmabuf);
+		/*
+		 * The usercopy failed, but we can't do much about it, as
+		 * dma_buf_fd() already called fd_install() and made the
+		 * file descriptor accessible for the current process. It
+		 * might already be closed and dmabuf no longer valid when
+		 * we reach this point. Therefore "leak" the fd and rely on
+		 * the process exit path to do any required cleanup.
+		 */
 		return -EFAULT;
 	}
 
drivers/mmc/core/sd.c +7 -1
index c9db24e16af1..44746f2edada 100644
@@ -67,7 +67,7 @@ static const unsigned int sd_au_size[] = {
 		__res & __mask;						\
 	})
 
-#define SD_POWEROFF_NOTIFY_TIMEOUT_MS 2000
+#define SD_POWEROFF_NOTIFY_TIMEOUT_MS 1000
 #define SD_WRITE_EXTR_SINGLE_TIMEOUT_MS 1000
 
 struct sd_busy_data {
@@ -1664,6 +1664,12 @@ static int sd_poweroff_notify(struct mmc_card *card)
 		goto out;
 	}
 
+	/* Find out when the command is completed. */
+	err = mmc_poll_for_busy(card, SD_WRITE_EXTR_SINGLE_TIMEOUT_MS, false,
+				MMC_BUSY_EXTR_SINGLE);
+	if (err)
+		goto out;
+
 	cb_data.card = card;
 	cb_data.reg_buf = reg_buf;
 	err = __mmc_poll_for_busy(card, SD_POWEROFF_NOTIFY_TIMEOUT_MS,
drivers/mmc/host/sdhci-of-esdhc.c +6 -2
index a593b1fbd69e..0f3658b36513 100644
@@ -524,12 +524,16 @@ static void esdhc_of_adma_workaround(struct sdhci_host *host, u32 intmask)
 
 static int esdhc_of_enable_dma(struct sdhci_host *host)
 {
+	int ret;
 	u32 value;
 	struct device *dev = mmc_dev(host->mmc);
 
 	if (of_device_is_compatible(dev->of_node, "fsl,ls1043a-esdhc") ||
-	    of_device_is_compatible(dev->of_node, "fsl,ls1046a-esdhc"))
-		dma_set_mask_and_coherent(dev, DMA_BIT_MASK(40));
+	    of_device_is_compatible(dev->of_node, "fsl,ls1046a-esdhc")) {
+		ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(40));
+		if (ret)
+			return ret;
+	}
 
 	value = sdhci_readl(host, ESDHC_DMA_SYSCTL);
 
drivers/mmc/host/sh_mmcif.c +3 -0
index bcc595c70a9f..104dcd702870 100644
@@ -405,6 +405,9 @@ static int sh_mmcif_dma_slave_config(struct sh_mmcif_host *host,
 	struct dma_slave_config cfg = { 0, };
 
 	res = platform_get_resource(host->pd, IORESOURCE_MEM, 0);
+	if (!res)
+		return -EINVAL;
+
 	cfg.direction = direction;
 
 	if (direction == DMA_DEV_TO_MEM) {
drivers/net/bonding/bond_3ad.c +2 -1
index 6006c2e8fa2b..9fd1d6cba3cd 100644
@@ -1021,8 +1021,8 @@ static void ad_mux_machine(struct port *port, bool *update_slave_arr)
 				if (port->aggregator &&
 				    port->aggregator->is_active &&
 				    !__port_is_enabled(port)) {
-
 					__enable_port(port);
+					*update_slave_arr = true;
 				}
 			}
 			break;
@@ -1779,6 +1779,7 @@ static void ad_agg_selection_logic(struct aggregator *agg,
 			     port = port->next_port_in_aggregator) {
 				__enable_port(port);
 			}
+			*update_slave_arr = true;
 		}
 	}
 
drivers/net/dsa/bcm_sf2.c +5 -2
index 13aa43b5cffd..1502d200682f 100644
@@ -584,7 +584,7 @@ static int bcm_sf2_mdio_register(struct dsa_switch *ds)
 	get_device(&priv->master_mii_bus->dev);
 	priv->master_mii_dn = dn;
 
-	priv->slave_mii_bus = devm_mdiobus_alloc(ds->dev);
+	priv->slave_mii_bus = mdiobus_alloc();
 	if (!priv->slave_mii_bus) {
 		of_node_put(dn);
 		return -ENOMEM;
@@ -644,8 +644,10 @@ static int bcm_sf2_mdio_register(struct dsa_switch *ds)
 	}
 
 	err = mdiobus_register(priv->slave_mii_bus);
-	if (err && dn)
+	if (err && dn) {
+		mdiobus_free(priv->slave_mii_bus);
 		of_node_put(dn);
+	}
 
 	return err;
 }
@@ -653,6 +655,7 @@ static int bcm_sf2_mdio_register(struct dsa_switch *ds)
 static void bcm_sf2_mdio_unregister(struct bcm_sf2_priv *priv)
 {
 	mdiobus_unregister(priv->slave_mii_bus);
+	mdiobus_free(priv->slave_mii_bus);
 	of_node_put(priv->master_mii_dn);
 }
 
drivers/net/dsa/lantiq_gswip.c +11 -3
index 7056d98d8177..0909b05d0213 100644
@@ -498,8 +498,9 @@ static int gswip_mdio_rd(struct mii_bus *bus, int addr, int reg)
 static int gswip_mdio(struct gswip_priv *priv, struct device_node *mdio_np)
 {
 	struct dsa_switch *ds = priv->ds;
+	int err;
 
-	ds->slave_mii_bus = devm_mdiobus_alloc(priv->dev);
+	ds->slave_mii_bus = mdiobus_alloc();
 	if (!ds->slave_mii_bus)
 		return -ENOMEM;
 
@@ -512,7 +513,11 @@ static int gswip_mdio(struct gswip_priv *priv, struct device_node *mdio_np)
 	ds->slave_mii_bus->parent = priv->dev;
 	ds->slave_mii_bus->phy_mask = ~ds->phys_mii_mask;
 
-	return of_mdiobus_register(ds->slave_mii_bus, mdio_np);
+	err = of_mdiobus_register(ds->slave_mii_bus, mdio_np);
+	if (err)
+		mdiobus_free(ds->slave_mii_bus);
+
+	return err;
 }
 
 static int gswip_pce_table_entry_read(struct gswip_priv *priv,
@@ -2186,8 +2191,10 @@ static int gswip_probe(struct platform_device *pdev)
 	gswip_mdio_mask(priv, GSWIP_MDIO_GLOB_ENABLE, 0, GSWIP_MDIO_GLOB);
 	dsa_unregister_switch(priv->ds);
 mdio_bus:
-	if (mdio_np)
+	if (mdio_np) {
 		mdiobus_unregister(priv->ds->slave_mii_bus);
+		mdiobus_free(priv->ds->slave_mii_bus);
+	}
 put_mdio_node:
 	of_node_put(mdio_np);
 	for (i = 0; i < priv->num_gphy_fw; i++)
@@ -2210,6 +2217,7 @@ static int gswip_remove(struct platform_device *pdev)
 
 	if (priv->ds->slave_mii_bus) {
 		mdiobus_unregister(priv->ds->slave_mii_bus);
+		mdiobus_free(priv->ds->slave_mii_bus);
 		of_node_put(priv->ds->slave_mii_bus->dev.of_node);
 	}
 
drivers/net/dsa/mt7530.c +1 -1
index 9890672a206d..fb59efc7f926 100644
@@ -2066,7 +2066,7 @@ mt7530_setup_mdio(struct mt7530_priv *priv)
 	if (priv->irq)
 		mt7530_setup_mdio_irq(priv);
 
-	ret = mdiobus_register(bus);
+	ret = devm_mdiobus_register(dev, bus);
 	if (ret) {
 		dev_err(dev, "failed to register MDIO bus: %d\n", ret);
 		if (priv->irq)
drivers/net/dsa/mv88e6xxx/chip.c +10 -5
index cd8462d1e27c..70cea1b95298 100644
@@ -3415,7 +3415,7 @@ static int mv88e6xxx_mdio_register(struct mv88e6xxx_chip *chip,
 			return err;
 	}
 
-	bus = devm_mdiobus_alloc_size(chip->dev, sizeof(*mdio_bus));
+	bus = mdiobus_alloc_size(sizeof(*mdio_bus));
 	if (!bus)
 		return -ENOMEM;
 
@@ -3440,14 +3440,14 @@ static int mv88e6xxx_mdio_register(struct mv88e6xxx_chip *chip,
 	if (!external) {
 		err = mv88e6xxx_g2_irq_mdio_setup(chip, bus);
 		if (err)
-			return err;
+			goto out;
 	}
 
 	err = of_mdiobus_register(bus, np);
 	if (err) {
 		dev_err(chip->dev, "Cannot register MDIO bus (%d)\n", err);
 		mv88e6xxx_g2_irq_mdio_free(chip, bus);
-		return err;
+		goto out;
 	}
 
 	if (external)
@@ -3456,21 +3456,26 @@ static int mv88e6xxx_mdio_register(struct mv88e6xxx_chip *chip,
 		list_add(&mdio_bus->list, &chip->mdios);
 
 	return 0;
+
+out:
+	mdiobus_free(bus);
+	return err;
 }
 
 static void mv88e6xxx_mdios_unregister(struct mv88e6xxx_chip *chip)
 
 {
-	struct mv88e6xxx_mdio_bus *mdio_bus;
+	struct mv88e6xxx_mdio_bus *mdio_bus, *p;
 	struct mii_bus *bus;
 
-	list_for_each_entry(mdio_bus, &chip->mdios, list) {
+	list_for_each_entry_safe(mdio_bus, p, &chip->mdios, list) {
 		bus = mdio_bus->bus;
 
 		if (!mdio_bus->external)
 			mv88e6xxx_g2_irq_mdio_free(chip, bus);
 
 		mdiobus_unregister(bus);
+		mdiobus_free(bus);
 	}
 }
 
drivers/net/dsa/ocelot/felix_vsc9959.c +3 -1
index 45c5ec7a83ea..12c2acbc2427 100644
@@ -1064,7 +1064,7 @@ static int vsc9959_mdio_bus_alloc(struct ocelot *ocelot)
 		return PTR_ERR(hw);
 	}
 
-	bus = devm_mdiobus_alloc_size(dev, sizeof(*mdio_priv));
+	bus = mdiobus_alloc_size(sizeof(*mdio_priv));
 	if (!bus)
 		return -ENOMEM;
 
@@ -1084,6 +1084,7 @@ static int vsc9959_mdio_bus_alloc(struct ocelot *ocelot)
 	rc = mdiobus_register(bus);
 	if (rc < 0) {
 		dev_err(dev, "failed to register MDIO bus\n");
+		mdiobus_free(bus);
 		return rc;
 	}
 
@@ -1133,6 +1134,7 @@ static void vsc9959_mdio_bus_free(struct ocelot *ocelot)
 		lynx_pcs_destroy(pcs);
 	}
 	mdiobus_unregister(felix->imdio);
+	mdiobus_free(felix->imdio);
 }
 
 static void vsc9959_sched_speed_set(struct ocelot *ocelot, int port,
drivers/net/dsa/ocelot/seville_vsc9953.c +4 -2
index 92eae63150ea..40d6d1f2c724 100644
@@ -10,6 +10,7 @@
 #include <linux/pcs-lynx.h>
 #include <linux/dsa/ocelot.h>
 #include <linux/iopoll.h>
+#include <linux/of_mdio.h>
 #include "felix.h"
 
 #define MSCC_MIIM_CMD_OPR_WRITE			BIT(1)
@@ -1108,7 +1109,7 @@ static int vsc9953_mdio_bus_alloc(struct ocelot *ocelot)
 	snprintf(bus->id, MII_BUS_ID_SIZE, "%s-imdio", dev_name(dev));
 
 	/* Needed in order to initialize the bus mutex lock */
-	rc = mdiobus_register(bus);
+	rc = devm_of_mdiobus_register(dev, bus, NULL);
 	if (rc < 0) {
 		dev_err(dev, "failed to register MDIO bus\n");
 		return rc;
@@ -1160,7 +1161,8 @@ static void vsc9953_mdio_bus_free(struct ocelot *ocelot)
 		mdio_device_free(pcs->mdio);
 		lynx_pcs_destroy(pcs);
 	}
-	mdiobus_unregister(felix->imdio);
+
+	/* mdiobus_unregister and mdiobus_free handled by devres */
 }
 
 static const struct felix_info seville_info_vsc9953 = {
drivers/net/dsa/qca/ar9331.c +1 -2
index da0d7e68643a..c39de2a4c1fe 100644
@@ -378,7 +378,7 @@ static int ar9331_sw_mbus_init(struct ar9331_sw_priv *priv)
 	if (!mnp)
 		return -ENODEV;
 
-	ret = of_mdiobus_register(mbus, mnp);
+	ret = devm_of_mdiobus_register(dev, mbus, mnp);
 	of_node_put(mnp);
 	if (ret)
 		return ret;
@@ -1091,7 +1091,6 @@ static void ar9331_sw_remove(struct mdio_device *mdiodev)
 	}
 
 	irq_domain_remove(priv->irqdomain);
-	mdiobus_unregister(priv->mbus);
 	dsa_unregister_switch(&priv->ds);
 
 	reset_control_assert(priv->sw_reset);
drivers/net/ethernet/amd/xgbe/xgbe-pci.c +3 -0
index 90cb55eb5466..014513ce00a1 100644
@@ -418,6 +418,9 @@ static void xgbe_pci_remove(struct pci_dev *pdev)
 
 	pci_free_irq_vectors(pdata->pcidev);
 
+	/* Disable all interrupts in the hardware */
+	XP_IOWRITE(pdata, XP_INT_EN, 0x0);
+
 	xgbe_free_pdata(pdata);
 }
 
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +2 -2
index 8e643567abce..70c8dd6cf350 100644
@@ -4523,12 +4523,12 @@ static int dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
 #ifdef CONFIG_DEBUG_FS
 	dpaa2_dbg_remove(priv);
 #endif
+
+	unregister_netdev(net_dev);
 	rtnl_lock();
 	dpaa2_eth_disconnect_mac(priv);
 	rtnl_unlock();
 
-	unregister_netdev(net_dev);
-
 	dpaa2_eth_dl_port_del(priv);
 	dpaa2_eth_dl_traps_unregister(priv);
 	dpaa2_eth_dl_free(priv);
drivers/net/ethernet/google/gve/gve_rx.c +1 -0
index 04a08904305a..3453e565472c 100644
@@ -609,6 +609,7 @@ static bool gve_rx(struct gve_rx_ring *rx, netdev_features_t feat,
 
 	*packet_size_bytes = skb->len + (skb->protocol ? ETH_HLEN : 0);
 	*work_done = work_cnt;
+	skb_record_rx_queue(skb, rx->q_num);
 	if (skb_is_nonlinear(skb))
 		napi_gro_frags(napi);
 	else
drivers/net/ethernet/ibm/ibmvnic.c +9 -4
index 682a440151a8..d5d33325a413 100644
@@ -110,6 +110,7 @@ static void ibmvnic_tx_scrq_clean_buffer(struct ibmvnic_adapter *adapter,
 					 struct ibmvnic_sub_crq_queue *tx_scrq);
 static void free_long_term_buff(struct ibmvnic_adapter *adapter,
 				struct ibmvnic_long_term_buff *ltb);
+static void ibmvnic_disable_irqs(struct ibmvnic_adapter *adapter);
 
 struct ibmvnic_stat {
 	char name[ETH_GSTRING_LEN];
@@ -1418,7 +1419,7 @@ static int __ibmvnic_open(struct net_device *netdev)
 	rc = set_link_state(adapter, IBMVNIC_LOGICAL_LNK_UP);
 	if (rc) {
 		ibmvnic_napi_disable(adapter);
-		release_resources(adapter);
+		ibmvnic_disable_irqs(adapter);
 		return rc;
 	}
 
@@ -1468,9 +1469,6 @@ static int ibmvnic_open(struct net_device *netdev)
 		rc = init_resources(adapter);
 		if (rc) {
 			netdev_err(netdev, "failed to initialize resources\n");
-			release_resources(adapter);
-			release_rx_pools(adapter);
-			release_tx_pools(adapter);
 			goto out;
 		}
 	}
@@ -1487,6 +1485,13 @@ static int ibmvnic_open(struct net_device *netdev)
 		adapter->state = VNIC_OPEN;
 		rc = 0;
 	}
+
+	if (rc) {
+		release_resources(adapter);
+		release_rx_pools(adapter);
+		release_tx_pools(adapter);
+	}
+
 	return rc;
 }
 
drivers/net/ethernet/intel/ice/ice.h +2 -1
index b2db39ee5f85..b3e1fc6a0a8e 100644
@@ -483,6 +483,7 @@ enum ice_pf_flags {
 	ICE_FLAG_VF_TRUE_PROMISC_ENA,
 	ICE_FLAG_MDD_AUTO_RESET_VF,
 	ICE_FLAG_LINK_LENIENT_MODE_ENA,
+	ICE_FLAG_PLUG_AUX_DEV,
 	ICE_PF_FLAGS_NBITS		/* must be last */
 };
 
@@ -880,7 +881,7 @@ static inline void ice_set_rdma_cap(struct ice_pf *pf)
 	if (pf->hw.func_caps.common_cap.rdma && pf->num_rdma_msix) {
 		set_bit(ICE_FLAG_RDMA_ENA, pf->flags);
 		set_bit(ICE_FLAG_AUX_ENA, pf->flags);
-		ice_plug_aux_dev(pf);
+		set_bit(ICE_FLAG_PLUG_AUX_DEV, pf->flags);
 	}
 }
 
drivers/net/ethernet/intel/ice/ice_common.c +2 -1
index b3066d0fea8b..e9a0159cb8b9 100644
@@ -3321,7 +3321,8 @@ ice_cfg_phy_fec(struct ice_port_info *pi, struct ice_aqc_set_phy_cfg_data *cfg,
 	    !ice_fw_supports_report_dflt_cfg(hw)) {
 		struct ice_link_default_override_tlv tlv;
 
-		if (ice_get_link_default_override(&tlv, pi))
+		status = ice_get_link_default_override(&tlv, pi);
+		if (status)
 			goto out;
 
 		if (!(tlv.options & ICE_LINK_OVERRIDE_STRICT_MODE) &&
drivers/net/ethernet/intel/ice/ice_lag.c +28 -6
index e375ac849aec..4f954db01b92 100644
@@ -204,17 +204,39 @@ ice_lag_unlink(struct ice_lag *lag,
 		lag->upper_netdev = NULL;
 	}
 
-	if (lag->peer_netdev) {
-		dev_put(lag->peer_netdev);
-		lag->peer_netdev = NULL;
-	}
-
+	lag->peer_netdev = NULL;
 	ice_set_sriov_cap(pf);
 	ice_set_rdma_cap(pf);
 	lag->bonded = false;
 	lag->role = ICE_LAG_NONE;
 }
 
+/**
+ * ice_lag_unregister - handle netdev unregister events
+ * @lag: LAG info struct
+ * @netdev: netdev reporting the event
+ */
+static void ice_lag_unregister(struct ice_lag *lag, struct net_device *netdev)
+{
+	struct ice_pf *pf = lag->pf;
+
+	/* check to see if this event is for this netdev
+	 * check that we are in an aggregate
+	 */
+	if (netdev != lag->netdev || !lag->bonded)
+		return;
+
+	if (lag->upper_netdev) {
+		dev_put(lag->upper_netdev);
+		lag->upper_netdev = NULL;
+		ice_set_sriov_cap(pf);
+		ice_set_rdma_cap(pf);
+	}
+	/* perform some cleanup in case we come back */
+	lag->bonded = false;
+	lag->role = ICE_LAG_NONE;
+}
+
 /**
  * ice_lag_changeupper_event - handle LAG changeupper event
  * @lag: LAG info struct
@@ -307,7 +329,7 @@ ice_lag_event_handler(struct notifier_block *notif_blk, unsigned long event,
 		ice_lag_info_event(lag, ptr);
 		break;
 	case NETDEV_UNREGISTER:
-		ice_lag_unlink(lag, ptr);
+		ice_lag_unregister(lag, netdev);
 		break;
 	default:
 		break;
drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h +1 -0
index d981dc6f2323..85a612838a89 100644
@@ -568,6 +568,7 @@ struct ice_tx_ctx_desc {
 			(0x3FFFFULL << ICE_TXD_CTX_QW1_TSO_LEN_S)
 
 #define ICE_TXD_CTX_QW1_MSS_S	50
+#define ICE_TXD_CTX_MIN_MSS	64
 
 #define ICE_TXD_CTX_QW1_VSI_S	50
 #define ICE_TXD_CTX_QW1_VSI_M	(0x3FFULL << ICE_TXD_CTX_QW1_VSI_S)
drivers/net/ethernet/intel/ice/ice_main.c +20 -8
index 73c61cdb036f..5b4be432b60c 100644
@@ -2235,6 +2235,9 @@ static void ice_service_task(struct work_struct *work)
 		return;
 	}
 
+	if (test_and_clear_bit(ICE_FLAG_PLUG_AUX_DEV, pf->flags))
+		ice_plug_aux_dev(pf);
+
 	ice_clean_adminq_subtask(pf);
 	ice_check_media_subtask(pf);
 	ice_check_for_hang_subtask(pf);
@@ -8540,6 +8543,7 @@ ice_features_check(struct sk_buff *skb,
 		   struct net_device __always_unused *netdev,
 		   netdev_features_t features)
 {
+	bool gso = skb_is_gso(skb);
 	size_t len;
 
 	/* No point in doing any of this if neither checksum nor GSO are
@@ -8552,24 +8556,32 @@ ice_features_check(struct sk_buff *skb,
 	/* We cannot support GSO if the MSS is going to be less than
 	 * 64 bytes. If it is then we need to drop support for GSO.
 	 */
-	if (skb_is_gso(skb) && (skb_shinfo(skb)->gso_size < 64))
+	if (gso && (skb_shinfo(skb)->gso_size < ICE_TXD_CTX_MIN_MSS))
 		features &= ~NETIF_F_GSO_MASK;
 
-	len = skb_network_header(skb) - skb->data;
+	len = skb_network_offset(skb);
 	if (len > ICE_TXD_MACLEN_MAX || len & 0x1)
 		goto out_rm_features;
 
-	len = skb_transport_header(skb) - skb_network_header(skb);
+	len = skb_network_header_len(skb);
 	if (len > ICE_TXD_IPLEN_MAX || len & 0x1)
 		goto out_rm_features;
[… more lines in the raw message]

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

drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +7 -6
index d81811ab4ec4..c2f87a2d0ef4 100644

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

drivers/net/ethernet/litex/Kconfig +1 -1
index f99adbf26ab4..04345b929d8e 100644

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

drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c +1 -1
index 59783fc46a7b..10b866e9f726 100644

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

drivers/net/ethernet/mscc/ocelot.c +15 -4
index 294bb4eb3833..02edd383dea2 100644

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

drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +8 -4
index dfb4468fe287..0a326e04e692 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +1 -1
index 617d0e4c6495..09644ab0d87a 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +7 -6
index c5ad28e543e4..f4015579e8ad 100644

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

drivers/net/mdio/mdio-aspeed.c +1 -0
index 966c3b4ad59d..e2273588c75b 100644

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

drivers/net/phy/marvell.c +9 -8
index c10cc2cd53b6..cfda625dbea5 100644

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

drivers/net/usb/ax88179_178a.c +39 -29

68 lines not on this page · raw message

drivers/net/veth.c +8 -5
index ecbc09cbe259..f478fe7e2b82 100644

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

drivers/nvme/host/pci.c +2 -1
index ca2ee806d74b..953ea3d5d4bf 100644

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

drivers/nvme/host/tcp.c +9 -1
index 4ceb28675fdf..22046415a094 100644

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

drivers/pci/pcie/portdrv_core.c +17 -30

47 lines not on this page · raw message

drivers/phy/amlogic/phy-meson-axg-mipi-dphy.c +2 -1
index cd2332bf0e31..fdbd64c03e12 100644

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

drivers/phy/broadcom/Kconfig +1 -2
index f81e23742079..849c4204f550 100644

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

drivers/phy/phy-core-mipi-dphy.c +2 -2
index 288c9c67aa74..ccb4045685cd 100644

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

drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c +2 -1
index 347dc79a18c1..630e01b5c19b 100644

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

drivers/phy/st/phy-stm32-usbphyc.c +1 -1
index e4f4a9be5132..1ecdc26689ce 100644

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

drivers/phy/ti/phy-j721e-wiz.c +1 -0
index b3384c31637a..da546c35d1d5 100644

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

drivers/phy/xilinx/phy-zynqmp.c +6 -5
index f478d8a17115..9be9535ad7ab 100644

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

drivers/s390/cio/device.c +1 -1
index 07a17613fab5..b83505020231 100644

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

drivers/scsi/lpfc/lpfc.h +10 -3
index 54c58392fd5d..f74a1c09c351 100644

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

drivers/scsi/lpfc/lpfc_attr.c +2 -2
index 7a7f17d71811..bac78fbce8d6 100644

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

drivers/scsi/lpfc/lpfc_init.c +1 -1
index 7628b0634c57..ece50201d172 100644

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

drivers/scsi/lpfc/lpfc_sli.c +7 -1
index 513a78d08b1d..f404e6bf813c 100644

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

drivers/scsi/myrs.c +2 -1
index 6ea323e9a2e3..f6dbc8f2f60a 100644

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

drivers/scsi/pm8001/pm80xx_hwi.c +14 -2
index 2101fc5761c3..4c5b945bf318 100644

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

drivers/scsi/pm8001/pm80xx_hwi.h +5 -1
index c7e5d93bea92..c41ed039c92a 100644

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

drivers/scsi/qedf/qedf_io.c +1 -0
index 99a56ca1fb16..fab43dabe5b3 100644

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

drivers/scsi/qedf/qedf_main.c +5 -2
index 1bf7a22d4948..e0e03443d770 100644

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

drivers/scsi/ufs/ufshcd-pltfrm.c +7 -0
index 8b16bbbcb806..87975d1a21c8 100644

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

drivers/scsi/ufs/ufshcd.c +6 -3
index c94377aa8273..ec7d7e01231d 100644

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

drivers/scsi/ufs/ufshci.h +2 -1
index 6a295c88d850..a7ff0e5b5494 100644

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

drivers/staging/fbtft/fbtft.h +4 -1
index 6869f3603b0e..9a6c906820f2 100644

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

drivers/target/iscsi/iscsi_target_tpg.c +3 -0
index 8075f60fd02c..2d5cf1714ae0 100644

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

drivers/tee/optee/ffa_abi.c +12 -3
index d8c8683863aa..28d7c0eafc02 100644

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

drivers/tee/optee/smc_abi.c +0 -10
index cf2e3293567d..09e7ec673bb6 100644

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

drivers/tty/n_tty.c +2 -2
index 5be6d02dc690..b2b98fe689e9 100644

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

drivers/tty/vt/vt_ioctl.c +2 -1
index 3639bb6dc372..58013698635f 100644

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

drivers/usb/common/ulpi.c +7 -3
index 8f8405b0d608..5509d3847af4 100644

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

drivers/usb/dwc2/gadget.c +1 -1
index 43cf49c4e5e5..da82e4140d54 100644

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

drivers/usb/dwc3/gadget.c +13 -0
index 7e3db00e9759..7aab9116b025 100644

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

drivers/usb/gadget/composite.c +3 -0
index 3789c329183c..553382ce3837 100644

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

drivers/usb/gadget/function/f_fs.c +42 -14

56 lines not on this page · raw message

drivers/usb/gadget/function/f_uac2.c +2 -2
index 36fa6ef0581b..097a709549d6 100644

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

drivers/usb/gadget/function/rndis.c +6 -3
index 64de9f1b874c..d9ed651f06ac 100644

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

drivers/usb/gadget/legacy/raw_gadget.c +1 -1
index c5a2c734234a..d86c3a36441e 100644

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

drivers/usb/gadget/udc/renesas_usb3.c +2 -0
index 57d417a7c3e0..601829a6b4ba 100644

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

drivers/usb/serial/ch341.c +1 -0
index 29f4b87a9e74..58cba8ee0277 100644

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

drivers/usb/serial/cp210x.c +2 -0
index 8a60c0d56863..a27f7efcec6a 100644

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

drivers/usb/serial/ftdi_sio.c +3 -0
index 4edebd14ef29..49c08f07c969 100644

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

drivers/usb/serial/ftdi_sio_ids.h +3 -0
index 755858ca20ba..d1a9564697a4 100644

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

drivers/usb/serial/option.c +2 -0
index 42420bfc983c..962e9943fc20 100644

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

drivers/video/fbdev/core/fbcon.c +3 -4
index f36829eeb5a9..2fc1b80a26ad 100644

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

fs/gfs2/file.c +4 -3
index 3e718cfc19a7..8c39a8571b1f 100644

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

fs/gfs2/glock.c +0 -3
index 44a7a4288956..e946ccba384c 100644

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

fs/nfs/callback.h +1 -1
index 6a2033131c06..ccd4f245cae2 100644

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

fs/nfs/callback_proc.c +1 -1
index 09c5b1cb3e07..c343666d9a42 100644

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

fs/nfs/callback_xdr.c +9 -9
index a67c41ec545f..f90de8043b0f 100644

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

fs/nfs/client.c +8 -1
index 1e4dc1ab9312..a1e87419f3a4 100644

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

fs/nfs/dir.c +27 -17

44 lines not on this page · raw message

fs/nfs/nfs4_fs.h +7 -5
index ed5eaca6801e..85c5d08dfa9c 100644

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

fs/nfs/nfs4client.c +4 -1
index d8b5a250ca05..47a6cf892c95 100644

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

fs/nfs/nfs4namespace.c +12 -7
index 873342308dc0..3680c8da510c 100644

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

fs/nfs/nfs4proc.c +77 -19

96 lines not on this page · raw message

fs/nfs/nfs4state.c +5 -1
index f63dfa01001c..499bef9fe118 100644

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

fs/nfs/nfs4xdr.c +4 -5
index 69862bf6db00..71a00e48bd2d 100644

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

fs/nfsd/nfs3proc.c +11 -2
index 8ef53f6726ec..b540489ea240 100644

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

fs/nfsd/nfs3xdr.c +1 -1
index 84088581bbe0..48e8a02ebc83 100644

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

fs/nfsd/nfs4proc.c +9 -4
index a36261f89bdf..c7bcd65dae11 100644

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

fs/nfsd/nfs4xdr.c +2 -6
index 5a93a5db4fb0..8b09ecf8b988 100644

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

fs/nfsd/trace.h +7 -7
index f1e0d3c51bc2..e662494de3c7 100644

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

fs/nfsd/vfs.c +4 -0
index 7f2472e4b88f..6cf79ca806ab 100644

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

fs/proc/task_mmu.c +31 -9
index ad667dbc96f5..cbb22354f380 100644

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

include/linux/memcontrol.h +3 -2
index 0c5c403f4be6..5c59d045359b 100644

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

include/linux/nfs_fs.h +3 -2
index 05f249f20f55..29a2ab5de1da 100644

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

include/linux/nfs_fs_sb.h +1 -1
index 2a9acbfe00f0..9a6e70ccde56 100644

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

include/linux/nfs_xdr.h +1 -0
index 967a0098f0a9..695fa84611b6 100644

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

include/linux/suspend.h +3 -12
index 8af13ba60c7e..4bcd65679cee 100644

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

include/net/dst_metadata.h +13 -1
index 14efa0ded75d..adab27ba1ecb 100644

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

include/uapi/linux/netfilter/nf_conntrack_common.h +1 -1
index 4b3395082d15..26071021e986 100644

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

kernel/auditsc.c +1 -1
index b517947bfa48..2dc94a0e3447 100644

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

kernel/events/core.c +12 -4
index 04e6e2dae60e..e4a43d475ba6 100644

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

kernel/power/main.c +4 -1
index 44169f3081fd..7e646079fbeb 100644

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

kernel/power/process.c +1 -1
index b7e7798637b8..11b570fcf049 100644

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

kernel/power/snapshot.c +7 -14
index f7a986078213..330d49937692 100644

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

kernel/power/suspend.c +0 -2
index 80cc1f0f502b..6fcdee7e87a5 100644

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

kernel/sched/core.c +3 -9
index 77563109c0ea..d24823b3c3f9 100644

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

kernel/seccomp.c +10 -0
index 4d8f44a17727..db10e73d06e0 100644

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

kernel/signal.c +3 -2
index cf97b9c4d665..684fb02b20f8 100644

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

lib/test_kasan.c +5 -0
index 0643573f8686..2ef2948261bf 100644

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

mm/memcontrol.c +5 -5
index fdc952f270c1..e57b14f96615 100644

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

mm/vmscan.c +3 -1
index 700434db5735..8d24a2299c06 100644

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

net/can/isotp.c +22 -7
index 02cbcb2ecf0d..d2a430b6a13b 100644

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

net/dsa/dsa2.c +6 -19
index 826957b6442b..7578b1350f18 100644

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

net/ipv4/ipmr.c +2 -0
index 2dda856ca260..aea29d97f8df 100644

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

net/ipv4/tcp.c +19 -14
index 94cbba9fb12b..28abb0bb1c51 100644

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

net/ipv6/ip6mr.c +2 -0
index 36ed9efb8825..6a4065d81aa9 100644

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

net/mptcp/pm_netlink.c +6 -2
index 5d305fafd0e9..5eada95dd76b 100644

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

net/netfilter/nf_conntrack_netlink.c +2 -1
index ec4164c32d27..2d7f63ad3360 100644

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

net/netfilter/nft_exthdr.c +1 -1
index dbe1f2e7dd9e..9e927ab4df15 100644

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

net/netfilter/nft_payload.c +5 -4
index 58e96a0fe0b4..a4fbce560bdd 100644

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

net/sched/sch_api.c +1 -1
index 910a36ed5634..e4a7ce5c79f4 100644

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

net/sunrpc/clnt.c +4 -1
index a312ea2bc440..c83fe618767c 100644

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

net/sunrpc/sysfs.c +27 -19

46 lines not on this page · raw message

net/sunrpc/xprtsock.c +6 -1
index d8ee06a9650a..03770e56df36 100644

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

net/tipc/name_distr.c +1 -1
index bda902caa814..8267b751a526 100644

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

scripts/Makefile.extrawarn +1 -0
index d53825503874..8be892887d71 100644

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

scripts/kconfig/confdata.c +6 -6
index 42bc56ee238c..00284c03da4d 100644

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

security/integrity/digsig_asymmetric.c +9 -6
index 23240d793b07..895f4b9ce8c6 100644

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

security/integrity/ima/ima_fs.c +1 -1
index 3d8e9d5db5aa..3ad8f7734208 100644

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

security/integrity/ima/ima_policy.c +8 -0
index 320ca80aacab..2a1f6418b10a 100644

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

security/integrity/ima/ima_template.c +7 -3
index 694560396be0..db1ad6d7a57f 100644

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

security/integrity/integrity_audit.c +2 -0
index 29220056207f..0ec5e4c22cb2 100644

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

virt/kvm/eventfd.c +4 -4
index 2ad013b8bde9..59b1dd4a549e 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.