Skip to contentSkip to conversation

Linux 5.13.17

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Sep 15, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.13.17 kernel.

All users of the 5.13 kernel series must upgrade.

The updated 5.13.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.13.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/fault-injection/provoke-crashes.rst          |    2 
 Makefile                                                   |    2 
 arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi                   |    4 
 arch/arm/boot/dts/at91-sam9x60ek.dts                       |   16 +
 arch/arm/boot/dts/at91-sama5d3_xplained.dts                |   29 ++
 arch/arm/boot/dts/at91-sama5d4_xplained.dts                |   19 +
 arch/arm/boot/dts/meson8.dtsi                              |    5 
 arch/arm/boot/dts/meson8b-ec100.dts                        |    4 
 arch/arm/boot/dts/meson8b-mxq.dts                          |    4 
 arch/arm/boot/dts/meson8b-odroidc1.dts                     |    4 
 arch/arm64/boot/dts/exynos/exynos7.dtsi                    |    2 
 arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts     |   17 +
 arch/arm64/boot/dts/marvell/armada-37xx.dtsi               |   11 
 arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi        |    2 
 arch/arm64/boot/dts/qcom/sm8250.dtsi                       |    2 
 arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi            |    1 
 arch/arm64/boot/dts/renesas/r8a77995-draak.dts             |    4 
 arch/arm64/kvm/arm.c                                       |    7 
 arch/m68k/Kconfig.cpu                                      |    8 
 arch/m68k/coldfire/clk.c                                   |    2 
 arch/m68k/emu/nfeth.c                                      |    4 
 arch/s390/include/asm/kvm_host.h                           |    1 
 arch/s390/kernel/debug.c                                   |  176 ++++++++-----
 arch/s390/kvm/interrupt.c                                  |   12 
 arch/s390/kvm/kvm-s390.c                                   |    2 
 arch/s390/kvm/kvm-s390.h                                   |    2 
 arch/s390/mm/kasan_init.c                                  |   41 +--
 arch/s390/pci/pci.c                                        |    7 
 arch/s390/pci/pci_clp.c                                    |   33 +-
 arch/x86/boot/compressed/efi_thunk_64.S                    |   30 +-
 arch/x86/boot/compressed/head_64.S                         |    3 
 arch/x86/crypto/aesni-intel_glue.c                         |    5 
 arch/x86/events/amd/ibs.c                                  |    1 
 arch/x86/include/asm/mce.h                                 |    1 
 arch/x86/kernel/cpu/mce/core.c                             |   11 
 arch/x86/kernel/cpu/resctrl/monitor.c                      |    6 
 arch/x86/kvm/mmu/mmu.c                                     |   19 -
 arch/x86/kvm/mmu/tdp_mmu.c                                 |   20 -
 arch/x86/kvm/vmx/nested.c                                  |    7 
 arch/x86/kvm/vmx/vmx.c                                     |    3 
 arch/x86/kvm/x86.c                                         |    4 
 block/bfq-iosched.c                                        |    3 
 block/bio.c                                                |   15 -
 block/blk-crypto.c                                         |    2 
 block/blk-merge.c                                          |   18 -
 block/blk-throttle.c                                       |   32 ++
 block/blk.h                                                |    2 
 block/elevator.c                                           |    3 
 block/mq-deadline.c                                        |    2 
 certs/Makefile                                             |    8 
 crypto/Makefile                                            |    1 
 crypto/ecc.h                                               |    5 
 crypto/tcrypt.c                                            |   29 +-
 drivers/ata/libata-core.c                                  |    2 
 drivers/auxdisplay/hd44780.c                               |    2 
 drivers/base/dd.c                                          |   16 -
 drivers/base/firmware_loader/main.c                        |   20 -
 drivers/base/regmap/regmap.c                               |    2 
 drivers/bcma/main.c                                        |    6 
 drivers/block/nbd.c                                        |   16 +
 drivers/bluetooth/btusb.c                                  |   18 -
 drivers/char/tpm/Kconfig                                   |    1 
 drivers/char/tpm/tpm_ibmvtpm.c                             |   26 +
 drivers/char/tpm/tpm_ibmvtpm.h                             |    2 
 drivers/clk/mvebu/kirkwood.c                               |    1 
 drivers/clocksource/sh_cmt.c                               |   30 +-
 drivers/counter/104-quad-8.c                               |    5 
 drivers/crypto/hisilicon/sec2/sec.h                        |    5 
 drivers/crypto/hisilicon/sec2/sec_main.c                   |   34 --
 drivers/crypto/mxs-dcp.c                                   |   45 ++-
 drivers/crypto/omap-aes.c                                  |    8 
 drivers/crypto/omap-des.c                                  |    8 
 drivers/crypto/omap-sham.c                                 |   14 -
 drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c       |    4 
 drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c         |    4 
 drivers/crypto/qat/qat_common/adf_common_drv.h             |    8 
 drivers/crypto/qat/qat_common/adf_init.c                   |    5 
 drivers/crypto/qat/qat_common/adf_isr.c                    |    7 
 drivers/crypto/qat/qat_common/adf_pf2vf_msg.c              |    3 
 drivers/crypto/qat/qat_common/adf_vf2pf_msg.c              |   12 
 drivers/crypto/qat/qat_common/adf_vf_isr.c                 |    7 
 drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c |    4 
 drivers/edac/i10nm_base.c                                  |    6 
 drivers/edac/mce_amd.c                                     |    3 
 drivers/firmware/raspberrypi.c                             |   10 
 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c                    |   54 +--
 drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c                     |    4 
 drivers/gpu/drm/drm_of.c                                   |    6 
 drivers/gpu/drm/gma500/oaktrail_lvds.c                     |    2 
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c                 |   10 
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c                   |   68 ++---
 drivers/gpu/drm/msm/dp/dp_display.c                        |   31 +-
 drivers/gpu/drm/msm/dsi/dsi.c                              |    6 
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                          |    3 
 drivers/gpu/drm/mxsfb/mxsfb_drv.h                          |    1 
 drivers/gpu/drm/mxsfb/mxsfb_kms.c                          |   40 ++
 drivers/gpu/drm/mxsfb/mxsfb_regs.h                         |    9 
 drivers/gpu/drm/panfrost/panfrost_device.c                 |    3 
 drivers/gpu/drm/rcar-du/rcar_du_drv.c                      |    2 
 drivers/hwmon/Makefile                                     |    1 
 drivers/hwmon/pmbus/bpa-rs600.c                            |   25 -
 drivers/i2c/busses/i2c-highlander.c                        |    2 
 drivers/i2c/busses/i2c-hix5hd2.c                           |    2 
 drivers/i2c/busses/i2c-iop3xx.c                            |    6 
 drivers/i2c/busses/i2c-mt65xx.c                            |    2 
 drivers/i2c/busses/i2c-s3c2410.c                           |    2 
 drivers/i2c/busses/i2c-synquacer.c                         |    2 
 drivers/i2c/busses/i2c-xlp9xx.c                            |    2 
 drivers/infiniband/hw/mlx5/mr.c                            |    2 
 drivers/irqchip/irq-apple-aic.c                            |    2 
 drivers/irqchip/irq-gic-v3.c                               |   23 +
 drivers/irqchip/irq-loongson-pch-pic.c                     |   19 +
 drivers/leds/blink/leds-lgm-sso.c                          |   23 +
 drivers/leds/flash/leds-rt8515.c                           |    4 
 drivers/leds/leds-is31fl32xx.c                             |    1 
 drivers/leds/leds-lt3593.c                                 |    5 
 drivers/leds/trigger/ledtrig-audio.c                       |   37 ++
 drivers/md/bcache/super.c                                  |   16 -
 drivers/md/raid1.c                                         |   19 +
 drivers/md/raid10.c                                        |   14 -
 drivers/media/i2c/tda1997x.c                               |    1 
 drivers/media/platform/coda/coda-bit.c                     |   18 -
 drivers/media/platform/omap3isp/isp.c                      |    4 
 drivers/media/platform/qcom/venus/helpers.c                |    3 
 drivers/media/platform/qcom/venus/hfi_msgs.c               |    2 
 drivers/media/platform/qcom/venus/venc.c                   |    2 
 drivers/media/platform/rockchip/rga/rga-buf.c              |    3 
 drivers/media/platform/rockchip/rga/rga.c                  |   29 +-
 drivers/media/spi/cxd2880-spi.c                            |    7 
 drivers/media/usb/dvb-usb/dvb-usb-i2c.c                    |    9 
 drivers/media/usb/dvb-usb/dvb-usb-init.c                   |    2 
 drivers/media/usb/dvb-usb/nova-t-usb2.c                    |    6 
 drivers/media/usb/dvb-usb/vp702x.c                         |   12 
 drivers/media/usb/em28xx/em28xx-input.c                    |    1 
 drivers/media/usb/go7007/go7007-driver.c                   |   26 -
 drivers/media/usb/go7007/go7007-usb.c                      |    2 
 drivers/misc/lkdtm/core.c                                  |    2 
 drivers/mmc/host/dw_mmc.c                                  |    1 
 drivers/mmc/host/moxart-mmc.c                              |    1 
 drivers/mmc/host/sdhci.c                                   |    1 
 drivers/net/dsa/b53/b53_common.c                           |   10 
 drivers/net/dsa/b53/b53_priv.h                             |    2 
 drivers/net/dsa/bcm_sf2.c                                  |    1 
 drivers/net/dsa/mt7530.c                                   |   13 
 drivers/net/dsa/mv88e6xxx/chip.c                           |   18 -
 drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c       |    3 
 drivers/net/ethernet/google/gve/gve_adminq.c               |    6 
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c         |   23 +
 drivers/net/ethernet/intel/ice/ice_main.c                  |   13 
 drivers/net/ethernet/marvell/octeontx2/af/common.h         |    2 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c      |   31 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c        |   22 -
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c   |   16 +
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h   |    3 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c    |    1 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c       |    4 
 drivers/net/ethernet/mellanox/mlx5/core/dev.c              |    2 
 drivers/net/ethernet/mellanox/mlx5/core/devlink.c          |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en/fs.h            |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en/qos.c           |   15 -
 drivers/net/ethernet/mellanox/mlx5/core/en/qos.h           |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c  |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_fs.c            |   10 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c          |   18 +
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c            |   18 +
 drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c  |    1 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c |    5 
 drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c      |   18 -
 drivers/net/ethernet/pensando/ionic/ionic_devlink.c        |   14 -
 drivers/net/ethernet/qualcomm/qca_spi.c                    |    2 
 drivers/net/ethernet/qualcomm/qca_uart.c                   |    2 
 drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c           |    5 
 drivers/net/ethernet/ti/am65-cpsw-nuss.c                   |   47 ++-
 drivers/net/ethernet/ti/am65-cpsw-nuss.h                   |    2 
 drivers/net/phy/marvell10g.c                               |    8 
 drivers/net/wireless/ath/ath6kl/wmi.c                      |    4 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c    |    2 
 drivers/net/wireless/intel/iwlwifi/fw/acpi.c               |   14 -
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c              |    1 
 drivers/net/wireless/rsi/rsi_91x_hal.c                     |    4 
 drivers/net/wireless/rsi/rsi_91x_usb.c                     |    1 
 drivers/nvme/host/rdma.c                                   |    4 
 drivers/nvme/host/tcp.c                                    |    4 
 drivers/nvme/target/fabrics-cmd.c                          |    9 
 drivers/pci/pci.c                                          |   25 +
 drivers/power/supply/axp288_fuel_gauge.c                   |    4 
 drivers/power/supply/cw2015_battery.c                      |    4 
 drivers/power/supply/max17042_battery.c                    |    2 
 drivers/power/supply/smb347-charger.c                      |   10 
 drivers/regulator/tps65910-regulator.c                     |   10 
 drivers/regulator/vctrl-regulator.c                        |   73 +++--
 drivers/s390/cio/css.c                                     |   17 +
 drivers/s390/crypto/ap_bus.c                               |   25 -
 drivers/s390/crypto/ap_bus.h                               |   10 
 drivers/s390/crypto/ap_queue.c                             |   20 -
 drivers/s390/crypto/zcrypt_ccamisc.c                       |    8 
 drivers/soc/mediatek/mt8183-mmsys.h                        |   21 +
 drivers/soc/mediatek/mtk-mmsys.c                           |    7 
 drivers/soc/mediatek/mtk-mmsys.h                           |  133 ++++++---
 drivers/soc/qcom/rpmhpd.c                                  |    5 
 drivers/soc/qcom/smsm.c                                    |   11 
 drivers/soc/rockchip/Kconfig                               |    4 
 drivers/spi/spi-coldfire-qspi.c                            |    2 
 drivers/spi/spi-davinci.c                                  |    8 
 drivers/spi/spi-fsl-dspi.c                                 |    1 
 drivers/spi/spi-pic32.c                                    |    1 
 drivers/spi/spi-sprd-adi.c                                 |    2 
 drivers/spi/spi-zynq-qspi.c                                |    8 
 drivers/staging/clocking-wizard/Kconfig                    |    2 
 drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c        |   11 
 drivers/tty/serial/fsl_lpuart.c                            |    2 
 drivers/tty/tty_io.c                                       |    4 
 drivers/usb/dwc3/dwc3-meson-g12a.c                         |    2 
 drivers/usb/dwc3/dwc3-qcom.c                               |    4 
 drivers/usb/gadget/udc/at91_udc.c                          |    4 
 drivers/usb/gadget/udc/bdc/bdc_core.c                      |   30 +-
 drivers/usb/gadget/udc/mv_u3d_core.c                       |   19 -
 drivers/usb/gadget/udc/renesas_usb3.c                      |   17 -
 drivers/usb/gadget/udc/s3c2410_udc.c                       |    4 
 drivers/usb/host/ehci-orion.c                              |    8 
 drivers/usb/host/ohci-tmio.c                               |    3 
 drivers/usb/misc/brcmstb-usb-pinmap.c                      |    2 
 drivers/usb/phy/phy-fsl-usb.c                              |    2 
 drivers/usb/phy/phy-tahvo.c                                |    4 
 drivers/usb/phy/phy-twl6030-usb.c                          |    5 
 drivers/video/backlight/pwm_bl.c                           |   54 ++-
 drivers/video/fbdev/core/fbmem.c                           |    6 
 fs/cifs/cifs_unicode.c                                     |    9 
 fs/cifs/fs_context.c                                       |   11 
 fs/cifs/readdir.c                                          |   23 +
 fs/debugfs/file.c                                          |    8 
 fs/f2fs/file.c                                             |    5 
 fs/f2fs/super.c                                            |   11 
 fs/fcntl.c                                                 |   18 -
 fs/fuse/file.c                                             |   30 +-
 fs/fuse/fuse_i.h                                           |   19 +
 fs/fuse/inode.c                                            |   60 ++++
 fs/gfs2/ops_fstype.c                                       |   43 +++
 fs/gfs2/super.c                                            |   61 ----
 fs/io-wq.c                                                 |  105 +++++--
 fs/io_uring.c                                              |   16 -
 fs/iomap/swapfile.c                                        |    6 
 fs/isofs/inode.c                                           |   27 -
 fs/isofs/isofs.h                                           |    1 
 fs/isofs/joliet.c                                          |    4 
 fs/lockd/svclock.c                                         |    2 
 fs/nfsd/nfs4state.c                                        |    4 
 fs/udf/misc.c                                              |   13 
 fs/udf/super.c                                             |   75 ++---
 fs/udf/udf_sb.h                                            |    2 
 fs/udf/unicode.c                                           |    4 
 include/linux/blkdev.h                                     |   16 +
 include/linux/energy_model.h                               |   16 +
 include/linux/hrtimer.h                                    |    5 
 include/linux/local_lock_internal.h                        |   42 +--
 include/linux/mlx5/mlx5_ifc.h                              |    3 
 include/linux/power/max17042_battery.h                     |    2 
 include/linux/sunrpc/svc.h                                 |    1 
 include/linux/time64.h                                     |    9 
 include/net/dsa.h                                          |    2 
 include/net/pkt_cls.h                                      |    3 
 include/trace/events/io_uring.h                            |    6 
 include/trace/events/sunrpc.h                              |    8 
 include/uapi/linux/bpf.h                                   |    2 
 kernel/bpf/verifier.c                                      |   31 +-
 kernel/cgroup/cpuset.c                                     |   95 ++++---
 kernel/cpu_pm.c                                            |   50 ++-
 kernel/irq/timings.c                                       |    2 
 kernel/locking/mutex.c                                     |   15 -
 kernel/power/energy_model.c                                |    4 
 kernel/rcu/tree_stall.h                                    |   26 +
 kernel/sched/core.c                                        |   25 +
 kernel/sched/deadline.c                                    |    8 
 kernel/sched/debug.c                                       |    7 
 kernel/sched/fair.c                                        |    2 
 kernel/sched/sched.h                                       |    2 
 kernel/sched/topology.c                                    |   65 ++++
 kernel/time/hrtimer.c                                      |   92 +++++-
 kernel/time/posix-cpu-timers.c                             |    2 
 kernel/time/tick-internal.h                                |    3 
 lib/mpi/mpiutil.c                                          |    2 
 net/6lowpan/debugfs.c                                      |    3 
 net/bluetooth/cmtp/cmtp.h                                  |    2 
 net/bluetooth/hci_core.c                                   |   14 +
 net/bluetooth/mgmt.c                                       |    2 
 net/bluetooth/sco.c                                        |   11 
 net/core/devlink.c                                         |   36 +-
 net/dsa/dsa_priv.h                                         |    2 
 net/dsa/port.c                                             |   21 -
 net/dsa/slave.c                                            |    6 
 net/ipv4/route.c                                           |   48 ++-
 net/ipv4/tcp_ipv4.c                                        |    5 
 net/ipv6/route.c                                           |    5 
 net/mac80211/tx.c                                          |    4 
 net/netlabel/netlabel_cipso_v4.c                           |    8 
 net/qrtr/qrtr.c                                            |    8 
 net/sched/sch_cbq.c                                        |    2 
 net/sched/sch_htb.c                                        |   97 ++++---
 net/sunrpc/svc.c                                           |   15 +
 samples/bpf/xdp_redirect_cpu_user.c                        |    2 
 samples/pktgen/pktgen_sample04_many_flows.sh               |   12 
 samples/pktgen/pktgen_sample05_flow_per_thread.sh          |   12 
 security/integrity/ima/Kconfig                             |    1 
 security/integrity/ima/ima_mok.c                           |    2 
 sound/soc/codecs/rt5682-i2c.c                              |   20 +
 sound/soc/codecs/wcd9335.c                                 |   23 +
 sound/soc/fsl/fsl_rpmsg.c                                  |   20 -
 sound/soc/intel/boards/kbl_da7219_max98927.c               |   55 ----
 sound/soc/intel/common/soc-acpi-intel-cml-match.c          |    2 
 sound/soc/intel/common/soc-acpi-intel-kbl-match.c          |    2 
 sound/soc/intel/skylake/skl-topology.c                     |   25 -
 sound/soc/mediatek/mt8183/mt8183-afe-pcm.c                 |   43 +--
 sound/soc/mediatek/mt8192/mt8192-afe-pcm.c                 |   27 +
 tools/bpf/bpftool/prog.c                                   |    5 
 tools/include/uapi/linux/bpf.h                             |    2 
 tools/lib/bpf/Makefile                                     |   10 
 tools/lib/bpf/libbpf.c                                     |   16 -
 tools/perf/util/bpf-event.c                                |    4 
 tools/perf/util/bpf_counter.c                              |    3 
 tools/testing/selftests/bpf/prog_tests/btf.c               |    1 
 tools/testing/selftests/bpf/progs/bpf_iter_tcp4.c          |    2 
 tools/testing/selftests/bpf/progs/test_core_autosize.c     |   20 +
 tools/testing/selftests/bpf/test_maps.c                    |    4 
 323 files changed, 2705 insertions(+), 1554 deletions(-)

Abhishek Naik (1):
iwlwifi: skip first element in the WTAS ACPI table

Adrian Ratiu (1):
char: tpm: Kconfig: remove bad i2c cr50 select

Ahmad Fatoum (1):
brcmfmac: pcie: fix oops on failure to resume and reprobe

Alexander Gordeev (1):
s390/kasan: fix large PMD pages address alignment check

Amit Engel (1):
nvmet: pass back cntlid on successful completion

Anand Moon (3):
ARM: dts: meson8b: odroidc1: Fix the pwm regulator supply properties
ARM: dts: meson8b: mxq: Fix the pwm regulator supply properties
ARM: dts: meson8b: ec100: Fix the pwm regulator supply properties

Andrey Ignatov (1):
bpf: Fix possible out of bound write in narrow load handling

Andrii Nakryiko (1):
libbpf: Re-build libbpf.so when libbpf.map changes

Andy Duan (1):
tty: serial: fsl_lpuart: fix the wrong mapbase value

Andy Shevchenko (5):

      leds: lgm-sso: Put fwnode in any case during ->probe()
      leds: lgm-sso: Don't spam logs when probe is deferred
      leds: lt3593: Put fwnode in any case during ->probe()
      leds: rt8515: Put fwnode in any case during ->probe()
      leds: lgm-sso: Propagate error codes from callee to caller

Ard Biesheuvel (1):
crypto: x86/aes-ni - add missing error checks in XTS code

Austin Kim (1):
IMA: remove -Wmissing-prototypes warning

Babu Moger (1):
x86/resctrl: Fix a maybe-uninitialized build warning treated as error

Baokun Li (1):
nbd: add the check to prevent overflow in __nbd_ioctl()

Ben Hutchings (1):
crypto: omap - Fix inconsistent locking of device lists

Benjamin Coddington (1):
lockd: Fix invalid lockowner cast after vfs_test_lock

Biju Das (1):
arm64: dts: renesas: hihope-rzg2-ex: Add EtherAVB internal rx delay

Bjorn Andersson (1):
soc: qcom: rpmhpd: Use corner in power_off

Bob Peterson (1):
gfs2: init system threads before freeze lock

Borislav Petkov (1):
x86/mce: Defer processing of early errors

Brett Creeley (1):
ice: Only lock to update netdev dev_addr

CK Hu (1):
soc: mmsys: mediatek: add mask to mmsys routes

Cezary Rojewski (3):
ASoC: Intel: kbl_da7219_max98927: Fix format selection for max98373
ASoC: Intel: Skylake: Leave data as is when invoking TLV IPCs
ASoC: Intel: Skylake: Fix module resource and format selection

Chen-Yu Tsai (3):
irqchip/gic-v3: Fix priority comparison when non-secure priorities are used
regulator: vctrl: Use locked regulator_get_voltage in probe path
regulator: vctrl: Avoid lockdep warning in enable/disable ops

Chih-Kang Chang (1):
mac80211: Fix insufficient headroom issue for AMSDU

Chris Packham (1):
hwmon: (pmbus/bpa-rs600) Don't use rated limits as warn limits

Christoph Hellwig (1):
bcache: add proper error unwinding in bcache_device_init

Christophe JAILLET (9):
spi: coldfire-qspi: Use clk_disable_unprepare in the remove function
media: cxd2880-spi: Fix an error handling path
drm/msm/dsi: Fix some reference counted resource leaks
firmware: raspberrypi: Fix a leak in 'rpi_firmware_get()'
usb: bdc: Fix an error handling path in 'bdc_probe()' when no suitable DMA config is available
usb: bdc: Fix a resource leak in the error handling path of 'bdc_probe()'
ASoC: wcd9335: Fix a double irq free in the remove function
ASoC: wcd9335: Fix a memory leak in the error handling path of the probe function
ASoC: wcd9335: Disable irq on slave ports in the remove function

Chuck Lever (1):
SUNRPC: Fix a NULL pointer deref in trace_svc_stats_latency()

Chunguang Xu (1):
blk-throtl: optimize IOPS throttle for large IO scenarios

Chunyan Zhang (1):
spi: sprd: Fix the wrong WDG_LOAD_VAL

