Skip to contentSkip to conversation

Linux 5.7.10

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

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.7.10 kernel.

All users of the 5.7 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/arm64/silicon-errata.rst                                   |    8 
 Documentation/devicetree/bindings/Makefile                               |    5 
 Documentation/devicetree/bindings/bus/socionext,uniphier-system-bus.yaml |    4 
 Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt    |    2 
 Makefile                                                                 |    2 
 arch/arm/boot/dts/am437x-l4.dtsi                                         |   14 
 arch/arm/boot/dts/imx6qdl-gw551x.dtsi                                    |    2 
 arch/arm/boot/dts/mt7623n-rfb-emmc.dts                                   |    1 
 arch/arm/boot/dts/socfpga.dtsi                                           |    2 
 arch/arm/boot/dts/socfpga_arria10.dtsi                                   |    2 
 arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi                        |    8 
 arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts                   |    1 
 arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts              |    7 
 arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts             |    2 
 arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts                     |    2 
 arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi                         |   24 +
 arch/arm64/boot/dts/amlogic/meson-gxl.dtsi                               |    5 
 arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts                       |    1 
 arch/arm64/include/asm/alternative.h                                     |   16 
 arch/arm64/include/asm/cputype.h                                         |    2 
 arch/arm64/include/asm/debug-monitors.h                                  |    2 
 arch/arm64/include/asm/syscall.h                                         |   12 
 arch/arm64/include/asm/thread_info.h                                     |    1 
 arch/arm64/kernel/alternative.c                                          |   16 
 arch/arm64/kernel/cpu_errata.c                                           |   22 -
 arch/arm64/kernel/cpufeature.c                                           |    2 
 arch/arm64/kernel/debug-monitors.c                                       |   20 -
 arch/arm64/kernel/ptrace.c                                               |   29 +
 arch/arm64/kernel/signal.c                                               |   11 
 arch/arm64/kernel/syscall.c                                              |    5 
 arch/arm64/kernel/vmlinux.lds.S                                          |    3 
 arch/m68k/kernel/setup_no.c                                              |    3 
 arch/m68k/mm/mcfmmu.c                                                    |    2 
 arch/powerpc/kernel/paca.c                                               |    2 
 arch/powerpc/mm/book3s64/pkeys.c                                         |   12 
 arch/riscv/include/asm/thread_info.h                                     |    4 
 arch/x86/include/asm/fpu/internal.h                                      |    5 
 arch/x86/include/asm/io_bitmap.h                                         |   16 
 arch/x86/include/asm/paravirt.h                                          |    5 
 arch/x86/include/asm/paravirt_types.h                                    |    1 
 arch/x86/kernel/apic/vector.c                                            |   22 -
 arch/x86/kernel/fpu/core.c                                               |    6 
 arch/x86/kernel/fpu/xstate.c                                             |    2 
 arch/x86/kernel/paravirt.c                                               |    3 
 arch/x86/kernel/process.c                                                |   18 -
 arch/x86/xen/enlighten_pv.c                                              |   12 
 block/blk-mq-debugfs.c                                                   |    3 
 crypto/asymmetric_keys/public_key.c                                      |    1 
 drivers/acpi/dptf/dptf_power.c                                           |    1 
 drivers/base/regmap/regmap-debugfs.c                                     |   52 +--
 drivers/block/zram/zram_drv.c                                            |    3 
 drivers/bus/ti-sysc.c                                                    |   23 -
 drivers/char/tpm/tpm_tis_core.c                                          |    2 
 drivers/char/virtio_console.c                                            |    3 
 drivers/clk/clk-ast2600.c                                                |   49 ++
 drivers/clk/mvebu/Kconfig                                                |    1 
 drivers/clk/qcom/gcc-msm8998.c                                           |   27 +
 drivers/clk/qcom/gcc-sc7180.c                                            |   73 ++--
 drivers/clk/qcom/gcc-sm8150.c                                            |  148 ++++++++
 drivers/counter/104-quad-8.c                                             |   22 +
 drivers/dma-buf/dma-buf.c                                                |   11 
 drivers/dma/dmatest.c                                                    |    2 
 drivers/dma/dw/core.c                                                    |   12 
 drivers/dma/fsl-edma-common.h                                            |    2 
 drivers/dma/fsl-edma.c                                                   |    7 
 drivers/dma/idxd/cdev.c                                                  |   19 -
 drivers/dma/idxd/device.c                                                |   25 +
 drivers/dma/idxd/idxd.h                                                  |    1 
 drivers/dma/idxd/irq.c                                                   |    3 
 drivers/dma/idxd/sysfs.c                                                 |    5 
 drivers/dma/mcf-edma.c                                                   |    7 
 drivers/dma/sh/usb-dmac.c                                                |    2 
 drivers/dma/ti/k3-udma.c                                                 |    8 
 drivers/gpio/gpio-pca953x.c                                              |    1 
 drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c                                   |   26 -
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                        |   14 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h                        |   11 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c              |   53 +--
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h              |    3 
 drivers/gpu/drm/amd/display/dc/core/dc_stream.c                          |   19 -
 drivers/gpu/drm/amd/powerplay/renoir_ppt.c                               |    2 
 drivers/gpu/drm/exynos/exynos_drm_dma.c                                  |    4 
 drivers/gpu/drm/exynos/exynos_drm_mic.c                                  |    4 
 drivers/gpu/drm/i915/display/intel_hdmi.c                                |   10 
 drivers/gpu/drm/i915/gt/intel_lrc.c                                      |   19 -
 drivers/gpu/drm/i915/gvt/handlers.c                                      |    4 
 drivers/gpu/drm/i915/i915_perf.c                                         |    1 
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c                              |    4 
 drivers/gpu/drm/msm/msm_submitqueue.c                                    |    4 
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c                                     |    8 
 drivers/hid/hid-ids.h                                                    |    3 
 drivers/hid/hid-logitech-hidpp.c                                         |    2 
 drivers/hid/hid-magicmouse.c                                             |    6 
 drivers/hid/hid-quirks.c                                                 |    2 
 drivers/hwmon/drivetemp.c                                                |   43 ++
 drivers/hwmon/emc2103.c                                                  |    2 
 drivers/hwtracing/coresight/coresight-etm4x.c                            |   82 +++-
 drivers/hwtracing/intel_th/core.c                                        |   21 +
 drivers/hwtracing/intel_th/pci.c                                         |   15 
 drivers/hwtracing/intel_th/sth.c                                         |    4 
 drivers/i2c/busses/i2c-eg20t.c                                           |    1 
 drivers/iio/accel/mma8452.c                                              |    5 
 drivers/iio/adc/ad7780.c                                                 |    2 
 drivers/iio/health/afe4403.c                                             |   13 
 drivers/iio/health/afe4404.c                                             |    8 
 drivers/iio/humidity/hdc100x.c                                           |   10 
 drivers/iio/humidity/hts221.h                                            |    7 
 drivers/iio/humidity/hts221_buffer.c                                     |    9 
 drivers/iio/industrialio-core.c                                          |    2 
 drivers/iio/magnetometer/ak8974.c                                        |   29 -
 drivers/iio/pressure/ms5611_core.c                                       |   11 
 drivers/iio/pressure/zpa2326.c                                           |    4 
 drivers/infiniband/hw/mlx5/qp.c                                          |    2 
 drivers/infiniband/sw/rxe/rxe.c                                          |    1 
 drivers/infiniband/sw/rxe/rxe_param.h                                    |    3 
 drivers/input/serio/i8042-x86ia64io.h                                    |    7 
 drivers/input/touchscreen/elants_i2c.c                                   |    1 
 drivers/input/touchscreen/mms114.c                                       |   17 
 drivers/iommu/Kconfig                                                    |    2 
 drivers/misc/atmel-ssc.c                                                 |   24 -
 drivers/misc/habanalabs/goya/goya_security.c                             |   99 +++++
 drivers/misc/mei/bus.c                                                   |    3 
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                                 |   24 -
 drivers/mtd/nand/raw/marvell_nand.c                                      |   27 -
 drivers/mtd/nand/raw/nand_timings.c                                      |    5 
 drivers/mtd/nand/raw/oxnas_nand.c                                        |   24 +
 drivers/mtd/spi-nor/sfdp.c                                               |    4 
 drivers/mtd/spi-nor/sfdp.h                                               |    6 
 drivers/mtd/spi-nor/spansion.c                                           |   25 +
 drivers/mtd/spi-nor/winbond.c                                            |   29 +
 drivers/net/dsa/microchip/ksz8795.c                                      |    3 
 drivers/net/dsa/microchip/ksz9477.c                                      |    3 
 drivers/net/ethernet/marvell/mvneta.c                                    |   24 +
 drivers/net/ethernet/pensando/ionic/ionic_lif.c                          |    4 
 drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c                       |    5 
 drivers/net/ipa/gsi.c                                                    |   13 
 drivers/net/ipa/ipa_cmd.c                                                |   15 
 drivers/net/ipa/ipa_cmd.h                                                |    8 
 drivers/net/ipa/ipa_endpoint.c                                           |    2 
 drivers/net/usb/qmi_wwan.c                                               |    1 
 drivers/nvme/host/core.c                                                 |    1 
 drivers/nvme/host/nvme.h                                                 |   13 
 drivers/opp/of.c                                                         |    4 
 drivers/pci/pci.c                                                        |    4 
 drivers/phy/allwinner/phy-sun4i-usb.c                                    |    5 
 drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c                         |    4 
 drivers/scsi/megaraid/megaraid_sas_fusion.c                              |    2 
 drivers/scsi/qla2xxx/qla_def.h                                           |    4 
 drivers/slimbus/core.c                                                   |    1 
 drivers/soc/qcom/rpmh-rsc.c                                              |   98 +++--
 drivers/soc/qcom/rpmh.c                                                  |   56 +--
 drivers/soc/qcom/socinfo.c                                               |    2 
 drivers/soundwire/intel.c                                                |    5 
 drivers/spi/spi-fsl-dspi.c                                               |   15 
 drivers/spi/spi-sprd-adi.c                                               |    2 
 drivers/spi/spi-sun6i.c                                                  |   14 
 drivers/staging/comedi/drivers/addi_apci_1500.c                          |   10 
 drivers/thermal/imx_thermal.c                                            |    7 
 drivers/thermal/intel/int340x_thermal/int3403_thermal.c                  |    2 
 drivers/thermal/mtk_thermal.c                                            |    6 
 drivers/thunderbolt/tunnel.c                                             |   12 
 drivers/tty/serial/cpm_uart/cpm_uart_core.c                              |    9 
 drivers/tty/serial/mxs-auart.c                                           |   12 
 drivers/tty/serial/serial_core.c                                         |  112 ------
 drivers/tty/serial/sh-sci.c                                              |    3 
 drivers/tty/serial/xilinx_uartps.c                                       |    1 
 drivers/uio/uio_pdrv_genirq.c                                            |    4 
 drivers/usb/c67x00/c67x00-sched.c                                        |    2 
 drivers/usb/chipidea/core.c                                              |   24 +
 drivers/usb/dwc2/platform.c                                              |    3 
 drivers/usb/gadget/function/f_uac1_legacy.c                              |    2 
 drivers/usb/gadget/udc/atmel_usba_udc.c                                  |    2 
 drivers/usb/serial/ch341.c                                               |    1 
 drivers/usb/serial/cypress_m8.c                                          |    2 
 drivers/usb/serial/cypress_m8.h                                          |    3 
 drivers/usb/serial/iuu_phoenix.c                                         |    8 
 drivers/usb/serial/option.c                                              |    6 
 drivers/virt/vboxguest/vboxguest_core.c                                  |    6 
 drivers/virt/vboxguest/vboxguest_core.h                                  |   15 
 drivers/virt/vboxguest/vboxguest_linux.c                                 |    3 
 drivers/virt/vboxguest/vmmdev.h                                          |    2 
 drivers/xen/xenbus/xenbus_client.c                                       |  171 ++++------
 fs/cifs/transport.c                                                      |    2 
 fs/fuse/file.c                                                           |   14 
 fs/fuse/inode.c                                                          |   15 
 fs/gfs2/glops.c                                                          |   10 
 fs/gfs2/incore.h                                                         |    1 
 fs/gfs2/log.c                                                            |   15 
 fs/gfs2/log.h                                                            |    4 
 fs/gfs2/main.c                                                           |    1 
 fs/gfs2/ops_fstype.c                                                     |   13 
 fs/gfs2/recovery.c                                                       |    4 
 fs/gfs2/super.c                                                          |   20 -
 fs/io_uring.c                                                            |   10 
 fs/nfs/nfs4proc.c                                                        |   20 +
 fs/overlayfs/export.c                                                    |    2 
 fs/overlayfs/file.c                                                      |   10 
 fs/overlayfs/super.c                                                     |   23 +
 include/dt-bindings/clock/qcom,gcc-msm8998.h                             |    1 
 include/linux/blkdev.h                                                   |    1 
 include/linux/bpf.h                                                      |   13 
 include/linux/cgroup-defs.h                                              |    8 
 include/linux/cgroup.h                                                   |    4 
 include/linux/dma-buf.h                                                  |    1 
 include/linux/if_vlan.h                                                  |   29 +
 include/linux/input/elan-i2c-ids.h                                       |    7 
 include/linux/serial_core.h                                              |  102 +++++
 include/linux/skmsg.h                                                    |   13 
 include/net/dst.h                                                        |   10 
 include/net/genetlink.h                                                  |   10 
 include/net/inet_ecn.h                                                   |   25 -
 include/net/pkt_sched.h                                                  |   11 
 include/trace/events/rxrpc.h                                             |    2 
 include/uapi/linux/vboxguest.h                                           |    4 
 kernel/bpf/syscall.c                                                     |    2 
 kernel/cgroup/cgroup.c                                                   |   31 +
 kernel/irq/manage.c                                                      |   37 ++
 kernel/sched/core.c                                                      |    2 
 kernel/sched/fair.c                                                      |   15 
 kernel/time/timer.c                                                      |   21 -
 mm/memory.c                                                              |   21 -
 net/bridge/br_multicast.c                                                |    2 
 net/ceph/osd_client.c                                                    |    1 
 net/core/filter.c                                                        |   10 
 net/core/sock.c                                                          |    2 
 net/core/sock_map.c                                                      |   53 ++-
 net/ethtool/netlink.c                                                    |   27 -
 net/hsr/hsr_device.c                                                     |   11 
 net/ipv4/icmp.c                                                          |    4 
 net/ipv4/ip_output.c                                                     |    2 
 net/ipv4/ping.c                                                          |    3 
 net/ipv4/route.c                                                         |    2 
 net/ipv4/tcp.c                                                           |   15 
 net/ipv4/tcp_cong.c                                                      |    2 
 net/ipv4/tcp_input.c                                                     |    2 
 net/ipv4/tcp_ipv4.c                                                      |   15 
 net/ipv4/tcp_output.c                                                    |    8 
 net/ipv6/icmp.c                                                          |    4 
 net/ipv6/route.c                                                         |    7 
 net/l2tp/l2tp_core.c                                                     |    5 
 net/llc/af_llc.c                                                         |   10 
 net/mptcp/options.c                                                      |    6 
 net/netlink/genetlink.c                                                  |   97 -----
 net/qrtr/qrtr.c                                                          |    4 
 net/sched/act_connmark.c                                                 |    9 
 net/sched/act_csum.c                                                     |    2 
 net/sched/act_ct.c                                                       |    9 
 net/sched/act_ctinfo.c                                                   |    9 
 net/sched/act_mpls.c                                                     |    2 
 net/sched/act_skbedit.c                                                  |    2 
 net/sched/cls_api.c                                                      |    2 
 net/sched/cls_flow.c                                                     |    8 
 net/sched/cls_flower.c                                                   |    2 
 net/sched/em_ipset.c                                                     |    2 
 net/sched/em_ipt.c                                                       |    2 
 net/sched/em_meta.c                                                      |    2 
 net/sched/sch_atm.c                                                      |    8 
 net/sched/sch_cake.c                                                     |    4 
 net/sched/sch_dsmark.c                                                   |    6 
 net/sched/sch_teql.c                                                     |    2 
 net/sunrpc/xprtrdma/rpc_rdma.c                                           |    4 
 net/sunrpc/xprtrdma/transport.c                                          |    5 
 net/sunrpc/xprtrdma/verbs.c                                              |   35 --
 security/apparmor/match.c                                                |    5 
 sound/pci/hda/patch_realtek.c                                            |   27 +
 sound/usb/line6/capture.c                                                |    2 
 sound/usb/line6/driver.c                                                 |    2 
 sound/usb/line6/playback.c                                               |    2 
 sound/usb/midi.c                                                         |   17 
 tools/perf/util/stat.c                                                   |    6 
 tools/testing/selftests/net/fib_nexthops.sh                              |   13 
 271 files changed, 2280 insertions(+), 1100 deletions(-)

AceLan Kao (2):
net: usb: qmi_wwan: add support for Quectel EG95 LTE modem
USB: serial: option: add Quectel EG95 LTE modem

Aharon Landau (1):
RDMA/mlx5: Verify that QP is created with RQ or SQ

Alex Deucher (1):
drm/amdgpu/display: create fake mst encoders ahead of time (v4)

Alex Elder (2):
net: ipa: always check for stopped channel
net: ipa: introduce ipa_cmd_tag_process()

Alex Hung (1):
thermal: int3403_thermal: Downgrade error message

Alexander Lobakin (1):
virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for rproc serial

Alexander Shishkin (4):
intel_th: pci: Add Jasper Lake CPU support
intel_th: pci: Add Tiger Lake PCH-H support
intel_th: pci: Add Emmitsburg PCH support
intel_th: Fix a NULL dereference when hub driver is not loaded

Alexander Usyskin (1):
mei: bus: don't clean driver pointer

Amir Goldstein (3):
ovl: fix regression with re-formatted lower squashfs
ovl: relax WARN_ON() when decoding lower directory file handle
ovl: fix unneeded call to ovl_change_flags()

Andreas Schwab (1):
riscv: use 16KB kernel stack on 64-bit

Andy Lutomirski (1):
x86/ioperm: Fix io bitmap invalidation on Xen PV

Andy Shevchenko (4):
i2c: eg20t: Load module automatically if ID matches
dmaengine: dw: Initialize channel before each transfer
serial: core: Initialise spin lock before use in uart_configure_port()
gpio: pca953x: disable regmap locking for automatic address incrementing

Aneesh Kumar K.V (1):
powerpc/book3s64/pkeys: Fix pkey_access_permitted() for execute disable pkey

Angelo Dureghello (1):
m68k: mm: fix node memblock init

Anna Schumaker (1):
NFS: Fix interrupted slots by sending a solo SEQUENCE operation

Anson Huang (1):
thermal/drivers: imx: Fix missing of_node_put() at probe time

Anthony Iliopoulos (1):
nvme: explicitly update mpath disk capacity on revalidation

Ard Biesheuvel (2):
arm64/alternatives: use subsections for replacement sequences arm64/alternatives: don't patch up internal branches

Arjun Roy (1):
mm/memory.c: properly pte_offset_map_lock/unlock in vm_insert_pages()

Armas Spann (1):
ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G14(G401) series with ALC289

Bernard Zhao (1):
drm/msm: fix potential memleak in error branch

Bjorn Helgaas (1):
PCI/PM: Call .bridge_d3() hook only if non-NULL

Bob Peterson (5):
gfs2: eliminate GIF_ORDERED in favor of list_empty
gfs2: freeze should work on read-only mounts
gfs2: read-only mounts should grab the sd_freeze_gl glock
gfs2: When freezing gfs2, use GL_EXACT and not GL_NOCACHE
gfs2: The freeze glock should never be frozen

Carl Huang (1):
net: qrtr: free flow in __qrtr_node_release

Chandrakanth Patil (1):
scsi: megaraid_sas: Remove undefined ENABLE_IRQ_POLL macro

Charan Teja Kalla (1):

      dmabuf: use spinlock to access dmabuf->name

Chirantan Ekbote (1):
fuse: Fix parameter for FS_IOC_{GET,SET}FLAGS

Chris Wilson (2):
drm/i915/gt: Ignore irq enabling on the virtual engines drm/i915/gt: Only swap to a random sibling once upon creation

Christoph Paasch (1):
tcp: make sure listeners don't initialize congestion-control state

Christophe JAILLET (1):
iio: adc: ad7780: Fix a resource handling path in 'ad7780_probe()'

Christophe Leroy (1):
tty: serial: cpm_uart: Fix behaviour for non existing GPIOs

Chuck Lever (4):
xprtrdma: Fix double-free in rpcrdma_ep_create()
xprtrdma: Fix recursion into rpcrdma_xprt_disconnect()
xprtrdma: Fix return code from rpcrdma_xprt_connect()
xprtrdma: Fix handling of connect errors

Chuhong Yuan (2):
iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()
serial: mxs-auart: add missed iounmap() in probe failure and remove

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

Colin Ian King (3):
scsi: qla2xxx: make 1-bit bit-fields unsigned int
phy: sun4i-usb: fix dereference of pointer phy0 before it is null checked
xprtrdma: fix incorrect header size calculations

Colin Xu (1):
drm/i915/gvt: Fix two CFL MMIO handling caused by regression.

Cong Wang (4):
net_sched: fix a memory leak in atm_tc_init()
cgroup: fix cgroup_sk_alloc() for sk_clone_lock()
cgroup: Fix sock_cgroup_data on big-endian.
genetlink: get rid of family->attrbuf

Dan Carpenter (2):
xen/xenbus: Fix a double free in xenbus_map_ring_pv()
staging: comedi: verify array index is correct before using it

Dave Jiang (2):
dmaengine: idxd: cleanup workqueue config after disabling
dmaengine: idxd: fix misc interrupt handler thread unmasking

Dave Wang (1):
Input: elan_i2c - add more hardware ID for Lenovo laptops

David Ahern (2):
ipv6: fib6_select_path can not use out path for nexthop objects
ipv6: Fix use of anycast address with loopback

David Howells (1):
rxrpc: Fix trace string

David Pedersen (1):
Input: i8042 - add Lenovo XiaoXin Air 12 to i8042 nomux list

Dinghao Liu (1):
iio: magnetometer: ak8974: Fix runtime PM imbalance on error

Dinh Nguyen (3):
arm64: dts: agilex: add status to qspi dts node
arm64: dts: stratix10: add status to qspi dts node
arm64: dts: stratix10: increase QSPI reg address in nand dts file

Dmitry Torokhov (2):
HID: magicmouse: do not set up autorepeat
Revert "Input: elants_i2c - report resolution information for touch major"

Douglas Anderson (1):
regmap: debugfs: Don't sleep while atomic for fast_io regmaps

Eddie James (1):
clk: AST2600: Add mux for EMMC clock

Enric Balletbo i Serra (1):
Revert "thermal: mediatek: fix register index error"

Eric Dumazet (6):
llc: make sure applications use ARPHRD_ETHER
tcp: fix SO_RCVLOWAT possible hangs under high mem pressure
tcp: md5: add missing memory barriers in tcp_md5_do_add()/tcp_md5_hash_key()
tcp: md5: do not send silly options in SYNCOOKIES
tcp: md5: refine tcp_md5_do_add()/tcp_md5_hash_key() barriers
tcp: md5: allow changing MD5 keys in all socket states

Esben Haabendal (2):
uio_pdrv_genirq: Remove warning when irq is not specified
uio_pdrv_genirq: fix use without device tree and no interrupt

Florian Fainelli (1):
arm64: Add missing sentinel to erratum_1463225

Frederic Weisbecker (2):
timer: Prevent base->clk from moving backward
timer: Fix wheel index calculation on last level

Greg Kroah-Hartman (1):

      Linux 5.7.10

Hans de Goede (2):
virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match upstream
virt: vbox: Fix guest capabilities mask check

Hou Tao (1):

      blk-mq-debugfs: update blk_queue_flag_name[] accordingly for new flags

Igor Moura (1):
USB: serial: ch341: add new Product ID for CH340

Ilya Dryomov (1):
libceph: don't omit recovery_deletes in target_copy()

James Hilliard (2):
HID: quirks: Ignore Simply Automated UPB PIM
USB: serial: cypress_m8: enable Simply Automated UPB PIM

Jan Kiszka (1):
Revert "tty: xilinx_uartps: Fix missing id assignment to the console"

Jeffrey Hugo (1):
clk: qcom: Add missing msm8998 ufs_unipro_core_clk_src

Jerome Brunet (1):
arm64: dts: meson: add missing gxl rng clock

Jian-Hong Pan (1):
ALSA: hda/realtek: Enable headset mic of Acer TravelMate B311R-31 with ALC256

Jin Yao (1):
perf stat: Zero all the 'ena' and 'run' array slot stats for interval mode

Johan Hovold (3):
USB: serial: iuu_phoenix: fix memory corruption Revert "serial: core: Refactor uart_unlock_and_check_sysrq()"
serial: core: fix sysrq overhead regression

John Johansen (1):
apparmor: ensure that dfa state tables have entries

Jonathan Cameron (6):
iio:magnetometer:ak8974: Fix alignment and data leak issues iio:humidity:hdc100x Fix alignment and data leak issues iio:humidity:hts221 Fix alignment and data leak issues iio:pressure:ms5611 Fix buffer element alignment iio:health:afe4403 Fix timestamp alignment and prevent data leak. iio:health:afe4404 Fix timestamp alignment and prevent data leak.

Josip Pavic (1):
drm/amd/display: handle failed allocation during stream construction

Juergen Gross (2):
xen/xenbus: avoid large structs and arrays on the stack xen/xenbus: let xenbus_map_ring_valloc() return errno values only

Jörgen Storvist (1):
USB: serial: option: add GosunCn GM500 series

Kailang Yang (3):
ALSA: hda/realtek - change to suitable link model for ASUS platform
ALSA: hda/realtek - Enable Speaker for ASUS UX533 and UX534
ALSA: hda/realtek - Enable Speaker for ASUS UX563

Kangmin Park (1):
dt-bindings: mailbox: zynqmp_ipi: fix unit address

Kevin Buettner (1):
copy_xstate_to_kernel: Fix typo which caused GDB regression

Krishna Manikandan (1):
drm/msm/dpu: allow initialization of encoder locks during encoder init

Krzysztof Kozlowski (5):
spi: spi-fsl-dspi: Fix lockup if device is shutdown during SPI transfer
ARM: dts: socfpga: Align L2 cache-controller nodename with dtschema
arm64: dts: spcfpga: Align GIC, NAND and UART nodenames with dtschema
dmaengine: fsl-edma: Fix NULL pointer exception in fsl_edma_tx_handler
dmaengine: mcf-edma: Fix NULL pointer exception in mcf_edma_tx_handler

Lad Prabhakar (1):
serial: sh-sci: Initialize spinlock for uart console

Lingling Xu (1):
spi: sprd: switch the sequence of setting WDG_LOAD_LOW and _HIGH

Linus Lüssing (1):
bridge: mcast: Fix MLD2 Report IPv6 payload length check

Lorenz Bauer (2):
bpf: sockmap: Check value of unused args to BPF_PROG_ATTACH
bpf: sockmap: Require attach_bpf_fd when detaching a program

Lu Baolu (1):
iommu/vt-d: Make Intel SVM code 64-bit only

Maarten Lankhorst (1):
drm/i915: Move cec_notifier to intel_hdmi_connector_unregister, v2.

Maciej S. Szmigiero (2):
HID: logitech-hidpp: avoid repeated "multiplier = " log messages
hwmon: (drivetemp) Avoid SCT usage on Toshiba DT01ACA family drives

Mantas Pucka (1):
mtd: spi-nor: winbond: Fix 4-byte opcode support for w25q256

Marc Kleine-Budde (1):
spi: spi-sun6i: sun6i_spi_transfer_one(): fix setting of clock rate

Marek Szyprowski (1):
drm/exynos: Properly propagate return value in drm_iommu_attach_device()

Martin Varghese (1):

      net: Added pointer check for dst->ops->neigh_lookup in dst_neigh_lookup_skb

Masahiro Yamada (2):
dt-bindings: bus: uniphier-system-bus: fix warning in example
dt-bindings: fix error in 'make clean' after 'make dt_binding_check'

Mathieu Desnoyers (1):
sched: Fix unreliable rseq cpu_id for new tasks

Matt Ranostay (1):
iio: core: add missing IIO_MOD_H2/ETHANOL string identifiers

Maulik Shah (3):
soc: qcom: rpmh: Update dirty flag only when data changes
soc: qcom: rpmh: Invalidate SLEEP and WAKE TCSes before flushing new data
soc: qcom: rpmh-rsc: Allow using free WAKE TCS for active request

Miaohe Lin (1):
net: ipv4: Fix wrong type conversion from hint to rt in ip_route_use_hint()

Michal Kubecek (1):
ethtool: fix genlmsg_put() failure handling in ethnl_default_dumpit()

Michał Mirosław (2):
usb: gadget: udc: atmel: fix uninitialized read in debug printk
misc: atmel-ssc: lock with mutex instead of spinlock

Mika Westerberg (1):
thunderbolt: Fix path indices used in USB3 tunnel discovery

Mike Leach (1):
coresight: etmv4: Fix CPU power management setup in probe() function

Mike Rapoport (1):
m68k: nommu: register start of the memory with memblock

Miklos Szeredi (2):
fuse: ignore 'data' argument of mount(..., MS_REMOUNT)
fuse: use ->reconfigure() instead of ->remount_fs()

Minas Harutyunyan (1):
usb: dwc2: Fix shutdown callback in platform

Miquel Raynal (7):
mtd: rawnand: marvell: Fix the condition on a return code
mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet registered
mtd: rawnand: marvell: Fix probe error path
mtd: rawnand: timings: Fix default tR_max and tCCS_min timings
mtd: rawnand: oxnas: Keep track of registered devices
mtd: rawnand: oxnas: Unregister all devices on error
mtd: rawnand: oxnas: Release all devices in the _remove() path

Nathan Chancellor (1):
clk: mvebu: ARMADA_AP_CPU_CLK needs to select ARMADA_AP_CP_HELPER

Navid Emamdoost (2):
drm/exynos: fix ref count leak in mic_pre_enable
iio: pressure: zpa2326: handle pm_runtime_get_sync failure

Neil Armstrong (1):
arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency

Nikhil Rao (1):
dmaengine: idxd: fix cdev locking for open and release

Paolo Abeni (1):
mptcp: fix DSS map generation on fin retransmission

Pavel Begunkov (1):
io_uring: fix recvmsg memory leak with buffer selection

Peter Chen (1):
usb: chipidea: core: add wakeup support for extcon

Peter Ujfalusi (4):
dmaengine: ti: k3-udma: Use correct node to read "ti,udma-atype"
dmaengine: ti: k3-udma: Fix delayed_work usage for tx drain workaround
dmaengine: dmatest: stop completed threads when running without set channel
dmaengine: ti: k3-udma: Disable memcopy via MCU NAVSS on am654

Petteri Aimonen (1):
x86/fpu: Reset MXCSR to default in kernel_fpu_begin()

Pierre-Louis Bossart (1):
soundwire: intel: fix memory leak with devm_kasprintf

Raju P.L.S.S.S.N (1):
soc: qcom: rpmh-rsc: Clear active mode configuration for wake TCS

Robin Gong (1):
dmaengine: fsl-edma-common: correct DSIZE_32BYTE

Roland Scheidegger (1):
drm/vmwgfx: fix update of display surface when resolution changes

Ronnie Sahlberg (1):
cifs: prevent truncation from long to int in wait_for_free_credits

Sabrina Dubroca (1):
ipv4: fill fl4_icmp_{type,code} in ping_v4_sendmsg

Sai Prakash Ranjan (3):

      arm64: Add MIDR value for KRYO4XX gold CPU cores
      arm64: Add KRYO4XX gold CPU cores to erratum list 1463225 and 1418040
      arm64: Add KRYO4XX silver CPU cores to erratum list 1530923 and 1024718

Saravana Kannan (1):
slimbus: core: Fix mismatch in of_node_get/put

Sascha Hauer (2):
net: ethernet: mvneta: Do not error out in non serdes modes
net: ethernet: mvneta: Add back interface mode validation

Satheesh Rajendran (1):
powerpc/pseries/svm: Fix incorrect check for shared_lppaca_size

Sean Tranchetti (1):
genetlink: remove genl_bind

Sean Wang (1):
arm: dts: mt7623: add phy-mode property for gmac2

Sebastian Parschauer (1):
HID: quirks: Always poll Obins Anne Pro 2 keyboard

Sergei Shtylyov (1):
mtd: spi-nor: spansion: fix writes on S25FS512S

Shannon Nelson (2):
ionic: no link check while resetting queues
ionic: export features for vlans to use

Srinivas Kandagatla (1):
soc: qcom: socinfo: add missing soc_id sysfs entry

Srinivas Pandruvada (1):
ACPI: DPTF: Add battery participant for TigerLake

Stephan Gerhold (1):
Input: mms114 - add extra compatible for mms345l

Syed Nayyar Waris (2):
counter: 104-quad-8: Add lock guards - differential encoder
counter: 104-quad-8: Add lock guards - filter clock prescaler

Taehee Yoo (2):
net: rmnet: do not allow to add multiple bridge interfaces
hsr: fix interface leak in error path of hsr_dev_finalize()

Takashi Iwai (3):
ALSA: line6: Perform sanity check for each URB creation
ALSA: line6: Sync the pending work cancel at disconnection
ALSA: usb-audio: Fix race against the error recovery URB submission

Taniya Das (1):
clk: qcom: gcc: Add support for a new frequency for SC7180

Thomas Gleixner (1):
genirq/affinity: Handle affinity setting on inactive interrupts correctly

Tiezhu Yang (1):
phy: rockchip: Fix return value of inno_dsidphy_probe()

Tim Harvey (1):
ARM: dts: imx6qdl-gw551x: fix audio SSI

Toke Høiland-Jørgensen (2):
sched: consistently handle layer3 header accesses in the presence of VLANs
vlan: consolidate VLAN parsing code and limit max parsing depth

Tom Rix (1):
USB: c67x00: fix use after free in c67x00_giveback_urb

Tomer Tayar (1):
habanalabs: Align protection bits configuration of all TPCs

Tony Lindgren (3):
bus: ti-sysc: Fix wakeirq sleeping function called from invalid context
bus: ti-sysc: Fix sleeping function called from invalid context for RTC quirk
bus: ti-sysc: Do not disable on suspend for no-idle

Umesh Nerlige Ramappa (1):
drm/i915/perf: Use GTT when saving/restoring engine GPR

Vasily Averin (2):
tpm_tis: extra chip->ops check on error path in tpm_tis_core_init
fuse: don't ignore errors from fuse_writepages_fill()

Vincent Guittot (1):
sched/fair: handle case of task_h_load() returning 0

Vinod Koul (2):
clk: qcom: gcc: Add GPU and NPU clocks for SM8150
clk: qcom: gcc: Add missing UFS clocks for SM8150

Vishwas M (1):
hwmon: (emc2103) fix unable to change fan pwm1_enable attribute

Wade Mealing (1):
Revert "zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()"

Walter Lozano (1):
opp: Increase parsed_static_opps in _of_add_opp_table_v1()

Wei Yongjun (1):
keys: asymmetric: fix error return code in software_key_query()

Will Deacon (3):
arm64: ptrace: Override SPSR.SS when single-stepping is enabled
arm64: ptrace: Consistently use pseudo-singlestep exceptions
arm64: compat: Ensure upper 32 bits of x0 are zero on syscall return

Willem de Bruijn (1):
ip: Fix SO_MARK in RST, ACK and ICMP packets

Xiaojie Yuan (1):

      drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr()

Xin Long (1):
l2tp: remove skb_dst_set() from l2tp_xmit_skb()

Yoshihiro Shimoda (1):
dmaengine: sh: usb-dmac: set tx_result parameters

Zhang Qiang (1):
usb: gadget: function: fix missing spinlock in f_uac1_legacy

Zhu Yanjun (1):
RDMA/rxe: Set default vendor ID

chen gong (1):
drm/amdgpu/powerplay: Modify SMC message name for setting power profile mode

dillon min (1):
ARM: dts: Fix dcan driver probe failed on am437x platform

hersen wu (1):
drm/amd/display: OLED panel backlight adjust not work with external display connected

youngjun (1):
ovl: inode reference leak in ovl_is_inuse true case.

Álvaro Fernández Rojas (2):
mtd: rawnand: brcmnand: correctly verify erased pages
mtd: rawnand: brcmnand: fix CS0 layout

author maintainer
#1 lore raw
Documentation/arm64/silicon-errata.rst +8 -0
index 2c08c628febd..7dc8f8ac69ee 100644
@@ -147,6 +147,14 @@ stable kernels.
 +----------------+-----------------+-----------------+-----------------------------+
 | Qualcomm Tech. | Falkor v{1,2}   | E1041           | QCOM_FALKOR_ERRATUM_1041    |
 +----------------+-----------------+-----------------+-----------------------------+
+| Qualcomm Tech. | Kryo4xx Gold    | N/A             | ARM64_ERRATUM_1463225       |
++----------------+-----------------+-----------------+-----------------------------+
+| Qualcomm Tech. | Kryo4xx Gold    | N/A             | ARM64_ERRATUM_1418040       |
++----------------+-----------------+-----------------+-----------------------------+
+| Qualcomm Tech. | Kryo4xx Silver  | N/A             | ARM64_ERRATUM_1530923       |
++----------------+-----------------+-----------------+-----------------------------+
+| Qualcomm Tech. | Kryo4xx Silver  | N/A             | ARM64_ERRATUM_1024718       |
++----------------+-----------------+-----------------+-----------------------------+
 +----------------+-----------------+-----------------+-----------------------------+
 | Fujitsu        | A64FX           | E#010001        | FUJITSU_ERRATUM_010001      |
 +----------------+-----------------+-----------------+-----------------------------+
Documentation/devicetree/bindings/Makefile +5 -0
index 7782d9985082..b03d58c6b072 100644
@@ -45,3 +45,8 @@ $(obj)/processed-schema.yaml: $(DT_SCHEMA_FILES) FORCE
 	$(call if_changed,mk_schema)
 
 extra-y += processed-schema.yaml
+
+# Hack: avoid 'Argument list too long' error for 'make clean'. Remove most of
+# build artifacts here before they are processed by scripts/Makefile.clean
+clean-files = $(shell find $(obj) \( -name '*.example.dts' -o \
+			-name '*.example.dt.yaml' \) -delete 2>/dev/null)
Documentation/devicetree/bindings/bus/socionext,uniphier-system-bus.yaml +2 -2
index c4c9119e4a20..a0c6c5d2b70f 100644
@@ -80,14 +80,14 @@ examples:
         ranges = <1 0x00000000 0x42000000 0x02000000>,
                  <5 0x00000000 0x46000000 0x01000000>;
 