Claudiu Beznea (1):
ARM: dts: at91: add pinctrl-{names, 0} for all gpios

Colin Ian King (4):
gfs2: Fix memory leak of object lsi on error return path 6lowpan: iphc: Fix an off-by-one check of array index
media: venus: venc: Fix potential null pointer dereference on pointer fmt
Bluetooth: increase BTNAMSIZ to 21 chars to fix potential buffer overflow

Curtis Malainey (1):
ASoC: Intel: Fix platform ID matching

Damien Le Moal (1):
libata: fix ata_host_start()

Dan Carpenter (7):
media: rockchip/rga: fix error handling in probe
Bluetooth: sco: prevent information leak in sco_conn_defer_accept()
rsi: fix error code in rsi_load_9116_firmware()
rsi: fix an error code in rsi_probe()
m68k: coldfire: return success for clk_enable(NULL)
ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point()
net: qrtr: make checks in qrtr_endpoint_post() stricter

Daniel Thompson (1):
backlight: pwm_bl: Improve bootloader/kernel device handover

Darren Powell (1):
amdgpu/pm: add extra info to SMU msg pre-check failed message

David Heidelberg (2):
drm/msm/mdp4: refactor HW revision detection into read_mdp_hw_revision drm/msm/mdp4: move HW revision detection to earlier phase

Desmond Cheong Zhi Xi (3):
fcntl: fix potential deadlocks for &fown_struct.lock
fcntl: fix potential deadlock for &fasync_struct.fa_lock
Bluetooth: fix repeated calls to sco_sock_kill

Dietmar Eggemann (1):
sched/deadline: Fix missing clock update in migrate_task_rq_dl()

Dmitry Baryshkov (2):
arm64: dts: qcom: sm8250: fix usb2 qmp phy node drm/msm/dpu: make dpu_hw_ctl_clear_all_blendstages clear necessary LMs

Dmitry Osipenko (2):
regulator: tps65910: Silence deferred probe error
power: supply: smb347-charger: Add missing pin control activation

Dmytro Linkin (1):
net/mlx5e: Use correct eswitch for stack devices with lag

Dongliang Mu (4):
media: dvb-usb: fix uninit-value in dvb_usb_adapter_dvb_init
media: dvb-usb: fix uninit-value in vp702x_read_mac_addr
media: dvb-usb: Fix error handling in dvb_usb_i2c_init
media: em28xx-input: fix refcount bug in em28xx_usb_disconnect

Douglas Anderson (2):
ASoC: rt5682: Properly turn off regulators if wrong device ID
ASoC: rt5682: Remove unused variable in rt5682_i2c_remove()

Dylan Hung (1):
ARM: dts: aspeed-g6: Fix HVI3C function-group in pinctrl dtsi

Eric Biggers (1):
blk-crypto: fix check for too-large dun_bytes

Eric Dumazet (3):
ipv6: make exception cache less predictible
ipv4: make exception cache less predictible
ipv4: fix endianness issue in inet_rtm_getroute_build_skb()

Evgeny Novikov (1):
usb: ehci-orion: Handle errors of clk_prepare_enable() in probe

Frederic Weisbecker (1):
posix-cpu-timers: Force next expiration recalc after itimer reset

Geert Uytterhoeven (4):
m68k: Fix invalid RMW_INSNS on CPUs that lack CAS
soc: rockchip: ROCKCHIP_GRF should not default to y, unconditionally
arm64: dts: renesas: r8a77995: draak: Remove bogus adv7511w properties
usb: gadget: udc: renesas_usb3: Fix soc_device_match() abuse

Giovanni Cabiddu (4):
crypto: qat - do not ignore errors from enable_vf2pf_comms()
crypto: qat - handle both source of interrupt in VF ISR
crypto: qat - do not export adf_iov_putmsg()
crypto: qat - use proper type for vf_mask

Greg Kroah-Hartman (1):

      Linux 5.13.17

Guoqing Jiang (1):
raid1: ensure write behind bio has less than BIO_MAX_VECS sectors

Haiyue Wang (1):
gve: fix the wrong AdminQ buffer overflow check

Halil Pasic (1):

      KVM: s390: index kvm->arch.idle_mask by vcpu_idx

Hans de Goede (2):
power: supply: axp288_fuel_gauge: Report register-address on readb / writeb errors
leds: trigger: audio: Add an activate callback to ensure the initial brightness is set

Harald Freudenberger (2):
s390/zcrypt: fix wrong offset index for APKA master key valid state s390/ap: fix state machine hang after failure to enable irq

Harshvardhan Jha (1):
drm/gma500: Fix end of loop tests for list_for_each_entry

He Fengqing (1):
bpf: Fix potential memleak and UAF in the verifier.

Hongbo Li (1):
lib/mpi: use kcalloc in mpi_resize

Huacai Chen (1):
irqchip/loongson-pch-pic: Improve edge triggered interrupt support

Ilya Leoshkevich (1):
selftests/bpf: Fix test_core_autosize on big-endian machines

J. Bruce Fields (1):
nfsd4: Fix forced-expiry locking

Jaegeuk Kim (1):
f2fs: guarantee to write dirty data when enabling checkpoint back

Jan Kara (1):
udf: Check LVID earlier

Jens Axboe (4):
io-wq: remove GFP_ATOMIC allocation off schedule out path
io_uring: IORING_OP_WRITE needs hash_reg_file set
io_uring: io_uring_complete() trace should take an integer
io-wq: check max_worker limits if a worker transitions bound state

Jeongtae Park (1):
regmap: fix the offset of register error log

Jiapeng Chong (2):
leds: is31fl32xx: Fix missing error code in is31fl32xx_parse_dt() net/mlx5: Fix missing return value in mlx5_devlink_eswitch_inline_mode_set()

Joerg Roedel (1):
x86/efi: Restore Firmware IDT before calling ExitBootServices()

John Fastabend (1):
bpf, selftests: Fix test_maps now that sockmap supports UDP

Jose Blanquicet (1):
selftests/bpf: Fix bpf-iter-tcp4 test to print correctly the dest IP

Judy Hsiao (1):
arm64: dts: qcom: sc7180: Set adau wakeup delay to 80 ms

Juhee Kang (1):
samples: pktgen: add missing IPv6 option to pktgen scripts

Julia Lawall (1):
drm/of: free the right object

Jun Miao (1):
Bluetooth: btusb: Fix a unspported condition to set available debug features

Justin M. Forbes (1):
iwlwifi Add support for ax201 in Samsung Galaxy Book Flex2 Alpha

Kai Ye (2):
crypto: hisilicon/sec - fix the abnormal exiting process
crypto: hisilicon/sec - modify the hardware endian configuration

Kai-Heng Feng (2):
drm/amdgpu/acp: Make PM domain really work
Bluetooth: Move shutdown callback before flushing tx and rx queue

Kevin Mitchell (1):
lkdtm: replace SCSI_DISPATCH_CMD with SCSI_QUEUE_RQ

Kim Phillips (1):
perf/x86/amd/ibs: Extend PERF_PMU_CAP_NO_EXCLUDE to IBS Op

Krzysztof Hałasa (1):
media: TDA1997x: enable EDID support

Krzysztof Kozlowski (1):
arm64: dts: exynos: correct GIC CPU interfaces address range on Exynos7

Kuniyuki Iwashima (1):
bpf: Fix a typo of reuseport map in bpf.h.

Kuogee Hsieh (2):
drm/msm/dp: update is_connected status base on sink count at dp_pm_resume() drm/msm/dp: replug event is converted into an unplug followed by an plug events

Lars Poeschel (1):
auxdisplay: hd44780: Fix oops on module unloading

Laurent Pinchart (1):
drm: rcar-du: Don't put reference to drm_device in rcar_du_remove()

Len Baker (1):
CIFS: Fix a potencially linear read overflow

Leon Romanovsky (5):
ionic: cleanly release devlink instance
net: ti: am65-cpsw-nuss: fix wrong devlink release order
devlink: Break parameter notification sequence to be before/after unload/load driver
devlink: Clear whole devlink_flash_notify struct
net/mlx5: Remove all auxiliary devices at the unregister event

Linus Walleij (1):
clk: kirkwood: Fix a clocking boot regression

Lukas Bulwahn (3):
crypto: rmd320 - remove rmd320 in Makefile
clk: staging: correct reference to config IOMEM to config HAS_IOMEM
hwmon: remove amd_energy driver in Makefile

Lukas Hannen (1):
time: Handle negative seconds correctly in timespec64_to_ns()

Lukasz Luba (1):
PM: EM: Increase energy calculation precision

Mansur Alisha Shaik (1):
media: venus: helper: do not set constrained parameters for UBWC

Maor Dickman (1):
net/mlx5: E-Switch, Set vhca id valid flag when creating indir fwd group

Marc Zyngier (1):
KVM: arm64: Unregister HYP sections from kmemleak in protected mode

Marco Chiappero (2):
crypto: qat - fix reuse of completion variable
crypto: qat - fix naming for init/shutdown VF to PF notifications

Marek Vasut (3):
drm: mxsfb: Enable recovery on underflow
drm: mxsfb: Increase number of outstanding requests on V4 and newer HW
drm: mxsfb: Clear FIFO_CLEAR bit

Martin Blumenstingl (1):
ARM: dts: meson8: Use a higher default GPU clock frequency

Martin KaFai Lau (1):
tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos

Martynas Pumputis (1):
libbpf: Fix removal of inner map in bpf_object__create_map

Matija Glavinic Pecotic (1):
spi: davinci: invoke chipselect callback

Matthew Cover (1):
bpf, samples: Add missing mprog-disable to xdp_redirect_cpu's optstring

Mauro Carvalho Chehab (1):
media: rockchip/rga: use pm_runtime_resume_and_get()

Maxim Levitsky (1):
KVM: VMX: avoid running vmx_handle_exit_irqoff in case of emulation

Maxim Mikityanskiy (3):
net/mlx5e: Prohibit inner indir TIRs in IPoIB net/mlx5e: Block LRO if firmware asks for tunneled LRO
sch_htb: Fix inconsistency when leaf qdisc creation fails

Mian Yousaf Kaukab (1):
crypto: ecc - handle unaligned input buffer in ecc_swap_digits

Mika Penttilä (1):
sched/numa: Fix is_core_idle()

Miklos Szeredi (3):
fuse: truncate pagecache on atomic_o_trunc
fuse: flush extending writes
fuse: wait for writepages in syncfs

Ming Lei (1):
block: return ELEVATOR_DISCARD_MERGE if possible

Nadezda Lutovinova (1):
usb: gadget: mv_u3d: request_irq() after initializing UDC

Naveen Mamindlapalli (1):
octeontx2-pf: send correct vlan priority mask to npc_install_flow_req

Nguyen Dinh Phi (1):
tty: Fix data race between tiocsti() and flush_to_ldisc()

Niklas Schnelle (2):
s390/pci: fix misleading rc in clp_set_pci_fn() RDMA/mlx5: Fix number of allocated XLT entries

Pali Rohár (3):
udf: Fix iocharset=utf8 mount option
isofs: joliet: Fix iocharset=utf8 mount option
arm64: dts: marvell: armada-37xx: Extend PCIe MEM space

Paolo Bonzini (1):
KVM: x86: clamp host mapping level to max_level in kvm_mmu_max_mapping_level

Parav Pandit (1):
net/mlx5: Fix unpublish devlink parameters

Pavel Begunkov (3):
io_uring: refactor io_submit_flush_completions()
io_uring: limit fixed table size by RLIMIT_NOFILE
bio: fix page leak bio_add_hw_page failure

Pavel Skripkin (6):
m68k: emu: Fix invalid free in nfeth_cleanup()
block: nbd: add sanity check for first_minor
media: go7007: fix memory leak in go7007_usb_probe
media: go7007: remove redundant initialization
net: cipso: fix warnings in netlbl_cipsov4_add_std
Bluetooth: add timeout sanity check to hci_inquiry

Peter Oberparleiter (2):
s390/debug: keep debug data on resize
s390/debug: fix debug area life cycle

Peter Robinson (1):
power: supply: cw2015: use dev_err_probe to allow deferred probe

Peter Zijlstra (1):
locking/mutex: Fix HANDOFF condition

Philipp Zabel (1):
media: coda: fix frame_mem_ctrl for YUV420 and YVU420 formats

Phong Hoang (1):
clocksource/drivers/sh_cmt: Fix wrong setting if don't request IRQ for clock source channel

Qiuxu Zhuo (1):
EDAC/i10nm: Fix NVDIMM detection

Quanyang Wang (1):
spi: spi-zynq-qspi: use wait_for_completion_timeout to make zynq_qspi_exec_mem_op not interruptible

Quentin Monnet (1):
tools: Free BTF objects at various locations

Quentin Perret (2):
sched/deadline: Fix reset_on_fork reporting of DL tasks
sched: Fix UCLAMP_FLAG_IDLE setting

Rafael J. Wysocki (2):
PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently
PCI: PM: Enable PME if it can be signaled from D3cold

Roi Dayan (1):
net/mlx5e: Fix possible use-after-free deleting fdb rule

Ronnie Sahlberg (1):
cifs: Do not leak EDEADLK to dgetents64 for STATUS_USER_SESSION_DELETED

Ruozhu Li (2):
nvme-tcp: don't update queue count when failing to set io queues
nvme-rdma: don't update queue count when failing to set io queues

Sean Anderson (1):
crypto: mxs-dcp - Check for DMA mapping errors

Sean Christopherson (3):
Revert "KVM: x86: mmu: Add guest physical address check in translate_gpa()"
KVM: x86/mmu: Avoid collision with !PRESENT SPTEs in TDP MMU lpage stats
KVM: nVMX: Unconditionally clear nested.pi_pending on nested VM-Enter

Sebastian Krzyszkowiak (1):

      power: supply: max17042_battery: fix typo in MAx17042_TOFF

Sergey Senozhatsky (1):
rcu/tree: Handle VM stoppage in stall detection

Sergey Shtylyov (16):
i2c: highlander: add IRQ check
usb: dwc3: meson-g12a: add IRQ check
usb: dwc3: qcom: add IRQ check
usb: gadget: udc: at91: add IRQ check
usb: gadget: udc: s3c2410: add IRQ check
usb: misc: brcmstb-usb-pinmap: add IRQ check
usb: phy: fsl-usb: add IRQ check
usb: phy: twl6030: add IRQ checks
usb: host: ohci-tmio: add IRQ check
usb: phy: tahvo: add IRQ check
i2c: synquacer: fix deferred probing
i2c: iop3xx: fix deferred probing
i2c: s3c2410: fix IRQ check
i2c: hix5hd2: fix IRQ check
i2c: mt65xx: fix IRQ check
i2c: xlp9xx: fix main IRQ check

Shengjiu Wang (1):
ASoC: fsl_rpmsg: Check -EPROBE_DEFER for getting clocks

Shuyi Cheng (1):
libbpf: Fix the possible memory leak on error

Smita Koralahalli (1):
EDAC/mce_amd: Do not load edac_mce_amd module on guests

Stefan Assmann (1):
i40e: improve locking of mac_filter_hash

Stefan Berger (2):
certs: Trigger creation of RSA module signing key if it's not an RSA key
tpm: ibmvtpm: Avoid error message when process gets signal while waiting

Stefan Wahren (1):
net: qualcomm: fix QCA7000 checksum handling

Stephan Gerhold (1):
soc: qcom: smsm: Fix missed interrupts if state changes while masked

Stephen Boyd (1):
ASoC: rt5682: Implement remove callback

Steve French (1):
smb3: fix posix extensions mount option

Steven Price (1):
drm/of: free the iterator object on failure

Stian Skjelstad (1):
udf_get_extendedattr() had no boundary checks.

Subbaraya Sundeep (4):
octeontx2-af: cn10k: Fix SDP base channel number
octeontx2-af: Fix loop in free and unmap counter
octeontx2-af: Fix mailbox errors in nix_rss_flowkey_cfg
octeontx2-af: Fix static code analyzer reported issues

Sudarsana Reddy Kalluru (1):
atlantic: Fix driver resume flow.

Sunil Goutham (3):
octeontx2-pf: Don't install VLAN offload rule if netdev is down
octeontx2-pf: Fix algorithm index in MCAM rules with RSS action
octeontx2-af: Set proper errorcode for IPv4 checksum errors

Sven Eckelmann (1):
debugfs: Return error during {full/open}_proxy_open() on rmmod

Sven Peter (1):
irqchip/apple-aic: Fix irq_disable from within irq handlers

THOBY Simon (1):
IMA: remove the dependency on CRYPTO_MD5

Tedd Ho-Jeong An (1):
Bluetooth: mgmt: Fix wrong opcode in the response for add_adv cmd

Tetsuo Handa (1):
fbmem: don't allow too huge resolutions

Thomas Gleixner (3):
hrtimer: Avoid double reprogramming in __hrtimer_start_range_ns()
hrtimer: Ensure timerfd notification for HIGHRES=n locking/local_lock: Add missing owner initialization

Tianjia Zhang (1):
crypto: tcrypt - Fix missing return value check

Tony Lindgren (6):
crypto: omap-sham - clear dma flags only after omap_sham_update_dma_stop()
spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config
spi: spi-pic32: Fix issue with uninitialized dma_slave_config
mmc: sdhci: Fix issue with uninitialized dma_slave_config
mmc: dw_mmc: Fix issue with uninitialized dma_slave_config
mmc: moxart: Fix issue with uninitialized dma_slave_config

Valentin Schneider (3):
sched/topology: Skip updating masks for non-online nodes sched/debug: Don't update sched_domain debug directories before sched_debug_init()
PM: cpu: Make notifier chain use a raw_spinlock_t

Vignesh Raghavendra (1):
net: ti: am65-cpsw-nuss: fix RX IRQ state after .ndo_stop()

Vineeth Vijayan (1):
s390/cio: add dev_busid sysfs entry for each subchannel

Vladimir Oltean (4):
net: dsa: stop syncing the bridge mcast_router attribute at join time
net: dsa: mt7530: remove the .port_set_mrouter implementation
net: dsa: don't disable multicast flooding to the CPU even without an IGMP querier
net: phy: marvell10g: fix broken PHY interrupts for anyone after us in the driver probe list

Voon Weifeng (1):
net: stmmac: fix INTR TBU status affecting irq count statistic

Waiman Long (3):
cgroup/cpuset: Fix a partition bug with hotplug cgroup/cpuset: Miscellaneous code cleanup cgroup/cpuset: Fix violation of cpuset locking rule

Wei Yongjun (2):
drm/panfrost: Fix missing clk_disable_unprepare() on error in panfrost_clk_init()
media: omap3isp: Fix missing unlock in isp_subdev_notifier_complete()

William Breathitt Gray (1):
counter: 104-quad-8: Return error when invalid mode during ceiling_write

Xiao Ni (1):
md/raid10: Remove unnecessary rcu_dereference in raid10_handle_discard

Xiyu Yang (1):
net: sched: Fix qdisc_rate_table refcount leak when get tcf_block failed

Xu Yu (1):
mm/swap: consider max pages in iomap_swapfile_add_extent

Yanfei Xu (2):
rcu: Fix to include first blocked task in stall warning
rcu: Fix stall-warning deadlock due to non-release of rcu_node ->lock

Yang Yingliang (1):
octeontx2-pf: cn10k: Fix error return code in otx2_set_flowkey_cfg()

Yizhuo (1):
media: atomisp: fix the uninitialized use and rename "retvalue"

Zelin Deng (1):
KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is adjusted

Zenghui Yu (1):
bcma: Fix memory leak for internally-handled cores

Zhang Qilong (2):
ASoC: mediatek: mt8192:Fix Unbalanced pm_runtime_enable in mt8192_afe_pcm_dev_probe
ASoC: mediatek: mt8183: Fix Unbalanced pm_runtime_enable in mt8183_afe_pcm_dev_probe

Zhen Lei (4):
genirq/timings: Fix error return code in irq_timings_test_irqs()
firmware: fix theoretical UAF race with firmware cache and resume driver core: Fix error return code in really_probe()
media: venus: hfi: fix return value check in sys_get_prop_image_version()

author maintainer
#1 lore raw
Documentation/fault-injection/provoke-crashes.rst +1 -1
index a20ba5d93932..18de17354206 100644
@@ -29,7 +29,7 @@ recur_count
 cpoint_name
 	Where in the kernel to trigger the action. It can be
 	one of INT_HARDWARE_ENTRY, INT_HW_IRQ_EN, INT_TASKLET_ENTRY,
-	FS_DEVRW, MEM_SWAPOUT, TIMERADD, SCSI_DISPATCH_CMD,
+	FS_DEVRW, MEM_SWAPOUT, TIMERADD, SCSI_QUEUE_RQ,
 	IDE_CORE_CP, or DIRECT
 
 cpoint_type
Makefile +1 -1
index cbb2f35baedb..c79a2c70a22b 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 13
-SUBLEVEL = 16
+SUBLEVEL = 17
 EXTRAVERSION =
 NAME = Opossums on Parade
 
arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi +2 -2
index 7028e21bdd98..910eacc8ad3b 100644
@@ -208,12 +208,12 @@ pinctrl_gpiu7_default: gpiu7_default {
 	};
 
 	pinctrl_hvi3c3_default: hvi3c3_default {
-		function = "HVI3C3";
+		function = "I3C3";
 		groups = "HVI3C3";
 	};
 
 	pinctrl_hvi3c4_default: hvi3c4_default {
-		function = "HVI3C4";
+		function = "I3C4";
 		groups = "HVI3C4";
 	};
 
arch/arm/boot/dts/at91-sam9x60ek.dts +15 -1
index edca66c232c1..ebbc9b23aef1 100644
@@ -92,6 +92,8 @@ sw1 {
 
 	leds {
 		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_leds>;
 		status = "okay"; /* Conflict with pwm0. */
 
 		red {
@@ -537,6 +539,10 @@ AT91_PIOA 18 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_H
 				 AT91_PIOA 19 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)	/* PA19 DAT2 periph A with pullup */
 				 AT91_PIOA 20 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>;	/* PA20 DAT3 periph A with pullup */
 		};
+		pinctrl_sdmmc0_cd: sdmmc0_cd {
+			atmel,pins =
+				<AT91_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+		};
 	};
 
 	sdmmc1 {
@@ -569,6 +575,14 @@ pinctrl_usb_default: usb_default {
 				      AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
 		};
 	};