-        ethernet@1,01f00000 {
+        ethernet@1,1f00000 {
             compatible = "smsc,lan9115";
             reg = <1 0x01f00000 0x1000>;
             interrupts = <0 48 4>;
             phy-mode = "mii";
         };
 
-        uart@5,00200000 {
+        serial@5,200000 {
             compatible = "ns16550a";
             reg = <5 0x00200000 0x20>;
             interrupts = <0 49 4>;
Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt +1 -1
index 4438432bfe9b..ad76edccf881 100644
@@ -87,7 +87,7 @@ Example:
 		ranges;
 
 		/* APU<->RPU0 IPI mailbox controller */
-		ipi_mailbox_rpu0: mailbox@ff90400 {
+		ipi_mailbox_rpu0: mailbox@ff990400 {
 			reg = <0xff990400 0x20>,
 			      <0xff990420 0x20>,
 			      <0xff990080 0x20>,
Makefile +1 -1
index fb3a747575b5..e622e084e7e2 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 7
-SUBLEVEL = 9
+SUBLEVEL = 10
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/boot/dts/am437x-l4.dtsi +10 -4
index 49c6a872052e..e30089e96263 100644
@@ -1544,8 +1544,9 @@ target-module@cc000 {			/* 0x481cc000, ap 50 46.0 */
 			reg = <0xcc020 0x4>;
 			reg-names = "rev";
 			/* Domains (P, C): per_pwrdm, l4ls_clkdm */
-			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN0_CLKCTRL 0>;
-			clock-names = "fck";
+			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN0_CLKCTRL 0>,
+			<&dcan0_fck>;
+			clock-names = "fck", "osc";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x0 0xcc000 0x2000>;
@@ -1553,6 +1554,8 @@ target-module@cc000 {			/* 0x481cc000, ap 50 46.0 */
 			dcan0: can@0 {
 				compatible = "ti,am4372-d_can", "ti,am3352-d_can";
 				reg = <0x0 0x2000>;
+				clocks = <&dcan0_fck>;
+				clock-names = "fck";
 				syscon-raminit = <&scm_conf 0x644 0>;
 				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
@@ -1564,8 +1567,9 @@ target-module@d0000 {			/* 0x481d0000, ap 52 3a.0 */
 			reg = <0xd0020 0x4>;
 			reg-names = "rev";
 			/* Domains (P, C): per_pwrdm, l4ls_clkdm */
-			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN1_CLKCTRL 0>;
-			clock-names = "fck";
+			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN1_CLKCTRL 0>,
+			<&dcan1_fck>;
+			clock-names = "fck", "osc";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x0 0xd0000 0x2000>;
@@ -1573,6 +1577,8 @@ target-module@d0000 {			/* 0x481d0000, ap 52 3a.0 */
 			dcan1: can@0 {
 				compatible = "ti,am4372-d_can", "ti,am3352-d_can";
 				reg = <0x0 0x2000>;
+				clocks = <&dcan1_fck>;
+				clock-name = "fck";
 				syscon-raminit = <&scm_conf 0x644 1>;
 				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
arch/arm/boot/dts/imx6qdl-gw551x.dtsi +1 -1
index c38e86eedcc0..8c33510c9519 100644
@@ -110,7 +110,7 @@ sound-digital {
 		simple-audio-card,frame-master = <&sound_codec>;
 
 		sound_cpu: simple-audio-card,cpu {
-			sound-dai = <&ssi2>;
+			sound-dai = <&ssi1>;
 		};
 
 		sound_codec: simple-audio-card,codec {
arch/arm/boot/dts/mt7623n-rfb-emmc.dts +1 -0
index b7606130ade9..0447748f9fa0 100644
@@ -138,6 +138,7 @@ fixed-link {
 	mac@1 {
 		compatible = "mediatek,eth-mac";
 		reg = <1>;
+		phy-mode = "rgmii";
 		phy-handle = <&phy5>;
 	};
 
arch/arm/boot/dts/socfpga.dtsi +1 -1
index 4f3993cc0227..451030897220 100644
@@ -710,7 +710,7 @@ ocram-ecc@ffd08144 {
 			};
 		};
 
-		L2: l2-cache@fffef000 {
+		L2: cache-controller@fffef000 {
 			compatible = "arm,pl310-cache";
 			reg = <0xfffef000 0x1000>;
 			interrupts = <0 38 0x04>;
arch/arm/boot/dts/socfpga_arria10.dtsi +1 -1
index 3b8571b8b412..8f614c4b0e3e 100644
@@ -636,7 +636,7 @@ sdr: sdr@ffcfb100 {
 			reg = <0xffcfb100 0x80>;
 		};
 
-		L2: l2-cache@fffff000 {
+		L2: cache-controller@fffff000 {
 			compatible = "arm,pl310-cache";
 			reg = <0xfffff000 0x1000>;
 			interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi +4 -4
index d1fc9c2055f4..9498d1de730c 100644
@@ -77,7 +77,7 @@ psci {
 		method = "smc";
 	};
 
-	intc: intc@fffc1000 {
+	intc: interrupt-controller@fffc1000 {
 		compatible = "arm,gic-400", "arm,cortex-a15-gic";
 		#interrupt-cells = <3>;
 		interrupt-controller;
@@ -302,7 +302,7 @@ mmc: dwmmc0@ff808000 {
 			status = "disabled";
 		};
 
-		nand: nand@ffb90000 {
+		nand: nand-controller@ffb90000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			compatible = "altr,socfpga-denali-nand";
@@ -445,7 +445,7 @@ timer3: timer3@ffd00100 {
 			clock-names = "timer";
 		};
 
-		uart0: serial0@ffc02000 {
+		uart0: serial@ffc02000 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0xffc02000 0x100>;
 			interrupts = <0 108 4>;
@@ -456,7 +456,7 @@ uart0: serial0@ffc02000 {
 			status = "disabled";
 		};
 
-		uart1: serial1@ffc02100 {
+		uart1: serial@ffc02100 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0xffc02100 0x100>;
 			interrupts = <0 109 4>;
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts +1 -0
index f6c4a15079d3..feadd21bc0dc 100644
@@ -155,6 +155,7 @@ rtc@68 {
 };
 
 &qspi {
+	status = "okay";
 	flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts +4 -3
index 9946515b8afd..c07966740e14 100644
@@ -188,6 +188,7 @@ rtc@68 {
 };
 
 &qspi {
+	status = "okay";
 	flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -211,12 +212,12 @@ partitions {
 
 			qspi_boot: partition@0 {
 				label = "Boot and fpga data";
-				reg = <0x0 0x034B0000>;
+				reg = <0x0 0x03FE0000>;
 			};
 
-			qspi_rootfs: partition@4000000 {
+			qspi_rootfs: partition@3FE0000 {
 				label = "Root Filesystem - JFFS2";
-				reg = <0x034B0000 0x0EB50000>;
+				reg = <0x03FE0000 0x0C020000>;
 			};
 		};
 	};
arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts +1 -1
index 4d5949496596..c6ae5622a532 100644
@@ -9,7 +9,7 @@
 
 #include <dt-bindings/input/input.h>
 
-#include "meson-gxl-s905x.dtsi"
+#include "meson-gxl-s805x.dtsi"
 
 / {
 	compatible = "libretech,aml-s805x-ac", "amlogic,s805x",
arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts +1 -1
index a1119cfb0280..85f78a945407 100644
@@ -9,7 +9,7 @@
 
 #include <dt-bindings/input/input.h>
 
-#include "meson-gxl-s905x.dtsi"
+#include "meson-gxl-s805x.dtsi"
 
 / {
 	compatible = "amlogic,p241", "amlogic,s805x", "amlogic,meson-gxl";
arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi new file +24 -0
new file mode 100644
index 000000000000..f9d705648426
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 BayLibre SAS
+ * Author: Neil Armstrong <[email protected]>
+ */
+
+#include "meson-gxl-s905x.dtsi"
+
+/ {
+	compatible = "amlogic,s805x", "amlogic,meson-gxl";
+};
+
+/* The S805X Package doesn't seem to handle the 744MHz OPP correctly */
+&mali {
+	assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
+			  <&clkc CLKID_MALI_0>,
+			  <&clkc CLKID_MALI>; /* Glitch free mux */
+	assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
+				 <0>, /* Do Nothing */
+				 <&clkc CLKID_MALI_0>;
+	assigned-clock-rates = <0>, /* Do Nothing */
+			       <666666666>,
+			       <0>; /* Do Nothing */
+};
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +5 -0
index 259d86399390..887c43119e63 100644
@@ -298,6 +298,11 @@ clkc: clock-controller {
 	};
 };
 
+&hwrng {
+	clocks = <&clkc CLKID_RNG0>;
+	clock-names = "core";
+};
+
 &i2c_A {
 	clocks = <&clkc CLKID_I2C>;
 };
arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts +1 -0
index 51d948323bfd..92f478def723 100644
@@ -98,6 +98,7 @@ &watchdog0 {
 };
 
 &qspi {
+	status = "okay";
 	flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
arch/arm64/include/asm/alternative.h +8 -8
index 5e5dc05d63a0..12f0eb56a1cc 100644
@@ -73,11 +73,11 @@ static inline void apply_alternatives_module(void *start, size_t length) { }
 	".pushsection .altinstructions,\"a\"\n"				\
 	ALTINSTR_ENTRY(feature)						\
 	".popsection\n"							\
-	".pushsection .altinstr_replacement, \"a\"\n"			\
+	".subsection 1\n"						\
 	"663:\n\t"							\
 	newinstr "\n"							\
 	"664:\n\t"							\
-	".popsection\n\t"						\
+	".previous\n\t"							\
 	".org	. - (664b-663b) + (662b-661b)\n\t"			\
 	".org	. - (662b-661b) + (664b-663b)\n"			\
 	".endif\n"
@@ -117,9 +117,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { }
 662:	.pushsection .altinstructions, "a"
 	altinstruction_entry 661b, 663f, \cap, 662b-661b, 664f-663f
 	.popsection
-	.pushsection .altinstr_replacement, "ax"
+	.subsection 1
 663:	\insn2
-664:	.popsection
+664:	.previous
 	.org	. - (664b-663b) + (662b-661b)
 	.org	. - (662b-661b) + (664b-663b)
 	.endif
@@ -160,7 +160,7 @@ static inline void apply_alternatives_module(void *start, size_t length) { }
 	.pushsection .altinstructions, "a"
 	altinstruction_entry 663f, 661f, \cap, 664f-663f, 662f-661f
 	.popsection
-	.pushsection .altinstr_replacement, "ax"
+	.subsection 1
 	.align 2	/* So GAS knows label 661 is suitably aligned */
 661:
 .endm
@@ -179,9 +179,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { }
 .macro alternative_else
 662:
 	.if .Lasm_alt_mode==0
-	.pushsection .altinstr_replacement, "ax"
+	.subsection 1
 	.else
-	.popsection
+	.previous
 	.endif
 663:
 .endm
@@ -192,7 +192,7 @@ static inline void apply_alternatives_module(void *start, size_t length) { }
 .macro alternative_endif
 664:
 	.if .Lasm_alt_mode==0
-	.popsection
+	.previous
 	.endif
 	.org	. - (664b-663b) + (662b-661b)
 	.org	. - (662b-661b) + (664b-663b)
arch/arm64/include/asm/cputype.h +2 -0
index a87a93f67671..7219cddeba66 100644
@@ -86,6 +86,7 @@
 #define QCOM_CPU_PART_FALKOR		0xC00
 #define QCOM_CPU_PART_KRYO		0x200
 #define QCOM_CPU_PART_KRYO_3XX_SILVER	0x803
+#define QCOM_CPU_PART_KRYO_4XX_GOLD	0x804
 #define QCOM_CPU_PART_KRYO_4XX_SILVER	0x805
 
 #define NVIDIA_CPU_PART_DENVER		0x003
@@ -114,6 +115,7 @@
 #define MIDR_QCOM_FALKOR MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_FALKOR)
 #define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO)
 #define MIDR_QCOM_KRYO_3XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_SILVER)
+#define MIDR_QCOM_KRYO_4XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_GOLD)
 #define MIDR_QCOM_KRYO_4XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_SILVER)
 #define MIDR_NVIDIA_DENVER MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_DENVER)
 #define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL)
arch/arm64/include/asm/debug-monitors.h +2 -0
index 7619f473155f..d825e3585e28 100644
@@ -109,6 +109,8 @@ void disable_debug_monitors(enum dbg_active_el el);
 
 void user_rewind_single_step(struct task_struct *task);
 void user_fastforward_single_step(struct task_struct *task);
+void user_regs_reset_single_step(struct user_pt_regs *regs,
+				 struct task_struct *task);
 
 void kernel_enable_single_step(struct pt_regs *regs);
 void kernel_disable_single_step(void);
arch/arm64/include/asm/syscall.h +11 -1
index 65299a2dcf9c..cfc0672013f6 100644
@@ -34,6 +34,10 @@ static inline long syscall_get_error(struct task_struct *task,
 				     struct pt_regs *regs)
 {
 	unsigned long error = regs->regs[0];
+
+	if (is_compat_thread(task_thread_info(task)))
+		error = sign_extend64(error, 31);
+
 	return IS_ERR_VALUE(error) ? error : 0;
 }
 
@@ -47,7 +51,13 @@ static inline void syscall_set_return_value(struct task_struct *task,
 					    struct pt_regs *regs,
 					    int error, long val)
 {
-	regs->regs[0] = (long) error ? error : val;
+	if (error)
+		val = error;
+
+	if (is_compat_thread(task_thread_info(task)))
+		val = lower_32_bits(val);
+
+	regs->regs[0] = val;
 }
 
 #define SYSCALL_MAX_ARGS 6
arch/arm64/include/asm/thread_info.h +1 -0
index 512174a8e789..62aca2a50ad7 100644
@@ -89,6 +89,7 @@ void arch_release_task_struct(struct task_struct *tsk);
 #define _TIF_SYSCALL_EMU	(1 << TIF_SYSCALL_EMU)
 #define _TIF_UPROBE		(1 << TIF_UPROBE)
 #define _TIF_FSCHECK		(1 << TIF_FSCHECK)
+#define _TIF_SINGLESTEP		(1 << TIF_SINGLESTEP)
 #define _TIF_32BIT		(1 << TIF_32BIT)
 #define _TIF_SVE		(1 << TIF_SVE)
 
arch/arm64/kernel/alternative.c +2 -14
index d1757ef1b1e7..73039949b5ce 100644
@@ -43,20 +43,8 @@ bool alternative_is_applied(u16 cpufeature)
  */
 static bool branch_insn_requires_update(struct alt_instr *alt, unsigned long pc)
 {
-	unsigned long replptr;
-
-	if (kernel_text_address(pc))
-		return true;
-
-	replptr = (unsigned long)ALT_REPL_PTR(alt);
-	if (pc >= replptr && pc <= (replptr + alt->alt_len))
-		return false;
-
-	/*
-	 * Branching into *another* alternate sequence is doomed, and
-	 * we're not even trying to fix it up.
-	 */
-	BUG();
+	unsigned long replptr = (unsigned long)ALT_REPL_PTR(alt);
+	return !(pc >= replptr && pc <= (replptr + alt->alt_len));
 }
 
 #define align_down(x, a)	((unsigned long)(x) & ~(((unsigned long)(a)) - 1))
arch/arm64/kernel/cpu_errata.c +16 -6
index 0f37045fafab..f9387c125232 100644
@@ -472,12 +472,7 @@ static bool
 has_cortex_a76_erratum_1463225(const struct arm64_cpu_capabilities *entry,
 			       int scope)
 {
-	u32 midr = read_cpuid_id();
-	/* Cortex-A76 r0p0 - r3p1 */
-	struct midr_range range = MIDR_RANGE(MIDR_CORTEX_A76, 0, 0, 3, 1);
-
-	WARN_ON(scope != SCOPE_LOCAL_CPU || preemptible());
-	return is_midr_in_range(midr, &range) && is_kernel_in_hyp_mode();
+	return is_affected_midr_range_list(entry, scope) && is_kernel_in_hyp_mode();
 }
 #endif
 
@@ -728,6 +723,8 @@ static const struct midr_range erratum_1418040_list[] = {
 	MIDR_RANGE(MIDR_CORTEX_A76, 0, 0, 3, 1),
 	/* Neoverse-N1 r0p0 to r3p1 */
 	MIDR_RANGE(MIDR_NEOVERSE_N1, 0, 0, 3, 1),
+	/* Kryo4xx Gold (rcpe to rfpf) => (r0p0 to r3p1) */
+	MIDR_RANGE(MIDR_QCOM_KRYO_4XX_GOLD, 0xc, 0xe, 0xf, 0xf),
 	{},
 };
 #endif
@@ -768,11 +765,23 @@ static const struct midr_range erratum_speculative_at_vhe_list[] = {
 #ifdef CONFIG_ARM64_ERRATUM_1530923
 	/* Cortex A55 r0p0 to r2p0 */
 	MIDR_RANGE(MIDR_CORTEX_A55, 0, 0, 2, 0),
+	/* Kryo4xx Silver (rdpe => r1p0) */
+	MIDR_REV(MIDR_QCOM_KRYO_4XX_SILVER, 0xd, 0xe),
 #endif
 	{},
 };
 #endif
 
+#ifdef CONFIG_ARM64_ERRATUM_1463225
+static const struct midr_range erratum_1463225[] = {
+	/* Cortex-A76 r0p0 - r3p1 */
+	MIDR_RANGE(MIDR_CORTEX_A76, 0, 0, 3, 1),
+	/* Kryo4xx Gold (rcpe to rfpf) => (r0p0 to r3p1) */
+	MIDR_RANGE(MIDR_QCOM_KRYO_4XX_GOLD, 0xc, 0xe, 0xf, 0xf),
+	{},
+};
+#endif
+
 const struct arm64_cpu_capabilities arm64_errata[] = {
 #ifdef CONFIG_ARM64_WORKAROUND_CLEAN_CACHE
 	{
@@ -912,6 +921,7 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
 		.capability = ARM64_WORKAROUND_1463225,
 		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
 		.matches = has_cortex_a76_erratum_1463225,
+		.midr_range_list = erratum_1463225,
 	},
 #endif
 #ifdef CONFIG_CAVIUM_TX2_ERRATUM_219
arch/arm64/kernel/cpufeature.c +2 -0
index b0fb1d5bf223..cadc9d9a7477 100644
@@ -1177,6 +1177,8 @@ static bool cpu_has_broken_dbm(void)
 	static const struct midr_range cpus[] = {
 #ifdef CONFIG_ARM64_ERRATUM_1024718
 		MIDR_RANGE(MIDR_CORTEX_A55, 0, 0, 1, 0),  // A55 r0p0 -r1p0
+		/* Kryo4xx Silver (rdpe => r1p0) */
+		MIDR_REV(MIDR_QCOM_KRYO_4XX_SILVER, 0xd, 0xe),
 #endif
 		{},
 	};
arch/arm64/kernel/debug-monitors.c +16 -4
index 48222a4760c2..7569deb1eac1 100644
@@ -141,17 +141,20 @@ postcore_initcall(debug_monitors_init);
 /*
  * Single step API and exception handling.
  */
-static void set_regs_spsr_ss(struct pt_regs *regs)
+static void set_user_regs_spsr_ss(struct user_pt_regs *regs)
 {
 	regs->pstate |= DBG_SPSR_SS;
 }
-NOKPROBE_SYMBOL(set_regs_spsr_ss);
+NOKPROBE_SYMBOL(set_user_regs_spsr_ss);
 
-static void clear_regs_spsr_ss(struct pt_regs *regs)
+static void clear_user_regs_spsr_ss(struct user_pt_regs *regs)
 {
 	regs->pstate &= ~DBG_SPSR_SS;
 }
-NOKPROBE_SYMBOL(clear_regs_spsr_ss);
+NOKPROBE_SYMBOL(clear_user_regs_spsr_ss);
+
+#define set_regs_spsr_ss(r)	set_user_regs_spsr_ss(&(r)->user_regs)
+#define clear_regs_spsr_ss(r)	clear_user_regs_spsr_ss(&(r)->user_regs)
 
 static DEFINE_SPINLOCK(debug_hook_lock);
 static LIST_HEAD(user_step_hook);
@@ -404,6 +407,15 @@ void user_fastforward_single_step(struct task_struct *task)
 		clear_regs_spsr_ss(task_pt_regs(task));
 }
 
+void user_regs_reset_single_step(struct user_pt_regs *regs,
+				 struct task_struct *task)
+{
+	if (test_tsk_thread_flag(task, TIF_SINGLESTEP))
+		set_user_regs_spsr_ss(regs);
+	else
+		clear_user_regs_spsr_ss(regs);
+}
+
 /* Kernel API */
 void kernel_enable_single_step(struct pt_regs *regs)
 {
arch/arm64/kernel/ptrace.c +21 -8
index e7b01904f180..cd1b47d5198a 100644
@@ -1819,12 +1819,23 @@ static void tracehook_report_syscall(struct pt_regs *regs,
 	saved_reg = regs->regs[regno];
 	regs->regs[regno] = dir;
 
-	if (dir == PTRACE_SYSCALL_EXIT)
+	if (dir == PTRACE_SYSCALL_ENTER) {
+		if (tracehook_report_syscall_entry(regs))
+			forget_syscall(regs);
+		regs->regs[regno] = saved_reg;
+	} else if (!test_thread_flag(TIF_SINGLESTEP)) {
 		tracehook_report_syscall_exit(regs, 0);
-	else if (tracehook_report_syscall_entry(regs))
-		forget_syscall(regs);
+		regs->regs[regno] = saved_reg;
+	} else {
+		regs->regs[regno] = saved_reg;
 
-	regs->regs[regno] = saved_reg;
+		/*
+		 * Signal a pseudo-step exception since we are stepping but
+		 * tracer modifications to the registers may have rewound the
+		 * state machine.
+		 */
+		tracehook_report_syscall_exit(regs, 1);
+	}
 }
 
 int syscall_trace_enter(struct pt_regs *regs)
@@ -1852,12 +1863,14 @@ int syscall_trace_enter(struct pt_regs *regs)
 
 void syscall_trace_exit(struct pt_regs *regs)
 {
+	unsigned long flags = READ_ONCE(current_thread_info()->flags);
+
 	audit_syscall_exit(regs);
 
-	if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
+	if (flags & _TIF_SYSCALL_TRACEPOINT)
 		trace_sys_exit(regs, regs_return_value(regs));
 
-	if (test_thread_flag(TIF_SYSCALL_TRACE))
+	if (flags & (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP))
 		tracehook_report_syscall(regs, PTRACE_SYSCALL_EXIT);
 
 	rseq_syscall(regs);
@@ -1935,8 +1948,8 @@ static int valid_native_regs(struct user_pt_regs *regs)
  */
 int valid_user_regs(struct user_pt_regs *regs, struct task_struct *task)
 {
-	if (!test_tsk_thread_flag(task, TIF_SINGLESTEP))
-		regs->pstate &= ~DBG_SPSR_SS;
+	/* https://lore.kernel.org/lkml/20191118131525.GA4180@willie-the-truck */
+	user_regs_reset_single_step(regs, task);
 
 	if (is_compat_thread(task_thread_info(task)))
 		return valid_compat_regs(regs);
arch/arm64/kernel/signal.c +2 -9
index 339882db5a91..de205ca806c1 100644
@@ -784,7 +784,6 @@ static void setup_restart_syscall(struct pt_regs *regs)
  */
 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
 {
-	struct task_struct *tsk = current;
 	sigset_t *oldset = sigmask_to_save();
 	int usig = ksig->sig;
 	int ret;
@@ -808,14 +807,8 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
 	 */
 	ret |= !valid_user_regs(&regs->user_regs, current);
 
-	/*
-	 * Fast forward the stepping logic so we step into the signal
-	 * handler.
-	 */
-	if (!ret)
-		user_fastforward_single_step(tsk);
-
-	signal_setup_done(ret, ksig, 0);
+	/* Step into the signal handler if we are stepping */
+	signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP));
 }
 
 /*
arch/arm64/kernel/syscall.c +4 -1
index a12c0c88d345..7aa7cf76367e 100644
@@ -50,6 +50,9 @@ static void invoke_syscall(struct pt_regs *regs, unsigned int scno,
 		ret = do_ni_syscall(regs, scno);
 	}
 
+	if (is_compat_task())
+		ret = lower_32_bits(ret);
+
 	regs->regs[0] = ret;
 }
 
@@ -121,7 +124,7 @@ static void el0_svc_common(struct pt_regs *regs, int scno, int sc_nr,
 	if (!has_syscall_work(flags) && !IS_ENABLED(CONFIG_DEBUG_RSEQ)) {
 		local_daif_mask();
 		flags = current_thread_info()->flags;
-		if (!has_syscall_work(flags)) {
+		if (!has_syscall_work(flags) && !(flags & _TIF_SINGLESTEP)) {
 			/*
 			 * We're off to userspace, where interrupts are
 			 * always enabled after we restore the flags from
arch/arm64/kernel/vmlinux.lds.S +0 -3
index 94402aaf5f5c..9869412ac156 100644
@@ -172,9 +172,6 @@ SECTIONS
 		*(.altinstructions)
 		__alt_instructions_end = .;
 	}
-	.altinstr_replacement : {
-		*(.altinstr_replacement)
-	}
 
 	. = ALIGN(PAGE_SIZE);
 	__inittext_end = .;
arch/m68k/kernel/setup_no.c +2 -1
index a63483de7a42..5dacba392c74 100644
@@ -139,7 +139,8 @@ void __init setup_arch(char **cmdline_p)
 	pr_debug("MEMORY -> ROMFS=0x%p-0x%06lx MEM=0x%06lx-0x%06lx\n ",
 		 __bss_stop, memory_start, memory_start, memory_end);
 
-	memblock_add(memory_start, memory_end - memory_start);
+	memblock_add(_rambase, memory_end - _rambase);
+	memblock_reserve(_rambase, memory_start - _rambase);
 
 	/* Keep a copy of command line */
 	*cmdline_p = &command_line[0];
arch/m68k/mm/mcfmmu.c +1 -1
index 0ea375607767..2c57f46facc0 100644
@@ -178,7 +178,7 @@ void __init cf_bootmem_alloc(void)
 	m68k_memory[0].addr = _rambase;
 	m68k_memory[0].size = _ramend - _rambase;
 
-	memblock_add(m68k_memory[0].addr, m68k_memory[0].size);
+	memblock_add_node(m68k_memory[0].addr, m68k_memory[0].size, 0);
 
 	/* compute total pages in system */
 	num_pages = PFN_DOWN(_ramend - _rambase);
arch/powerpc/kernel/paca.c +1 -1
index 3f91ccaa9c74..4ea0cca52e16 100644
@@ -86,7 +86,7 @@ static void *__init alloc_shared_lppaca(unsigned long size, unsigned long align,
 	 * This is very early in boot, so no harm done if the kernel crashes at
 	 * this point.
 	 */
-	BUG_ON(shared_lppaca_size >= shared_lppaca_total_size);
+	BUG_ON(shared_lppaca_size > shared_lppaca_total_size);
 
 	return ptr;
 }
arch/powerpc/mm/book3s64/pkeys.c +7 -5
index 1199fc2bfaec..268ce9581676 100644
@@ -357,12 +357,14 @@ static bool pkey_access_permitted(int pkey, bool write, bool execute)
 		return true;
 
 	pkey_shift = pkeyshift(pkey);
-	if (execute && !(read_iamr() & (IAMR_EX_BIT << pkey_shift)))
-		return true;
+	if (execute)
+		return !(read_iamr() & (IAMR_EX_BIT << pkey_shift));
+
+	amr = read_amr();
+	if (write)
+		return !(amr & (AMR_WR_BIT << pkey_shift));
 
-	amr = read_amr(); /* Delay reading amr until absolutely needed */
-	return ((!write && !(amr & (AMR_RD_BIT << pkey_shift))) ||
-		(write &&  !(amr & (AMR_WR_BIT << pkey_shift))));
+	return !(amr & (AMR_RD_BIT << pkey_shift));
 }
 
 bool arch_pte_access_permitted(u64 pte, bool write, bool execute)
arch/riscv/include/asm/thread_info.h +4 -0
index 1dd12a0cbb2b..464a2bbc97ea 100644
@@ -12,7 +12,11 @@
 #include <linux/const.h>
 
 /* thread information allocation */
+#ifdef CONFIG_64BIT
+#define THREAD_SIZE_ORDER	(2)
+#else
 #define THREAD_SIZE_ORDER	(1)
+#endif
 #define THREAD_SIZE		(PAGE_SIZE << THREAD_SIZE_ORDER)
 
 #ifndef __ASSEMBLY__
arch/x86/include/asm/fpu/internal.h +5 -0
index 44c48e34d799..00eac7f1529b 100644
@@ -619,6 +619,11 @@ static inline void switch_fpu_finish(struct fpu *new_fpu)
  * MXCSR and XCR definitions:
  */
 
+static inline void ldmxcsr(u32 mxcsr)
+{
+	asm volatile("ldmxcsr %0" :: "m" (mxcsr));
+}
+
 extern unsigned int mxcsr_feature_mask;
 
 #define XCR_XFEATURE_ENABLED_MASK	0x00000000
arch/x86/include/asm/io_bitmap.h +16 -0
index ac1a99ffbd8d..7f080f5c7def 100644
@@ -19,12 +19,28 @@ struct task_struct;
 void io_bitmap_share(struct task_struct *tsk);
 void io_bitmap_exit(struct task_struct *tsk);
 
+static inline void native_tss_invalidate_io_bitmap(void)
+{
+	/*
+	 * Invalidate the I/O bitmap by moving io_bitmap_base outside the
+	 * TSS limit so any subsequent I/O access from user space will
+	 * trigger a #GP.
+	 *
+	 * This is correct even when VMEXIT rewrites the TSS limit
+	 * to 0x67 as the only requirement is that the base points
+	 * outside the limit.
+	 */
+	this_cpu_write(cpu_tss_rw.x86_tss.io_bitmap_base,
+		       IO_BITMAP_OFFSET_INVALID);
+}
+
 void native_tss_update_io_bitmap(void);
 
 #ifdef CONFIG_PARAVIRT_XXL
 #include <asm/paravirt.h>
 #else
 #define tss_update_io_bitmap native_tss_update_io_bitmap
+#define tss_invalidate_io_bitmap native_tss_invalidate_io_bitmap
 #endif
 
 #else
arch/x86/include/asm/paravirt.h +5 -0
index 694d8daf4983..0296dd66c167 100644
@@ -296,6 +296,11 @@ static inline void write_idt_entry(gate_desc *dt, int entry, const gate_desc *g)
 }
 
 #ifdef CONFIG_X86_IOPL_IOPERM
+static inline void tss_invalidate_io_bitmap(void)
+{
+	PVOP_VCALL0(cpu.invalidate_io_bitmap);
+}
+
 static inline void tss_update_io_bitmap(void)
 {
 	PVOP_VCALL0(cpu.update_io_bitmap);
arch/x86/include/asm/paravirt_types.h +1 -0
index 732f62e04ddb..8dfcb2508e6d 100644
@@ -141,6 +141,7 @@ struct pv_cpu_ops {
 	void (*load_sp0)(unsigned long sp0);
 
 #ifdef CONFIG_X86_IOPL_IOPERM
+	void (*invalidate_io_bitmap)(void);
 	void (*update_io_bitmap)(void);
 #endif
 
arch/x86/kernel/apic/vector.c +5 -17
index 67768e54438b..cf8b6ebc6031 100644
@@ -446,12 +446,10 @@ static int x86_vector_activate(struct irq_domain *dom, struct irq_data *irqd,
 	trace_vector_activate(irqd->irq, apicd->is_managed,
 			      apicd->can_reserve, reserve);
 
-	/* Nothing to do for fixed assigned vectors */
-	if (!apicd->can_reserve && !apicd->is_managed)
-		return 0;
-
 	raw_spin_lock_irqsave(&vector_lock, flags);
-	if (reserve || irqd_is_managed_and_shutdown(irqd))
+	if (!apicd->can_reserve && !apicd->is_managed)
+		assign_irq_vector_any_locked(irqd);
+	else if (reserve || irqd_is_managed_and_shutdown(irqd))
 		vector_assign_managed_shutdown(irqd);
 	else if (apicd->is_managed)
 		ret = activate_managed(irqd);
@@ -775,20 +773,10 @@ void lapic_offline(void)
 static int apic_set_affinity(struct irq_data *irqd,
 			     const struct cpumask *dest, bool force)
 {
-	struct apic_chip_data *apicd = apic_chip_data(irqd);
 	int err;
 
-	/*
-	 * Core code can call here for inactive interrupts. For inactive
-	 * interrupts which use managed or reservation mode there is no
-	 * point in going through the vector assignment right now as the
-	 * activation will assign a vector which fits the destination
-	 * cpumask. Let the core code store the destination mask and be
-	 * done with it.
-	 */
-	if (!irqd_is_activated(irqd) &&
-	    (apicd->is_managed || apicd->can_reserve))
-		return IRQ_SET_MASK_OK;
+	if (WARN_ON_ONCE(!irqd_is_activated(irqd)))
+		return -EIO;
 
 	raw_spin_lock(&vector_lock);
 	cpumask_and(vector_searchmask, dest, cpu_online_mask);
arch/x86/kernel/fpu/core.c +6 -0
index 12c70840980e..cd8839027f66 100644
@@ -101,6 +101,12 @@ void kernel_fpu_begin(void)
 		copy_fpregs_to_fpstate(&current->thread.fpu);
 	}
 	__cpu_invalidate_fpregs_state();
+
+	if (boot_cpu_has(X86_FEATURE_XMM))
+		ldmxcsr(MXCSR_DEFAULT);
+
+	if (boot_cpu_has(X86_FEATURE_FPU))
+		asm volatile ("fninit");
 }
 EXPORT_SYMBOL_GPL(kernel_fpu_begin);
 
arch/x86/kernel/fpu/xstate.c +1 -1
index 6a54e83d5589..9cf40a7ff7ae 100644
@@ -1022,7 +1022,7 @@ int copy_xstate_to_kernel(void *kbuf, struct xregs_state *xsave, unsigned int of
 		copy_part(offsetof(struct fxregs_state, st_space), 128,
 			  &xsave->i387.st_space, &kbuf, &offset_start, &count);
 	if (header.xfeatures & XFEATURE_MASK_SSE)
-		copy_part(xstate_offsets[XFEATURE_MASK_SSE], 256,
+		copy_part(xstate_offsets[XFEATURE_SSE], 256,
 			  &xsave->i387.xmm_space, &kbuf, &offset_start, &count);
 	/*
 	 * Fill xsave->i387.sw_reserved value for ptrace frame:
arch/x86/kernel/paravirt.c +2 -1
index c131ba4e70ef..97b4ce839b4c 100644
@@ -343,7 +343,8 @@ struct paravirt_patch_template pv_ops = {
 	.cpu.swapgs		= native_swapgs,
 
 #ifdef CONFIG_X86_IOPL_IOPERM
-	.cpu.update_io_bitmap	= native_tss_update_io_bitmap,
+	.cpu.invalidate_io_bitmap	= native_tss_invalidate_io_bitmap,
+	.cpu.update_io_bitmap		= native_tss_update_io_bitmap,
 #endif
 
 	.cpu.start_context_switch	= paravirt_nop,
arch/x86/kernel/process.c +2 -16
index 8f4533c1a4ec..19a94a0be3bd 100644
@@ -322,20 +322,6 @@ void arch_setup_new_exec(void)
 }
 
 #ifdef CONFIG_X86_IOPL_IOPERM
-static inline void tss_invalidate_io_bitmap(struct tss_struct *tss)
-{
-	/*
-	 * Invalidate the I/O bitmap by moving io_bitmap_base outside the
-	 * TSS limit so any subsequent I/O access from user space will
-	 * trigger a #GP.
-	 *
-	 * This is correct even when VMEXIT rewrites the TSS limit
-	 * to 0x67 as the only requirement is that the base points
-	 * outside the limit.
-	 */
-	tss->x86_tss.io_bitmap_base = IO_BITMAP_OFFSET_INVALID;
-}
-
 static inline void switch_to_bitmap(unsigned long tifp)
 {
 	/*
@@ -346,7 +332,7 @@ static inline void switch_to_bitmap(unsigned long tifp)
 	 * user mode.
 	 */
 	if (tifp & _TIF_IO_BITMAP)
-		tss_invalidate_io_bitmap(this_cpu_ptr(&cpu_tss_rw));
+		tss_invalidate_io_bitmap();
 }
 
 static void tss_copy_io_bitmap(struct tss_struct *tss, struct io_bitmap *iobm)
@@ -380,7 +366,7 @@ void native_tss_update_io_bitmap(void)
 	u16 *base = &tss->x86_tss.io_bitmap_base;
 
 	if (!test_thread_flag(TIF_IO_BITMAP)) {
-		tss_invalidate_io_bitmap(tss);
+		native_tss_invalidate_io_bitmap();
 		return;
 	}
 
arch/x86/xen/enlighten_pv.c +12 -0
index 507f4fb88fa7..9621d31104b6 100644
@@ -841,6 +841,17 @@ static void xen_load_sp0(unsigned long sp0)
 }
 
 #ifdef CONFIG_X86_IOPL_IOPERM
+static void xen_invalidate_io_bitmap(void)
+{
+	struct physdev_set_iobitmap iobitmap = {
+		.bitmap = 0,
+		.nr_ports = 0,
+	};
+
+	native_tss_invalidate_io_bitmap();
+	HYPERVISOR_physdev_op(PHYSDEVOP_set_iobitmap, &iobitmap);
+}
+
 static void xen_update_io_bitmap(void)
 {
 	struct physdev_set_iobitmap iobitmap;
@@ -1070,6 +1081,7 @@ static const struct pv_cpu_ops xen_cpu_ops __initconst = {
 	.load_sp0 = xen_load_sp0,
 
 #ifdef CONFIG_X86_IOPL_IOPERM
+	.invalidate_io_bitmap = xen_invalidate_io_bitmap,
 	.update_io_bitmap = xen_update_io_bitmap,
 #endif
 	.io_delay = xen_io_delay,
block/blk-mq-debugfs.c +3 -0
index b3f2ba483992..121f4c1e0697 100644
@@ -125,6 +125,9 @@ static const char *const blk_queue_flag_name[] = {
 	QUEUE_FLAG_NAME(REGISTERED),
 	QUEUE_FLAG_NAME(SCSI_PASSTHROUGH),
 	QUEUE_FLAG_NAME(QUIESCED),
+	QUEUE_FLAG_NAME(PCI_P2PDMA),
+	QUEUE_FLAG_NAME(ZONE_RESETALL),
+	QUEUE_FLAG_NAME(RQ_ALLOC_TIME),
 };
 #undef QUEUE_FLAG_NAME
 
crypto/asymmetric_keys/public_key.c +1 -0
index d7f43d4ea925..e5fae4e838c0 100644
@@ -119,6 +119,7 @@ static int software_key_query(const struct kernel_pkey_params *params,
 	if (IS_ERR(tfm))
 		return PTR_ERR(tfm);
 
+	ret = -ENOMEM;
 	key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
 		      GFP_KERNEL);
 	if (!key)
drivers/acpi/dptf/dptf_power.c +1 -0
index e4e8b75d39f0..8b42f529047e 100644
@@ -99,6 +99,7 @@ static int dptf_power_remove(struct platform_device *pdev)
 static const struct acpi_device_id int3407_device_ids[] = {
 	{"INT3407", 0},
 	{"INTC1047", 0},
+	{"INTC1050", 0},
 	{"", 0},
 };
 MODULE_DEVICE_TABLE(acpi, int3407_device_ids);
drivers/base/regmap/regmap-debugfs.c +29 -23

93 lines not on this page · raw message

drivers/block/zram/zram_drv.c +2 -1
index ebb234f36909..73a5cecfa9bb 100644
@@ -2025,7 +2025,8 @@ static ssize_t hot_add_show(struct class *class,
 		return ret;
 	return scnprintf(buf, PAGE_SIZE, "%d\n", ret);
 }
-static CLASS_ATTR_RO(hot_add);
+static struct class_attribute class_attr_hot_add =
+	__ATTR(hot_add, 0400, hot_add_show, NULL);
 
 static ssize_t hot_remove_store(struct class *class,
 			struct class_attribute *attr,
drivers/bus/ti-sysc.c +12 -11
index db9541f38505..3b0417a01494 100644
@@ -236,15 +236,14 @@ static int sysc_wait_softreset(struct sysc *ddata)
 		syss_done = ddata->cfg.syss_mask;
 
 	if (syss_offset >= 0) {
-		error = readx_poll_timeout(sysc_read_sysstatus, ddata, rstval,
-					   (rstval & ddata->cfg.syss_mask) ==
-					   syss_done,
-					   100, MAX_MODULE_SOFTRESET_WAIT);
+		error = readx_poll_timeout_atomic(sysc_read_sysstatus, ddata,
+				rstval, (rstval & ddata->cfg.syss_mask) ==
+				syss_done, 100, MAX_MODULE_SOFTRESET_WAIT);
 
 	} else if (ddata->cfg.quirks & SYSC_QUIRK_RESET_STATUS) {
-		error = readx_poll_timeout(sysc_read_sysconfig, ddata, rstval,
-					   !(rstval & sysc_mask),
-					   100, MAX_MODULE_SOFTRESET_WAIT);
+		error = readx_poll_timeout_atomic(sysc_read_sysconfig, ddata,
+				rstval, !(rstval & sysc_mask),
+				100, MAX_MODULE_SOFTRESET_WAIT);
 	}
 
 	return error;
@@ -1279,7 +1278,8 @@ static int __maybe_unused sysc_noirq_suspend(struct device *dev)
 
 	ddata = dev_get_drvdata(dev);
 
-	if (ddata->cfg.quirks & SYSC_QUIRK_LEGACY_IDLE)
+	if (ddata->cfg.quirks &
+	    (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE))
 		return 0;
 
 	return pm_runtime_force_suspend(dev);
@@ -1291,7 +1291,8 @@ static int __maybe_unused sysc_noirq_resume(struct device *dev)
 
 	ddata = dev_get_drvdata(dev);
 
-	if (ddata->cfg.quirks & SYSC_QUIRK_LEGACY_IDLE)
+	if (ddata->cfg.quirks &
+	    (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE))
 		return 0;
 
 	return pm_runtime_force_resume(dev);
@@ -1728,8 +1729,8 @@ static void sysc_quirk_rtc(struct sysc *ddata, bool lock)
 
 	local_irq_save(flags);
 	/* RTC_STATUS BUSY bit may stay active for 1/32768 seconds (~30 usec) */
-	error = readl_poll_timeout(ddata->module_va + 0x44, val,
-				   !(val & BIT(0)), 100, 50);
+	error = readl_poll_timeout_atomic(ddata->module_va + 0x44, val,
+					  !(val & BIT(0)), 100, 50);
 	if (error)
 		dev_warn(ddata->dev, "rtc busy timeout\n");
 	/* Now we have ~15 microseconds to read/write various registers */
drivers/char/tpm/tpm_tis_core.c +1 -1
index 2435216bd10a..65ab1b027949 100644
@@ -1085,7 +1085,7 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
 
 	return 0;
 out_err:
-	if ((chip->ops != NULL) && (chip->ops->clk_enable != NULL))
+	if (chip->ops->clk_enable != NULL)
 		chip->ops->clk_enable(chip, false);
 
 	tpm_tis_remove(chip);
drivers/char/virtio_console.c +2 -1
index 3cbaec925606..5adad9fa3036 100644
@@ -2116,6 +2116,7 @@ static struct virtio_device_id id_table[] = {
 	{ VIRTIO_ID_CONSOLE, VIRTIO_DEV_ANY_ID },
 	{ 0 },
 };
+MODULE_DEVICE_TABLE(virtio, id_table);
 
 static unsigned int features[] = {
 	VIRTIO_CONSOLE_F_SIZE,
@@ -2128,6 +2129,7 @@ static struct virtio_device_id rproc_serial_id_table[] = {
 #endif
 	{ 0 },
 };
+MODULE_DEVICE_TABLE(virtio, rproc_serial_id_table);
 
 static unsigned int rproc_serial_features[] = {
 };
@@ -2280,6 +2282,5 @@ static void __exit fini(void)
 module_init(init);
 module_exit(fini);
 
-MODULE_DEVICE_TABLE(virtio, id_table);
 MODULE_DESCRIPTION("Virtio console driver");
 MODULE_LICENSE("GPL");
drivers/clk/clk-ast2600.c +41 -8

69 lines not on this page · raw message

drivers/clk/mvebu/Kconfig +1 -0
index ded07b0bd0d5..557d6213783c 100644
@@ -42,6 +42,7 @@ config ARMADA_AP806_SYSCON
 
 config ARMADA_AP_CPU_CLK
 	bool
+	select ARMADA_AP_CP_HELPER
 
 config ARMADA_CP110_SYSCON
 	bool
drivers/clk/qcom/gcc-msm8998.c +27 -0
index df1d7056436c..9d7016bcd680 100644
@@ -1110,6 +1110,27 @@ static struct clk_rcg2 ufs_axi_clk_src = {
 	},
 };
 
+static const struct freq_tbl ftbl_ufs_unipro_core_clk_src[] = {
+	F(37500000, P_GPLL0_OUT_MAIN, 16, 0, 0),
+	F(75000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
+	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
+	{ }
+};
+
+static struct clk_rcg2 ufs_unipro_core_clk_src = {
+	.cmd_rcgr = 0x76028,
+	.mnd_width = 8,
+	.hid_width = 5,
+	.parent_map = gcc_parent_map_0,
+	.freq_tbl = ftbl_ufs_unipro_core_clk_src,
+	.clkr.hw.init = &(struct clk_init_data){
+		.name = "ufs_unipro_core_clk_src",
+		.parent_names = gcc_parent_names_0,
+		.num_parents = 4,
+		.ops = &clk_rcg2_ops,
+	},
+};
+
 static const struct freq_tbl ftbl_usb30_master_clk_src[] = {
 	F(19200000, P_XO, 1, 0, 0),
 	F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
@@ -2549,6 +2570,11 @@ static struct clk_branch gcc_ufs_unipro_core_clk = {
 		.enable_mask = BIT(0),
 		.hw.init = &(struct clk_init_data){
 			.name = "gcc_ufs_unipro_core_clk",
+			.parent_names = (const char *[]){
+				"ufs_unipro_core_clk_src",
+			},
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
 		},
 	},
@@ -2904,6 +2930,7 @@ static struct clk_regmap *gcc_msm8998_clocks[] = {
 	[SDCC4_APPS_CLK_SRC] = &sdcc4_apps_clk_src.clkr,
 	[TSIF_REF_CLK_SRC] = &tsif_ref_clk_src.clkr,
 	[UFS_AXI_CLK_SRC] = &ufs_axi_clk_src.clkr,
+	[UFS_UNIPRO_CORE_CLK_SRC] = &ufs_unipro_core_clk_src.clkr,
 	[USB30_MASTER_CLK_SRC] = &usb30_master_clk_src.clkr,
 	[USB30_MOCK_UTMI_CLK_SRC] = &usb30_mock_utmi_clk_src.clkr,
 	[USB3_PHY_AUX_CLK_SRC] = &usb3_phy_aux_clk_src.clkr,
drivers/clk/qcom/gcc-sc7180.c +37 -36

223 lines not on this page · raw message

drivers/clk/qcom/gcc-sm8150.c +148 -0

196 lines not on this page · raw message

drivers/counter/104-quad-8.c +19 -3
index aa13708c2bc3..d22cfae1b019 100644
@@ -1274,18 +1274,26 @@ static ssize_t quad8_signal_cable_fault_read(struct counter_device *counter,
 					     struct counter_signal *signal,
 					     void *private, char *buf)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
 	const size_t channel_id = signal->id / 2;
-	const bool disabled = !(priv->cable_fault_enable & BIT(channel_id));
+	bool disabled;
 	unsigned int status;
 	unsigned int fault;
 
-	if (disabled)
+	mutex_lock(&priv->lock);
+
+	disabled = !(priv->cable_fault_enable & BIT(channel_id));
+
+	if (disabled) {
+		mutex_unlock(&priv->lock);
 		return -EINVAL;
+	}
 
 	/* Logic 0 = cable fault */
 	status = inb(priv->base + QUAD8_DIFF_ENCODER_CABLE_STATUS);
 
+	mutex_unlock(&priv->lock);
+
 	/* Mask respective channel and invert logic */
 	fault = !(status & BIT(channel_id));
 
@@ -1317,6 +1325,8 @@ static ssize_t quad8_signal_cable_fault_enable_write(
 	if (ret)
 		return ret;
 
+	mutex_lock(&priv->lock);
+
 	if (enable)
 		priv->cable_fault_enable |= BIT(channel_id);
 	else
@@ -1327,6 +1337,8 @@ static ssize_t quad8_signal_cable_fault_enable_write(
 
 	outb(cable_fault_enable, priv->base + QUAD8_DIFF_ENCODER_CABLE_STATUS);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -1353,6 +1365,8 @@ static ssize_t quad8_signal_fck_prescaler_write(struct counter_device *counter,
 	if (ret)
 		return ret;
 
+	mutex_lock(&priv->lock);
+
 	priv->fck_prescaler[channel_id] = prescaler;
 
 	/* Reset Byte Pointer */
@@ -1363,6 +1377,8 @@ static ssize_t quad8_signal_fck_prescaler_write(struct counter_device *counter,
 	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_PRESET_PSC,
 	     base_offset + 1);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
drivers/dma-buf/dma-buf.c +7 -4
index e782aaaf3e1f..c26937143c35 100644
@@ -45,10 +45,10 @@ static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
 	size_t ret = 0;
 
 	dmabuf = dentry->d_fsdata;
-	dma_resv_lock(dmabuf->resv, NULL);
+	spin_lock(&dmabuf->name_lock);
 	if (dmabuf->name)
 		ret = strlcpy(name, dmabuf->name, DMA_BUF_NAME_LEN);
-	dma_resv_unlock(dmabuf->resv);
+	spin_unlock(&dmabuf->name_lock);
 
 	return dynamic_dname(dentry, buffer, buflen, "/%s:%s",
 			     dentry->d_name.name, ret > 0 ? name : "");
@@ -338,8 +338,10 @@ static long dma_buf_set_name(struct dma_buf *dmabuf, const char __user *buf)
 		kfree(name);
 		goto out_unlock;
 	}
+	spin_lock(&dmabuf->name_lock);
 	kfree(dmabuf->name);
 	dmabuf->name = name;
+	spin_unlock(&dmabuf->name_lock);
 
 out_unlock:
 	dma_resv_unlock(dmabuf->resv);
@@ -402,10 +404,10 @@ static void dma_buf_show_fdinfo(struct seq_file *m, struct file *file)
 	/* Don't count the temporary reference taken inside procfs seq_show */
 	seq_printf(m, "count:\t%ld\n", file_count(dmabuf->file) - 1);
 	seq_printf(m, "exp_name:\t%s\n", dmabuf->exp_name);
-	dma_resv_lock(dmabuf->resv, NULL);
+	spin_lock(&dmabuf->name_lock);
 	if (dmabuf->name)
 		seq_printf(m, "name:\t%s\n", dmabuf->name);
-	dma_resv_unlock(dmabuf->resv);
+	spin_unlock(&dmabuf->name_lock);
 }
 
 static const struct file_operations dma_buf_fops = {
@@ -542,6 +544,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
 	dmabuf->size = exp_info->size;
 	dmabuf->exp_name = exp_info->exp_name;
 	dmabuf->owner = exp_info->owner;
+	spin_lock_init(&dmabuf->name_lock);
 	init_waitqueue_head(&dmabuf->poll);
 	dmabuf->cb_excl.poll = dmabuf->cb_shared.poll = &dmabuf->poll;
 	dmabuf->cb_excl.active = dmabuf->cb_shared.active = 0;
drivers/dma/dmatest.c +2 -0
index 0425984db118..62d9825a49e9 100644
@@ -1168,6 +1168,8 @@ static int dmatest_run_set(const char *val, const struct kernel_param *kp)
 	} else if (dmatest_run) {
 		if (!is_threaded_test_pending(info)) {
 			pr_info("No channels configured, continue with any\n");
+			if (!is_threaded_test_run(info))
+				stop_threaded_test(info);
 			add_threaded_test(info);
 		}
 		start_threaded_tests(info);
drivers/dma/dw/core.c +0 -12
index 21cb2a58dbd2..a1b56f52db2f 100644
@@ -118,16 +118,11 @@ static void dwc_initialize(struct dw_dma_chan *dwc)
 {
 	struct dw_dma *dw = to_dw_dma(dwc->chan.device);
 
-	if (test_bit(DW_DMA_IS_INITIALIZED, &dwc->flags))
-		return;
-
 	dw->initialize_chan(dwc);
 
 	/* Enable interrupts */
 	channel_set_bit(dw, MASK.XFER, dwc->mask);
 	channel_set_bit(dw, MASK.ERROR, dwc->mask);
-
-	set_bit(DW_DMA_IS_INITIALIZED, &dwc->flags);
 }
 
 /*----------------------------------------------------------------------*/
@@ -954,8 +949,6 @@ static void dwc_issue_pending(struct dma_chan *chan)
 
 void do_dw_dma_off(struct dw_dma *dw)
 {
-	unsigned int i;
-
 	dma_writel(dw, CFG, 0);
 
 	channel_clear_bit(dw, MASK.XFER, dw->all_chan_mask);
@@ -966,9 +959,6 @@ void do_dw_dma_off(struct dw_dma *dw)
 
 	while (dma_readl(dw, CFG) & DW_CFG_DMA_EN)
 		cpu_relax();
-
-	for (i = 0; i < dw->dma.chancnt; i++)
-		clear_bit(DW_DMA_IS_INITIALIZED, &dw->chan[i].flags);
 }
 
 void do_dw_dma_on(struct dw_dma *dw)
@@ -1032,8 +1022,6 @@ static void dwc_free_chan_resources(struct dma_chan *chan)
 	/* Clear custom channel configuration */
 	memset(&dwc->dws, 0, sizeof(struct dw_dma_slave));
 
-	clear_bit(DW_DMA_IS_INITIALIZED, &dwc->flags);
-
 	/* Disable interrupts */
 	channel_clear_bit(dw, MASK.XFER, dwc->mask);
 	channel_clear_bit(dw, MASK.BLOCK, dwc->mask);
drivers/dma/fsl-edma-common.h +1 -1
index 67e422590c9a..ec1169741de1 100644
@@ -33,7 +33,7 @@
 #define EDMA_TCD_ATTR_DSIZE_16BIT	BIT(0)
 #define EDMA_TCD_ATTR_DSIZE_32BIT	BIT(1)
 #define EDMA_TCD_ATTR_DSIZE_64BIT	(BIT(0) | BIT(1))
-#define EDMA_TCD_ATTR_DSIZE_32BYTE	(BIT(3) | BIT(0))
+#define EDMA_TCD_ATTR_DSIZE_32BYTE	(BIT(2) | BIT(0))
 #define EDMA_TCD_ATTR_SSIZE_8BIT	0
 #define EDMA_TCD_ATTR_SSIZE_16BIT	(EDMA_TCD_ATTR_DSIZE_16BIT << 8)
 #define EDMA_TCD_ATTR_SSIZE_32BIT	(EDMA_TCD_ATTR_DSIZE_32BIT << 8)
drivers/dma/fsl-edma.c +7 -0
index eff7ebd8cf35..90bb72af306c 100644
@@ -45,6 +45,13 @@ static irqreturn_t fsl_edma_tx_handler(int irq, void *dev_id)
 			fsl_chan = &fsl_edma->chans[ch];
 
 			spin_lock(&fsl_chan->vchan.lock);
+
+			if (!fsl_chan->edesc) {
+				/* terminate_all called before */
+				spin_unlock(&fsl_chan->vchan.lock);
+				continue;
+			}
+
 			if (!fsl_chan->edesc->iscyclic) {
 				list_del(&fsl_chan->edesc->vdesc.node);
 				vchan_cookie_complete(&fsl_chan->edesc->vdesc);
drivers/dma/idxd/cdev.c +16 -3
index ff49847e37a8..cb376cf6a2d2 100644
@@ -74,6 +74,7 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp)
 	struct idxd_device *idxd;
 	struct idxd_wq *wq;
 	struct device *dev;
+	int rc = 0;
 
 	wq = inode_wq(inode);
 	idxd = wq->idxd;
@@ -81,17 +82,27 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp)
 
 	dev_dbg(dev, "%s called: %d\n", __func__, idxd_wq_refcount(wq));
 
-	if (idxd_wq_refcount(wq) > 0 && wq_dedicated(wq))
-		return -EBUSY;
-
 	ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
 	if (!ctx)
 		return -ENOMEM;
 
+	mutex_lock(&wq->wq_lock);
+
+	if (idxd_wq_refcount(wq) > 0 && wq_dedicated(wq)) {
+		rc = -EBUSY;
+		goto failed;
+	}
+
 	ctx->wq = wq;
 	filp->private_data = ctx;
 	idxd_wq_get(wq);
+	mutex_unlock(&wq->wq_lock);
 	return 0;
+
+ failed:
+	mutex_unlock(&wq->wq_lock);
+	kfree(ctx);
+	return rc;
 }
 
 static int idxd_cdev_release(struct inode *node, struct file *filep)
@@ -105,7 +116,9 @@ static int idxd_cdev_release(struct inode *node, struct file *filep)
 	filep->private_data = NULL;
 
 	kfree(ctx);
+	mutex_lock(&wq->wq_lock);
 	idxd_wq_put(wq);
+	mutex_unlock(&wq->wq_lock);
 	return 0;
 }
 
drivers/dma/idxd/device.c +25 -0
index 8d79a8787104..8d2718c585dc 100644
@@ -320,6 +320,31 @@ void idxd_wq_unmap_portal(struct idxd_wq *wq)
 	devm_iounmap(dev, wq->dportal);
 }
 
+void idxd_wq_disable_cleanup(struct idxd_wq *wq)
+{
+	struct idxd_device *idxd = wq->idxd;
+	struct device *dev = &idxd->pdev->dev;
+	int i, wq_offset;
+
+	lockdep_assert_held(&idxd->dev_lock);
+	memset(&wq->wqcfg, 0, sizeof(wq->wqcfg));
+	wq->type = IDXD_WQT_NONE;
+	wq->size = 0;
+	wq->group = NULL;
+	wq->threshold = 0;
+	wq->priority = 0;
+	clear_bit(WQ_FLAG_DEDICATED, &wq->flags);
+	memset(wq->name, 0, WQ_NAME_SIZE);
+
+	for (i = 0; i < 8; i++) {
+		wq_offset = idxd->wqcfg_offset + wq->id * 32 + i * sizeof(u32);
+		iowrite32(0, idxd->reg_base + wq_offset);
+		dev_dbg(dev, "WQ[%d][%d][%#x]: %#x\n",
+			wq->id, i, wq_offset,
+			ioread32(idxd->reg_base + wq_offset));
+	}
+}
+
 /* Device control bits */
 static inline bool idxd_is_enabled(struct idxd_device *idxd)
 {
drivers/dma/idxd/idxd.h +1 -0
index b8f8a363b4a7..908c8d0ef3ab 100644
@@ -290,6 +290,7 @@ int idxd_wq_enable(struct idxd_wq *wq);
 int idxd_wq_disable(struct idxd_wq *wq);
 int idxd_wq_map_portal(struct idxd_wq *wq);
 void idxd_wq_unmap_portal(struct idxd_wq *wq);
+void idxd_wq_disable_cleanup(struct idxd_wq *wq);
 
 /* submission */
 int idxd_submit_desc(struct idxd_wq *wq, struct idxd_desc *desc);
drivers/dma/idxd/irq.c +2 -1
index 6510791b9921..8a35f58da689 100644
@@ -141,7 +141,7 @@ irqreturn_t idxd_misc_thread(int vec, void *data)
 
 	iowrite32(cause, idxd->reg_base + IDXD_INTCAUSE_OFFSET);
 	if (!err)
-		return IRQ_HANDLED;
+		goto out;
 
 	gensts.bits = ioread32(idxd->reg_base + IDXD_GENSTATS_OFFSET);
 	if (gensts.state == IDXD_DEVICE_STATE_HALT) {
@@ -162,6 +162,7 @@ irqreturn_t idxd_misc_thread(int vec, void *data)
 		spin_unlock_bh(&idxd->dev_lock);
 	}
 
+ out:
 	idxd_unmask_msix_vector(idxd, irq_entry->id);
 	return IRQ_HANDLED;
 }
drivers/dma/idxd/sysfs.c +5 -0
index 3999827970ab..fbb455ece81e 100644
@@ -315,6 +315,11 @@ static int idxd_config_bus_remove(struct device *dev)
 		idxd_unregister_dma_device(idxd);
 		spin_lock_irqsave(&idxd->dev_lock, flags);
 		rc = idxd_device_disable(idxd);
+		for (i = 0; i < idxd->max_wqs; i++) {
+			struct idxd_wq *wq = &idxd->wqs[i];
+
+			idxd_wq_disable_cleanup(wq);
+		}
 		spin_unlock_irqrestore(&idxd->dev_lock, flags);
 		module_put(THIS_MODULE);
 		if (rc < 0)
drivers/dma/mcf-edma.c +7 -0
index e15bd15a9ef6..e12b754e6398 100644
@@ -35,6 +35,13 @@ static irqreturn_t mcf_edma_tx_handler(int irq, void *dev_id)
 			mcf_chan = &mcf_edma->chans[ch];
 
 			spin_lock(&mcf_chan->vchan.lock);
+
+			if (!mcf_chan->edesc) {
+				/* terminate_all called before */
+				spin_unlock(&mcf_chan->vchan.lock);
+				continue;
+			}
+
 			if (!mcf_chan->edesc->iscyclic) {
 				list_del(&mcf_chan->edesc->vdesc.node);
 				vchan_cookie_complete(&mcf_chan->edesc->vdesc);
drivers/dma/sh/usb-dmac.c +2 -0
index b218a013c260..8f7ceb698226 100644
@@ -586,6 +586,8 @@ static void usb_dmac_isr_transfer_end(struct usb_dmac_chan *chan)
 		desc->residue = usb_dmac_get_current_residue(chan, desc,
 							desc->sg_index - 1);
 		desc->done_cookie = desc->vd.tx.cookie;
+		desc->vd.tx_result.result = DMA_TRANS_NOERROR;
+		desc->vd.tx_result.residue = desc->residue;
 		vchan_cookie_complete(&desc->vd);
 
 		/* Restart the next transfer if this driver has a next desc */
drivers/dma/ti/k3-udma.c +3 -5
index a90e154b0ae0..7cab23fe5c73 100644
@@ -1925,8 +1925,6 @@ static int udma_alloc_chan_resources(struct dma_chan *chan)
 
 	udma_reset_rings(uc);
 
-	INIT_DELAYED_WORK_ONSTACK(&uc->tx_drain.work,
-				  udma_check_tx_completion);
 	return 0;
 
 err_irq_free:
@@ -3038,7 +3036,6 @@ static void udma_free_chan_resources(struct dma_chan *chan)
 	}
 
 	cancel_delayed_work_sync(&uc->tx_drain.work);
-	destroy_delayed_work_on_stack(&uc->tx_drain.work);
 
 	if (uc->irq_num_ring > 0) {
 		free_irq(uc->irq_num_ring, uc);
@@ -3189,7 +3186,7 @@ static struct udma_match_data am654_main_data = {
 
 static struct udma_match_data am654_mcu_data = {
 	.psil_base = 0x6000,
-	.enable_memcpy_support = true, /* TEST: DMA domains */
+	.enable_memcpy_support = false,
 	.statictr_z_mask = GENMASK(11, 0),
 	.rchan_oes_offset = 0x2000,
 	.tpl_levels = 2,
@@ -3609,7 +3606,7 @@ static int udma_probe(struct platform_device *pdev)
 		return ret;
 	}
 
-	ret = of_property_read_u32(navss_node, "ti,udma-atype", &ud->atype);
+	ret = of_property_read_u32(dev->of_node, "ti,udma-atype", &ud->atype);
 	if (!ret && ud->atype > 2) {
 		dev_err(dev, "Invalid atype: %u\n", ud->atype);
 		return -EINVAL;
@@ -3727,6 +3724,7 @@ static int udma_probe(struct platform_device *pdev)
 		tasklet_init(&uc->vc.task, udma_vchan_complete,
 			     (unsigned long)&uc->vc);
 		init_completion(&uc->teardown_completed);
+		INIT_DELAYED_WORK(&uc->tx_drain.work, udma_check_tx_completion);
 	}
 
 	ret = dma_async_device_register(&ud->ddev);
drivers/gpio/gpio-pca953x.c +1 -0
index 48bea0997e70..374b772150a6 100644
@@ -399,6 +399,7 @@ static const struct regmap_config pca953x_ai_i2c_regmap = {
 	.writeable_reg = pca953x_writeable_register,
 	.volatile_reg = pca953x_volatile_register,
 
+	.disable_locking = true,
 	.cache_type = REGCACHE_RBTREE,
 	.max_register = 0x7f,
 };
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c +8 -18
index 1dc57079933c..ee96f12c4aef 100644
@@ -286,30 +286,20 @@ static uint64_t sdma_v5_0_ring_get_rptr(struct amdgpu_ring *ring)
 static uint64_t sdma_v5_0_ring_get_wptr(struct amdgpu_ring *ring)
 {
 	struct amdgpu_device *adev = ring->adev;
-	u64 *wptr = NULL;
-	uint64_t local_wptr = 0;
+	u64 wptr;
 
 	if (ring->use_doorbell) {
 		/* XXX check if swapping is necessary on BE */
-		wptr = ((u64 *)&adev->wb.wb[ring->wptr_offs]);
-		DRM_DEBUG("wptr/doorbell before shift == 0x%016llx\n", *wptr);
-		*wptr = (*wptr) >> 2;
-		DRM_DEBUG("wptr/doorbell after shift == 0x%016llx\n", *wptr);
+		wptr = READ_ONCE(*((u64 *)&adev->wb.wb[ring->wptr_offs]));
+		DRM_DEBUG("wptr/doorbell before shift == 0x%016llx\n", wptr);
 	} else {
-		u32 lowbit, highbit;
-
-		wptr = &local_wptr;
-		lowbit = RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR)) >> 2;
-		highbit = RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI)) >> 2;
-
-		DRM_DEBUG("wptr [%i]high== 0x%08x low==0x%08x\n",
-				ring->me, highbit, lowbit);
-		*wptr = highbit;
-		*wptr = (*wptr) << 32;
-		*wptr |= lowbit;
+		wptr = RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI));
+		wptr = wptr << 32;
+		wptr |= RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR));
+		DRM_DEBUG("wptr before shift [%i] wptr == 0x%016llx\n", ring->me, wptr);
 	}
 
-	return *wptr;
+	return wptr >> 2;
 }
 
 /**
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +14 -0
index 69b1f61928ef..d06fa6380179 100644
@@ -956,6 +956,9 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
 	/* Update the actual used number of crtc */
 	adev->mode_info.num_crtc = adev->dm.display_indexes_num;
 
+	/* create fake encoders for MST */
+	dm_dp_create_fake_mst_encoders(adev);
+
 	/* TODO: Add_display_info? */
 
 	/* TODO use dynamic cursor width */
@@ -979,6 +982,12 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
 
 static void amdgpu_dm_fini(struct amdgpu_device *adev)
 {
+	int i;
+
+	for (i = 0; i < adev->dm.display_indexes_num; i++) {
+		drm_encoder_cleanup(&adev->dm.mst_encoders[i].base);
+	}
+
 	amdgpu_dm_audio_fini(adev);
 
 	amdgpu_dm_destroy_drm_device(&adev->dm);
@@ -1804,6 +1813,7 @@ static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
 	struct amdgpu_display_manager *dm;
 	struct drm_connector *conn_base;
 	struct amdgpu_device *adev;
+	struct dc_link *link = NULL;
 	static const u8 pre_computed_values[] = {
 		50, 51, 52, 53, 55, 56, 57, 58, 59, 61, 62, 63, 65, 66, 68, 69,
 		71, 72, 74, 75, 77, 79, 81, 82, 84, 86, 88, 90, 92, 94, 96, 98};
@@ -1811,6 +1821,10 @@ static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
 	if (!aconnector || !aconnector->dc_link)
 		return;
 
+	link = aconnector->dc_link;
+	if (link->connector_signal != SIGNAL_TYPE_EDP)
+		return;
+
 	conn_base = &aconnector->base;
 	adev = conn_base->dev->dev_private;
 	dm = &adev->dm;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +10 -1
index 5cab3e65d992..76f7c5275239 100644
@@ -43,6 +43,9 @@
  */
 
 #define AMDGPU_DM_MAX_DISPLAY_INDEX 31
+
+#define AMDGPU_DM_MAX_CRTC 6
+
 /*
 #include "include/amdgpu_dal_power_if.h"
 #include "amdgpu_dm_irq.h"
@@ -327,6 +330,13 @@ struct amdgpu_display_manager {
 	 * available in FW
 	 */
 	const struct gpu_info_soc_bounding_box_v1_0 *soc_bounding_box;
+
+	/**
+	 * @mst_encoders:
+	 *
+	 * fake encoders used for DP MST.
+	 */
+	struct amdgpu_encoder mst_encoders[AMDGPU_DM_MAX_CRTC];
 };
 
 struct amdgpu_dm_connector {
@@ -355,7 +365,6 @@ struct amdgpu_dm_connector {
 	struct amdgpu_dm_dp_aux dm_dp_aux;
 	struct drm_dp_mst_port *port;
 	struct amdgpu_dm_connector *mst_port;
-	struct amdgpu_encoder *mst_encoder;
 	struct drm_dp_aux *dsc_aux;
 
 	/* TODO see if we can merge with ddc_bus or make a dm_connector */
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +26 -27

92 lines not on this page · raw message

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h +3 -0
index d2c56579a2cc..b38bd68121ce 100644
@@ -35,6 +35,9 @@ void amdgpu_dm_initialize_dp_connector(struct amdgpu_display_manager *dm,
 				       struct amdgpu_dm_connector *aconnector,
 				       int link_index);
 
+void
+dm_dp_create_fake_mst_encoders(struct amdgpu_device *adev);
+
 #if defined(CONFIG_DRM_AMD_DC_DCN)
 bool compute_mst_dsc_configs_for_state(struct drm_atomic_state *state,
 				       struct dc_state *dc_state);
drivers/gpu/drm/amd/display/dc/core/dc_stream.c +16 -3
index 4f0e7203dba4..470c82794f6f 100644
@@ -56,7 +56,7 @@ void update_stream_signal(struct dc_stream_state *stream, struct dc_sink *sink)
 	}
 }
 
-static void dc_stream_construct(struct dc_stream_state *stream,
+static bool dc_stream_construct(struct dc_stream_state *stream,
 	struct dc_sink *dc_sink_data)
 {
 	uint32_t i = 0;
@@ -118,11 +118,17 @@ static void dc_stream_construct(struct dc_stream_state *stream,
 	update_stream_signal(stream, dc_sink_data);
 
 	stream->out_transfer_func = dc_create_transfer_func();
+	if (stream->out_transfer_func == NULL) {
+		dc_sink_release(dc_sink_data);
+		return false;
+	}
 	stream->out_transfer_func->type = TF_TYPE_BYPASS;
 	stream->out_transfer_func->ctx = stream->ctx;
 
 	stream->stream_id = stream->ctx->dc_stream_id_count;
 	stream->ctx->dc_stream_id_count++;
+
+	return true;
 }
 
 static void dc_stream_destruct(struct dc_stream_state *stream)
@@ -164,13 +170,20 @@ struct dc_stream_state *dc_create_stream_for_sink(
 
 	stream = kzalloc(sizeof(struct dc_stream_state), GFP_KERNEL);
 	if (stream == NULL)
-		return NULL;
+		goto alloc_fail;
 
-	dc_stream_construct(stream, sink);
+	if (dc_stream_construct(stream, sink) == false)
+		goto construct_fail;
 
 	kref_init(&stream->refcount);
 
 	return stream;
+
+construct_fail:
+	kfree(stream);
+
+alloc_fail:
+	return NULL;
 }
 
 struct dc_stream_state *dc_copy_stream(const struct dc_stream_state *stream)
drivers/gpu/drm/amd/powerplay/renoir_ppt.c +1 -1
index b0ed1b3fe79a..72e4d7611323 100644
@@ -687,7 +687,7 @@ static int renoir_set_power_profile_mode(struct smu_context *smu, long *input, u
 		return -EINVAL;
 	}
 
-	ret = smu_send_smc_msg_with_param(smu, SMU_MSG_SetWorkloadMask,
+	ret = smu_send_smc_msg_with_param(smu, SMU_MSG_ActiveProcessNotify,
 				    1 << workload_type,
 				    NULL);
 	if (ret) {
drivers/gpu/drm/exynos/exynos_drm_dma.c +2 -2
index 619f81435c1b..58b89ec11b0e 100644
@@ -61,7 +61,7 @@ static int drm_iommu_attach_device(struct drm_device *drm_dev,
 				struct device *subdrv_dev, void **dma_priv)
 {
 	struct exynos_drm_private *priv = drm_dev->dev_private;
-	int ret;
+	int ret = 0;
 
 	if (get_dma_ops(priv->dma_dev) != get_dma_ops(subdrv_dev)) {
 		DRM_DEV_ERROR(subdrv_dev, "Device %s lacks support for IOMMU\n",
@@ -92,7 +92,7 @@ static int drm_iommu_attach_device(struct drm_device *drm_dev,
 	if (ret)
 		clear_dma_max_seg_size(subdrv_dev);
 
-	return 0;
+	return ret;
 }
 
 /*
drivers/gpu/drm/exynos/exynos_drm_mic.c +3 -1
index f41d75923557..004110c5ded4 100644
@@ -269,8 +269,10 @@ static void mic_pre_enable(struct drm_bridge *bridge)
 		goto unlock;
 
 	ret = pm_runtime_get_sync(mic->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(mic->dev);
 		goto unlock;
+	}
 
 	mic_set_path(mic, 1);
 
drivers/gpu/drm/i915/display/intel_hdmi.c +2 -8
index 821411b93dac..0718ffc7829f 100644
@@ -2821,19 +2821,13 @@ intel_hdmi_connector_register(struct drm_connector *connector)
 	return ret;
 }
 
-static void intel_hdmi_destroy(struct drm_connector *connector)
+static void intel_hdmi_connector_unregister(struct drm_connector *connector)
 {
 	struct cec_notifier *n = intel_attached_hdmi(to_intel_connector(connector))->cec_notifier;
 
 	cec_notifier_conn_unregister(n);
 
-	intel_connector_destroy(connector);
-}
-
-static void intel_hdmi_connector_unregister(struct drm_connector *connector)
-{
 	intel_hdmi_remove_i2c_symlink(connector);
-
 	intel_connector_unregister(connector);
 }
 
@@ -2845,7 +2839,7 @@ static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
 	.atomic_set_property = intel_digital_connector_atomic_set_property,
 	.late_register = intel_hdmi_connector_register,
 	.early_unregister = intel_hdmi_connector_unregister,
-	.destroy = intel_hdmi_destroy,
+	.destroy = intel_connector_destroy,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = intel_digital_connector_duplicate_state,
 };
drivers/gpu/drm/i915/gt/intel_lrc.c +5 -14
index ba82193b4e31..06922e8aae99 100644
@@ -4897,13 +4897,8 @@ static void virtual_engine_initial_hint(struct virtual_engine *ve)
 	 * typically be the first we inspect for submission.
 	 */
 	swp = prandom_u32_max(ve->num_siblings);
-	if (!swp)
-		return;
-
-	swap(ve->siblings[swp], ve->siblings[0]);
-	if (!intel_engine_has_relative_mmio(ve->siblings[0]))
-		virtual_update_register_offsets(ve->context.lrc_reg_state,
-						ve->siblings[0]);
+	if (swp)
+		swap(ve->siblings[swp], ve->siblings[0]);
 }
 
 static int virtual_context_alloc(struct intel_context *ce)
@@ -4916,15 +4911,9 @@ static int virtual_context_alloc(struct intel_context *ce)
 static int virtual_context_pin(struct intel_context *ce)
 {
 	struct virtual_engine *ve = container_of(ce, typeof(*ve), context);
-	int err;
 
 	/* Note: we must use a real engine class for setting up reg state */
-	err = __execlists_context_pin(ce, ve->siblings[0]);
-	if (err)
-		return err;
-
-	virtual_engine_initial_hint(ve);
-	return 0;
+	return __execlists_context_pin(ce, ve->siblings[0]);
 }
 
 static void virtual_context_enter(struct intel_context *ce)
@@ -5188,6 +5177,7 @@ intel_execlists_create_virtual(struct intel_engine_cs **siblings,
 	intel_engine_init_active(&ve->base, ENGINE_VIRTUAL);
 	intel_engine_init_breadcrumbs(&ve->base);
 	intel_engine_init_execlists(&ve->base);
+	ve->base.breadcrumbs.irq_armed = true; /* fake HW, used for irq_work */
 
 	ve->base.cops = &virtual_context_ops;
 	ve->base.request_alloc = execlists_request_alloc;
@@ -5269,6 +5259,7 @@ intel_execlists_create_virtual(struct intel_engine_cs **siblings,
 
 	ve->base.flags |= I915_ENGINE_IS_VIRTUAL;
 
+	virtual_engine_initial_hint(ve);
 	return &ve->context;
 
 err_put:
drivers/gpu/drm/i915/gvt/handlers.c +2 -2
index 2faf50e1b051..6e7dc28455c4 100644
@@ -3131,8 +3131,8 @@ static int init_skl_mmio_info(struct intel_gvt *gvt)
 	MMIO_DFH(GEN9_WM_CHICKEN3, D_SKL_PLUS, F_MODE_MASK | F_CMD_ACCESS,
 		 NULL, NULL);
 
-	MMIO_D(GAMT_CHKN_BIT_REG, D_KBL);
-	MMIO_D(GEN9_CTX_PREEMPT_REG, D_KBL | D_SKL);
+	MMIO_D(GAMT_CHKN_BIT_REG, D_KBL | D_CFL);
+	MMIO_D(GEN9_CTX_PREEMPT_REG, D_SKL_PLUS);
 
 	return 0;
 }
drivers/gpu/drm/i915/i915_perf.c +1 -0
index cf2c01f17da8..803983d9a05d 100644
@@ -1645,6 +1645,7 @@ static u32 *save_restore_register(struct i915_perf_stream *stream, u32 *cs,
 	u32 d;
 
 	cmd = save ? MI_STORE_REGISTER_MEM : MI_LOAD_REGISTER_MEM;
+	cmd |= MI_SRM_LRM_GLOBAL_GTT;
 	if (INTEL_GEN(stream->perf->i915) >= 8)
 		cmd++;
 
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +2 -2
index a2f6b688a976..932dd8c3c411 100644
@@ -2126,7 +2126,6 @@ int dpu_encoder_setup(struct drm_device *dev, struct drm_encoder *enc,
 
 	dpu_enc = to_dpu_encoder_virt(enc);
 
-	mutex_init(&dpu_enc->enc_lock);
 	ret = dpu_encoder_setup_display(dpu_enc, dpu_kms, disp_info);
 	if (ret)
 		goto fail;
@@ -2141,7 +2140,6 @@ int dpu_encoder_setup(struct drm_device *dev, struct drm_encoder *enc,
 				0);
 
 
-	mutex_init(&dpu_enc->rc_lock);
 	INIT_DELAYED_WORK(&dpu_enc->delayed_off_work,
 			dpu_encoder_off_work);
 	dpu_enc->idle_timeout = IDLE_TIMEOUT;
@@ -2186,6 +2184,8 @@ struct drm_encoder *dpu_encoder_init(struct drm_device *dev,
 
 	spin_lock_init(&dpu_enc->enc_spinlock);
 	dpu_enc->enabled = false;
+	mutex_init(&dpu_enc->enc_lock);
+	mutex_init(&dpu_enc->rc_lock);
 
 	return &dpu_enc->base;
 }
drivers/gpu/drm/msm/msm_submitqueue.c +3 -1
index 001fbf537440..a1d94be7883a 100644
@@ -71,8 +71,10 @@ int msm_submitqueue_create(struct drm_device *drm, struct msm_file_private *ctx,
 	queue->flags = flags;
 
 	if (priv->gpu) {
-		if (prio >= priv->gpu->nr_rings)
+		if (prio >= priv->gpu->nr_rings) {
+			kfree(queue);
 			return -EINVAL;
+		}
 
 		queue->prio = prio;
 	}
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c +4 -4
index 9ffa9c75a5da..16b385629688 100644
@@ -1069,10 +1069,6 @@ vmw_stdu_primary_plane_prepare_fb(struct drm_plane *plane,
 	if (new_content_type != SAME_AS_DISPLAY) {
 		struct vmw_surface_metadata metadata = {0};
 
-		metadata.base_size.width = hdisplay;
-		metadata.base_size.height = vdisplay;
-		metadata.base_size.depth = 1;
-
 		/*
 		 * If content buffer is a buffer object, then we have to
 		 * construct surface info
@@ -1104,6 +1100,10 @@ vmw_stdu_primary_plane_prepare_fb(struct drm_plane *plane,
 			metadata = new_vfbs->surface->metadata;
 		}
 
+		metadata.base_size.width = hdisplay;
+		metadata.base_size.height = vdisplay;
+		metadata.base_size.depth = 1;
+
 		if (vps->surf) {
 			struct drm_vmw_size cur_base_size =
 				vps->surf->metadata.base_size;
drivers/hid/hid-ids.h +3 -0
index f03f1cc913ce..047abf731cf0 100644
@@ -624,6 +624,7 @@
 #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081	0xa081
 #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A0C2	0xa0c2
 #define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A096	0xa096
+#define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A293	0xa293
 
 #define USB_VENDOR_ID_IMATION		0x0718
 #define USB_DEVICE_ID_DISC_STAKKA	0xd000
@@ -1005,6 +1006,8 @@
 #define USB_DEVICE_ID_ROCCAT_RYOS_MK_PRO	0x3232
 #define USB_DEVICE_ID_ROCCAT_SAVU	0x2d5a
 
+#define USB_VENDOR_ID_SAI		0x17dd
+
 #define USB_VENDOR_ID_SAITEK		0x06a3
 #define USB_DEVICE_ID_SAITEK_RUMBLEPAD	0xff17
 #define USB_DEVICE_ID_SAITEK_PS1000	0x0621
drivers/hid/hid-logitech-hidpp.c +1 -1
index 094f4f1b6555..89d74cc264f9 100644
@@ -3146,7 +3146,7 @@ static int hi_res_scroll_enable(struct hidpp_device *hidpp)
 		multiplier = 1;
 
 	hidpp->vertical_wheel_counter.wheel_multiplier = multiplier;
-	hid_info(hidpp->hid_dev, "multiplier = %d\n", multiplier);
+	hid_dbg(hidpp->hid_dev, "wheel multiplier = %d\n", multiplier);
 	return 0;
 }
 
drivers/hid/hid-magicmouse.c +6 -0
index 34138667f8af..abd86903875f 100644
@@ -535,6 +535,12 @@ static int magicmouse_setup_input(struct input_dev *input, struct hid_device *hd
 		__set_bit(MSC_RAW, input->mscbit);
 	}
 
+	/*
+	 * hid-input may mark device as using autorepeat, but neither
+	 * the trackpad, nor the mouse actually want it.
+	 */
+	__clear_bit(EV_REP, input->evbit);
+
 	return 0;
 }
 
drivers/hid/hid-quirks.c +2 -0
index ca8b5c261c7c..934fc0a798d4 100644
@@ -88,6 +88,7 @@ static const struct hid_device_id hid_quirks[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A096), HID_QUIRK_NO_INIT_REPORTS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A293), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0A4A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
@@ -832,6 +833,7 @@ static const struct hid_device_id hid_ignore_list[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PETZL, USB_DEVICE_ID_PETZL_HEADLAMP) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_IEEE802154_DONGLE) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_POWERCOM, USB_DEVICE_ID_POWERCOM_UPS) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SAI, USB_DEVICE_ID_CYPRESS_HIDCOM) },
 #if IS_ENABLED(CONFIG_MOUSE_SYNAPTICS_USB)
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_INT_TP) },
drivers/hwmon/drivetemp.c +43 -0

55 lines not on this page · raw message

drivers/hwmon/emc2103.c +1 -1
index 491a570e8e50..924c02c1631d 100644
@@ -443,7 +443,7 @@ static ssize_t pwm1_enable_store(struct device *dev,
 	}
 
 	result = read_u8_from_i2c(client, REG_FAN_CONF1, &conf_reg);
-	if (result) {
+	if (result < 0) {
 		count = result;
 		goto err;
 	}
drivers/hwtracing/coresight/coresight-etm4x.c +53 -29

108 lines not on this page · raw message

drivers/hwtracing/intel_th/core.c +18 -3
index ca232ec565e8..c9ac3dc65113 100644
@@ -1021,15 +1021,30 @@ int intel_th_set_output(struct intel_th_device *thdev,
 {
 	struct intel_th_device *hub = to_intel_th_hub(thdev);
 	struct intel_th_driver *hubdrv = to_intel_th_driver(hub->dev.driver);
+	int ret;
 
 	/* In host mode, this is up to the external debugger, do nothing. */
 	if (hub->host_mode)
 		return 0;
 
-	if (!hubdrv->set_output)
-		return -ENOTSUPP;
+	/*
+	 * hub is instantiated together with the source device that
+	 * calls here, so guaranteed to be present.
+	 */
+	hubdrv = to_intel_th_driver(hub->dev.driver);
+	if (!hubdrv || !try_module_get(hubdrv->driver.owner))
+		return -EINVAL;
+
+	if (!hubdrv->set_output) {
+		ret = -ENOTSUPP;
+		goto out;
+	}
+
+	ret = hubdrv->set_output(hub, master);
 
-	return hubdrv->set_output(hub, master);
+out:
+	module_put(hubdrv->driver.owner);
+	return ret;
 }
 EXPORT_SYMBOL_GPL(intel_th_set_output);
 
drivers/hwtracing/intel_th/pci.c +15 -0
index 7ccac74553a6..21fdf0b93516 100644
@@ -233,11 +233,21 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa0a6),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Tiger Lake PCH-H */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x43a6),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Jasper Lake PCH */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4da6),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Jasper Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4e29),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Elkhart Lake CPU */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4529),
@@ -248,6 +258,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4b26),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Emmitsburg PCH */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x1bcc),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{ 0 },
 };
 
drivers/hwtracing/intel_th/sth.c +1 -3
index 3a1f4e650378..a1529f571491 100644
@@ -161,9 +161,7 @@ static int sth_stm_link(struct stm_data *stm_data, unsigned int master,
 {
 	struct sth_device *sth = container_of(stm_data, struct sth_device, stm);
 
-	intel_th_set_output(to_intel_th_device(sth->dev), master);
-
-	return 0;
+	return intel_th_set_output(to_intel_th_device(sth->dev), master);
 }
 
 static int intel_th_sw_init(struct sth_device *sth)
drivers/i2c/busses/i2c-eg20t.c +1 -0
index bb810dee8fb5..73f139690e4e 100644
@@ -180,6 +180,7 @@ static const struct pci_device_id pch_pcidev_id[] = {
 	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_I2C), 1, },
 	{0,}
 };
+MODULE_DEVICE_TABLE(pci, pch_pcidev_id);
 
 static irqreturn_t pch_i2c_handler(int irq, void *pData);
 
drivers/iio/accel/mma8452.c +4 -1
index 00e100fc845a..813bca7cfc3e 100644
@@ -1685,10 +1685,13 @@ static int mma8452_probe(struct i2c_client *client,
 
 	ret = mma8452_set_freefall_mode(data, false);
 	if (ret < 0)
-		goto buffer_cleanup;
+		goto unregister_device;
 
 	return 0;
 
+unregister_device:
+	iio_device_unregister(indio_dev);
+
 buffer_cleanup:
 	iio_triggered_buffer_cleanup(indio_dev);
 
drivers/iio/adc/ad7780.c +1 -1
index 291c1a898129..643771ed3f83 100644
@@ -310,7 +310,7 @@ static int ad7780_probe(struct spi_device *spi)
 
 	ret = ad7780_init_gpios(&spi->dev, st);
 	if (ret)
-		goto error_cleanup_buffer_and_trigger;
+		return ret;
 
 	st->reg = devm_regulator_get(&spi->dev, "avdd");
 	if (IS_ERR(st->reg))
drivers/iio/health/afe4403.c +8 -5
index dc22dc363a99..29104656a537 100644
@@ -63,6 +63,7 @@ static const struct reg_field afe4403_reg_fields[] = {
  * @regulator: Pointer to the regulator for the IC
  * @trig: IIO trigger for this device
  * @irq: ADC_RDY line interrupt number
+ * @buffer: Used to construct data layout to push into IIO buffer.
  */
 struct afe4403_data {
 	struct device *dev;
@@ -72,6 +73,8 @@ struct afe4403_data {
 	struct regulator *regulator;
 	struct iio_trigger *trig;
 	int irq;
+	/* Ensure suitable alignment for timestamp */
+	s32 buffer[8] __aligned(8);
 };
 
 enum afe4403_chan_id {
@@ -309,7 +312,6 @@ static irqreturn_t afe4403_trigger_handler(int irq, void *private)
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct afe4403_data *afe = iio_priv(indio_dev);
 	int ret, bit, i = 0;
-	s32 buffer[8];
 	u8 tx[4] = {AFE440X_CONTROL0, 0x0, 0x0, AFE440X_CONTROL0_READ};
 	u8 rx[3];
 
@@ -326,9 +328,9 @@ static irqreturn_t afe4403_trigger_handler(int irq, void *private)
 		if (ret)
 			goto err;
 
-		buffer[i++] = (rx[0] << 16) |
-				(rx[1] << 8) |
-				(rx[2]);
+		afe->buffer[i++] = (rx[0] << 16) |
+				   (rx[1] << 8) |
+				   (rx[2]);
 	}
 
 	/* Disable reading from the device */
@@ -337,7 +339,8 @@ static irqreturn_t afe4403_trigger_handler(int irq, void *private)
 	if (ret)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, afe->buffer,
+					   pf->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
 
drivers/iio/health/afe4404.c +5 -3
index e728bbb21ca8..cebb1fd4d0b1 100644
@@ -83,6 +83,7 @@ static const struct reg_field afe4404_reg_fields[] = {
  * @regulator: Pointer to the regulator for the IC
  * @trig: IIO trigger for this device
  * @irq: ADC_RDY line interrupt number
+ * @buffer: Used to construct a scan to push to the iio buffer.
  */
 struct afe4404_data {
 	struct device *dev;
@@ -91,6 +92,7 @@ struct afe4404_data {
 	struct regulator *regulator;
 	struct iio_trigger *trig;
 	int irq;
+	s32 buffer[10] __aligned(8);
 };
 
 enum afe4404_chan_id {
@@ -328,17 +330,17 @@ static irqreturn_t afe4404_trigger_handler(int irq, void *private)
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct afe4404_data *afe = iio_priv(indio_dev);
 	int ret, bit, i = 0;
-	s32 buffer[10];
 
 	for_each_set_bit(bit, indio_dev->active_scan_mask,
 			 indio_dev->masklength) {
 		ret = regmap_read(afe->regmap, afe4404_channel_values[bit],
-				  &buffer[i++]);
+				  &afe->buffer[i++]);
 		if (ret)
 			goto err;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, afe->buffer,
+					   pf->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
 
drivers/iio/humidity/hdc100x.c +7 -3
index 7ecd2ffa3132..665eb7e38293 100644
@@ -38,6 +38,11 @@ struct hdc100x_data {
 
 	/* integration time of the sensor */
 	int adc_int_us[2];
+	/* Ensure natural alignment of timestamp */
+	struct {
+		__be16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 /* integration time in us */
@@ -322,7 +327,6 @@ static irqreturn_t hdc100x_trigger_handler(int irq, void *p)
 	struct i2c_client *client = data->client;
 	int delay = data->adc_int_us[0] + data->adc_int_us[1];
 	int ret;
-	s16 buf[8];  /* 2x s16 + padding + 8 byte timestamp */
 
 	/* dual read starts at temp register */
 	mutex_lock(&data->lock);
@@ -333,13 +337,13 @@ static irqreturn_t hdc100x_trigger_handler(int irq, void *p)
 	}
 	usleep_range(delay, delay + 1000);
 
-	ret = i2c_master_recv(client, (u8 *)buf, 4);
+	ret = i2c_master_recv(client, (u8 *)data->scan.channels, 4);
 	if (ret < 0) {
 		dev_err(&client->dev, "cannot read sensor data\n");
 		goto err;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 err:
 	mutex_unlock(&data->lock);
drivers/iio/humidity/hts221.h +5 -2
index 7d6771f7cf47..b2eb5abeaccd 100644
@@ -14,8 +14,6 @@
 
 #include <linux/iio/iio.h>
 
-#define HTS221_DATA_SIZE	2
-
 enum hts221_sensor_type {
 	HTS221_SENSOR_H,
 	HTS221_SENSOR_T,
@@ -39,6 +37,11 @@ struct hts221_hw {
 
 	bool enabled;
 	u8 odr;
+	/* Ensure natural alignment of timestamp */
+	struct {
+		__le16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 extern const struct dev_pm_ops hts221_pm_ops;
drivers/iio/humidity/hts221_buffer.c +5 -4
index 81d50a861c22..49dcd36d8838 100644
@@ -162,7 +162,6 @@ static const struct iio_buffer_setup_ops hts221_buffer_ops = {
 
 static irqreturn_t hts221_buffer_handler_thread(int irq, void *p)
 {
-	u8 buffer[ALIGN(2 * HTS221_DATA_SIZE, sizeof(s64)) + sizeof(s64)];
 	struct iio_poll_func *pf = p;
 	struct iio_dev *iio_dev = pf->indio_dev;
 	struct hts221_hw *hw = iio_priv(iio_dev);
@@ -172,18 +171,20 @@ static irqreturn_t hts221_buffer_handler_thread(int irq, void *p)
 	/* humidity data */
 	ch = &iio_dev->channels[HTS221_SENSOR_H];
 	err = regmap_bulk_read(hw->regmap, ch->address,
-			       buffer, HTS221_DATA_SIZE);
+			       &hw->scan.channels[0],
+			       sizeof(hw->scan.channels[0]));
 	if (err < 0)
 		goto out;
 
 	/* temperature data */
 	ch = &iio_dev->channels[HTS221_SENSOR_T];
 	err = regmap_bulk_read(hw->regmap, ch->address,
-			       buffer + HTS221_DATA_SIZE, HTS221_DATA_SIZE);
+			       &hw->scan.channels[1],
+			       sizeof(hw->scan.channels[1]));
 	if (err < 0)
 		goto out;
 
-	iio_push_to_buffers_with_timestamp(iio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(iio_dev, &hw->scan,
 					   iio_get_time_ns(iio_dev));
 
 out:
drivers/iio/industrialio-core.c +2 -0
index 24f7bbff4938..c6e36411053b 100644
@@ -130,6 +130,8 @@ static const char * const iio_modifier_names[] = {
 	[IIO_MOD_PM2P5] = "pm2p5",
 	[IIO_MOD_PM4] = "pm4",
 	[IIO_MOD_PM10] = "pm10",
+	[IIO_MOD_ETHANOL] = "ethanol",
+	[IIO_MOD_H2] = "h2",
 };
 
 /* relies on pairs of these shared then separate */
drivers/iio/magnetometer/ak8974.c +17 -12
index d32996702110..87c15a63c1a4 100644
@@ -185,6 +185,11 @@ struct ak8974 {
 	bool drdy_irq;
 	struct completion drdy_complete;
 	bool drdy_active_low;
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		__le16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static const char ak8974_reg_avdd[] = "avdd";
@@ -581,7 +586,6 @@ static void ak8974_fill_buffer(struct iio_dev *indio_dev)
 {
 	struct ak8974 *ak8974 = iio_priv(indio_dev);
 	int ret;
-	__le16 hw_values[8]; /* Three axes + 64bit padding */
 
 	pm_runtime_get_sync(&ak8974->i2c->dev);
 	mutex_lock(&ak8974->lock);
@@ -591,13 +595,13 @@ static void ak8974_fill_buffer(struct iio_dev *indio_dev)
 		dev_err(&ak8974->i2c->dev, "error triggering measure\n");
 		goto out_unlock;
 	}
-	ret = ak8974_getresult(ak8974, hw_values);
+	ret = ak8974_getresult(ak8974, ak8974->scan.channels);
 	if (ret) {
 		dev_err(&ak8974->i2c->dev, "error getting measures\n");
 		goto out_unlock;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, hw_values,
+	iio_push_to_buffers_with_timestamp(indio_dev, &ak8974->scan,
 					   iio_get_time_ns(indio_dev));
 
  out_unlock:
@@ -764,19 +768,21 @@ static int ak8974_probe(struct i2c_client *i2c,
 	ak8974->map = devm_regmap_init_i2c(i2c, &ak8974_regmap_config);
 	if (IS_ERR(ak8974->map)) {
 		dev_err(&i2c->dev, "failed to allocate register map\n");
+		pm_runtime_put_noidle(&i2c->dev);
+		pm_runtime_disable(&i2c->dev);
 		return PTR_ERR(ak8974->map);
 	}
 
 	ret = ak8974_set_power(ak8974, AK8974_PWR_ON);
 	if (ret) {
 		dev_err(&i2c->dev, "could not power on\n");
-		goto power_off;
+		goto disable_pm;
 	}
 
 	ret = ak8974_detect(ak8974);
 	if (ret) {
 		dev_err(&i2c->dev, "neither AK8974 nor AMI30x found\n");
-		goto power_off;
+		goto disable_pm;
 	}
 
 	ret = ak8974_selftest(ak8974);
@@ -786,14 +792,9 @@ static int ak8974_probe(struct i2c_client *i2c,
 	ret = ak8974_reset(ak8974);
 	if (ret) {
 		dev_err(&i2c->dev, "AK8974 reset failed\n");
-		goto power_off;
+		goto disable_pm;
 	}
 
-	pm_runtime_set_autosuspend_delay(&i2c->dev,
-					 AK8974_AUTOSUSPEND_DELAY);
-	pm_runtime_use_autosuspend(&i2c->dev);
-	pm_runtime_put(&i2c->dev);
-
 	indio_dev->dev.parent = &i2c->dev;
 	indio_dev->channels = ak8974_channels;
 	indio_dev->num_channels = ARRAY_SIZE(ak8974_channels);
@@ -846,6 +847,11 @@ static int ak8974_probe(struct i2c_client *i2c,
 		goto cleanup_buffer;
 	}
 
+	pm_runtime_set_autosuspend_delay(&i2c->dev,
+					 AK8974_AUTOSUSPEND_DELAY);
+	pm_runtime_use_autosuspend(&i2c->dev);
+	pm_runtime_put(&i2c->dev);
+
 	return 0;
 
 cleanup_buffer:
@@ -854,7 +860,6 @@ static int ak8974_probe(struct i2c_client *i2c,
 	pm_runtime_put_noidle(&i2c->dev);
 	pm_runtime_disable(&i2c->dev);
 	ak8974_set_power(ak8974, AK8974_PWR_OFF);
-power_off:
 	regulator_bulk_disable(ARRAY_SIZE(ak8974->regs), ak8974->regs);
 
 	return ret;
drivers/iio/pressure/ms5611_core.c +8 -3
index 2f598ad91621..f5db9fa086f3 100644
@@ -212,16 +212,21 @@ static irqreturn_t ms5611_trigger_handler(int irq, void *p)
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ms5611_state *st = iio_priv(indio_dev);
-	s32 buf[4]; /* s32 (pressure) + s32 (temp) + 2 * s32 (timestamp) */
+	/* Ensure buffer elements are naturally aligned */
+	struct {
+		s32 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 	int ret;
 
 	mutex_lock(&st->lock);
-	ret = ms5611_read_temp_and_pressure(indio_dev, &buf[1], &buf[0]);
+	ret = ms5611_read_temp_and_pressure(indio_dev, &scan.channels[1],
+					    &scan.channels[0]);
 	mutex_unlock(&st->lock);
 	if (ret < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan,
 					   iio_get_time_ns(indio_dev));
 
 err:
drivers/iio/pressure/zpa2326.c +3 -1
index 99dfe33ee402..245f2e2d412b 100644
@@ -664,8 +664,10 @@ static int zpa2326_resume(const struct iio_dev *indio_dev)
 	int err;
 
 	err = pm_runtime_get_sync(indio_dev->dev.parent);
-	if (err < 0)
+	if (err < 0) {
+		pm_runtime_put(indio_dev->dev.parent);
 		return err;
+	}
 
 	if (err > 0) {
 		/*
drivers/infiniband/hw/mlx5/qp.c +2 -0
index 2210759843ba..c3521ace4d25 100644
@@ -1525,6 +1525,8 @@ static int create_raw_packet_qp(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp,
 	u16 uid = to_mpd(pd)->uid;
 	u32 out[MLX5_ST_SZ_DW(create_tir_out)] = {};
 
+	if (!qp->sq.wqe_cnt && !qp->rq.wqe_cnt)
+		return -EINVAL;
 	if (qp->sq.wqe_cnt) {
 		err = create_raw_packet_qp_tis(dev, qp, sq, tdn, pd);
 		if (err)
drivers/infiniband/sw/rxe/rxe.c +1 -0
index 4afdd2e20883..5642eefb4ba1 100644
@@ -77,6 +77,7 @@ static void rxe_init_device_param(struct rxe_dev *rxe)
 {
 	rxe->max_inline_data			= RXE_MAX_INLINE_DATA;
 
+	rxe->attr.vendor_id			= RXE_VENDOR_ID;
 	rxe->attr.max_mr_size			= RXE_MAX_MR_SIZE;
 	rxe->attr.page_size_cap			= RXE_PAGE_SIZE_CAP;
 	rxe->attr.max_qp			= RXE_MAX_QP;
drivers/infiniband/sw/rxe/rxe_param.h +3 -0
index f59616b02477..99e9d8ba9767 100644
@@ -127,6 +127,9 @@ enum rxe_device_param {
 
 	/* Delay before calling arbiter timer */
 	RXE_NSEC_ARB_TIMER_DELAY	= 200,
+
+	/* IBTA v1.4 A3.3.1 VENDOR INFORMATION section */
+	RXE_VENDOR_ID			= 0XFFFFFF,
 };
 
 /* default/initial rxe port parameters */
drivers/input/serio/i8042-x86ia64io.h +7 -0
index 7e048b557462..858a26302198 100644
@@ -425,6 +425,13 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "076804U"),
 		},
 	},
+	{
+		/* Lenovo XiaoXin Air 12 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "80UN"),
+		},
+	},
 	{
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
drivers/input/touchscreen/elants_i2c.c +0 -1
index 2289f9638116..5b14a4a87c40 100644
@@ -1318,7 +1318,6 @@ static int elants_i2c_probe(struct i2c_client *client,
 			     0, MT_TOOL_PALM, 0, 0);
 	input_abs_set_res(ts->input, ABS_MT_POSITION_X, ts->x_res);
 	input_abs_set_res(ts->input, ABS_MT_POSITION_Y, ts->y_res);
-	input_abs_set_res(ts->input, ABS_MT_TOUCH_MAJOR, 1);
 
 	error = input_register_device(ts->input);
 	if (error) {
drivers/input/touchscreen/mms114.c +15 -2
index 2ef1adaed9af..5bdf4ac1a303 100644
@@ -54,6 +54,7 @@
 enum mms_type {
 	TYPE_MMS114	= 114,
 	TYPE_MMS152	= 152,
+	TYPE_MMS345L	= 345,
 };
 
 struct mms114_data {
@@ -250,6 +251,15 @@ static int mms114_get_version(struct mms114_data *data)
 	int error;
 
 	switch (data->type) {
+	case TYPE_MMS345L:
+		error = __mms114_read_reg(data, MMS152_FW_REV, 3, buf);
+		if (error)
+			return error;
[… more lines in the raw message]

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

drivers/iommu/Kconfig +1 -1
index 2ab07ce17abb..432f3ff080c9 100644

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

drivers/misc/atmel-ssc.c +12 -12
index ab4144ea1f11..d6cd5537126c 100644

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

drivers/misc/habanalabs/goya/goya_security.c +98 -1

99 lines not on this page · raw message

drivers/misc/mei/bus.c +1 -2
index 8d468e0a950a..f476dbc7252b 100644

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

drivers/mtd/nand/raw/brcmnand/brcmnand.c +14 -10
index 52402aa7b4d3..968ff7703925 100644

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

drivers/mtd/nand/raw/marvell_nand.c +16 -11
index 179f0ca585f8..2211a23e4d50 100644

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

drivers/mtd/nand/raw/nand_timings.c +2 -3
index f64b06a71dfa..f12b7a7844c9 100644

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

drivers/mtd/nand/raw/oxnas_nand.c +18 -6
index 0429d218fd9f..23c222b6c40e 100644

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

drivers/mtd/spi-nor/sfdp.c +0 -4
index f6038d3a3684..27838f6166bb 100644

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

drivers/mtd/spi-nor/sfdp.h +6 -0
index e0a8ded04890..b84abd0b6434 100644

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

drivers/mtd/spi-nor/spansion.c +23 -2
index 6756202ace4b..eac1c22b730f 100644

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

drivers/mtd/spi-nor/winbond.c +27 -2
index 17deabad57e1..5062af10f138 100644

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

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

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

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

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

drivers/net/ethernet/marvell/mvneta.c +20 -4
index cf26cf4e47aa..b2da295e2fc0 100644

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

drivers/net/ethernet/pensando/ionic/ionic_lif.c +3 -1
index b591bec0301c..7fea60fc3e08 100644

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

drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +5 -0
index fcdecddb2812..32106f4b3370 100644

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

drivers/net/ipa/gsi.c +6 -7
index 043a675e1be1..6144a1ccc0f3 100644

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

drivers/net/ipa/ipa_cmd.c +15 -0
index cee417181f98..e4febda2d6b4 100644

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

drivers/net/ipa/ipa_cmd.h +8 -0
index 4917525b3a47..1ee9265651a1 100644

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

drivers/net/ipa/ipa_endpoint.c +2 -0
index 1d823ac0f6d6..371c93953aea 100644

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

drivers/net/usb/qmi_wwan.c +1 -0
index 4a2c7355be63..e57d59b0a7ae 100644

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

drivers/nvme/host/core.c +1 -0
index 71d63ed62071..137d7bcc1358 100644

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

drivers/nvme/host/nvme.h +13 -0
index 719342600be6..46f965f8c9bc 100644

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

drivers/opp/of.c +4 -0
index 9cd8f0adacae..249738e1e0b7 100644

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

drivers/pci/pci.c +3 -1
index 809f2584e338..d4758518a97b 100644

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

drivers/phy/allwinner/phy-sun4i-usb.c +3 -2
index 856927382248..e5842e48a5e0 100644

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

drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c +2 -2
index a7c6c940a3a8..8af8c6c5cc02 100644

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

drivers/scsi/megaraid/megaraid_sas_fusion.c +0 -2
index 03a6c86475c8..9a9d742779f6 100644

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

drivers/scsi/qla2xxx/qla_def.h +2 -2
index daa9e936887b..172ea4e5887d 100644

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

drivers/slimbus/core.c +1 -0
index 526e3215d8fe..63ee96eb58c6 100644

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

drivers/soc/qcom/rpmh-rsc.c +64 -34

98 lines not on this page · raw message

drivers/soc/qcom/rpmh.c +27 -29

56 lines not on this page · raw message

drivers/soc/qcom/socinfo.c +2 -0
index ebb49aee179b..08a4b8ae1764 100644

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

drivers/soundwire/intel.c +3 -2
index 3c83e76c6bf9..cab425070e64 100644

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

drivers/spi/spi-fsl-dspi.c +1 -14
index 38d337f0967d..e0b30e4b1b69 100644

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

drivers/spi/spi-sprd-adi.c +1 -1
index 87dadb6b8ebf..8e84e25a8f7a 100644

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

drivers/spi/spi-sun6i.c +6 -8
index ec7967be9e2f..956df79035d5 100644

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

drivers/staging/comedi/drivers/addi_apci_1500.c +7 -3
index 45ad4ba92f94..689acd69a1b9 100644

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

drivers/thermal/imx_thermal.c +4 -3
index e761c9b42217..1b84ea674edb 100644

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

drivers/thermal/intel/int340x_thermal/int3403_thermal.c +1 -1
index f86cbb125e2f..ec1d58c4ceaa 100644

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

drivers/thermal/mtk_thermal.c +2 -4
index 6b7ef1993d7e..42c9cd0e5f77 100644

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

drivers/thunderbolt/tunnel.c +6 -6
index dbe90bcf4ad4..c144ca9b032c 100644

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

drivers/tty/serial/cpm_uart/cpm_uart_core.c +8 -1
index a04f74d2e854..4df47d02b34b 100644

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

drivers/tty/serial/mxs-auart.c +8 -4
index b4f835e7de23..b784323a6a7b 100644

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

drivers/tty/serial/serial_core.c +16 -96

112 lines not on this page · raw message

drivers/tty/serial/sh-sci.c +3 -0
index e1179e74a2b8..204bb68ce3ca 100644

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

drivers/tty/serial/xilinx_uartps.c +0 -1
index 35e9e8faf8de..ac137b6a1dc1 100644

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

drivers/uio/uio_pdrv_genirq.c +2 -2
index ae319ef3a832..b60173bc93ce 100644

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

drivers/usb/c67x00/c67x00-sched.c +1 -1
index 633c52de3bb3..9865750bc31e 100644

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

drivers/usb/chipidea/core.c +24 -0
index ae0bdc036464..2a93127187ea 100644

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

drivers/usb/dwc2/platform.c +2 -1
index 5684c4781af9..797afa99ef3b 100644

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

drivers/usb/gadget/function/f_uac1_legacy.c +2 -0
index 349deae7cabd..e2d7f69128a0 100644

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

drivers/usb/gadget/udc/atmel_usba_udc.c +1 -1
index b771a854e29c..cfdc66e11871 100644

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

drivers/usb/serial/ch341.c +1 -0
index 89675ee29645..8fbaef5c9d69 100644

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

drivers/usb/serial/cypress_m8.c +2 -0
index 216edd5826ca..ecda82198798 100644

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

drivers/usb/serial/cypress_m8.h +3 -0
index 35e223751c0e..16b7410ad057 100644

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

drivers/usb/serial/iuu_phoenix.c +5 -3
index d5bff69b1769..b8dfeb4fb2ed 100644

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

drivers/usb/serial/option.c +6 -0
index 254a8bbeea67..9b7cee98ea60 100644

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

drivers/virt/vboxguest/vboxguest_core.c +4 -2
index b690a8a4bf9e..18ebd7a6af98 100644

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

drivers/virt/vboxguest/vboxguest_core.h +15 -0
index 4188c12b839f..77c3a9c8255d 100644

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

drivers/virt/vboxguest/vboxguest_linux.c +2 -1
index 6e8c0f1c1056..32c2c52f7e84 100644

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

drivers/virt/vboxguest/vmmdev.h +2 -0
index 6337b8d75d96..21f408120e3f 100644

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

drivers/xen/xenbus/xenbus_client.c +82 -89

171 lines not on this page · raw message

fs/cifs/transport.c +1 -1
index c97570eb2c18..7fefd2bd111c 100644

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

fs/fuse/file.c +11 -3
index e3afceecaa6b..0df03bc520a9 100644

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

fs/fuse/inode.c +12 -3
index 95d712d44ca1..46dde0b659ec 100644

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

fs/gfs2/glops.c +6 -4
index 9e9c7a4b8c66..fc97c4d24dc5 100644

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

fs/gfs2/incore.h +0 -1
index 84a824293a78..013c029dd16b 100644

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

fs/gfs2/log.c +9 -6
index 04882712cd66..62a73bd6575c 100644

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

fs/gfs2/log.h +2 -2
index c1cd6ae17659..8965c751a303 100644

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

fs/gfs2/main.c +1 -0
index a1a295b739fb..4f2edb777a72 100644

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

fs/gfs2/ops_fstype.c +12 -1
index 094f5fe7c009..6d18d2c91add 100644

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

fs/gfs2/recovery.c +2 -2
index 96c345f49273..390ea79d682c 100644

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

fs/gfs2/super.c +10 -10
index 956fced0a8ec..160bb4598b48 100644

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

fs/io_uring.c +8 -2
index ba2184841cb5..51be3a20ade1 100644

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

fs/nfs/nfs4proc.c +18 -2
index e32717fd1169..2e2dac29a9e9 100644

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

fs/overlayfs/export.c +1 -1
index ed5c1078919c..c19531dc62ef 100644

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

fs/overlayfs/file.c +6 -4
index 87c362f65448..6804e55db217 100644

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

fs/overlayfs/super.c +22 -1
index 732ad5495c92..72395e42e897 100644

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

include/dt-bindings/clock/qcom,gcc-msm8998.h +1 -0
index 63e02dc32a0b..6a73a174f049 100644

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

include/linux/blkdev.h +1 -0
index 32868fbedc9e..02809e4dd661 100644

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

include/linux/bpf.h +11 -2
index fd2b2322412d..746bae8624a8 100644

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

include/linux/cgroup-defs.h +6 -2
index 52661155f85f..fee0b5547cd0 100644

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

include/linux/cgroup.h +3 -1
index 4598e4da6b1b..618838c48313 100644

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

include/linux/dma-buf.h +1 -0
index 57bcef6f988a..589c4cb03372 100644

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

include/linux/if_vlan.h +22 -7
index b05e855f1ddd..41a518336673 100644

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

include/linux/input/elan-i2c-ids.h +7 -0
index 1ecb6b45812c..520858d12680 100644

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

include/linux/serial_core.h +98 -4

102 lines not on this page · raw message

include/linux/skmsg.h +13 -0
index 08674cd14d5a..1e9ed840b9fc 100644

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

include/net/dst.h +9 -1
index 07adfacd8088..852d8fb36ab7 100644

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

include/net/genetlink.h +0 -10
index 74950663bb00..6e5f1e1aa822 100644

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

include/net/inet_ecn.h +17 -8
index 0f0d1efe06dd..e1eaf1780288 100644

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

include/net/pkt_sched.h +0 -11
index 9092e697059e..ac8c890a2657 100644

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

include/trace/events/rxrpc.h +1 -1
index ba9efdc848f9..059b6e45a028 100644

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

include/uapi/linux/vboxguest.h +2 -2
index 9cec58a6a5ea..f79d7abe27db 100644

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

kernel/bpf/syscall.c +1 -1
index 0e4d99cfac93..f9e95ea2883b 100644

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

kernel/cgroup/cgroup.c +19 -12
index 06b5ea9d899d..9b46a7604e7b 100644

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

kernel/irq/manage.c +35 -2
index 453a8a0f4804..dc58fd245e79 100644

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

kernel/sched/core.c +2 -0
index 8034434b1040..a7ef76a62699 100644

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

kernel/sched/fair.c +13 -2
index 5725199b32dc..5c31875a7d9d 100644

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

kernel/time/timer.c +16 -5
index a5221abb4594..03c9fc395ab1 100644

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

mm/memory.c +11 -10
index f703fe8c8346..22d218bc56c8 100644

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

net/bridge/br_multicast.c +1 -1
index 83490bf73a13..4c4a93abde68 100644

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

net/ceph/osd_client.c +1 -0
index 1d4973f8cd7a..99f35b7f765d 100644

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

net/core/filter.c +7 -3
index 45fa65a28983..cebbb6ba9ed9 100644

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

net/core/sock.c +1 -1
index afe4a62adf8f..bc6fe4114374 100644

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

net/core/sock_map.c +48 -5

53 lines not on this page · raw message

net/ethtool/netlink.c +13 -14
index ed5357210193..0f4e2e106799 100644

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

net/hsr/hsr_device.c +7 -4
index ef100cfd2ac1..56a11341f99c 100644

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

net/ipv4/icmp.c +2 -2
index fc61f51d87a3..ca591051c656 100644

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

net/ipv4/ip_output.c +1 -1
index 090d3097ee15..17206677d503 100644

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

net/ipv4/ping.c +3 -0
index 535427292194..df6fbefe44d4 100644

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

net/ipv4/route.c +1 -1
index b73f540fa19b..abe12caf2451 100644

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

net/ipv4/tcp.c +9 -6
index dd401757eea1..eee18259a24e 100644

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

net/ipv4/tcp_cong.c +1 -1
index 3172e31987be..62878cf26d9c 100644

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

net/ipv4/tcp_input.c +2 -0
index 1fa009999f57..31c58e00d25b 100644

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

net/ipv4/tcp_ipv4.c +12 -3
index 83a5d24e13b8..4c2f2f2107a9 100644

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

net/ipv4/tcp_output.c +5 -3
index 2f45cde168c4..bee2f9b8b8a1 100644

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

net/ipv6/icmp.c +2 -2
index fc5000370030..9df8737ae0d3 100644

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

net/ipv6/route.c +5 -2
index ff847a324220..e8a184acf668 100644

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

net/l2tp/l2tp_core.c +1 -4
index 6d7ef78c88af..6434d17e6e8e 100644

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

net/llc/af_llc.c +7 -3
index 54fb8d452a7b..6e53e43c1907 100644

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

net/mptcp/options.c +3 -3
index 2430bbfa3405..2b3ed0c5199d 100644

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

net/netlink/genetlink.c +13 -84

97 lines not on this page · raw message

net/qrtr/qrtr.c +3 -1
index 7eccbbf6f8ad..24a8c3c6da0d 100644

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

net/sched/act_connmark.c +6 -3
index 43a243081e7d..f901421b0634 100644

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

net/sched/act_csum.c +1 -1
index cb8608f0a77a..c60674cf25c4 100644

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

net/sched/act_ct.c +4 -5
index 20577355235a..6a114f80e54b 100644

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

net/sched/act_ctinfo.c +6 -3
index 19649623493b..b5042f3ea079 100644

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

net/sched/act_mpls.c +1 -1
index be3f215cd027..8118e2640979 100644

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

net/sched/act_skbedit.c +1 -1
index b125b2be4467..b2b3faa57294 100644

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

net/sched/cls_api.c +1 -1
index 0a7ecc292bd3..58d469a66896 100644

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

net/sched/cls_flow.c +4 -4
index 80ae7b9fa90a..ab53a93b2f2b 100644

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

net/sched/cls_flower.c +1 -1
index 74a0febcafb8..3b93d95d2a56 100644

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

net/sched/em_ipset.c +1 -1
index df00566d327d..c95cf86fb431 100644

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

net/sched/em_ipt.c +1 -1
index eecfe072c508..9405b4d88002 100644

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

net/sched/em_meta.c +1 -1
index d99966a55c84..46254968d390 100644

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

net/sched/sch_atm.c +4 -4
index ee12ca9f55b4..1c281cc81f57 100644

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

net/sched/sch_cake.c +2 -2
index 9475fa81ea7f..9bb2b8f73692 100644

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

net/sched/sch_dsmark.c +3 -3
index 05605b30bef3..2b88710994d7 100644

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

net/sched/sch_teql.c +1 -1
index 689ef6f3ded8..2f1f0a378408 100644

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

net/sunrpc/xprtrdma/rpc_rdma.c +2 -2
index 57118e342c8e..06a8268edf3b 100644

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

net/sunrpc/xprtrdma/transport.c +5 -0
index 659da37020a4..3b5fb1f57aeb 100644

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

net/sunrpc/xprtrdma/verbs.c +16 -19
index db0259c6467e..26e89c65ba56 100644

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

security/apparmor/match.c +5 -0
index 525ce22dc0e9..5947b0a763c2 100644

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

sound/pci/hda/patch_realtek.c +25 -2
index 16ecc8515db8..d80eed2a48a1 100644

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

sound/usb/line6/capture.c +2 -0
index 663d608c4287..970c9bdce0b2 100644

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

sound/usb/line6/driver.c +1 -1
index 4f096685ed65..0caf53f5764c 100644

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

sound/usb/line6/playback.c +2 -0
index 01930ce7bd75..8233c61e23f1 100644

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

sound/usb/midi.c +12 -5
index 047b90595d65..354f57692938 100644

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

tools/perf/util/stat.c +4 -2
index 5f26137b8d60..242476eb808c 100644

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

tools/testing/selftests/net/fib_nexthops.sh +13 -0
index 6560ed796ac4..09830b88ec8c 100755

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.