+
+	leds {
+		pinctrl_gpio_leds: gpio_leds {
+			atmel,pins = <AT91_PIOB 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+				      AT91_PIOB 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+				      AT91_PIOB 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+		};
+	};
 }; /* pinctrl */
 
 &pwm0 {
@@ -580,7 +594,7 @@ &pwm0 {
 &sdmmc0 {
 	bus-width = <4>;
 	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_sdmmc0_default>;
+	pinctrl-0 = <&pinctrl_sdmmc0_default &pinctrl_sdmmc0_cd>;
 	status = "okay";
 	cd-gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
 	disable-wp;
arch/arm/boot/dts/at91-sama5d3_xplained.dts +29 -0
index 9c55a921263b..cc55d1684322 100644
@@ -57,6 +57,8 @@ slot@0 {
 			};
 
 			spi0: spi@f0004000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_spi0_cs>;
 				cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
 				status = "okay";
 			};
@@ -169,6 +171,8 @@ slot@0 {
 			};
 
 			spi1: spi@f8008000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_spi1_cs>;
 				cs-gpios = <&pioC 25 0>;
 				status = "okay";
 			};
@@ -248,6 +252,26 @@ pinctrl_usb_default: usb_default {
 							<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
 							 AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
 					};
+
+					pinctrl_gpio_leds: gpio_leds_default {
+						atmel,pins =
+							<AT91_PIOE 23 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+							 AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+
+					pinctrl_spi0_cs: spi0_cs_default {
+						atmel,pins =
+							<AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+							 AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+
+					pinctrl_spi1_cs: spi1_cs_default {
+						atmel,pins = <AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+
+					pinctrl_vcc_mmc0_reg_gpio: vcc_mmc0_reg_gpio_default {
+						atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
 				};
 			};
 		};
@@ -339,6 +363,8 @@ rootfs@800000 {
 
 	vcc_mmc0_reg: fixedregulator_mmc0 {
 		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_vcc_mmc0_reg_gpio>;
 		gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
 		regulator-name = "mmc0-card-supply";
 		regulator-min-microvolt = <3300000>;
@@ -362,6 +388,9 @@ bp3 {
 
 	leds {
 		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_leds>;
+		status = "okay";
 
 		d2 {
 			label = "d2";
arch/arm/boot/dts/at91-sama5d4_xplained.dts +19 -0
index 0b3ad1b580b8..e42dae06b582 100644
@@ -90,6 +90,8 @@ usart4: serial@fc010000 {
 			};
 
 			spi1: spi@fc018000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_spi0_cs>;
 				cs-gpios = <&pioB 21 0>;
 				status = "okay";
 			};
@@ -147,6 +149,19 @@ pinctrl_macb0_phy_irq: macb0_phy_irq_0 {
 						atmel,pins =
 							<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
 					};
+					pinctrl_spi0_cs: spi0_cs_default {
+						atmel,pins =
+							<AT91_PIOB 21 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+					pinctrl_gpio_leds: gpio_leds_default {
+						atmel,pins =
+							<AT91_PIOD 30 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+							 AT91_PIOE 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+					pinctrl_vcc_mmc1_reg: vcc_mmc1_reg {
+						atmel,pins =
+							<AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
 				};
 			};
 		};
@@ -252,6 +267,8 @@ pb_user1 {
 
 	leds {
 		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_leds>;
 		status = "okay";
 
 		d8 {
@@ -278,6 +295,8 @@ vcc_3v3_reg: fixedregulator_3v3 {
 
 	vcc_mmc1_reg: fixedregulator_mmc1 {
 		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_vcc_mmc1_reg>;
 		gpio = <&pioE 4 GPIO_ACTIVE_LOW>;
 		regulator-name = "VDD MCI1";
 		regulator-min-microvolt = <3300000>;
arch/arm/boot/dts/meson8.dtsi +5 -0
index 157a950a55d3..686c7b7c79d5 100644
@@ -304,8 +304,13 @@ mali: gpu@c0000 {
 					  "pp2", "ppmmu2", "pp4", "ppmmu4",
 					  "pp5", "ppmmu5", "pp6", "ppmmu6";
 			resets = <&reset RESET_MALI>;
+
 			clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
 			clock-names = "bus", "core";
+
+			assigned-clocks = <&clkc CLKID_MALI>;
+			assigned-clock-rates = <318750000>;
+
 			operating-points-v2 = <&gpu_opp_table>;
 			#cooling-cells = <2>; /* min followed by max */
 		};
arch/arm/boot/dts/meson8b-ec100.dts +2 -2
index 8e48ccc6b634..7e8ddc6f1252 100644
@@ -148,7 +148,7 @@ vcck: regulator-vcck {
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&vcc_5v>;
+		pwm-supply = <&vcc_5v>;
 
 		pwms = <&pwm_cd 0 1148 0>;
 		pwm-dutycycle-range = <100 0>;
@@ -232,7 +232,7 @@ vddee: regulator-vddee {
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&vcc_5v>;
+		pwm-supply = <&vcc_5v>;
 
 		pwms = <&pwm_cd 1 1148 0>;
 		pwm-dutycycle-range = <100 0>;
arch/arm/boot/dts/meson8b-mxq.dts +3 -1
index f3937d55472d..7adedd3258c3 100644
@@ -34,6 +34,8 @@ vcck: regulator-vcck {
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
+		pwm-supply = <&vcc_5v>;
+
 		pwms = <&pwm_cd 0 1148 0>;
 		pwm-dutycycle-range = <100 0>;
 
@@ -79,7 +81,7 @@ vddee: regulator-vddee {
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&vcc_5v>;
+		pwm-supply = <&vcc_5v>;
 
 		pwms = <&pwm_cd 1 1148 0>;
 		pwm-dutycycle-range = <100 0>;
arch/arm/boot/dts/meson8b-odroidc1.dts +2 -2
index c440ef94e082..04356bc639fa 100644
@@ -131,7 +131,7 @@ vcck: regulator-vcck {
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&p5v0>;
+		pwm-supply = <&p5v0>;
 
 		pwms = <&pwm_cd 0 12218 0>;
 		pwm-dutycycle-range = <91 0>;
@@ -163,7 +163,7 @@ vddee: regulator-vddee {
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&p5v0>;
+		pwm-supply = <&p5v0>;
 
 		pwms = <&pwm_cd 1 12218 0>;
 		pwm-dutycycle-range = <91 0>;
arch/arm64/boot/dts/exynos/exynos7.dtsi +1 -1
index 10244e59d56d..56a0bb7eb0e6 100644
@@ -102,7 +102,7 @@ gic: interrupt-controller@11001000 {
 			#address-cells = <0>;
 			interrupt-controller;
 			reg =	<0x11001000 0x1000>,
-				<0x11002000 0x1000>,
+				<0x11002000 0x2000>,
 				<0x11004000 0x2000>,
 				<0x11006000 0x2000>;
 		};
arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts +17 -0
index a05b1ab2dd12..04da07ae4420 100644
@@ -135,6 +135,23 @@ &pcie0 {
 	pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
 	status = "okay";
 	reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+	/*
+	 * U-Boot port for Turris Mox has a bug which always expects that "ranges" DT property
+	 * contains exactly 2 ranges with 3 (child) address cells, 2 (parent) address cells and
+	 * 2 size cells and also expects that the second range starts at 16 MB offset. If these
+	 * conditions are not met then U-Boot crashes during loading kernel DTB file. PCIe address
+	 * space is 128 MB long, so the best split between MEM and IO is to use fixed 16 MB window
+	 * for IO and the rest 112 MB (64+32+16) for MEM, despite that maximal IO size is just 64 kB.
+	 * This bug is not present in U-Boot ports for other Armada 3700 devices and is fixed in
+	 * U-Boot version 2021.07. See relevant U-Boot commits (the last one contains fix):
+	 * https://source.denx.de/u-boot/u-boot/-/commit/cb2ddb291ee6fcbddd6d8f4ff49089dfe580f5d7
+	 * https://source.denx.de/u-boot/u-boot/-/commit/c64ac3b3185aeb3846297ad7391fc6df8ecd73bf
+	 * https://source.denx.de/u-boot/u-boot/-/commit/4a82fca8e330157081fc132a591ebd99ba02ee33
+	 */
+	#address-cells = <3>;
+	#size-cells = <2>;
+	ranges = <0x81000000 0 0xe8000000   0 0xe8000000   0 0x01000000   /* Port 0 IO */
+		  0x82000000 0 0xe9000000   0 0xe9000000   0 0x07000000>; /* Port 0 MEM */
 
 	/* enabled by U-Boot if PCIe module is present */
 	status = "disabled";
arch/arm64/boot/dts/marvell/armada-37xx.dtsi +9 -2
index 5db81a416cd6..9acc5d2b5a00 100644
@@ -489,8 +489,15 @@ pcie0: pcie@d0070000 {
 			#interrupt-cells = <1>;
 			msi-parent = <&pcie0>;
 			msi-controller;
-			ranges = <0x82000000 0 0xe8000000   0 0xe8000000 0 0x1000000 /* Port 0 MEM */
-				  0x81000000 0 0xe9000000   0 0xe9000000 0 0x10000>; /* Port 0 IO*/
+			/*
+			 * The 128 MiB address range [0xe8000000-0xf0000000] is
+			 * dedicated for PCIe and can be assigned to 8 windows
+			 * with size a power of two. Use one 64 KiB window for
+			 * IO at the end and the remaining seven windows
+			 * (totaling 127 MiB) for MEM.
+			 */
+			ranges = <0x82000000 0 0xe8000000   0 0xe8000000   0 0x07f00000   /* Port 0 MEM */
+				  0x81000000 0 0xefff0000   0 0xefff0000   0 0x00010000>; /* Port 0 IO */
 			interrupt-map-mask = <0 0 0 7>;
 			interrupt-map = <0 0 0 1 &pcie_intc 0>,
 					<0 0 0 2 &pcie_intc 1>,
arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi +1 -1
index 3eb8550da1fc..3fa1ad1d0f02 100644
@@ -23,7 +23,7 @@ / {
 	adau7002: audio-codec-1 {
 		compatible = "adi,adau7002";
 		IOVDD-supply = <&pp1800_l15a>;
-		wakeup-delay-ms = <15>;
+		wakeup-delay-ms = <80>;
 		#sound-dai-cells = <0>;
 	};
 };
arch/arm64/boot/dts/qcom/sm8250.dtsi +1 -1
index 09b552396557..1316bea3eab5 100644
@@ -2123,7 +2123,7 @@ usb_2_qmpphy: phy@88eb000 {
 				 <&gcc GCC_USB3_PHY_SEC_BCR>;
 			reset-names = "phy", "common";
 
-			usb_2_ssphy: lane@88eb200 {
+			usb_2_ssphy: lanes@88eb200 {
 				reg = <0 0x088eb200 0 0x200>,
 				      <0 0x088eb400 0 0x200>,
 				      <0 0x088eb800 0 0x800>;
arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi +1 -0
index 202c4fc88bd5..dde3a07bc417 100644
@@ -20,6 +20,7 @@ &avb {
 	pinctrl-names = "default";
 	phy-handle = <&phy0>;
 	tx-internal-delay-ps = <2000>;
+	rx-internal-delay-ps = <1800>;
 	status = "okay";
 
 	phy0: ethernet-phy@0 {
arch/arm64/boot/dts/renesas/r8a77995-draak.dts +0 -4
index 6783c3ad0856..57784341f39d 100644
@@ -277,10 +277,6 @@ hdmi-encoder@39 {
 		interrupt-parent = <&gpio1>;
 		interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
 
-		/* Depends on LVDS */
-		max-clock = <135000000>;
-		min-vrefresh = <50>;
-
 		adi,input-depth = <8>;
 		adi,input-colorspace = "rgb";
 		adi,input-clock = "1x";
arch/arm64/kvm/arm.c +7 -0
index facf4d41d32a..3ed09e7f81f0 100644
@@ -15,6 +15,7 @@
 #include <linux/fs.h>
 #include <linux/mman.h>
 #include <linux/sched.h>
+#include <linux/kmemleak.h>
 #include <linux/kvm.h>
 #include <linux/kvm_irqfd.h>
 #include <linux/irqbypass.h>
@@ -1957,6 +1958,12 @@ static int finalize_hyp_mode(void)
 	if (ret)
 		return ret;
 
+	/*
+	 * Exclude HYP BSS from kmemleak so that it doesn't get peeked
+	 * at, which would end badly once the section is inaccessible.
+	 * None of other sections should ever be introspected.
+	 */
+	kmemleak_free_part(__hyp_bss_start, __hyp_bss_end - __hyp_bss_start);
 	ret = pkvm_mark_hyp_section(__hyp_bss);
 	if (ret)
 		return ret;
arch/m68k/Kconfig.cpu +7 -1
index f4d23977d2a5..1127d64b6c1d 100644
@@ -26,6 +26,7 @@ config COLDFIRE
 	bool "Coldfire CPU family support"
 	select ARCH_HAVE_CUSTOM_GPIO_H
 	select CPU_HAS_NO_BITFIELDS
+	select CPU_HAS_NO_CAS
 	select CPU_HAS_NO_MULDIV64
 	select GENERIC_CSUM
 	select GPIOLIB
@@ -39,6 +40,7 @@ config M68000
 	bool
 	depends on !MMU
 	select CPU_HAS_NO_BITFIELDS
+	select CPU_HAS_NO_CAS
 	select CPU_HAS_NO_MULDIV64
 	select CPU_HAS_NO_UNALIGNED
 	select GENERIC_CSUM
@@ -54,6 +56,7 @@ config M68000
 config MCPU32
 	bool
 	select CPU_HAS_NO_BITFIELDS
+	select CPU_HAS_NO_CAS
 	select CPU_HAS_NO_UNALIGNED
 	select CPU_NO_EFFICIENT_FFS
 	help
@@ -383,7 +386,7 @@ config ADVANCED
 
 config RMW_INSNS
 	bool "Use read-modify-write instructions"
-	depends on ADVANCED
+	depends on ADVANCED && !CPU_HAS_NO_CAS
 	help
 	  This allows to use certain instructions that work with indivisible
 	  read-modify-write bus cycles. While this is faster than the
@@ -459,6 +462,9 @@ config NODES_SHIFT
 config CPU_HAS_NO_BITFIELDS
 	bool
 
+config CPU_HAS_NO_CAS
+	bool
+
 config CPU_HAS_NO_MULDIV64
 	bool
 
arch/m68k/coldfire/clk.c +1 -1
index 076a9caa9557..c895a189c5ae 100644
@@ -92,7 +92,7 @@ int clk_enable(struct clk *clk)
 	unsigned long flags;
 
 	if (!clk)
-		return -EINVAL;
+		return 0;
 
 	spin_lock_irqsave(&clk_lock, flags);
 	if ((clk->enabled++ == 0) && clk->clk_ops)
arch/m68k/emu/nfeth.c +2 -2
index d2875e32abfc..79e55421cfb1 100644
@@ -254,8 +254,8 @@ static void __exit nfeth_cleanup(void)
 
 	for (i = 0; i < MAX_UNIT; i++) {
 		if (nfeth_dev[i]) {
-			unregister_netdev(nfeth_dev[0]);
-			free_netdev(nfeth_dev[0]);
+			unregister_netdev(nfeth_dev[i]);
+			free_netdev(nfeth_dev[i]);
 		}
 	}
 	free_irq(nfEtherIRQ, nfeth_interrupt);
arch/s390/include/asm/kvm_host.h +1 -0
index 8925f3969478..5445ae106077 100644
@@ -962,6 +962,7 @@ struct kvm_arch{
 	atomic64_t cmma_dirty_pages;
 	/* subset of available cpu features enabled by user space */
 	DECLARE_BITMAP(cpu_feat, KVM_S390_VM_CPU_FEAT_NR_BITS);
+	/* indexed by vcpu_idx */
 	DECLARE_BITMAP(idle_mask, KVM_MAX_VCPUS);
 	struct kvm_s390_gisa_interrupt gisa_int;
 	struct kvm_s390_pv pv;
arch/s390/kernel/debug.c +109 -67

252 lines not on this page · raw message

arch/s390/kvm/interrupt.c +6 -6
index d548d60caed2..16256e17a544 100644
@@ -419,13 +419,13 @@ static unsigned long deliverable_irqs(struct kvm_vcpu *vcpu)
 static void __set_cpu_idle(struct kvm_vcpu *vcpu)
 {
 	kvm_s390_set_cpuflags(vcpu, CPUSTAT_WAIT);
-	set_bit(vcpu->vcpu_id, vcpu->kvm->arch.idle_mask);
+	set_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.idle_mask);
 }
 
 static void __unset_cpu_idle(struct kvm_vcpu *vcpu)
 {
 	kvm_s390_clear_cpuflags(vcpu, CPUSTAT_WAIT);
-	clear_bit(vcpu->vcpu_id, vcpu->kvm->arch.idle_mask);
+	clear_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.idle_mask);
 }
 
 static void __reset_intercept_indicators(struct kvm_vcpu *vcpu)
@@ -3050,18 +3050,18 @@ int kvm_s390_get_irq_state(struct kvm_vcpu *vcpu, __u8 __user *buf, int len)
 
 static void __airqs_kick_single_vcpu(struct kvm *kvm, u8 deliverable_mask)
 {
-	int vcpu_id, online_vcpus = atomic_read(&kvm->online_vcpus);
+	int vcpu_idx, online_vcpus = atomic_read(&kvm->online_vcpus);
 	struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
 	struct kvm_vcpu *vcpu;
 
-	for_each_set_bit(vcpu_id, kvm->arch.idle_mask, online_vcpus) {
-		vcpu = kvm_get_vcpu(kvm, vcpu_id);
+	for_each_set_bit(vcpu_idx, kvm->arch.idle_mask, online_vcpus) {
+		vcpu = kvm_get_vcpu(kvm, vcpu_idx);
 		if (psw_ioint_disabled(vcpu))
 			continue;
 		deliverable_mask &= (u8)(vcpu->arch.sie_block->gcr[6] >> 24);
 		if (deliverable_mask) {
 			/* lately kicked but not yet running */
-			if (test_and_set_bit(vcpu_id, gi->kicked_mask))
+			if (test_and_set_bit(vcpu_idx, gi->kicked_mask))
 				return;
 			kvm_s390_vcpu_wakeup(vcpu);
 			return;
arch/s390/kvm/kvm-s390.c +1 -1
index 876fc1f7282a..32173fffad3f 100644
@@ -4020,7 +4020,7 @@ static int vcpu_pre_run(struct kvm_vcpu *vcpu)
 		kvm_s390_patch_guest_per_regs(vcpu);
 	}
 
-	clear_bit(vcpu->vcpu_id, vcpu->kvm->arch.gisa_int.kicked_mask);
+	clear_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.gisa_int.kicked_mask);
 
 	vcpu->arch.sie_block->icptcode = 0;
 	cpuflags = atomic_read(&vcpu->arch.sie_block->cpuflags);
arch/s390/kvm/kvm-s390.h +1 -1
index 9fad25109b0d..ecd741ee3276 100644
@@ -79,7 +79,7 @@ static inline int is_vcpu_stopped(struct kvm_vcpu *vcpu)
 
 static inline int is_vcpu_idle(struct kvm_vcpu *vcpu)
 {
-	return test_bit(vcpu->vcpu_id, vcpu->kvm->arch.idle_mask);
+	return test_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.idle_mask);
 }
 
 static inline int kvm_is_ucontrol(struct kvm *kvm)
arch/s390/mm/kasan_init.c +20 -21

56 lines not on this page · raw message

arch/s390/pci/pci.c +4 -3
index 8fcb7ecb7225..77cd965cffef 100644
@@ -661,9 +661,10 @@ int zpci_enable_device(struct zpci_dev *zdev)
 {
 	int rc;
 
-	rc = clp_enable_fh(zdev, ZPCI_NR_DMA_SPACES);
-	if (rc)
+	if (clp_enable_fh(zdev, ZPCI_NR_DMA_SPACES)) {
+		rc = -EIO;
 		goto out;
+	}
 
 	rc = zpci_dma_init_device(zdev);
 	if (rc)
@@ -684,7 +685,7 @@ int zpci_disable_device(struct zpci_dev *zdev)
 	 * The zPCI function may already be disabled by the platform, this is
 	 * detected in clp_disable_fh() which becomes a no-op.
 	 */
-	return clp_disable_fh(zdev);
+	return clp_disable_fh(zdev) ? -EIO : 0;
 }
 
 /**
arch/s390/pci/pci_clp.c +16 -17
index d3331596ddbe..0a0e8b8293be 100644
@@ -213,15 +213,19 @@ int clp_query_pci_fn(struct zpci_dev *zdev)
 }
 
 static int clp_refresh_fh(u32 fid);
-/*
- * Enable/Disable a given PCI function and update its function handle if
- * necessary
+/**
+ * clp_set_pci_fn() - Execute a command on a PCI function
+ * @zdev: Function that will be affected
+ * @nr_dma_as: DMA address space number
+ * @command: The command code to execute
+ *
+ * Returns: 0 on success, < 0 for Linux errors (e.g. -ENOMEM), and
+ * > 0 for non-success platform responses
  */
 static int clp_set_pci_fn(struct zpci_dev *zdev, u8 nr_dma_as, u8 command)
 {
 	struct clp_req_rsp_set_pci *rrb;
 	int rc, retries = 100;
-	u32 fid = zdev->fid;
 
 	rrb = clp_alloc_block(GFP_KERNEL);
 	if (!rrb)
@@ -245,17 +249,16 @@ static int clp_set_pci_fn(struct zpci_dev *zdev, u8 nr_dma_as, u8 command)
 		}
 	} while (rrb->response.hdr.rsp == CLP_RC_SETPCIFN_BUSY);
 
-	if (rc || rrb->response.hdr.rsp != CLP_RC_OK) {
-		zpci_err("Set PCI FN:\n");
-		zpci_err_clp(rrb->response.hdr.rsp, rc);
-	}
-
 	if (!rc && rrb->response.hdr.rsp == CLP_RC_OK) {
 		zdev->fh = rrb->response.fh;
-	} else if (!rc && rrb->response.hdr.rsp == CLP_RC_SETPCIFN_ALRDY &&
-			rrb->response.fh == 0) {
+	} else if (!rc && rrb->response.hdr.rsp == CLP_RC_SETPCIFN_ALRDY) {
 		/* Function is already in desired state - update handle */
-		rc = clp_refresh_fh(fid);
+		rc = clp_refresh_fh(zdev->fid);
+	} else {
+		zpci_err("Set PCI FN:\n");
+		zpci_err_clp(rrb->response.hdr.rsp, rc);
+		if (!rc)
+			rc = rrb->response.hdr.rsp;
 	}
 	clp_free_block(rrb);
 	return rc;
@@ -301,17 +304,13 @@ int clp_enable_fh(struct zpci_dev *zdev, u8 nr_dma_as)
 
 	rc = clp_set_pci_fn(zdev, nr_dma_as, CLP_SET_ENABLE_PCI_FN);
 	zpci_dbg(3, "ena fid:%x, fh:%x, rc:%d\n", zdev->fid, zdev->fh, rc);
-	if (rc)
-		goto out;
-
-	if (zpci_use_mio(zdev)) {
+	if (!rc && zpci_use_mio(zdev)) {
 		rc = clp_set_pci_fn(zdev, nr_dma_as, CLP_SET_ENABLE_MIO);
 		zpci_dbg(3, "ena mio fid:%x, fh:%x, rc:%d\n",
 				zdev->fid, zdev->fh, rc);
 		if (rc)
 			clp_disable_fh(zdev);
 	}
-out:
 	return rc;
 }
 
arch/x86/boot/compressed/efi_thunk_64.S +21 -9
index 95a223b3e56a..8bb92e9f4e97 100644
@@ -5,9 +5,8 @@
  * Early support for invoking 32-bit EFI services from a 64-bit kernel.
  *
  * Because this thunking occurs before ExitBootServices() we have to
- * restore the firmware's 32-bit GDT before we make EFI service calls,
- * since the firmware's 32-bit IDT is still currently installed and it
- * needs to be able to service interrupts.
+ * restore the firmware's 32-bit GDT and IDT before we make EFI service
+ * calls.
  *
  * On the plus side, we don't have to worry about mangling 64-bit
  * addresses into 32-bits because we're executing with an identity
@@ -39,7 +38,7 @@ SYM_FUNC_START(__efi64_thunk)
 	/*
 	 * Convert x86-64 ABI params to i386 ABI
 	 */
-	subq	$32, %rsp
+	subq	$64, %rsp
 	movl	%esi, 0x0(%rsp)
 	movl	%edx, 0x4(%rsp)
 	movl	%ecx, 0x8(%rsp)
@@ -49,14 +48,19 @@ SYM_FUNC_START(__efi64_thunk)
 	leaq	0x14(%rsp), %rbx
 	sgdt	(%rbx)
 
+	addq	$16, %rbx
+	sidt	(%rbx)
+
 	/*
-	 * Switch to gdt with 32-bit segments. This is the firmware GDT
-	 * that was installed when the kernel started executing. This
-	 * pointer was saved at the EFI stub entry point in head_64.S.
+	 * Switch to IDT and GDT with 32-bit segments. This is the firmware GDT
+	 * and IDT that was installed when the kernel started executing. The
+	 * pointers were saved at the EFI stub entry point in head_64.S.
 	 *
 	 * Pass the saved DS selector to the 32-bit code, and use far return to
 	 * restore the saved CS selector.
 	 */
+	leaq	efi32_boot_idt(%rip), %rax
+	lidt	(%rax)
 	leaq	efi32_boot_gdt(%rip), %rax
 	lgdt	(%rax)
 
@@ -67,7 +71,7 @@ SYM_FUNC_START(__efi64_thunk)
 	pushq	%rax
 	lretq
 
-1:	addq	$32, %rsp
+1:	addq	$64, %rsp
 	movq	%rdi, %rax
 
 	pop	%rbx
@@ -128,10 +132,13 @@ SYM_FUNC_START_LOCAL(efi_enter32)
 
 	/*
 	 * Some firmware will return with interrupts enabled. Be sure to
-	 * disable them before we switch GDTs.
+	 * disable them before we switch GDTs and IDTs.
 	 */
 	cli
 
+	lidtl	(%ebx)
+	subl	$16, %ebx
+
 	lgdtl	(%ebx)
 
 	movl	%cr4, %eax
@@ -166,6 +173,11 @@ SYM_DATA_START(efi32_boot_gdt)
 	.quad	0
 SYM_DATA_END(efi32_boot_gdt)
 
+SYM_DATA_START(efi32_boot_idt)
+	.word	0
+	.quad	0
+SYM_DATA_END(efi32_boot_idt)
+
 SYM_DATA_START(efi32_boot_cs)
 	.word	0
 SYM_DATA_END(efi32_boot_cs)
arch/x86/boot/compressed/head_64.S +3 -0
index a2347ded77ea..572c535cf45b 100644
@@ -319,6 +319,9 @@ SYM_INNER_LABEL(efi32_pe_stub_entry, SYM_L_LOCAL)
 	movw	%cs, rva(efi32_boot_cs)(%ebp)
 	movw	%ds, rva(efi32_boot_ds)(%ebp)
 
+	/* Store firmware IDT descriptor */
+	sidtl	rva(efi32_boot_idt)(%ebp)
+
 	/* Disable paging */
 	movl	%cr0, %eax
 	btrl	$X86_CR0_PG_BIT, %eax
arch/x86/crypto/aesni-intel_glue.c +5 -0
index 2144e54a6c89..388643ca2177 100644
@@ -849,6 +849,8 @@ static int xts_crypt(struct skcipher_request *req, bool encrypt)
 		return -EINVAL;
 
 	err = skcipher_walk_virt(&walk, req, false);
+	if (err)
+		return err;
 
 	if (unlikely(tail > 0 && walk.nbytes < walk.total)) {
 		int blocks = DIV_ROUND_UP(req->cryptlen, AES_BLOCK_SIZE) - 2;
@@ -862,7 +864,10 @@ static int xts_crypt(struct skcipher_request *req, bool encrypt)
 		skcipher_request_set_crypt(&subreq, req->src, req->dst,
 					   blocks * AES_BLOCK_SIZE, req->iv);
 		req = &subreq;
+
 		err = skcipher_walk_virt(&walk, req, false);
+		if (err)
+			return err;
 	} else {
 		tail = 0;
 	}
arch/x86/events/amd/ibs.c +1 -0
index 921f47b9bb24..ccc9ee1971e8 100644
@@ -571,6 +571,7 @@ static struct perf_ibs perf_ibs_op = {
 		.start		= perf_ibs_start,
 		.stop		= perf_ibs_stop,
 		.read		= perf_ibs_read,
+		.capabilities	= PERF_PMU_CAP_NO_EXCLUDE,
 	},
 	.msr			= MSR_AMD64_IBSOPCTL,
 	.config_mask		= IBS_OP_CONFIG_MASK,
arch/x86/include/asm/mce.h +1 -0
index ddfb3cad8dff..2a8319fad0b7 100644
@@ -265,6 +265,7 @@ enum mcp_flags {
 	MCP_TIMESTAMP	= BIT(0),	/* log time stamp */
 	MCP_UC		= BIT(1),	/* log uncorrected errors */
 	MCP_DONTLOG	= BIT(2),	/* only clear, don't log */
+	MCP_QUEUE_LOG	= BIT(3),	/* only queue to genpool */
 };
 bool machine_check_poll(enum mcp_flags flags, mce_banks_t *b);
 
arch/x86/kernel/cpu/mce/core.c +8 -3
index bf7fe87a7e88..01ff4014b7f6 100644
@@ -817,7 +817,10 @@ bool machine_check_poll(enum mcp_flags flags, mce_banks_t *b)
 		if (mca_cfg.dont_log_ce && !mce_usable_address(&m))
 			goto clear_it;
 
-		mce_log(&m);
+		if (flags & MCP_QUEUE_LOG)
+			mce_gen_pool_add(&m);
+		else
+			mce_log(&m);
 
 clear_it:
 		/*
@@ -1630,10 +1633,12 @@ static void __mcheck_cpu_init_generic(void)
 		m_fl = MCP_DONTLOG;
 
 	/*
-	 * Log the machine checks left over from the previous reset.
+	 * Log the machine checks left over from the previous reset. Log them
+	 * only, do not start processing them. That will happen in mcheck_late_init()
+	 * when all consumers have been registered on the notifier chain.
 	 */
 	bitmap_fill(all_banks, MAX_NR_BANKS);
-	machine_check_poll(MCP_UC | m_fl, &all_banks);
+	machine_check_poll(MCP_UC | MCP_QUEUE_LOG | m_fl, &all_banks);
 
 	cr4_set_bits(X86_CR4_MCE);
 
arch/x86/kernel/cpu/resctrl/monitor.c +6 -0
index 57e4bb695ff9..8caf871b796f 100644
@@ -304,6 +304,12 @@ static u64 __mon_event_count(u32 rmid, struct rmid_read *rr)
 	case QOS_L3_MBM_LOCAL_EVENT_ID:
 		m = &rr->d->mbm_local[rmid];
 		break;
+	default:
+		/*
+		 * Code would never reach here because an invalid
+		 * event id would fail the __rmid_read.
+		 */
+		return RMID_VAL_ERROR;
 	}
 
 	if (rr->first) {
arch/x86/kvm/mmu/mmu.c +5 -14
index 9d3783800c8c..9d76c3368364 100644
@@ -257,12 +257,6 @@ static bool check_mmio_spte(struct kvm_vcpu *vcpu, u64 spte)
 static gpa_t translate_gpa(struct kvm_vcpu *vcpu, gpa_t gpa, u32 access,
                                   struct x86_exception *exception)
 {
-	/* Check if guest physical address doesn't exceed guest maximum */
-	if (kvm_vcpu_is_illegal_gpa(vcpu, gpa)) {
-		exception->error_code |= PFERR_RSVD_MASK;
-		return UNMAPPED_GVA;
-	}
-
         return gpa;
 }
 
@@ -2760,6 +2754,7 @@ int kvm_mmu_max_mapping_level(struct kvm *kvm,
 			      kvm_pfn_t pfn, int max_level)
 {
 	struct kvm_lpage_info *linfo;
+	int host_level;
 
 	max_level = min(max_level, max_huge_page_level);
 	for ( ; max_level > PG_LEVEL_4K; max_level--) {
@@ -2771,7 +2766,8 @@ int kvm_mmu_max_mapping_level(struct kvm *kvm,
 	if (max_level == PG_LEVEL_4K)
 		return PG_LEVEL_4K;
 
-	return host_pfn_mapping_level(kvm, gfn, pfn, slot);
+	host_level = host_pfn_mapping_level(kvm, gfn, pfn, slot);
+	return min(host_level, max_level);
 }
 
 int kvm_mmu_hugepage_adjust(struct kvm_vcpu *vcpu, gfn_t gfn,
@@ -2795,17 +2791,12 @@ int kvm_mmu_hugepage_adjust(struct kvm_vcpu *vcpu, gfn_t gfn,
 	if (!slot)
 		return PG_LEVEL_4K;
 
-	level = kvm_mmu_max_mapping_level(vcpu->kvm, slot, gfn, pfn, max_level);
-	if (level == PG_LEVEL_4K)
-		return level;
-
-	*req_level = level = min(level, max_level);
-
 	/*
 	 * Enforce the iTLB multihit workaround after capturing the requested
 	 * level, which will be used to do precise, accurate accounting.
 	 */
-	if (huge_page_disallowed)
+	*req_level = level = kvm_mmu_max_mapping_level(vcpu->kvm, slot, gfn, pfn, max_level);
+	if (level == PG_LEVEL_4K || huge_page_disallowed)
 		return PG_LEVEL_4K;
 
 	/*
arch/x86/kvm/mmu/tdp_mmu.c +13 -7
index 41ef3ed5349f..3c225bc0c082 100644
@@ -410,6 +410,7 @@ static void __handle_changed_spte(struct kvm *kvm, int as_id, gfn_t gfn,
 	bool was_leaf = was_present && is_last_spte(old_spte, level);
 	bool is_leaf = is_present && is_last_spte(new_spte, level);
 	bool pfn_changed = spte_to_pfn(old_spte) != spte_to_pfn(new_spte);
+	bool was_large, is_large;
 
 	WARN_ON(level > PT64_ROOT_MAX_LEVEL);
 	WARN_ON(level < PG_LEVEL_4K);
@@ -443,13 +444,6 @@ static void __handle_changed_spte(struct kvm *kvm, int as_id, gfn_t gfn,
 
 	trace_kvm_tdp_mmu_spte_changed(as_id, gfn, level, old_spte, new_spte);
 
-	if (is_large_pte(old_spte) != is_large_pte(new_spte)) {
-		if (is_large_pte(old_spte))
-			atomic64_sub(1, (atomic64_t*)&kvm->stat.lpages);
-		else
-			atomic64_add(1, (atomic64_t*)&kvm->stat.lpages);
-	}
-
 	/*
 	 * The only times a SPTE should be changed from a non-present to
 	 * non-present state is when an MMIO entry is installed/modified/
@@ -475,6 +469,18 @@ static void __handle_changed_spte(struct kvm *kvm, int as_id, gfn_t gfn,
 		return;
 	}
 
+	/*
+	 * Update large page stats if a large page is being zapped, created, or
+	 * is replacing an existing shadow page.
+	 */
+	was_large = was_leaf && is_large_pte(old_spte);
+	is_large = is_leaf && is_large_pte(new_spte);
+	if (was_large != is_large) {
+		if (was_large)
+			atomic64_sub(1, (atomic64_t *)&kvm->stat.lpages);
+		else
+			atomic64_add(1, (atomic64_t *)&kvm->stat.lpages);
+	}
 
 	if (was_leaf && is_dirty_spte(old_spte) &&
 	    (!is_present || !is_dirty_spte(new_spte) || pfn_changed))
arch/x86/kvm/vmx/nested.c +3 -4
index df3b7e564416..1d47f2dbe3e9 100644
@@ -2226,12 +2226,11 @@ static void prepare_vmcs02_early(struct vcpu_vmx *vmx, struct vmcs12 *vmcs12)
 			 ~PIN_BASED_VMX_PREEMPTION_TIMER);
 
 	/* Posted interrupts setting is only taken from vmcs12.  */
-	if (nested_cpu_has_posted_intr(vmcs12)) {
+	vmx->nested.pi_pending = false;
+	if (nested_cpu_has_posted_intr(vmcs12))
 		vmx->nested.posted_intr_nv = vmcs12->posted_intr_nv;
-		vmx->nested.pi_pending = false;
-	} else {
+	else
 		exec_control &= ~PIN_BASED_POSTED_INTR;
-	}
 	pin_controls_set(vmx, exec_control);
 
 	/*
arch/x86/kvm/vmx/vmx.c +3 -0
index dcd4f43c23de..6af7d0b0c154 100644
@@ -6452,6 +6452,9 @@ static void vmx_handle_exit_irqoff(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
 
+	if (vmx->emulation_required)
+		return;
+
 	if (vmx->exit_reason.basic == EXIT_REASON_EXTERNAL_INTERRUPT)
 		handle_external_interrupt_irqoff(vcpu);
 	else if (vmx->exit_reason.basic == EXIT_REASON_EXCEPTION_NMI)
arch/x86/kvm/x86.c +4 -0
index 1e11198f8993..93e851041c9c 100644
@@ -3223,6 +3223,10 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
 			if (!msr_info->host_initiated) {
 				s64 adj = data - vcpu->arch.ia32_tsc_adjust_msr;
 				adjust_tsc_offset_guest(vcpu, adj);
+				/* Before back to guest, tsc_timestamp must be adjusted
+				 * as well, otherwise guest's percpu pvclock time could jump.
+				 */
+				kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu);
 			}
 			vcpu->arch.ia32_tsc_adjust_msr = data;
 		}
block/bfq-iosched.c +3 -0
index eccbe2aed7c3..4df33cc08eee 100644
@@ -2333,6 +2333,9 @@ static int bfq_request_merge(struct request_queue *q, struct request **req,
 	__rq = bfq_find_rq_fmerge(bfqd, bio, q);
 	if (__rq && elv_bio_merge_ok(__rq, bio)) {
 		*req = __rq;
+
+		if (blk_discard_mergable(__rq))
+			return ELEVATOR_DISCARD_MERGE;
 		return ELEVATOR_FRONT_MERGE;
 	}
 
block/bio.c +13 -2
index 1fab762e079b..d95e3456ba0c 100644
@@ -979,6 +979,14 @@ static int bio_iov_bvec_set_append(struct bio *bio, struct iov_iter *iter)
 	return 0;
 }
 
+static void bio_put_pages(struct page **pages, size_t size, size_t off)
+{
+	size_t i, nr = DIV_ROUND_UP(size + (off & ~PAGE_MASK), PAGE_SIZE);
+
+	for (i = 0; i < nr; i++)
+		put_page(pages[i]);
+}
+
 #define PAGE_PTRS_PER_BVEC     (sizeof(struct bio_vec) / sizeof(struct page *))
 
 /**
@@ -1023,8 +1031,10 @@ static int __bio_iov_iter_get_pages(struct bio *bio, struct iov_iter *iter)
 			if (same_page)
 				put_page(page);
 		} else {
-			if (WARN_ON_ONCE(bio_full(bio, len)))
-                                return -EINVAL;
+			if (WARN_ON_ONCE(bio_full(bio, len))) {
+				bio_put_pages(pages + i, left, offset);
+				return -EINVAL;
+			}
 			__bio_add_page(bio, page, len, offset);
 		}
 		offset = 0;
@@ -1069,6 +1079,7 @@ static int __bio_iov_append_get_pages(struct bio *bio, struct iov_iter *iter)
 		len = min_t(size_t, PAGE_SIZE - offset, left);
 		if (bio_add_hw_page(q, bio, page, len, offset,
 				max_append_sectors, &same_page) != len) {
+			bio_put_pages(pages + i, left, offset);
 			ret = -EINVAL;
 			break;
 		}
block/blk-crypto.c +1 -1
index c5bdaafffa29..103c2e2d50d6 100644
@@ -332,7 +332,7 @@ int blk_crypto_init_key(struct blk_crypto_key *blk_key, const u8 *raw_key,
 	if (mode->keysize == 0)
 		return -EINVAL;
 
-	if (dun_bytes == 0 || dun_bytes > BLK_CRYPTO_MAX_IV_SIZE)
+	if (dun_bytes == 0 || dun_bytes > mode->ivsize)
 		return -EINVAL;
 
 	if (!is_power_of_2(data_unit_size))
block/blk-merge.c +2 -16
index bcdff1879c34..526953525e35 100644
@@ -348,6 +348,8 @@ void __blk_queue_split(struct bio **bio, unsigned int *nr_segs)
 		trace_block_split(split, (*bio)->bi_iter.bi_sector);
 		submit_bio_noacct(*bio);
 		*bio = split;
+
+		blk_throtl_charge_bio_split(*bio);
 	}
 }
 
@@ -705,22 +707,6 @@ static void blk_account_io_merge_request(struct request *req)
 	}
 }
 
-/*
- * Two cases of handling DISCARD merge:
- * If max_discard_segments > 1, the driver takes every bio
- * as a range and send them to controller together. The ranges
- * needn't to be contiguous.
- * Otherwise, the bios/requests will be handled as same as
- * others which should be contiguous.
- */
-static inline bool blk_discard_mergable(struct request *req)
-{
-	if (req_op(req) == REQ_OP_DISCARD &&
-	    queue_max_discard_segments(req->q) > 1)
-		return true;
-	return false;
-}
-
 static enum elv_merge blk_try_req_merge(struct request *req,
 					struct request *next)
 {
block/blk-throttle.c +32 -0
index b1b22d863bdf..55c49015e533 100644
@@ -178,6 +178,9 @@ struct throtl_grp {
 	unsigned int bad_bio_cnt; /* bios exceeding latency threshold */
 	unsigned long bio_cnt_reset_time;
 
+	atomic_t io_split_cnt[2];
+	atomic_t last_io_split_cnt[2];
+
 	struct blkg_rwstat stat_bytes;
 	struct blkg_rwstat stat_ios;
 };
@@ -777,6 +780,8 @@ static inline void throtl_start_new_slice_with_credit(struct throtl_grp *tg,
 	tg->bytes_disp[rw] = 0;
 	tg->io_disp[rw] = 0;
 
+	atomic_set(&tg->io_split_cnt[rw], 0);
+
 	/*
 	 * Previous slice has expired. We must have trimmed it after last
 	 * bio dispatch. That means since start of last slice, we never used
@@ -799,6 +804,9 @@ static inline void throtl_start_new_slice(struct throtl_grp *tg, bool rw)
 	tg->io_disp[rw] = 0;
 	tg->slice_start[rw] = jiffies;
 	tg->slice_end[rw] = jiffies + tg->td->throtl_slice;
+
+	atomic_set(&tg->io_split_cnt[rw], 0);
+
 	throtl_log(&tg->service_queue,
 		   "[%c] new slice start=%lu end=%lu jiffies=%lu",
 		   rw == READ ? 'R' : 'W', tg->slice_start[rw],
@@ -1031,6 +1039,9 @@ static bool tg_may_dispatch(struct throtl_grp *tg, struct bio *bio,
 				jiffies + tg->td->throtl_slice);
 	}
 
+	if (iops_limit != UINT_MAX)
+		tg->io_disp[rw] += atomic_xchg(&tg->io_split_cnt[rw], 0);
+
 	if (tg_with_in_bps_limit(tg, bio, bps_limit, &bps_wait) &&
 	    tg_with_in_iops_limit(tg, bio, iops_limit, &iops_wait)) {
 		if (wait)
@@ -2052,12 +2063,14 @@ static void throtl_downgrade_check(struct throtl_grp *tg)
 	}
 
 	if (tg->iops[READ][LIMIT_LOW]) {
+		tg->last_io_disp[READ] += atomic_xchg(&tg->last_io_split_cnt[READ], 0);
 		iops = tg->last_io_disp[READ] * HZ / elapsed_time;
 		if (iops >= tg->iops[READ][LIMIT_LOW])
 			tg->last_low_overflow_time[READ] = now;
 	}
 
 	if (tg->iops[WRITE][LIMIT_LOW]) {
+		tg->last_io_disp[WRITE] += atomic_xchg(&tg->last_io_split_cnt[WRITE], 0);
 		iops = tg->last_io_disp[WRITE] * HZ / elapsed_time;
 		if (iops >= tg->iops[WRITE][LIMIT_LOW])
 			tg->last_low_overflow_time[WRITE] = now;
@@ -2176,6 +2189,25 @@ static inline void throtl_update_latency_buckets(struct throtl_data *td)
 }
 #endif
 
+void blk_throtl_charge_bio_split(struct bio *bio)
+{
+	struct blkcg_gq *blkg = bio->bi_blkg;
+	struct throtl_grp *parent = blkg_to_tg(blkg);
+	struct throtl_service_queue *parent_sq;
+	bool rw = bio_data_dir(bio);
+
+	do {
+		if (!parent->has_rules[rw])
+			break;
+
+		atomic_inc(&parent->io_split_cnt[rw]);
+		atomic_inc(&parent->last_io_split_cnt[rw]);
+
+		parent_sq = parent->service_queue.parent_sq;
+		parent = sq_to_tg(parent_sq);
+	} while (parent);
+}
+
 bool blk_throtl_bio(struct bio *bio)
 {
 	struct request_queue *q = bio->bi_bdev->bd_disk->queue;
block/blk.h +2 -0
index 54d48987c21b..40b00d18bdb2 100644
@@ -290,11 +290,13 @@ int create_task_io_context(struct task_struct *task, gfp_t gfp_mask, int node);
 extern int blk_throtl_init(struct request_queue *q);
 extern void blk_throtl_exit(struct request_queue *q);
 extern void blk_throtl_register_queue(struct request_queue *q);
+extern void blk_throtl_charge_bio_split(struct bio *bio);
 bool blk_throtl_bio(struct bio *bio);
 #else /* CONFIG_BLK_DEV_THROTTLING */
 static inline int blk_throtl_init(struct request_queue *q) { return 0; }
 static inline void blk_throtl_exit(struct request_queue *q) { }
 static inline void blk_throtl_register_queue(struct request_queue *q) { }
+static inline void blk_throtl_charge_bio_split(struct bio *bio) { }
 static inline bool blk_throtl_bio(struct bio *bio) { return false; }
 #endif /* CONFIG_BLK_DEV_THROTTLING */
 #ifdef CONFIG_BLK_DEV_THROTTLING_LOW
block/elevator.c +3 -0
index 440699c28119..73e0591acfd4 100644
@@ -336,6 +336,9 @@ enum elv_merge elv_merge(struct request_queue *q, struct request **req,
 	__rq = elv_rqhash_find(q, bio->bi_iter.bi_sector);
 	if (__rq && elv_bio_merge_ok(__rq, bio)) {
 		*req = __rq;
+
+		if (blk_discard_mergable(__rq))
+			return ELEVATOR_DISCARD_MERGE;
 		return ELEVATOR_BACK_MERGE;
 	}
 
block/mq-deadline.c +2 -0
index 8eea2cbf2bf4..8dca7255d04c 100644
@@ -454,6 +454,8 @@ static int dd_request_merge(struct request_queue *q, struct request **rq,
 
 		if (elv_bio_merge_ok(__rq, bio)) {
 			*rq = __rq;
+			if (blk_discard_mergable(__rq))
+				return ELEVATOR_DISCARD_MERGE;
 			return ELEVATOR_FRONT_MERGE;
 		}
 	}
certs/Makefile +8 -0
index 359239a0ee9e..f9344e52ecda 100644
@@ -57,11 +57,19 @@ endif
 redirect_openssl	= 2>&1
 quiet_redirect_openssl	= 2>&1
 silent_redirect_openssl = 2>/dev/null
+openssl_available       = $(shell openssl help 2>/dev/null && echo yes)
 
 # We do it this way rather than having a boolean option for enabling an
 # external private key, because 'make randconfig' might enable such a
 # boolean option and we unfortunately can't make it depend on !RANDCONFIG.
 ifeq ($(CONFIG_MODULE_SIG_KEY),"certs/signing_key.pem")
+
+ifeq ($(openssl_available),yes)
+X509TEXT=$(shell openssl x509 -in "certs/signing_key.pem" -text 2>/dev/null)
+
+$(if $(findstring rsaEncryption,$(X509TEXT)),,$(shell rm -f "certs/signing_key.pem"))
+endif
+
 $(obj)/signing_key.pem: $(obj)/x509.genkey
 	@$(kecho) "###"
 	@$(kecho) "### Now generating an X.509 key pair to be used for signing modules."
crypto/Makefile +0 -1
index 10526d4559b8..c633f15a0481 100644
@@ -74,7 +74,6 @@ obj-$(CONFIG_CRYPTO_NULL2) += crypto_null.o
 obj-$(CONFIG_CRYPTO_MD4) += md4.o
 obj-$(CONFIG_CRYPTO_MD5) += md5.o
 obj-$(CONFIG_CRYPTO_RMD160) += rmd160.o
-obj-$(CONFIG_CRYPTO_RMD320) += rmd320.o
 obj-$(CONFIG_CRYPTO_SHA1) += sha1_generic.o
 obj-$(CONFIG_CRYPTO_SHA256) += sha256_generic.o
 obj-$(CONFIG_CRYPTO_SHA512) += sha512_generic.o
crypto/ecc.h +3 -2
index a006132646a4..1350e8eb6ac2 100644
@@ -27,6 +27,7 @@
 #define _CRYPTO_ECC_H
 
 #include <crypto/ecc_curve.h>
+#include <asm/unaligned.h>
 
 /* One digit is u64 qword. */
 #define ECC_CURVE_NIST_P192_DIGITS  3
@@ -46,13 +47,13 @@
  * @out:      Output array
  * @ndigits:  Number of digits to copy
  */
-static inline void ecc_swap_digits(const u64 *in, u64 *out, unsigned int ndigits)
+static inline void ecc_swap_digits(const void *in, u64 *out, unsigned int ndigits)
 {
 	const __be64 *src = (__force __be64 *)in;
 	int i;
 
 	for (i = 0; i < ndigits; i++)
-		out[i] = be64_to_cpu(src[ndigits - 1 - i]);
+		out[i] = get_unaligned_be64(&src[ndigits - 1 - i]);
 }
 
 /**
crypto/tcrypt.c +19 -10
index 6b7c158dc508..f9c00875bc0e 100644
@@ -290,6 +290,11 @@ static void test_mb_aead_speed(const char *algo, int enc, int secs,
 	}
 
 	ret = crypto_aead_setauthsize(tfm, authsize);
+	if (ret) {
+		pr_err("alg: aead: Failed to setauthsize for %s: %d\n", algo,
+		       ret);
+		goto out_free_tfm;
+	}
 
 	for (i = 0; i < num_mb; ++i)
 		if (testmgr_alloc_buf(data[i].xbuf)) {
@@ -315,7 +320,7 @@ static void test_mb_aead_speed(const char *algo, int enc, int secs,
 	for (i = 0; i < num_mb; ++i) {
 		data[i].req = aead_request_alloc(tfm, GFP_KERNEL);
 		if (!data[i].req) {
-			pr_err("alg: skcipher: Failed to allocate request for %s\n",
+			pr_err("alg: aead: Failed to allocate request for %s\n",
 			       algo);
 			while (i--)
 				aead_request_free(data[i].req);
@@ -567,13 +572,19 @@ static void test_aead_speed(const char *algo, int enc, unsigned int secs,
 	sgout = &sg[9];
 
 	tfm = crypto_alloc_aead(algo, 0, 0);
-
 	if (IS_ERR(tfm)) {
 		pr_err("alg: aead: Failed to load transform for %s: %ld\n", algo,
 		       PTR_ERR(tfm));
 		goto out_notfm;
 	}
 
+	ret = crypto_aead_setauthsize(tfm, authsize);
+	if (ret) {
+		pr_err("alg: aead: Failed to setauthsize for %s: %d\n", algo,
+		       ret);
+		goto out_noreq;
+	}
+
 	crypto_init_wait(&wait);
 	printk(KERN_INFO "\ntesting speed of %s (%s) %s\n", algo,
 			get_driver_name(crypto_aead, tfm), e);
@@ -611,8 +622,13 @@ static void test_aead_speed(const char *algo, int enc, unsigned int secs,
 					break;
 				}
 			}
+
 			ret = crypto_aead_setkey(tfm, key, *keysize);
-			ret = crypto_aead_setauthsize(tfm, authsize);
+			if (ret) {
+				pr_err("setkey() failed flags=%x: %d\n",
+					crypto_aead_get_flags(tfm), ret);
+				goto out;
+			}
 
 			iv_len = crypto_aead_ivsize(tfm);
 			if (iv_len)
@@ -622,15 +638,8 @@ static void test_aead_speed(const char *algo, int enc, unsigned int secs,
 			printk(KERN_INFO "test %u (%d bit key, %d byte blocks): ",
 					i, *keysize * 8, bs);
 
-
 			memset(tvmem[0], 0xff, PAGE_SIZE);
 
-			if (ret) {
-				pr_err("setkey() failed flags=%x\n",
-						crypto_aead_get_flags(tfm));
-				goto out;
-			}
-
 			sg_init_aead(sg, xbuf, bs + (enc ? 0 : authsize),
 				     assoc, aad_size);
 
drivers/ata/libata-core.c +1 -1
index 61c762961ca8..44f434acfce0 100644
@@ -5573,7 +5573,7 @@ int ata_host_start(struct ata_host *host)
 			have_stop = 1;
 	}
 
-	if (host->ops->host_stop)
+	if (host->ops && host->ops->host_stop)
 		have_stop = 1;
 
 	if (have_stop) {
drivers/auxdisplay/hd44780.c +1 -1
index 2e5e7c993933..8b2a0eb3f32a 100644
@@ -323,8 +323,8 @@ static int hd44780_remove(struct platform_device *pdev)
 {
 	struct charlcd *lcd = platform_get_drvdata(pdev);
 
-	kfree(lcd->drvdata);
 	charlcd_unregister(lcd);
+	kfree(lcd->drvdata);
 
 	kfree(lcd);
 	return 0;
drivers/base/dd.c +10 -6
index 592b3955abe2..a421da0c9c01 100644
@@ -560,7 +560,8 @@ static int really_probe(struct device *dev, struct device_driver *drv)
 			goto probe_failed;
 	}
 
-	if (driver_sysfs_add(dev)) {
+	ret = driver_sysfs_add(dev);
+	if (ret) {
 		pr_err("%s: driver_sysfs_add(%s) failed\n",
 		       __func__, dev_name(dev));
 		goto probe_failed;
@@ -582,15 +583,18 @@ static int really_probe(struct device *dev, struct device_driver *drv)
 			goto probe_failed;
 	}
 
-	if (device_add_groups(dev, drv->dev_groups)) {
+	ret = device_add_groups(dev, drv->dev_groups);
+	if (ret) {
 		dev_err(dev, "device_add_groups() failed\n");
 		goto dev_groups_failed;
 	}
 
-	if (dev_has_sync_state(dev) &&
-	    device_create_file(dev, &dev_attr_state_synced)) {
-		dev_err(dev, "state_synced sysfs add failed\n");
-		goto dev_sysfs_state_synced_failed;
+	if (dev_has_sync_state(dev)) {
+		ret = device_create_file(dev, &dev_attr_state_synced);
+		if (ret) {
+			dev_err(dev, "state_synced sysfs add failed\n");
+			goto dev_sysfs_state_synced_failed;
+		}
 	}
 
 	if (test_remove) {
drivers/base/firmware_loader/main.c +8 -12
index 68c549d71230..bdbedc6660a8 100644
@@ -165,7 +165,7 @@ static inline int fw_state_wait(struct fw_priv *fw_priv)
 	return __fw_state_wait_common(fw_priv, MAX_SCHEDULE_TIMEOUT);
 }
 
-static int fw_cache_piggyback_on_request(const char *name);
+static void fw_cache_piggyback_on_request(struct fw_priv *fw_priv);
 
 static struct fw_priv *__allocate_fw_priv(const char *fw_name,
 					  struct firmware_cache *fwc,
@@ -707,10 +707,8 @@ int assign_fw(struct firmware *fw, struct device *device)
 	 * on request firmware.
 	 */
 	if (!(fw_priv->opt_flags & FW_OPT_NOCACHE) &&
-	    fw_priv->fwc->state == FW_LOADER_START_CACHE) {
-		if (fw_cache_piggyback_on_request(fw_priv->fw_name))
-			kref_get(&fw_priv->ref);
-	}
+	    fw_priv->fwc->state == FW_LOADER_START_CACHE)
+		fw_cache_piggyback_on_request(fw_priv);
 
 	/* pass the pages buffer to driver at the last minute */
 	fw_set_page_data(fw_priv, fw);
@@ -1259,11 +1257,11 @@ static int __fw_entry_found(const char *name)
 	return 0;
 }
 
-static int fw_cache_piggyback_on_request(const char *name)
+static void fw_cache_piggyback_on_request(struct fw_priv *fw_priv)
 {
-	struct firmware_cache *fwc = &fw_cache;
+	const char *name = fw_priv->fw_name;
+	struct firmware_cache *fwc = fw_priv->fwc;
 	struct fw_cache_entry *fce;
-	int ret = 0;
 
 	spin_lock(&fwc->name_lock);
 	if (__fw_entry_found(name))
@@ -1271,13 +1269,12 @@ static int fw_cache_piggyback_on_request(const char *name)
 
 	fce = alloc_fw_cache_entry(name);
 	if (fce) {
-		ret = 1;
 		list_add(&fce->list, &fwc->fw_names);
+		kref_get(&fw_priv->ref);
 		pr_debug("%s: fw: %s\n", __func__, name);
 	}
 found:
 	spin_unlock(&fwc->name_lock);
-	return ret;
 }
 
 static void free_fw_cache_entry(struct fw_cache_entry *fce)
@@ -1508,9 +1505,8 @@ static inline void unregister_fw_pm_ops(void)
 	unregister_pm_notifier(&fw_cache.pm_notify);
 }
 #else
-static int fw_cache_piggyback_on_request(const char *name)
+static void fw_cache_piggyback_on_request(struct fw_priv *fw_priv)
 {
-	return 0;
 }
 static inline int register_fw_pm_ops(void)
 {
drivers/base/regmap/regmap.c +1 -1
index 297e95be25b3..cf1dca0cde2c 100644
@@ -1652,7 +1652,7 @@ static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg,
 			if (ret) {
 				dev_err(map->dev,
 					"Error in caching of register: %x ret: %d\n",
-					reg + i, ret);
+					reg + regmap_get_offset(map, i), ret);
 				return ret;
 			}
 		}
drivers/bcma/main.c +3 -3
index 6535614a7dc1..1df2b5801c3b 100644
@@ -236,6 +236,7 @@ EXPORT_SYMBOL(bcma_core_irq);
 
 void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core)
 {
+	device_initialize(&core->dev);
 	core->dev.release = bcma_release_core_dev;
 	core->dev.bus = &bcma_bus_type;
 	dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index);
@@ -277,11 +278,10 @@ static void bcma_register_core(struct bcma_bus *bus, struct bcma_device *core)
 {
 	int err;
 
-	err = device_register(&core->dev);
+	err = device_add(&core->dev);
 	if (err) {
 		bcma_err(bus, "Could not register dev for core 0x%03X\n",
 			 core->id.id);
-		put_device(&core->dev);
 		return;
 	}
 	core->dev_registered = true;
@@ -372,7 +372,7 @@ void bcma_unregister_cores(struct bcma_bus *bus)
 	/* Now noone uses internally-handled cores, we can free them */
 	list_for_each_entry_safe(core, tmp, &bus->cores, list) {
 		list_del(&core->list);
-		kfree(core);
+		put_device(&core->dev);
 	}
 }
 
drivers/block/nbd.c +14 -2
index 1061894a55df..4acf5c6cb80d 100644
@@ -1369,6 +1369,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
 		       unsigned int cmd, unsigned long arg)
 {
 	struct nbd_config *config = nbd->config;
+	loff_t bytesize;
 
 	switch (cmd) {
 	case NBD_DISCONNECT:
@@ -1383,8 +1384,9 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
 	case NBD_SET_SIZE:
 		return nbd_set_size(nbd, arg, config->blksize);
 	case NBD_SET_SIZE_BLOCKS:
-		return nbd_set_size(nbd, arg * config->blksize,
-				    config->blksize);
+		if (check_mul_overflow((loff_t)arg, config->blksize, &bytesize))
+			return -EINVAL;
+		return nbd_set_size(nbd, bytesize, config->blksize);
 	case NBD_SET_TIMEOUT:
 		nbd_set_cmd_timeout(nbd, arg);
 		return 0;
@@ -1715,7 +1717,17 @@ static int nbd_dev_add(int index)
 	refcount_set(&nbd->refs, 1);
 	INIT_LIST_HEAD(&nbd->list);
 	disk->major = NBD_MAJOR;
+
+	/* Too big first_minor can cause duplicate creation of
+	 * sysfs files/links, since first_minor will be truncated to
+	 * byte in __device_add_disk().
+	 */
 	disk->first_minor = index << part_shift;
+	if (disk->first_minor > 0xff) {
+		err = -EINVAL;
+		goto out_free_idr;
+	}
+
 	disk->fops = &nbd_fops;
 	disk->private_data = nbd;
 	sprintf(disk->disk_name, "nbd%d", index);
drivers/bluetooth/btusb.c +10 -8
index 9122f9cc97cb..ae0cf5e71584 100644
@@ -2912,10 +2912,11 @@ static int btusb_setup_intel_new(struct hci_dev *hdev)
 	/* Read the Intel supported features and if new exception formats
 	 * supported, need to load the additional DDC config to enable.
 	 */
-	btintel_read_debug_features(hdev, &features);
-
-	/* Set DDC mask for available debug features */
-	btintel_set_debug_features(hdev, &features);
+	err = btintel_read_debug_features(hdev, &features);
+	if (!err) {
+		/* Set DDC mask for available debug features */
+		btintel_set_debug_features(hdev, &features);
+	}
 
 	/* Read the Intel version information after loading the FW  */
 	err = btintel_read_version(hdev, &ver);
@@ -3008,10 +3009,11 @@ static int btusb_setup_intel_newgen(struct hci_dev *hdev)
 	/* Read the Intel supported features and if new exception formats
 	 * supported, need to load the additional DDC config to enable.
 	 */
-	btintel_read_debug_features(hdev, &features);
-
-	/* Set DDC mask for available debug features */
-	btintel_set_debug_features(hdev, &features);
+	err = btintel_read_debug_features(hdev, &features);
+	if (!err) {
+		/* Set DDC mask for available debug features */
+		btintel_set_debug_features(hdev, &features);
+	}
 
 	/* Read the Intel version information after loading the FW  */
 	err = btintel_read_version_tlv(hdev, &version);
drivers/char/tpm/Kconfig +0 -1
index 4308f9ca7a43..d6ba644f6b00 100644
@@ -89,7 +89,6 @@ config TCG_TIS_SYNQUACER
 config TCG_TIS_I2C_CR50
 	tristate "TPM Interface Specification 2.0 Interface (I2C - CR50)"
 	depends on I2C
-	select TCG_CR50
 	help
 	  This is a driver for the Google cr50 I2C TPM interface which is a
 	  custom microcontroller and requires a custom i2c protocol interface
drivers/char/tpm/tpm_ibmvtpm.c +15 -11
index 903604769de9..3af4c07a9342 100644
@@ -106,17 +106,12 @@ static int tpm_ibmvtpm_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 {
 	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
 	u16 len;
-	int sig;
 
 	if (!ibmvtpm->rtce_buf) {
 		dev_err(ibmvtpm->dev, "ibmvtpm device is not ready\n");
 		return 0;
 	}
 
-	sig = wait_event_interruptible(ibmvtpm->wq, !ibmvtpm->tpm_processing_cmd);
-	if (sig)
-		return -EINTR;
-
 	len = ibmvtpm->res_len;
 
 	if (count < len) {
@@ -237,7 +232,7 @@ static int tpm_ibmvtpm_send(struct tpm_chip *chip, u8 *buf, size_t count)
 	 * set the processing flag before the Hcall, since we may get the
 	 * result (interrupt) before even being able to check rc.
 	 */
-	ibmvtpm->tpm_processing_cmd = true;
+	ibmvtpm->tpm_processing_cmd = 1;
 
 again:
 	rc = ibmvtpm_send_crq(ibmvtpm->vdev,
@@ -255,7 +250,7 @@ static int tpm_ibmvtpm_send(struct tpm_chip *chip, u8 *buf, size_t count)
 			goto again;
 		}
 		dev_err(ibmvtpm->dev, "tpm_ibmvtpm_send failed rc=%d\n", rc);
-		ibmvtpm->tpm_processing_cmd = false;
+		ibmvtpm->tpm_processing_cmd = 0;
 	}
 
 	spin_unlock(&ibmvtpm->rtce_lock);
@@ -269,7 +264,9 @@ static void tpm_ibmvtpm_cancel(struct tpm_chip *chip)
 
 static u8 tpm_ibmvtpm_status(struct tpm_chip *chip)
 {
-	return 0;
+	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
+
+	return ibmvtpm->tpm_processing_cmd;
 }
 
 /**
@@ -457,7 +454,7 @@ static const struct tpm_class_ops tpm_ibmvtpm = {
 	.send = tpm_ibmvtpm_send,
 	.cancel = tpm_ibmvtpm_cancel,
 	.status = tpm_ibmvtpm_status,
-	.req_complete_mask = 0,
+	.req_complete_mask = 1,
 	.req_complete_val = 0,
 	.req_canceled = tpm_ibmvtpm_req_canceled,
 };
@@ -550,7 +547,7 @@ static void ibmvtpm_crq_process(struct ibmvtpm_crq *crq,
 		case VTPM_TPM_COMMAND_RES:
 			/* len of the data in rtce buffer */
 			ibmvtpm->res_len = be16_to_cpu(crq->len);
-			ibmvtpm->tpm_processing_cmd = false;
+			ibmvtpm->tpm_processing_cmd = 0;
 			wake_up_interruptible(&ibmvtpm->wq);
 			return;
 		default:
@@ -688,8 +685,15 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
 		goto init_irq_cleanup;
 	}
 
-	if (!strcmp(id->compat, "IBM,vtpm20")) {
+
+	if (!strcmp(id->compat, "IBM,vtpm20"))
 		chip->flags |= TPM_CHIP_FLAG_TPM2;
+
+	rc = tpm_get_timeouts(chip);
+	if (rc)
+		goto init_irq_cleanup;
+
+	if (chip->flags & TPM_CHIP_FLAG_TPM2) {
 		rc = tpm2_get_cc_attrs_tbl(chip);
 		if (rc)
 			goto init_irq_cleanup;
drivers/char/tpm/tpm_ibmvtpm.h +1 -1
index b92aa7d3e93e..51198b137461 100644
@@ -41,7 +41,7 @@ struct ibmvtpm_dev {
 	wait_queue_head_t wq;
 	u16 res_len;
 	u32 vtpm_version;
-	bool tpm_processing_cmd;
+	u8 tpm_processing_cmd;
 };
 
 #define CRQ_RES_BUF_SIZE	PAGE_SIZE
drivers/clk/mvebu/kirkwood.c +1 -0
index 47680237d0be..8bc893df4736 100644
@@ -265,6 +265,7 @@ static const char *powersave_parents[] = {
 static const struct clk_muxing_soc_desc kirkwood_mux_desc[] __initconst = {
 	{ "powersave", powersave_parents, ARRAY_SIZE(powersave_parents),
 		11, 1, 0 },
+	{ }
 };
 
 static struct clk *clk_muxing_get_src(
drivers/clocksource/sh_cmt.c +18 -12
index d7ed99f0001f..dd0956ad969c 100644
@@ -579,7 +579,8 @@ static int sh_cmt_start(struct sh_cmt_channel *ch, unsigned long flag)
 	ch->flags |= flag;
 
 	/* setup timeout if no clockevent */
-	if ((flag == FLAG_CLOCKSOURCE) && (!(ch->flags & FLAG_CLOCKEVENT)))
+	if (ch->cmt->num_channels == 1 &&
+	    flag == FLAG_CLOCKSOURCE && (!(ch->flags & FLAG_CLOCKEVENT)))
 		__sh_cmt_set_next(ch, ch->max_match_value);
  out:
 	raw_spin_unlock_irqrestore(&ch->lock, flags);
@@ -621,20 +622,25 @@ static struct sh_cmt_channel *cs_to_sh_cmt(struct clocksource *cs)
 static u64 sh_cmt_clocksource_read(struct clocksource *cs)
 {
 	struct sh_cmt_channel *ch = cs_to_sh_cmt(cs);
-	unsigned long flags;
 	u32 has_wrapped;
-	u64 value;
-	u32 raw;
 
-	raw_spin_lock_irqsave(&ch->lock, flags);
-	value = ch->total_cycles;
-	raw = sh_cmt_get_counter(ch, &has_wrapped);
+	if (ch->cmt->num_channels == 1) {
+		unsigned long flags;
+		u64 value;
+		u32 raw;
 
-	if (unlikely(has_wrapped))
-		raw += ch->match_value + 1;
-	raw_spin_unlock_irqrestore(&ch->lock, flags);
+		raw_spin_lock_irqsave(&ch->lock, flags);
+		value = ch->total_cycles;
+		raw = sh_cmt_get_counter(ch, &has_wrapped);
+
+		if (unlikely(has_wrapped))
+			raw += ch->match_value + 1;
+		raw_spin_unlock_irqrestore(&ch->lock, flags);
+
+		return value + raw;
+	}
 
-	return value + raw;
+	return sh_cmt_get_counter(ch, &has_wrapped);
 }
 
 static int sh_cmt_clocksource_enable(struct clocksource *cs)
@@ -697,7 +703,7 @@ static int sh_cmt_register_clocksource(struct sh_cmt_channel *ch,
 	cs->disable = sh_cmt_clocksource_disable;
 	cs->suspend = sh_cmt_clocksource_suspend;
 	cs->resume = sh_cmt_clocksource_resume;
-	cs->mask = CLOCKSOURCE_MASK(sizeof(u64) * 8);
+	cs->mask = CLOCKSOURCE_MASK(ch->cmt->info->width);
 	cs->flags = CLOCK_SOURCE_IS_CONTINUOUS;
 
 	dev_info(&ch->cmt->pdev->dev, "ch%u: used as clock source\n",
drivers/counter/104-quad-8.c +3 -2
index 9691f8612be8..8de776f3b142 100644
@@ -715,12 +715,13 @@ static ssize_t quad8_count_ceiling_write(struct counter_device *counter,
 	case 1:
 	case 3:
 		quad8_preset_register_set(priv, count->id, ceiling);
-		break;
+		mutex_unlock(&priv->lock);
+		return len;
 	}
 
 	mutex_unlock(&priv->lock);
 
-	return len;
+	return -EINVAL;
 }
 
 static ssize_t quad8_count_preset_enable_read(struct counter_device *counter,
drivers/crypto/hisilicon/sec2/sec.h +0 -5
index dfdce2f21e65..1aeb53f28edd 100644
@@ -140,11 +140,6 @@ struct sec_ctx {
 	struct device *dev;
 };
 
-enum sec_endian {
-	SEC_LE = 0,
-	SEC_32BE,
-	SEC_64BE
-};
 
 enum sec_debug_file_index {
 	SEC_CLEAR_ENABLE,
drivers/crypto/hisilicon/sec2/sec_main.c +11 -23
index 6f0062d4408c..0305e656b477 100644
@@ -304,31 +304,20 @@ static const struct pci_device_id sec_dev_ids[] = {
 };
 MODULE_DEVICE_TABLE(pci, sec_dev_ids);
 
-static u8 sec_get_endian(struct hisi_qm *qm)
+static void sec_set_endian(struct hisi_qm *qm)
 {
 	u32 reg;
 
-	/*
-	 * As for VF, it is a wrong way to get endian setting by
-	 * reading a register of the engine
-	 */
-	if (qm->pdev->is_virtfn) {
-		dev_err_ratelimited(&qm->pdev->dev,
-				    "cannot access a register in VF!\n");
-		return SEC_LE;
-	}
 	reg = readl_relaxed(qm->io_base + SEC_CONTROL_REG);
-	/* BD little endian mode */
-	if (!(reg & BIT(0)))
-		return SEC_LE;
+	reg &= ~(BIT(1) | BIT(0));
+	if (!IS_ENABLED(CONFIG_64BIT))
+		reg |= BIT(1);
 
-	/* BD 32-bits big endian mode */
-	else if (!(reg & BIT(1)))
-		return SEC_32BE;
 
-	/* BD 64-bits big endian mode */
-	else
-		return SEC_64BE;
+	if (!IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN))
+		reg |= BIT(0);
+
+	writel_relaxed(reg, qm->io_base + SEC_CONTROL_REG);
 }
 
 static int sec_engine_init(struct hisi_qm *qm)
@@ -382,9 +371,7 @@ static int sec_engine_init(struct hisi_qm *qm)
 		       qm->io_base + SEC_BD_ERR_CHK_EN_REG3);
 
 	/* config endian */
-	reg = readl_relaxed(qm->io_base + SEC_CONTROL_REG);
-	reg |= sec_get_endian(qm);
-	writel_relaxed(reg, qm->io_base + SEC_CONTROL_REG);
+	sec_set_endian(qm);
 
 	return 0;
 }
@@ -921,7 +908,8 @@ static int sec_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	return 0;
 
 err_alg_unregister:
-	hisi_qm_alg_unregister(qm, &sec_devices);
+	if (qm->qp_num >= ctx_q_num)
+		hisi_qm_alg_unregister(qm, &sec_devices);
 err_qm_stop:
 	sec_debugfs_exit(qm);
 	hisi_qm_stop(qm, QM_NORMAL);
drivers/crypto/mxs-dcp.c +35 -10

90 lines not on this page · raw message

drivers/crypto/omap-aes.c +4 -4
index 0dd4c6b157de..9b968ac4ee7b 100644
@@ -1175,9 +1175,9 @@ static int omap_aes_probe(struct platform_device *pdev)
 	spin_lock_init(&dd->lock);
 
 	INIT_LIST_HEAD(&dd->list);
-	spin_lock(&list_lock);
+	spin_lock_bh(&list_lock);
 	list_add_tail(&dd->list, &dev_list);
-	spin_unlock(&list_lock);
+	spin_unlock_bh(&list_lock);
 
 	/* Initialize crypto engine */
 	dd->engine = crypto_engine_alloc_init(dev, 1);
@@ -1264,9 +1264,9 @@ static int omap_aes_remove(struct platform_device *pdev)
 	if (!dd)
 		return -ENODEV;
 
-	spin_lock(&list_lock);
+	spin_lock_bh(&list_lock);
 	list_del(&dd->list);
-	spin_unlock(&list_lock);
+	spin_unlock_bh(&list_lock);
 
 	for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
 		for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) {
drivers/crypto/omap-des.c +4 -4
index c9d38bcfd1c7..7fdf38e07adf 100644
@@ -1035,9 +1035,9 @@ static int omap_des_probe(struct platform_device *pdev)
 
 
 	INIT_LIST_HEAD(&dd->list);
-	spin_lock(&list_lock);
+	spin_lock_bh(&list_lock);
 	list_add_tail(&dd->list, &dev_list);
-	spin_unlock(&list_lock);
+	spin_unlock_bh(&list_lock);
 
 	/* Initialize des crypto engine */
 	dd->engine = crypto_engine_alloc_init(dev, 1);
@@ -1096,9 +1096,9 @@ static int omap_des_remove(struct platform_device *pdev)
 	if (!dd)
 		return -ENODEV;
 
-	spin_lock(&list_lock);
+	spin_lock_bh(&list_lock);
 	list_del(&dd->list);
-	spin_unlock(&list_lock);
+	spin_unlock_bh(&list_lock);
 
 	for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
 		for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--)
drivers/crypto/omap-sham.c +7 -7
index dd53ad9987b0..63beea7cdba5 100644
@@ -1736,7 +1736,7 @@ static void omap_sham_done_task(unsigned long data)
 		if (test_and_clear_bit(FLAGS_OUTPUT_READY, &dd->flags))
 			goto finish;
 	} else if (test_bit(FLAGS_DMA_READY, &dd->flags)) {
-		if (test_and_clear_bit(FLAGS_DMA_ACTIVE, &dd->flags)) {
+		if (test_bit(FLAGS_DMA_ACTIVE, &dd->flags)) {
 			omap_sham_update_dma_stop(dd);
 			if (dd->err) {
 				err = dd->err;
@@ -2144,9 +2144,9 @@ static int omap_sham_probe(struct platform_device *pdev)
 		(rev & dd->pdata->major_mask) >> dd->pdata->major_shift,
 		(rev & dd->pdata->minor_mask) >> dd->pdata->minor_shift);
 
-	spin_lock(&sham.lock);
+	spin_lock_bh(&sham.lock);
 	list_add_tail(&dd->list, &sham.dev_list);
-	spin_unlock(&sham.lock);
+	spin_unlock_bh(&sham.lock);
 
 	dd->engine = crypto_engine_alloc_init(dev, 1);
 	if (!dd->engine) {
@@ -2194,9 +2194,9 @@ static int omap_sham_probe(struct platform_device *pdev)
 err_engine_start:
 	crypto_engine_exit(dd->engine);
 err_engine:
-	spin_lock(&sham.lock);
+	spin_lock_bh(&sham.lock);
 	list_del(&dd->list);
-	spin_unlock(&sham.lock);
+	spin_unlock_bh(&sham.lock);
 err_pm:
 	pm_runtime_disable(dev);
 	if (!dd->polling_mode)
@@ -2215,9 +2215,9 @@ static int omap_sham_remove(struct platform_device *pdev)
 	dd = platform_get_drvdata(pdev);
 	if (!dd)
 		return -ENODEV;
-	spin_lock(&sham.lock);
+	spin_lock_bh(&sham.lock);
 	list_del(&dd->list);
-	spin_unlock(&sham.lock);
+	spin_unlock_bh(&sham.lock);
 	for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
 		for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) {
 			crypto_unregister_ahash(
drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c +2 -2
index 15f6b9bdfb22..ddf42fb32625 100644
@@ -81,10 +81,10 @@ void adf_init_hw_data_c3xxxiov(struct adf_hw_device_data *hw_data)
 	hw_data->enable_error_correction = adf_vf_void_noop;
 	hw_data->init_admin_comms = adf_vf_int_noop;
 	hw_data->exit_admin_comms = adf_vf_void_noop;
-	hw_data->send_admin_init = adf_vf2pf_init;
+	hw_data->send_admin_init = adf_vf2pf_notify_init;
 	hw_data->init_arb = adf_vf_int_noop;
 	hw_data->exit_arb = adf_vf_void_noop;
-	hw_data->disable_iov = adf_vf2pf_shutdown;
+	hw_data->disable_iov = adf_vf2pf_notify_shutdown;
 	hw_data->get_accel_mask = get_accel_mask;
 	hw_data->get_ae_mask = get_ae_mask;
 	hw_data->get_num_accels = get_num_accels;
drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c +2 -2
index d231583428c9..7e202ef92523 100644
@@ -81,10 +81,10 @@ void adf_init_hw_data_c62xiov(struct adf_hw_device_data *hw_data)
 	hw_data->enable_error_correction = adf_vf_void_noop;
 	hw_data->init_admin_comms = adf_vf_int_noop;
 	hw_data->exit_admin_comms = adf_vf_void_noop;
-	hw_data->send_admin_init = adf_vf2pf_init;
+	hw_data->send_admin_init = adf_vf2pf_notify_init;
 	hw_data->init_arb = adf_vf_int_noop;
 	hw_data->exit_arb = adf_vf_void_noop;
-	hw_data->disable_iov = adf_vf2pf_shutdown;
+	hw_data->disable_iov = adf_vf2pf_notify_shutdown;
 	hw_data->get_accel_mask = get_accel_mask;
 	hw_data->get_ae_mask = get_ae_mask;
 	hw_data->get_num_accels = get_num_accels;
drivers/crypto/qat/qat_common/adf_common_drv.h +4 -4
index c61476553728..dd4a811b7e89 100644
@@ -198,8 +198,8 @@ void adf_enable_vf2pf_interrupts(struct adf_accel_dev *accel_dev,
 void adf_enable_pf2vf_interrupts(struct adf_accel_dev *accel_dev);
 void adf_disable_pf2vf_interrupts(struct adf_accel_dev *accel_dev);
 
-int adf_vf2pf_init(struct adf_accel_dev *accel_dev);
-void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev);
+int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev);
+void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev);
 int adf_init_pf_wq(void);
 void adf_exit_pf_wq(void);
 int adf_init_vf_wq(void);
@@ -222,12 +222,12 @@ static inline void adf_disable_pf2vf_interrupts(struct adf_accel_dev *accel_dev)
 {
 }
 
-static inline int adf_vf2pf_init(struct adf_accel_dev *accel_dev)
+static inline int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev)
 {
 	return 0;
 }
 
-static inline void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev)
+static inline void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev)
 {
 }
 
drivers/crypto/qat/qat_common/adf_init.c +3 -2
index 744c40351428..02864985dbb0 100644
@@ -61,6 +61,7 @@ int adf_dev_init(struct adf_accel_dev *accel_dev)
 	struct service_hndl *service;
 	struct list_head *list_itr;
 	struct adf_hw_device_data *hw_data = accel_dev->hw_device;
+	int ret;
 
 	if (!hw_data) {
 		dev_err(&GET_DEV(accel_dev),
@@ -127,9 +128,9 @@ int adf_dev_init(struct adf_accel_dev *accel_dev)
 	}
 
 	hw_data->enable_error_correction(accel_dev);
-	hw_data->enable_vf2pf_comms(accel_dev);
+	ret = hw_data->enable_vf2pf_comms(accel_dev);
 
-	return 0;
+	return ret;
 }
 EXPORT_SYMBOL_GPL(adf_dev_init);
 
drivers/crypto/qat/qat_common/adf_isr.c +4 -3
index e3ad5587be49..daab02011717 100644
@@ -15,6 +15,8 @@
 #include "adf_transport_access_macros.h"
 #include "adf_transport_internal.h"
 
+#define ADF_MAX_NUM_VFS	32
+
 static int adf_enable_msix(struct adf_accel_dev *accel_dev)
 {
 	struct adf_accel_pci *pci_dev_info = &accel_dev->accel_pci_dev;
@@ -72,7 +74,7 @@ static irqreturn_t adf_msix_isr_ae(int irq, void *dev_ptr)
 		struct adf_bar *pmisc =
 			&GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)];
 		void __iomem *pmisc_bar_addr = pmisc->virt_addr;
-		u32 vf_mask;
+		unsigned long vf_mask;
 
 		/* Get the interrupt sources triggered by VFs */
 		vf_mask = ((ADF_CSR_RD(pmisc_bar_addr, ADF_ERRSOU5) &
@@ -93,8 +95,7 @@ static irqreturn_t adf_msix_isr_ae(int irq, void *dev_ptr)
 			 * unless the VF is malicious and is attempting to
 			 * flood the host OS with VF2PF interrupts.
 			 */
-			for_each_set_bit(i, (const unsigned long *)&vf_mask,
-					 (sizeof(vf_mask) * BITS_PER_BYTE)) {
+			for_each_set_bit(i, &vf_mask, ADF_MAX_NUM_VFS) {
 				vf_info = accel_dev->pf.vf_info + i;
 
 				if (!__ratelimit(&vf_info->vf2pf_ratelimit)) {
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c +2 -1
index a1b77bd7a894..efa4bffb4f60 100644
@@ -186,7 +186,6 @@ int adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(adf_iov_putmsg);
 
 void adf_vf2pf_req_hndl(struct adf_accel_vf_info *vf_info)
 {
@@ -316,6 +315,8 @@ static int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev)
 	msg |= ADF_PFVF_COMPATIBILITY_VERSION << ADF_VF2PF_COMPAT_VER_REQ_SHIFT;
 	BUILD_BUG_ON(ADF_PFVF_COMPATIBILITY_VERSION > 255);
 
+	reinit_completion(&accel_dev->vf.iov_msg_completion);
+
 	/* Send request from VF to PF */
 	ret = adf_iov_putmsg(accel_dev, msg, 0);
 	if (ret) {
drivers/crypto/qat/qat_common/adf_vf2pf_msg.c +6 -6
index e85bd62d134a..3e25fac051b2 100644
@@ -5,14 +5,14 @@
 #include "adf_pf2vf_msg.h"
 
 /**
- * adf_vf2pf_init() - send init msg to PF
+ * adf_vf2pf_notify_init() - send init msg to PF
  * @accel_dev:  Pointer to acceleration VF device.
  *
  * Function sends an init message from the VF to a PF
  *
  * Return: 0 on success, error code otherwise.
  */
-int adf_vf2pf_init(struct adf_accel_dev *accel_dev)
+int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev)
 {
 	u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM |
 		(ADF_VF2PF_MSGTYPE_INIT << ADF_VF2PF_MSGTYPE_SHIFT));
@@ -25,17 +25,17 @@ int adf_vf2pf_init(struct adf_accel_dev *accel_dev)
 	set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
 	return 0;
 }
-EXPORT_SYMBOL_GPL(adf_vf2pf_init);
+EXPORT_SYMBOL_GPL(adf_vf2pf_notify_init);
 
 /**
- * adf_vf2pf_shutdown() - send shutdown msg to PF
+ * adf_vf2pf_notify_shutdown() - send shutdown msg to PF
  * @accel_dev:  Pointer to acceleration VF device.
  *
  * Function sends a shutdown message from the VF to a PF
  *
  * Return: void
  */
-void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev)
+void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev)
 {
 	u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM |
 	    (ADF_VF2PF_MSGTYPE_SHUTDOWN << ADF_VF2PF_MSGTYPE_SHIFT));
@@ -45,4 +45,4 @@ void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev)
 			dev_err(&GET_DEV(accel_dev),
 				"Failed to send Shutdown event to PF\n");
 }
-EXPORT_SYMBOL_GPL(adf_vf2pf_shutdown);
+EXPORT_SYMBOL_GPL(adf_vf2pf_notify_shutdown);
drivers/crypto/qat/qat_common/adf_vf_isr.c +4 -3
index 888388acb6bd..3e4f64d248f9 100644
@@ -160,6 +160,7 @@ static irqreturn_t adf_isr(int irq, void *privdata)
 	struct adf_bar *pmisc =
 			&GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)];
 	void __iomem *pmisc_bar_addr = pmisc->virt_addr;
+	bool handled = false;
 	u32 v_int;
 
 	/* Read VF INT source CSR to determine the source of VF interrupt */
@@ -172,7 +173,7 @@ static irqreturn_t adf_isr(int irq, void *privdata)
 
 		/* Schedule tasklet to handle interrupt BH */
 		tasklet_hi_schedule(&accel_dev->vf.pf2vf_bh_tasklet);
-		return IRQ_HANDLED;
+		handled = true;
 	}
 
 	/* Check bundle interrupt */
@@ -184,10 +185,10 @@ static irqreturn_t adf_isr(int irq, void *privdata)
 		csr_ops->write_csr_int_flag_and_col(bank->csr_addr,
 						    bank->bank_number, 0);
 		tasklet_hi_schedule(&bank->resp_handler);
-		return IRQ_HANDLED;
+		handled = true;
 	}
 
-	return IRQ_NONE;
+	return handled ? IRQ_HANDLED : IRQ_NONE;
 }
 
 static int adf_request_msi_irq(struct adf_accel_dev *accel_dev)
drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c +2 -2
index f14fb82ed6df..744734caaf7b 100644
@@ -81,10 +81,10 @@ void adf_init_hw_data_dh895xcciov(struct adf_hw_device_data *hw_data)
 	hw_data->enable_error_correction = adf_vf_void_noop;
 	hw_data->init_admin_comms = adf_vf_int_noop;
 	hw_data->exit_admin_comms = adf_vf_void_noop;
-	hw_data->send_admin_init = adf_vf2pf_init;
+	hw_data->send_admin_init = adf_vf2pf_notify_init;
 	hw_data->init_arb = adf_vf_int_noop;
 	hw_data->exit_arb = adf_vf_void_noop;
-	hw_data->disable_iov = adf_vf2pf_shutdown;
+	hw_data->disable_iov = adf_vf2pf_notify_shutdown;
 	hw_data->get_accel_mask = get_accel_mask;
 	hw_data->get_ae_mask = get_ae_mask;
 	hw_data->get_num_accels = get_num_accels;
drivers/edac/i10nm_base.c +3 -3
index 37b4e875420e..1cea5d8fa434 100644
@@ -26,8 +26,8 @@
 	pci_read_config_dword((d)->uracu, 0xd8 + (i) * 4, &(reg))
 #define I10NM_GET_DIMMMTR(m, i, j)	\
 	readl((m)->mbase + 0x2080c + (i) * (m)->chan_mmio_sz + (j) * 4)
-#define I10NM_GET_MCDDRTCFG(m, i, j)	\
-	readl((m)->mbase + 0x20970 + (i) * (m)->chan_mmio_sz + (j) * 4)
+#define I10NM_GET_MCDDRTCFG(m, i)	\
+	readl((m)->mbase + 0x20970 + (i) * (m)->chan_mmio_sz)
 #define I10NM_GET_MCMTR(m, i)		\
 	readl((m)->mbase + 0x20ef8 + (i) * (m)->chan_mmio_sz)
 #define I10NM_GET_AMAP(m, i)		\
@@ -185,10 +185,10 @@ static int i10nm_get_dimm_config(struct mem_ctl_info *mci,
 
 		ndimms = 0;
 		amap = I10NM_GET_AMAP(imc, i);
+		mcddrtcfg = I10NM_GET_MCDDRTCFG(imc, i);
 		for (j = 0; j < I10NM_NUM_DIMMS; j++) {
 			dimm = edac_get_dimm(mci, i, j, 0);
 			mtr = I10NM_GET_DIMMMTR(imc, i, j);
-			mcddrtcfg = I10NM_GET_MCDDRTCFG(imc, i, j);
 			edac_dbg(1, "dimmmtr 0x%x mcddrtcfg 0x%x (mc%d ch%d dimm%d)\n",
 				 mtr, mcddrtcfg, imc->mc, i, j);
 
drivers/edac/mce_amd.c +3 -0
index 5dd905a3f30c..1a1629166aa3 100644
@@ -1176,6 +1176,9 @@ static int __init mce_amd_init(void)
 	    c->x86_vendor != X86_VENDOR_HYGON)
 		return -ENODEV;
 
+	if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
+		return -ENODEV;
+
 	if (boot_cpu_has(X86_FEATURE_SMCA)) {
 		xec_mask = 0x3f;
 		goto out;
drivers/firmware/raspberrypi.c +8 -2
index 250e01680742..4b8978b254f9 100644
@@ -329,12 +329,18 @@ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
 
 	fw = platform_get_drvdata(pdev);
 	if (!fw)
-		return NULL;
+		goto err_put_device;
 
 	if (!kref_get_unless_zero(&fw->consumers))
-		return NULL;
+		goto err_put_device;
+
+	put_device(&pdev->dev);
 
 	return fw;
+
+err_put_device:
+	put_device(&pdev->dev);
+	return NULL;
 }
 EXPORT_SYMBOL_GPL(rpi_firmware_get);
 
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c +26 -28

92 lines not on this page · raw message

drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c +2 -2
index dc7d2e71aa6f..5d1743f3321e 100644
@@ -104,8 +104,8 @@ int smu_cmn_send_msg_without_waiting(struct smu_context *smu,
 
 	ret = smu_cmn_wait_for_response(smu);
 	if (ret != 0x1) {
-		dev_err(adev->dev, "Msg issuing pre-check failed and "
-		       "SMU may be not in the right state!\n");
+		dev_err(adev->dev, "Msg issuing pre-check failed(0x%x) and "
+		       "SMU may be not in the right state!\n", ret);
 		if (ret != -ETIME)
 			ret = -EIO;
 		return ret;
drivers/gpu/drm/drm_of.c +4 -2
index ca04c34e8251..997b8827fed2 100644
@@ -315,7 +315,7 @@ static int drm_of_lvds_get_remote_pixels_type(
 
 		remote_port = of_graph_get_remote_port(endpoint);
 		if (!remote_port) {
-			of_node_put(remote_port);
+			of_node_put(endpoint);
 			return -EPIPE;
 		}
 
@@ -331,8 +331,10 @@ static int drm_of_lvds_get_remote_pixels_type(
 		 * configurations by passing the endpoints explicitly to
 		 * drm_of_lvds_get_dual_link_pixel_order().
 		 */
-		if (!current_pt || pixels_type != current_pt)
+		if (!current_pt || pixels_type != current_pt) {
+			of_node_put(endpoint);
 			return -EINVAL;
+		}
 	}
 
 	return pixels_type;
drivers/gpu/drm/gma500/oaktrail_lvds.c +1 -1
index 432bdcc57ac9..a1332878857b 100644
@@ -117,7 +117,7 @@ static void oaktrail_lvds_mode_set(struct drm_encoder *encoder,
 			continue;
 	}
 
-	if (!connector) {
+	if (list_entry_is_head(connector, &mode_config->connector_list, head)) {
 		DRM_ERROR("Couldn't find connector when setting mode");
 		gma_power_end(dev);
 		return;
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c +6 -4
index 2d4645e01ebf..e01135b7a404 100644
@@ -345,10 +345,12 @@ static void dpu_hw_ctl_clear_all_blendstages(struct dpu_hw_ctl *ctx)
 	int i;
 
 	for (i = 0; i < ctx->mixer_count; i++) {
-		DPU_REG_WRITE(c, CTL_LAYER(LM_0 + i), 0);
-		DPU_REG_WRITE(c, CTL_LAYER_EXT(LM_0 + i), 0);
-		DPU_REG_WRITE(c, CTL_LAYER_EXT2(LM_0 + i), 0);
-		DPU_REG_WRITE(c, CTL_LAYER_EXT3(LM_0 + i), 0);
+		enum dpu_lm mixer_id = ctx->mixer_hw_caps[i].id;
+
+		DPU_REG_WRITE(c, CTL_LAYER(mixer_id), 0);
+		DPU_REG_WRITE(c, CTL_LAYER_EXT(mixer_id), 0);
+		DPU_REG_WRITE(c, CTL_LAYER_EXT2(mixer_id), 0);
+		DPU_REG_WRITE(c, CTL_LAYER_EXT3(mixer_id), 0);
 	}
 
 	DPU_REG_WRITE(c, CTL_FETCH_PIPE_ACTIVE, 0);
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c +38 -30

110 lines not on this page · raw message

drivers/gpu/drm/msm/dp/dp_display.c +19 -12
index cdec0a367a2c..2b1e127390e4 100644
@@ -55,7 +55,6 @@ enum {
 	EV_HPD_INIT_SETUP,
 	EV_HPD_PLUG_INT,
 	EV_IRQ_HPD_INT,
-	EV_HPD_REPLUG_INT,
 	EV_HPD_UNPLUG_INT,
 	EV_USER_NOTIFICATION,
 	EV_CONNECT_PENDING_TIMEOUT,
@@ -1119,9 +1118,6 @@ static int hpd_event_thread(void *data)
 		case EV_IRQ_HPD_INT:
 			dp_irq_hpd_handle(dp_priv, todo->data);
 			break;
-		case EV_HPD_REPLUG_INT:
-			/* do nothing */
-			break;
 		case EV_USER_NOTIFICATION:
 			dp_display_send_hpd_notification(dp_priv,
 						todo->data);
@@ -1165,10 +1161,8 @@ static irqreturn_t dp_display_irq_handler(int irq, void *dev_id)
 
 	if (hpd_isr_status & 0x0F) {
 		/* hpd related interrupts */
-		if (hpd_isr_status & DP_DP_HPD_PLUG_INT_MASK ||
-			hpd_isr_status & DP_DP_HPD_REPLUG_INT_MASK) {
+		if (hpd_isr_status & DP_DP_HPD_PLUG_INT_MASK)
 			dp_add_event(dp, EV_HPD_PLUG_INT, 0, 0);
-		}
 
 		if (hpd_isr_status & DP_DP_IRQ_HPD_INT_MASK) {
 			/* stop sentinel connect pending checking */
@@ -1176,8 +1170,10 @@ static irqreturn_t dp_display_irq_handler(int irq, void *dev_id)
 			dp_add_event(dp, EV_IRQ_HPD_INT, 0, 0);
 		}
 
-		if (hpd_isr_status & DP_DP_HPD_REPLUG_INT_MASK)
-			dp_add_event(dp, EV_HPD_REPLUG_INT, 0, 0);
+		if (hpd_isr_status & DP_DP_HPD_REPLUG_INT_MASK) {
+			dp_add_event(dp, EV_HPD_UNPLUG_INT, 0, 0);
+			dp_add_event(dp, EV_HPD_PLUG_INT, 0, 3);
+		}
 
 		if (hpd_isr_status & DP_DP_HPD_UNPLUG_INT_MASK)
 			dp_add_event(dp, EV_HPD_UNPLUG_INT, 0, 0);
@@ -1286,7 +1282,7 @@ static int dp_pm_resume(struct device *dev)
 	struct platform_device *pdev = to_platform_device(dev);
 	struct msm_dp *dp_display = platform_get_drvdata(pdev);
 	struct dp_display_private *dp;
-	u32 status;
+	int sink_count = 0;
 
 	dp = container_of(dp_display, struct dp_display_private, dp_display);
 
@@ -1300,14 +1296,25 @@ static int dp_pm_resume(struct device *dev)
 
 	dp_catalog_ctrl_hpd_config(dp->catalog);
 
-	status = dp_catalog_link_is_connected(dp->catalog);
+	/*
+	 * set sink to normal operation mode -- D0
+	 * before dpcd read
+	 */
+	dp_link_psm_config(dp->link, &dp->panel->link_info, false);
+
+	if (dp_catalog_link_is_connected(dp->catalog)) {
+		sink_count = drm_dp_read_sink_count(dp->aux);
+		if (sink_count < 0)
+			sink_count = 0;
+	}
 
+	dp->link->sink_count = sink_count;
 	/*
 	 * can not declared display is connected unless
 	 * HDMI cable is plugged in and sink_count of
 	 * dongle become 1
 	 */
-	if (status && dp->link->sink_count)
+	if (dp->link->sink_count)
 		dp->dp_display.is_connected = true;
 	else
 		dp->dp_display.is_connected = false;
drivers/gpu/drm/msm/dsi/dsi.c +3 -3
index 627048851d99..7e364b9c9f9e 100644
@@ -26,8 +26,10 @@ static int dsi_get_phy(struct msm_dsi *msm_dsi)
 	}
 
 	phy_pdev = of_find_device_by_node(phy_node);
-	if (phy_pdev)
+	if (phy_pdev) {
 		msm_dsi->phy = platform_get_drvdata(phy_pdev);
+		msm_dsi->phy_dev = &phy_pdev->dev;
+	}
 
 	of_node_put(phy_node);
 
@@ -36,8 +38,6 @@ static int dsi_get_phy(struct msm_dsi *msm_dsi)
 		return -EPROBE_DEFER;
 	}
 
-	msm_dsi->phy_dev = get_device(&phy_pdev->dev);
-
 	return 0;
 }
 
drivers/gpu/drm/mxsfb/mxsfb_drv.c +3 -0
index 6da93551e2e5..c277d3f61a5e 100644
@@ -51,6 +51,7 @@ static const struct mxsfb_devdata mxsfb_devdata[] = {
 		.hs_wdth_mask	= 0xff,
 		.hs_wdth_shift	= 24,
 		.has_overlay	= false,
+		.has_ctrl2	= false,
 	},
 	[MXSFB_V4] = {
 		.transfer_count	= LCDC_V4_TRANSFER_COUNT,
@@ -59,6 +60,7 @@ static const struct mxsfb_devdata mxsfb_devdata[] = {
 		.hs_wdth_mask	= 0x3fff,
 		.hs_wdth_shift	= 18,
 		.has_overlay	= false,
+		.has_ctrl2	= true,
 	},
 	[MXSFB_V6] = {
 		.transfer_count	= LCDC_V4_TRANSFER_COUNT,
@@ -67,6 +69,7 @@ static const struct mxsfb_devdata mxsfb_devdata[] = {
 		.hs_wdth_mask	= 0x3fff,
 		.hs_wdth_shift	= 18,
 		.has_overlay	= true,
+		.has_ctrl2	= true,
 	},
 };
 
drivers/gpu/drm/mxsfb/mxsfb_drv.h +1 -0
index 399d23e91ed1..7c720e226fdf 100644
@@ -22,6 +22,7 @@ struct mxsfb_devdata {
 	unsigned int	hs_wdth_mask;
 	unsigned int	hs_wdth_shift;
 	bool		has_overlay;
+	bool		has_ctrl2;
 };
 
 struct mxsfb_drm_private {
drivers/gpu/drm/mxsfb/mxsfb_kms.c +40 -0
index 300e7bab0f43..54f905ac75c0 100644
@@ -107,6 +107,14 @@ static void mxsfb_enable_controller(struct mxsfb_drm_private *mxsfb)
 		clk_prepare_enable(mxsfb->clk_disp_axi);
 	clk_prepare_enable(mxsfb->clk);
 
+	/* Increase number of outstanding requests on all supported IPs */
+	if (mxsfb->devdata->has_ctrl2) {
+		reg = readl(mxsfb->base + LCDC_V4_CTRL2);
+		reg &= ~CTRL2_SET_OUTSTANDING_REQS_MASK;
+		reg |= CTRL2_SET_OUTSTANDING_REQS_16;
+		writel(reg, mxsfb->base + LCDC_V4_CTRL2);
+	}
+
 	/* If it was disabled, re-enable the mode again */
 	writel(CTRL_DOTCLK_MODE, mxsfb->base + LCDC_CTRL + REG_SET);
 
@@ -115,6 +123,35 @@ static void mxsfb_enable_controller(struct mxsfb_drm_private *mxsfb)
 	reg |= VDCTRL4_SYNC_SIGNALS_ON;
 	writel(reg, mxsfb->base + LCDC_VDCTRL4);
 
+	/*
+	 * Enable recovery on underflow.
+	 *
+	 * There is some sort of corner case behavior of the controller,
+	 * which could rarely be triggered at least on i.MX6SX connected
+	 * to 800x480 DPI panel and i.MX8MM connected to DPI->DSI->LVDS
+	 * bridged 1920x1080 panel (and likely on other setups too), where
+	 * the image on the panel shifts to the right and wraps around.
+	 * This happens either when the controller is enabled on boot or
+	 * even later during run time. The condition does not correct
+	 * itself automatically, i.e. the display image remains shifted.
+	 *
+	 * It seems this problem is known and is due to sporadic underflows
+	 * of the LCDIF FIFO. While the LCDIF IP does have underflow/overflow
+	 * IRQs, neither of the IRQs trigger and neither IRQ status bit is
+	 * asserted when this condition occurs.
+	 *
+	 * All known revisions of the LCDIF IP have CTRL1 RECOVER_ON_UNDERFLOW
+	 * bit, which is described in the reference manual since i.MX23 as
+	 * "
+	 *   Set this bit to enable the LCDIF block to recover in the next
+	 *   field/frame if there was an underflow in the current field/frame.
+	 * "
+	 * Enable this bit to mitigate the sporadic underflows.
+	 */
+	reg = readl(mxsfb->base + LCDC_CTRL1);
+	reg |= CTRL1_RECOVER_ON_UNDERFLOW;
+	writel(reg, mxsfb->base + LCDC_CTRL1);
+
 	writel(CTRL_RUN, mxsfb->base + LCDC_CTRL + REG_SET);
 }
 
@@ -206,6 +243,9 @@ static void mxsfb_crtc_mode_set_nofb(struct mxsfb_drm_private *mxsfb)
 
 	/* Clear the FIFOs */
 	writel(CTRL1_FIFO_CLEAR, mxsfb->base + LCDC_CTRL1 + REG_SET);
+	readl(mxsfb->base + LCDC_CTRL1);
+	writel(CTRL1_FIFO_CLEAR, mxsfb->base + LCDC_CTRL1 + REG_CLR);
+	readl(mxsfb->base + LCDC_CTRL1);
 
 	if (mxsfb->devdata->has_overlay)
 		writel(0, mxsfb->base + LCDC_AS_CTRL);
drivers/gpu/drm/mxsfb/mxsfb_regs.h +9 -0
index 55d28a27f912..694fea13e893 100644
@@ -15,6 +15,7 @@
 #define LCDC_CTRL			0x00
 #define LCDC_CTRL1			0x10
 #define LCDC_V3_TRANSFER_COUNT		0x20
+#define LCDC_V4_CTRL2			0x20
 #define LCDC_V4_TRANSFER_COUNT		0x30
 #define LCDC_V4_CUR_BUF			0x40
 #define LCDC_V4_NEXT_BUF		0x50
@@ -54,12 +55,20 @@
 #define CTRL_DF24			BIT(1)
 #define CTRL_RUN			BIT(0)
 
+#define CTRL1_RECOVER_ON_UNDERFLOW	BIT(24)
 #define CTRL1_FIFO_CLEAR		BIT(21)
 #define CTRL1_SET_BYTE_PACKAGING(x)	(((x) & 0xf) << 16)
 #define CTRL1_GET_BYTE_PACKAGING(x)	(((x) >> 16) & 0xf)
 #define CTRL1_CUR_FRAME_DONE_IRQ_EN	BIT(13)
 #define CTRL1_CUR_FRAME_DONE_IRQ	BIT(9)
 
+#define CTRL2_SET_OUTSTANDING_REQS_1	0
+#define CTRL2_SET_OUTSTANDING_REQS_2	(0x1 << 21)
+#define CTRL2_SET_OUTSTANDING_REQS_4	(0x2 << 21)
+#define CTRL2_SET_OUTSTANDING_REQS_8	(0x3 << 21)
+#define CTRL2_SET_OUTSTANDING_REQS_16	(0x4 << 21)
+#define CTRL2_SET_OUTSTANDING_REQS_MASK	(0x7 << 21)
+
 #define TRANSFER_COUNT_SET_VCOUNT(x)	(((x) & 0xffff) << 16)
 #define TRANSFER_COUNT_GET_VCOUNT(x)	(((x) >> 16) & 0xffff)
 #define TRANSFER_COUNT_SET_HCOUNT(x)	((x) & 0xffff)
drivers/gpu/drm/panfrost/panfrost_device.c +2 -1
index fbcf5edbe367..9275cd0b2793 100644
@@ -54,7 +54,8 @@ static int panfrost_clk_init(struct panfrost_device *pfdev)
 	if (IS_ERR(pfdev->bus_clock)) {
 		dev_err(pfdev->dev, "get bus_clock failed %ld\n",
 			PTR_ERR(pfdev->bus_clock));
-		return PTR_ERR(pfdev->bus_clock);
+		err = PTR_ERR(pfdev->bus_clock);
+		goto disable_clock;
 	}
 
 	if (pfdev->bus_clock) {
drivers/gpu/drm/rcar-du/rcar_du_drv.c +0 -2
index bfbff90588cb..c22551c2facb 100644
@@ -556,8 +556,6 @@ static int rcar_du_remove(struct platform_device *pdev)
 
 	drm_kms_helper_poll_fini(ddev);
 
-	drm_dev_put(ddev);
-
 	return 0;
 }
 
drivers/hwmon/Makefile +0 -1
index 59e78bc212cf..ae66c8ce4eef 100644
@@ -45,7 +45,6 @@ obj-$(CONFIG_SENSORS_ADT7462)	+= adt7462.o
 obj-$(CONFIG_SENSORS_ADT7470)	+= adt7470.o
 obj-$(CONFIG_SENSORS_ADT7475)	+= adt7475.o
 obj-$(CONFIG_SENSORS_AHT10)	+= aht10.o
-obj-$(CONFIG_SENSORS_AMD_ENERGY) += amd_energy.o
 obj-$(CONFIG_SENSORS_APPLESMC)	+= applesmc.o
 obj-$(CONFIG_SENSORS_ARM_SCMI)	+= scmi-hwmon.o
 obj-$(CONFIG_SENSORS_ARM_SCPI)	+= scpi-hwmon.o
drivers/hwmon/pmbus/bpa-rs600.c +0 -25
index 2be69fedfa36..be76efe67d83 100644
@@ -12,15 +12,6 @@
 #include <linux/pmbus.h>
 #include "pmbus.h"
 
-#define BPARS600_MFR_VIN_MIN	0xa0
-#define BPARS600_MFR_VIN_MAX	0xa1
-#define BPARS600_MFR_IIN_MAX	0xa2
-#define BPARS600_MFR_PIN_MAX	0xa3
-#define BPARS600_MFR_VOUT_MIN	0xa4
-#define BPARS600_MFR_VOUT_MAX	0xa5
-#define BPARS600_MFR_IOUT_MAX	0xa6
-#define BPARS600_MFR_POUT_MAX	0xa7
-
 static int bpa_rs600_read_byte_data(struct i2c_client *client, int page, int reg)
 {
 	int ret;
@@ -81,29 +72,13 @@ static int bpa_rs600_read_word_data(struct i2c_client *client, int page, int pha
 
 	switch (reg) {
 	case PMBUS_VIN_UV_WARN_LIMIT:
-		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VIN_MIN);
-		break;
 	case PMBUS_VIN_OV_WARN_LIMIT:
-		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VIN_MAX);
-		break;
 	case PMBUS_VOUT_UV_WARN_LIMIT:
-		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VOUT_MIN);
-		break;
 	case PMBUS_VOUT_OV_WARN_LIMIT:
-		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VOUT_MAX);
-		break;
 	case PMBUS_IIN_OC_WARN_LIMIT:
-		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_IIN_MAX);
-		break;
 	case PMBUS_IOUT_OC_WARN_LIMIT:
-		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_IOUT_MAX);
-		break;
 	case PMBUS_PIN_OP_WARN_LIMIT:
-		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_PIN_MAX);
-		break;
 	case PMBUS_POUT_OP_WARN_LIMIT:
-		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_POUT_MAX);
-		break;
 	case PMBUS_VIN_UV_FAULT_LIMIT:
 	case PMBUS_VIN_OV_FAULT_LIMIT:
 	case PMBUS_VOUT_UV_FAULT_LIMIT:
drivers/i2c/busses/i2c-highlander.c +1 -1
index 803dad70e2a7..a2add128d084 100644
@@ -379,7 +379,7 @@ static int highlander_i2c_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, dev);
 
 	dev->irq = platform_get_irq(pdev, 0);
-	if (iic_force_poll)
+	if (dev->irq < 0 || iic_force_poll)
 		dev->irq = 0;
 
 	if (dev->irq) {
drivers/i2c/busses/i2c-hix5hd2.c +1 -1
index aa00ba8bcb70..61ae58f57047 100644
@@ -413,7 +413,7 @@ static int hix5hd2_i2c_probe(struct platform_device *pdev)
 		return PTR_ERR(priv->regs);
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0)
+	if (irq < 0)
 		return irq;
 
 	priv->clk = devm_clk_get(&pdev->dev, NULL);
drivers/i2c/busses/i2c-iop3xx.c +2 -4
index cfecaf18ccbb..4a6ff54d87fe 100644
@@ -469,16 +469,14 @@ iop3xx_i2c_probe(struct platform_device *pdev)
 
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0) {
-		ret = -ENXIO;
+		ret = irq;
 		goto unmap;
 	}
 	ret = request_irq(irq, iop3xx_i2c_irq_handler, 0,
 				pdev->name, adapter_data);
 
-	if (ret) {
-		ret = -EIO;
+	if (ret)
 		goto unmap;
-	}
 
 	memcpy(new_adapter->name, pdev->name, strlen(pdev->name));
 	new_adapter->owner = THIS_MODULE;
drivers/i2c/busses/i2c-mt65xx.c +1 -1
index 4e9fb6b44436..d90d80d046bd 100644
@@ -1211,7 +1211,7 @@ static int mtk_i2c_probe(struct platform_device *pdev)
 		return PTR_ERR(i2c->pdmabase);
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0)
+	if (irq < 0)
 		return irq;
 
 	init_completion(&i2c->msg_complete);
drivers/i2c/busses/i2c-s3c2410.c +1 -1
index 4d82761e1585..b49a1b170bb2 100644
@@ -1137,7 +1137,7 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
 	 */
 	if (!(i2c->quirks & QUIRK_POLL)) {
 		i2c->irq = ret = platform_get_irq(pdev, 0);
-		if (ret <= 0) {
+		if (ret < 0) {
 			dev_err(&pdev->dev, "cannot find IRQ\n");
 			clk_unprepare(i2c->clk);
 			return ret;
drivers/i2c/busses/i2c-synquacer.c +1 -1
index 31be1811d5e6..e4026c5416b1 100644
@@ -578,7 +578,7 @@ static int synquacer_i2c_probe(struct platform_device *pdev)
 
 	i2c->irq = platform_get_irq(pdev, 0);
 	if (i2c->irq < 0)
-		return -ENODEV;
+		return i2c->irq;
 
 	ret = devm_request_irq(&pdev->dev, i2c->irq, synquacer_i2c_isr,
 			       0, dev_name(&pdev->dev), i2c);
drivers/i2c/busses/i2c-xlp9xx.c +1 -1
index f2241cedf5d3..6d24dc385522 100644
@@ -517,7 +517,7 @@ static int xlp9xx_i2c_probe(struct platform_device *pdev)
 		return PTR_ERR(priv->base);
 
 	priv->irq = platform_get_irq(pdev, 0);
-	if (priv->irq <= 0)
+	if (priv->irq < 0)
 		return priv->irq;
 	/* SMBAlert irq */
 	priv->alert_data.irq = platform_get_irq(pdev, 1);
drivers/infiniband/hw/mlx5/mr.c +1 -1
index fd113ddf6e86..8193fa5c3fed 100644
@@ -1022,7 +1022,7 @@ static void *mlx5_ib_alloc_xlt(size_t *nents, size_t ent_size, gfp_t gfp_mask)
 
 	if (size > MLX5_SPARE_UMR_CHUNK) {
 		size = MLX5_SPARE_UMR_CHUNK;
-		*nents = get_order(size) / ent_size;
+		*nents = size / ent_size;
 		res = (void *)__get_free_pages(gfp_mask | __GFP_NOWARN,
 					       get_order(size));
 		if (res)
drivers/irqchip/irq-apple-aic.c +1 -1
index c179e27062fd..151aab408fa6 100644
@@ -225,7 +225,7 @@ static void aic_irq_eoi(struct irq_data *d)
 	 * Reading the interrupt reason automatically acknowledges and masks
 	 * the IRQ, so we just unmask it here if needed.
 	 */
-	if (!irqd_irq_disabled(d) && !irqd_irq_masked(d))
+	if (!irqd_irq_masked(d))
 		aic_irq_unmask(d);
 }
 
drivers/irqchip/irq-gic-v3.c +22 -1
index 66d623f91678..20a2d606b4c9 100644
@@ -100,6 +100,27 @@ EXPORT_SYMBOL(gic_pmr_sync);
 DEFINE_STATIC_KEY_FALSE(gic_nonsecure_priorities);
 EXPORT_SYMBOL(gic_nonsecure_priorities);
 
+/*
+ * When the Non-secure world has access to group 0 interrupts (as a
+ * consequence of SCR_EL3.FIQ == 0), reading the ICC_RPR_EL1 register will
+ * return the Distributor's view of the interrupt priority.
+ *
+ * When GIC security is enabled (GICD_CTLR.DS == 0), the interrupt priority
+ * written by software is moved to the Non-secure range by the Distributor.
+ *
+ * If both are true (which is when gic_nonsecure_priorities gets enabled),
+ * we need to shift down the priority programmed by software to match it
+ * against the value returned by ICC_RPR_EL1.
+ */
+#define GICD_INT_RPR_PRI(priority)					\
+	({								\
+		u32 __priority = (priority);				\
+		if (static_branch_unlikely(&gic_nonsecure_priorities))	\
+			__priority = 0x80 | (__priority >> 1);		\
+									\
+		__priority;						\
+	})
+
 /* ppi_nmi_refs[n] == number of cpus having ppi[n + 16] set as NMI */
 static refcount_t *ppi_nmi_refs;
 
@@ -687,7 +708,7 @@ static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs
 		return;
 
 	if (gic_supports_nmi() &&
-	    unlikely(gic_read_rpr() == GICD_INT_NMI_PRI)) {
+	    unlikely(gic_read_rpr() == GICD_INT_RPR_PRI(GICD_INT_NMI_PRI))) {
 		gic_handle_nmi(irqnr, regs);
 		return;
 	}
drivers/irqchip/irq-loongson-pch-pic.c +18 -1
index f790ca6d78aa..a4eb8a2181c7 100644
@@ -92,18 +92,22 @@ static int pch_pic_set_type(struct irq_data *d, unsigned int type)
 	case IRQ_TYPE_EDGE_RISING:
 		pch_pic_bitset(priv, PCH_PIC_EDGE, d->hwirq);
 		pch_pic_bitclr(priv, PCH_PIC_POL, d->hwirq);
+		irq_set_handler_locked(d, handle_edge_irq);
 		break;
 	case IRQ_TYPE_EDGE_FALLING:
 		pch_pic_bitset(priv, PCH_PIC_EDGE, d->hwirq);
 		pch_pic_bitset(priv, PCH_PIC_POL, d->hwirq);
+		irq_set_handler_locked(d, handle_edge_irq);
 		break;
 	case IRQ_TYPE_LEVEL_HIGH:
 		pch_pic_bitclr(priv, PCH_PIC_EDGE, d->hwirq);
 		pch_pic_bitclr(priv, PCH_PIC_POL, d->hwirq);
+		irq_set_handler_locked(d, handle_level_irq);
 		break;
 	case IRQ_TYPE_LEVEL_LOW:
 		pch_pic_bitclr(priv, PCH_PIC_EDGE, d->hwirq);
 		pch_pic_bitset(priv, PCH_PIC_POL, d->hwirq);
+		irq_set_handler_locked(d, handle_level_irq);
 		break;
 	default:
 		ret = -EINVAL;
@@ -113,11 +117,24 @@ static int pch_pic_set_type(struct irq_data *d, unsigned int type)
 	return ret;
 }
 
+static void pch_pic_ack_irq(struct irq_data *d)
+{
+	unsigned int reg;
+	struct pch_pic *priv = irq_data_get_irq_chip_data(d);
+
+	reg = readl(priv->base + PCH_PIC_EDGE + PIC_REG_IDX(d->hwirq) * 4);
+	if (reg & BIT(PIC_REG_BIT(d->hwirq))) {
+		writel(BIT(PIC_REG_BIT(d->hwirq)),
+			priv->base + PCH_PIC_CLR + PIC_REG_IDX(d->hwirq) * 4);
+	}
+	irq_chip_ack_parent(d);
+}
+
 static struct irq_chip pch_pic_irq_chip = {
 	.name			= "PCH PIC",
 	.irq_mask		= pch_pic_mask_irq,
 	.irq_unmask		= pch_pic_unmask_irq,
-	.irq_ack		= irq_chip_ack_parent,
+	.irq_ack		= pch_pic_ack_irq,
 	.irq_set_affinity	= irq_chip_set_affinity_parent,
 	.irq_set_type		= pch_pic_set_type,
 };
drivers/leds/blink/leds-lgm-sso.c +15 -8
index 7d5f0bf2817a..24736f29d363 100644
@@ -630,8 +630,10 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
 
 	fwnode_for_each_child_node(fw_ssoled, fwnode_child) {
 		led = devm_kzalloc(dev, sizeof(*led), GFP_KERNEL);
-		if (!led)
-			return -ENOMEM;
+		if (!led) {
+			ret = -ENOMEM;
+			goto __dt_err;
+		}
 
 		INIT_LIST_HEAD(&led->list);
 		led->priv = priv;
@@ -641,7 +643,7 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
 							      fwnode_child,
 							      GPIOD_ASIS, NULL);
 		if (IS_ERR(led->gpiod)) {
-			dev_err(dev, "led: get gpio fail!\n");
+			ret = dev_err_probe(dev, PTR_ERR(led->gpiod), "led: get gpio fail!\n");
 			goto __dt_err;
 		}
 
@@ -661,8 +663,11 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
 			desc->panic_indicator = 1;
 
 		ret = fwnode_property_read_u32(fwnode_child, "reg", &prop);
-		if (ret != 0 || prop >= SSO_LED_MAX_NUM) {
+		if (ret)
+			goto __dt_err;
+		if (prop >= SSO_LED_MAX_NUM) {
 			dev_err(dev, "invalid LED pin:%u\n", prop);
+			ret = -EINVAL;
 			goto __dt_err;
 		}
 		desc->pin = prop;
@@ -698,21 +703,22 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
 				desc->brightness = LED_FULL;
 		}
 
-		if (sso_create_led(priv, led, fwnode_child))
+		ret = sso_create_led(priv, led, fwnode_child);
+		if (ret)
 			goto __dt_err;
 	}
-	fwnode_handle_put(fw_ssoled);
 
 	return 0;
[… more lines in the raw message]

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

drivers/leds/flash/leds-rt8515.c +3 -1
index 590bfa180d10..44904fdee3cc 100644

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

drivers/leds/leds-is31fl32xx.c +1 -0
index 2180255ad339..899ed94b6687 100644

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

drivers/leds/leds-lt3593.c +2 -3
index 68e06434ac08..7dab08773a34 100644

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

drivers/leds/trigger/ledtrig-audio.c +29 -8
index f76621e88482..c6b437e6369b 100644

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

drivers/md/bcache/super.c +11 -5
index bea8c4429ae8..a407e3be0f17 100644

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

drivers/md/raid1.c +19 -0
index 753822ca9613..6b8e58ae3f9e 100644

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

drivers/md/raid10.c +10 -4
index 40e845fb9717..92b490aac93e 100644

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

drivers/media/i2c/tda1997x.c +1 -0
index 89bb7e6dc7a4..9554c8348c02 100644

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

drivers/media/platform/coda/coda-bit.c +13 -5
index 2f42808c43a4..c484c008ab02 100644

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

drivers/media/platform/omap3isp/isp.c +3 -1
index 53025c8c7531..20f59c59ff8a 100644

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

drivers/media/platform/qcom/venus/helpers.c +3 -0
index b813d6dba481..3a0871f0bea6 100644

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

drivers/media/platform/qcom/venus/hfi_msgs.c +1 -1
index a2d436d407b2..e8776ac45b02 100644

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

drivers/media/platform/qcom/venus/venc.c +2 -0
index 4a7291f934b6..2c443c1afd3a 100644

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

drivers/media/platform/rockchip/rga/rga-buf.c +1 -2
index bf9a75b75083..81508ed5abf3 100644

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

drivers/media/platform/rockchip/rga/rga.c +24 -5
index 9d122429706e..6759091b15e0 100644

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

drivers/media/spi/cxd2880-spi.c +5 -2
index 931ec0727cd3..a280e4bd80c2 100644

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

drivers/media/usb/dvb-usb/dvb-usb-i2c.c +7 -2
index 2e07106f4680..bc4b2abdde1a 100644

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

drivers/media/usb/dvb-usb/dvb-usb-init.c +1 -1
index 28e1fd64dd3c..61439c8f33ca 100644

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

drivers/media/usb/dvb-usb/nova-t-usb2.c +4 -2
index e7b290552b66..9c0eb0d40822 100644

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

drivers/media/usb/dvb-usb/vp702x.c +9 -3
index bf54747e2e01..a1d9e4801a2b 100644

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

drivers/media/usb/em28xx/em28xx-input.c +0 -1
index 59529cbf9cd0..0b6d77c3bec8 100644

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

drivers/media/usb/go7007/go7007-driver.c +0 -26
index f1767be9d868..6650eab913d8 100644

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

drivers/media/usb/go7007/go7007-usb.c +1 -1
index dbf0455d5d50..eeb85981e02b 100644

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

drivers/misc/lkdtm/core.c +1 -1
index cd833011f285..4757e29b42c0 100644

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

drivers/mmc/host/dw_mmc.c +1 -0
index c3229d8c7041..33cb70aa02aa 100644

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

drivers/mmc/host/moxart-mmc.c +1 -0
index bde298887579..6c9d38132f74 100644

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

drivers/mmc/host/sdhci.c +1 -0
index 6b39126fbf06..a1df6d4e9e86 100644

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

drivers/net/dsa/b53/b53_common.c +0 -10
index 3ca6b394dd5f..54b273d85861 100644

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

drivers/net/dsa/b53/b53_priv.h +0 -2
index 82700a5714c1..9bf8319342b0 100644

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

drivers/net/dsa/bcm_sf2.c +0 -1
index 3b018fcf4412..6ce9ec1283e0 100644

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

drivers/net/dsa/mt7530.c +0 -13
index 2b01efad1a51..647f8e5c16da 100644

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

drivers/net/dsa/mv88e6xxx/chip.c +0 -18
index 272b0535d946..111a6d5985da 100644

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

drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +3 -0
index 59253846e885..f26d03735619 100644

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

drivers/net/ethernet/google/gve/gve_adminq.c +4 -2
index 53864f200599..b175f2b2f5bc 100644

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

drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +20 -3
index eff0a30790dd..472f56b360b8 100644

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

drivers/net/ethernet/intel/ice/ice_main.c +9 -4
index a7f2f5c490e3..e16d20b77a3f 100644

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

drivers/net/ethernet/marvell/octeontx2/af/common.h +0 -2
index e66109367487..c1e11cb68d26 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c +22 -9
index 7d9e71c6965f..7a2157709dde 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +12 -10
index 0bc4529691ec..d413078fc043 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +15 -1
index 16ba457197a2..e0d1af9e7770 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +3 -0
index 45730d0d92f2..c652c27cd345 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c +1 -0
index 0b4fa92ba821..81265dbf91e2 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c +2 -2
index 51157b283f6f..463d2368c118 100644

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

drivers/net/ethernet/mellanox/mlx5/core/dev.c +1 -1
index def2156e50ee..20bb37266254 100644

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

drivers/net/ethernet/mellanox/mlx5/core/devlink.c +1 -0
index 44c458443428..4794173f8fdb 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/fs.h +0 -6
index 1d5ce07b83f4..43b092f5565a 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/qos.c +6 -9
index 5efe3278b0f6..1fd8baf19829 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/qos.h +2 -2
index 5af7991fcd19..757682b7c0e0 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c +2 -2
index 490131e06efb..aa4dc7d624f8 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_fs.c +5 -5
index 0b75fab41ae8..6464ac3f294e 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +16 -2
index 779a4abead01..814ff51db1a5 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +18 -0
index 47bd20ad8108..ced6ff0bc916 100644

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

drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c +1 -0
index 3da7becc1069..425c91814b34 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +4 -1
index d0e4daa55a4a..c6d3348d759e 100644

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

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c +2 -16
index 7d7ed025db0d..620d638e1e8f 100644

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

drivers/net/ethernet/pensando/ionic/ionic_devlink.c +7 -7
index b41301a5b0df..cd520e4c5522 100644

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

drivers/net/ethernet/qualcomm/qca_spi.c +1 -1
index ab9b02574a15..38018f024823 100644

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

drivers/net/ethernet/qualcomm/qca_uart.c +1 -1
index bcdeca7b3366..ce3f7ce31adc 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c +3 -2
index e63270267578..f83db62938dd 100644

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

drivers/net/ethernet/ti/am65-cpsw-nuss.c +28 -19

47 lines not on this page · raw message

drivers/net/ethernet/ti/am65-cpsw-nuss.h +2 -0
index 5d93e346f05e..048ed10143c1 100644

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

drivers/net/phy/marvell10g.c +8 -0
index 53a433442803..f4d758f8a1ee 100644

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

drivers/net/wireless/ath/ath6kl/wmi.c +3 -1
index b137e7f34397..bd1ef6334997 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +1 -1
index 143a705b5cb3..4800e19bdcc3 100644

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

drivers/net/wireless/intel/iwlwifi/fw/acpi.c +7 -7
index e31bba836c6f..dfa4047f97a0 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/drv.c +1 -0
index 9f11a1d5d034..81e881da7f15 100644

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

drivers/net/wireless/rsi/rsi_91x_hal.c +3 -1
index 99b21a2c8386..f4a26f16f00f 100644

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

drivers/net/wireless/rsi/rsi_91x_usb.c +1 -0
index 3fbe2a3c1455..416976f09888 100644

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

drivers/nvme/host/rdma.c +2 -2
index 4697a94c0945..f80682f7df54 100644

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

drivers/nvme/host/tcp.c +2 -2
index 79a463090dd3..ab1ea5b0888e 100644

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

drivers/nvme/target/fabrics-cmd.c +5 -4
index 7d0f3523fdab..8ef564c3b32c 100644

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

drivers/pci/pci.c +18 -7
index 8d4ebe095d0c..a9d0530b7846 100644

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

drivers/power/supply/axp288_fuel_gauge.c +2 -2
index 37af0e216bc3..225adaffaa28 100644

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

drivers/power/supply/cw2015_battery.c +3 -1
index d110597746b0..091868e9e9e8 100644

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

drivers/power/supply/max17042_battery.c +1 -1
index ce2041b30a06..215e77d3b6d9 100644

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

drivers/power/supply/smb347-charger.c +10 -0
index 3376f42d46c3..25d239f2330e 100644

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

drivers/regulator/tps65910-regulator.c +4 -6
index 1d5b0a1b86f7..06cbe60c990f 100644

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

drivers/regulator/vctrl-regulator.c +43 -30

73 lines not on this page · raw message

drivers/s390/cio/css.c +17 -0
index a974943c27da..9fcdb8d81eee 100644

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

drivers/s390/crypto/ap_bus.c +8 -17
index 2758d05a802d..179ceb01e040 100644

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

drivers/s390/crypto/ap_bus.h +2 -8
index 472efd3a755c..2940bc8aa43d 100644

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

drivers/s390/crypto/ap_queue.c +11 -9
index 337353c9655e..639f8d25679c 100644

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

drivers/s390/crypto/zcrypt_ccamisc.c +4 -4
index d68c0ed5e0dd..f5d0212fb4fe 100644

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

drivers/soc/mediatek/mt8183-mmsys.h +14 -7
index 579dfc8dc8fc..9dee485807c9 100644

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

drivers/soc/mediatek/mtk-mmsys.c +5 -2
index 080660ef11bf..0f949896fd06 100644

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

drivers/soc/mediatek/mtk-mmsys.h +93 -40

133 lines not on this page · raw message

drivers/soc/qcom/rpmhpd.c +2 -3
index bb21c4f1c0c4..90d2e5817371 100644

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

drivers/soc/qcom/smsm.c +8 -3
index 1d3d5e3ec2b0..6e9a9cd28b17 100644

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

drivers/soc/rockchip/Kconfig +2 -2
index 2c13bf4dd5db..25eb2c1e31bb 100644

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

drivers/spi/spi-coldfire-qspi.c +1 -1
index 8996115ce736..263ce9047327 100644

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

drivers/spi/spi-davinci.c +1 -7
index e114e6fe5ea5..d112c2cac042 100644

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

drivers/spi/spi-fsl-dspi.c +1 -0
index fb45e6af6638..fd004c9db9dc 100644

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

drivers/spi/spi-pic32.c +1 -0
index 104bde153efd..5eb7b61bbb4d 100644

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

drivers/spi/spi-sprd-adi.c +1 -1
index ab19068be867..98ef17389952 100644

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

drivers/spi/spi-zynq-qspi.c +4 -4
index 9262c6418463..cfa222c9bd5e 100644

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

drivers/staging/clocking-wizard/Kconfig +1 -1
index 69cf51445f08..2324b5d73788 100644

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

drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c +7 -4
index f5de81132177..77293579a134 100644

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

drivers/tty/serial/fsl_lpuart.c +1 -1
index 0d7ea144a4a6..1ed4e33cc8cf 100644

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

drivers/tty/tty_io.c +2 -2
index 5b5e99604989..87e3f20e120b 100644

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

drivers/usb/dwc3/dwc3-meson-g12a.c +2 -0
index ffe301d6ea35..d0f9b7c296b0 100644

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

drivers/usb/dwc3/dwc3-qcom.c +4 -0
index 49e6ca94486d..cfbb96f6627e 100644

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

drivers/usb/gadget/udc/at91_udc.c +3 -1
index eede5cedacb4..d9ad9adf7348 100644

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

drivers/usb/gadget/udc/bdc/bdc_core.c +15 -15
index 0bef6b3f049b..fa1a3908ec3b 100644

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

drivers/usb/gadget/udc/mv_u3d_core.c +10 -9
index 5486f5a70868..0db97fecf99e 100644

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

drivers/usb/gadget/udc/renesas_usb3.c +7 -10
index f1b35a39d1ba..57d417a7c3e0 100644

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

drivers/usb/gadget/udc/s3c2410_udc.c +4 -0
index b154b62abefa..82c4f3fb2dae 100644

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

drivers/usb/host/ehci-orion.c +6 -2
index a319b1df3011..3626758b3e2a 100644

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

drivers/usb/host/ohci-tmio.c +3 -0
index 7f857bad9e95..08ec2ab0d95a 100644

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

drivers/usb/misc/brcmstb-usb-pinmap.c +2 -0
index 336653091e3b..2b2019c19cde 100644

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

drivers/usb/phy/phy-fsl-usb.c +2 -0
index f34c9437a182..972704262b02 100644

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

drivers/usb/phy/phy-tahvo.c +3 -1
index baebb1f5a973..a3e043e3e4aa 100644

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

drivers/usb/phy/phy-twl6030-usb.c +5 -0
index 8ba6c5a91557..ab3c38a7d8ac 100644

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

drivers/video/backlight/pwm_bl.c +28 -26

54 lines not on this page · raw message

drivers/video/fbdev/core/fbmem.c +6 -0
index 1c855145711b..63e2f17f3c61 100644

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

fs/cifs/cifs_unicode.c +2 -7
index 9bd03a231032..171ad8b42107 100644

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

fs/cifs/fs_context.c +9 -2
index 72742eb1df4a..626bb7c55206 100644

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

fs/cifs/readdir.c +22 -1
index 63bfc533c9fb..6927b68fe852 100644

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

fs/debugfs/file.c +6 -2
index ba7c01cd9a5d..36f2dbe6061f 100644

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

fs/f2fs/file.c +2 -3
index ceb575f99048..fb27d49e4da7 100644

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

fs/f2fs/super.c +10 -1
index b29de80ab60e..8553e8e5de0d 100644

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

fs/fcntl.c +10 -8
index dfc72f15be7f..887db4918a89 100644

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

fs/fuse/file.c +27 -3
index 09ef2a4d25ed..f4e1a6387f90 100644

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

fs/fuse/fuse_i.h +19 -0
index 120f9c5908d1..e840c4a5f9f5 100644

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

fs/fuse/inode.c +60 -0

60 lines not on this page · raw message

fs/gfs2/ops_fstype.c +43 -0

43 lines not on this page · raw message

fs/gfs2/super.c +6 -55

61 lines not on this page · raw message

fs/io-wq.c +70 -35

105 lines not on this page · raw message

fs/io_uring.c +9 -7
index f6ddc7182943..58ae2eab99ef 100644

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

fs/iomap/swapfile.c +6 -0
index 6250ca6a1f85..4ecf4e1f68ef 100644

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

fs/isofs/inode.c +13 -14
index 21edc423b79f..678e2c51b855 100644

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

fs/isofs/isofs.h +0 -1
index 055ec6c586f7..dcdc191ed183 100644

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

fs/isofs/joliet.c +1 -3
index be8b6a9d0b92..c0f04a1e7f69 100644

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

fs/lockd/svclock.c +1 -1
index 61d3cc2283dc..498cb70c2c0d 100644

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

fs/nfsd/nfs4state.c +2 -2
index 90e81f6491ff..ab81e8ae3265 100644

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

fs/udf/misc.c +11 -2
index eab94527340d..1614d308d0f0 100644

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

fs/udf/super.c +35 -40

75 lines not on this page · raw message

fs/udf/udf_sb.h +0 -2
index 758efe557a19..4fa620543d30 100644

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

fs/udf/unicode.c +2 -2
index 5fcfa96463eb..622569007b53 100644

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

include/linux/blkdev.h +16 -0
index f69c75bd6d27..9bfb2f65534b 100644

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

include/linux/energy_model.h +16 -0
index 757fc60658fa..d1e9823d99c8 100644

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

include/linux/hrtimer.h +0 -5
index bb5e7b0a4274..77295af72426 100644

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

include/linux/local_lock_internal.h +23 -19

42 lines not on this page · raw message

include/linux/mlx5/mlx5_ifc.h +2 -1
index eb86e80e4643..857529a5568d 100644

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

include/linux/power/max17042_battery.h +1 -1
index d55c746ac56e..e00ad1cfb1f1 100644

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

include/linux/sunrpc/svc.h +1 -0
index e91d51ea028b..65185d1e07ea 100644

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

include/linux/time64.h +7 -2
index 5117cb5b5656..81b9686a2079 100644

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

include/net/dsa.h +0 -2
index e1a2610a0e06..f91317d2df9d 100644

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

include/net/pkt_cls.h +1 -2
index ec7823921bd2..b420f905f4f6 100644

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

include/trace/events/io_uring.h +3 -3
index abb8b24744fd..08e65dcbd1e3 100644

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

include/trace/events/sunrpc.h +4 -4
index d02e01a27b69..87569dbf2fe7 100644

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

include/uapi/linux/bpf.h +1 -1
index ec6d85a81744..353f06cf210e 100644

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

kernel/bpf/verifier.c +20 -11
index 6b58fd978b70..d810f9e0ed9d 100644

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

kernel/cgroup/cpuset.c +56 -39

95 lines not on this page · raw message

kernel/cpu_pm.c +38 -12

50 lines not on this page · raw message

kernel/irq/timings.c +2 -0
index 4d2a702d7aa9..c43e2ac2f8de 100644

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

kernel/locking/mutex.c +5 -10
index 013e1b08a1bf..a03d3d3ff886 100644

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

kernel/power/energy_model.c +3 -1
index 0f4530b3a8cd..a332ccd829e2 100644

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

kernel/rcu/tree_stall.h +23 -3
index 59b95cc5cbdf..c615fd153cb2 100644

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

kernel/sched/core.c +19 -6
index 15b4d2fb6be3..1e9672d609f7 100644

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

kernel/sched/deadline.c +5 -3
index 2f9964b467e0..fa29a69e14c9 100644

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

kernel/sched/debug.c +7 -0
index c5aacbd492a1..f8c94bebd17d 100644

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

kernel/sched/fair.c +1 -1
index f60ef0b4ec33..3889fee98d11 100644

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

kernel/sched/sched.h +2 -0
index f2bc99ca01e5..9aa157c20722 100644

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

kernel/sched/topology.c +65 -0

65 lines not on this page · raw message

kernel/time/hrtimer.c +69 -23

92 lines not on this page · raw message

kernel/time/posix-cpu-timers.c +0 -2
index aa52fc85dbcb..a9f8d25220b1 100644

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

kernel/time/tick-internal.h +3 -0
index 7a981c9e87a4..e61c1244e7d4 100644

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

lib/mpi/mpiutil.c +1 -1
index 3c63710c20c6..e6c4b3180ab1 100644

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

net/6lowpan/debugfs.c +2 -1
index 1c140af06d52..600b9563bfc5 100644

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

net/bluetooth/cmtp/cmtp.h +1 -1
index c32638dddbf9..f6b9dc4e408f 100644

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

net/bluetooth/hci_core.c +14 -0
index ee59d1c7f1f6..bf1bb08b94aa 100644

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

net/bluetooth/mgmt.c +1 -1
index 470eaabb021f..6a9826164fd7 100644

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

net/bluetooth/sco.c +6 -5
index 3bd41563f118..9769a7ceb689 100644

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

net/core/devlink.c +22 -14
index 051432ea4f69..5d01bebffaca 100644

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

net/dsa/dsa_priv.h +0 -2
index 92282de54230..1bf602f30ce4 100644

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

net/dsa/port.c +0 -21
index 6379d66a6bb3..c3ffbd41331a 100644

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

net/dsa/slave.c +0 -6
index d4756b920108..5882159137ea 100644

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

net/ipv4/route.c +31 -17

48 lines not on this page · raw message

net/ipv4/tcp_ipv4.c +3 -2
index 8bb5f7f51dae..7f3c7d57a39d 100644

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

net/ipv6/route.c +4 -1
index 67c74469503a..cd99de5b6882 100644

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

net/mac80211/tx.c +3 -1
index 2651498d05e8..e61c320974ba 100644

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

net/netlabel/netlabel_cipso_v4.c +4 -4
index 4f50a64315cf..50f40943c815 100644

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

net/qrtr/qrtr.c +6 -2
index 52b7f6490d24..2e732ea2b82f 100644

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

net/sched/sch_cbq.c +1 -1
index b79a7e27bb31..38a3a8394bbd 100644

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

net/sched/sch_htb.c +62 -35

97 lines not on this page · raw message

net/sunrpc/svc.c +15 -0
index 0de918cb3d90..a47e290b0668 100644

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

samples/bpf/xdp_redirect_cpu_user.c +1 -1
index 576411612523..c7d7d3586730 100644

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

samples/pktgen/pktgen_sample04_many_flows.sh +7 -5
index ddce876635aa..507c1143eb96 100755

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

samples/pktgen/pktgen_sample05_flow_per_thread.sh +7 -5
index 4a65fe2fcee9..160143ebcdd0 100755

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

security/integrity/ima/Kconfig +0 -1
index 12e9250c1bec..9e72edb8d31a 100644

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

security/integrity/ima/ima_mok.c +1 -1
index 1e5c01916173..95cc31525c57 100644

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

sound/soc/codecs/rt5682-i2c.c +20 -0
index cd964e023d96..b9d5d7a0975b 100644

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

sound/soc/codecs/wcd9335.c +21 -2
index 86c92e03ea5d..d885ced34f60 100644

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

sound/soc/fsl/fsl_rpmsg.c +10 -10
index ea5c973e2e84..d60f4dac6c1b 100644

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

sound/soc/intel/boards/kbl_da7219_max98927.c +7 -48

55 lines not on this page · raw message

sound/soc/intel/common/soc-acpi-intel-cml-match.c +1 -1
index 7f6ef8229969..4d7a181fb8e6 100644

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

sound/soc/intel/common/soc-acpi-intel-kbl-match.c +1 -1
index ba5ff468c265..741bf2f9e081 100644

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

sound/soc/intel/skylake/skl-topology.c +10 -15
index c0fdab39e7c2..09037d555ec4 100644

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

sound/soc/mediatek/mt8183/mt8183-afe-pcm.c +27 -16

43 lines not on this page · raw message

sound/soc/mediatek/mt8192/mt8192-afe-pcm.c +17 -10
index 7a1724f5ff4c..31c280339c50 100644

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

tools/bpf/bpftool/prog.c +4 -1
index da4846c9856a..a51bf4c69879 100644

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

tools/include/uapi/linux/bpf.h +1 -1
index ec6d85a81744..353f06cf210e 100644

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

tools/lib/bpf/Makefile +5 -5
index e43e1896cb4b..0d9d8ed6512b 100644

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

tools/lib/bpf/libbpf.c +8 -8
index c41d9b2b59ac..f6ebda75b030 100644

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

tools/perf/util/bpf-event.c +2 -2
index cdecda1ddd36..17a9844e4fbf 100644

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

tools/perf/util/bpf_counter.c +2 -1
index 5ed674a2f55e..a14f0098b343 100644

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

tools/testing/selftests/bpf/prog_tests/btf.c +1 -0
index 0457ae32b270..5b7dd3227b78 100644

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

tools/testing/selftests/bpf/progs/bpf_iter_tcp4.c +1 -1
index 54380c5e1069..aa96b604b2b3 100644

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

tools/testing/selftests/bpf/progs/test_core_autosize.c +15 -5
index 44f5aa2e8956..9a7829c5e4a7 100644

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

tools/testing/selftests/bpf/test_maps.c +2 -2
index 51adc42b2b40..aa38dc4a5e85 100644

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

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.