Skip to contentSkip to conversation

Linux 5.10.65

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.10.65 kernel.

All users of the 5.10 kernel series must upgrade.

The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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/renesas/beacon-renesom-som.dtsi        |    3 
 arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi            |    3 
 arch/arm64/boot/dts/renesas/r8a774a1.dtsi                  |    2 
 arch/arm64/boot/dts/renesas/r8a774b1.dtsi                  |    2 
 arch/arm64/boot/dts/renesas/r8a774c0.dtsi                  |    1 
 arch/arm64/boot/dts/renesas/r8a774e1.dtsi                  |    2 
 arch/arm64/boot/dts/renesas/r8a77995-draak.dts             |    4 
 arch/m68k/Kconfig.cpu                                      |    8 
 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/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                                     |    6 
 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 
 drivers/ata/libata-core.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                                        |   10 
 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/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                             |   46 +++
 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c                    |   54 +--
 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/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/i2c/busses/i2c-highlander.c                        |    2 
 drivers/i2c/busses/i2c-hix5hd2.c                           |    4 
 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/irqchip/irq-gic-v3.c                               |   23 +
 drivers/irqchip/irq-loongson-pch-pic.c                     |   19 +
 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/media/i2c/tda1997x.c                               |    1 
 drivers/media/platform/coda/coda-bit.c                     |   18 -
 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/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/rvu_npc.c        |   16 -
 drivers/net/ethernet/mellanox/mlx5/core/devlink.c          |   52 +++
 drivers/net/ethernet/mellanox/mlx5/core/en/fs.h            |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en_fs.c            |   10 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c          |   15 +
 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/wireless/ath/ath6kl/wmi.c                      |    4 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c    |    2 
 drivers/net/wireless/intel/iwlwifi/fw/acpi.c               |   32 +-
 drivers/net/wireless/intel/iwlwifi/fw/acpi.h               |   10 
 drivers/net/wireless/intel/iwlwifi/fw/api/commands.h       |    2 
 drivers/net/wireless/intel/iwlwifi/fw/api/nvm-reg.h        |    8 
 drivers/net/wireless/intel/iwlwifi/fw/api/scan.h           |   12 
 drivers/net/wireless/intel/iwlwifi/fw/file.h               |    2 
 drivers/net/wireless/intel/iwlwifi/iwl-config.h            |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c                |    6 
 drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c          |   10 
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c          |   13 
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c              |   24 -
 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/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/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/debugfs/file.c                                          |    8 
 fs/f2fs/file.c                                             |    5 
 fs/f2fs/super.c                                            |   11 
 fs/fcntl.c                                                 |    5 
 fs/fuse/file.c                                             |    9 
 fs/gfs2/ops_fstype.c                                       |   43 +++
 fs/gfs2/super.c                                            |   61 ----
 fs/io_uring.c                                              |    1 
 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                        |   39 +-
 include/linux/lockdep.h                                    |   15 -
 include/linux/lockdep_types.h                              |   18 +
 include/linux/mlx5/mlx5_ifc.h                              |    3 
 include/linux/power/max17042_battery.h                     |    2 
 include/linux/time64.h                                     |    9 
 include/soc/bcm2835/raspberrypi-firmware.h                 |    2 
 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/lockdep.c                                   |   16 -
 kernel/locking/mutex.c                                     |   15 -
 kernel/power/energy_model.c                                |    4 
 kernel/rcu/tree.c                                          |    4 
 kernel/rcu/tree_plugin.h                                   |    1 
 kernel/rcu/tree_stall.h                                    |   34 ++
 kernel/sched/core.c                                        |   25 +
 kernel/sched/deadline.c                                    |    8 
 kernel/sched/fair.c                                        |    2 
 kernel/sched/sched.h                                       |    2 
 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/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/sched/sch_cbq.c                                        |    2 
 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/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 +--
 tools/include/uapi/linux/bpf.h                             |    2 
 tools/lib/bpf/Makefile                                     |   10 
 tools/lib/bpf/libbpf.c                                     |   16 -
 tools/testing/selftests/bpf/progs/bpf_iter_tcp4.c          |    2 
 tools/testing/selftests/bpf/progs/test_core_autosize.c     |   20 +
 264 files changed, 2073 insertions(+), 1183 deletions(-)

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

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 (1):

      leds: lt3593: Put fwnode in any case during ->probe()

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

Aya Levin (1):
net/mlx5: Register to devlink ingress VLAN filter trap

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

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

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

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

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 (5):
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()
ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point()

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

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 (2):
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 (1):
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

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

Emmanuel Grumbach (1):
iwlwifi: follow the new inclusive terminology

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 (5):
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
arm64: dts: renesas: rzg2: Convert EtherAVB to explicit delay handling
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.10.65

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 (1):
io_uring: IORING_OP_WRITE needs hash_reg_file set

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()

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

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

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

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

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.

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

Leon Romanovsky (3):
ionic: cleanly release devlink instance
devlink: Break parameter notification sequence to be before/after unload/load driver
devlink: Clear whole devlink_flash_notify struct

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

Lukas Bulwahn (1):
clk: staging: correct reference to config IOMEM to config HAS_IOMEM

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

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

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 (2):
net/mlx5e: Prohibit inner indir TIRs in IPoIB net/mlx5e: Block LRO if firmware asks for tunneled LRO

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

Miklos Szeredi (2):
fuse: truncate pagecache on atomic_o_trunc
fuse: flush extending writes

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

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

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

Nicolas Saenz Julienne (1):
firmware: raspberrypi: Keep count of all consumers

Niklas Schnelle (1):
s390/pci: fix misleading rc in clp_set_pci_fn()

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

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

Paul E. McKenney (1):
rcu: Add lockdep_assert_irqs_disabled() to rcu_sched_clock_irq() and callees

Pavel Begunkov (1):
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 (2):
locking/mutex: Fix HANDOFF condition
locking/lockdep: Mark local_lock_t

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 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

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 (2):
Revert "KVM: x86: mmu: Add guest physical address check in translate_gpa()"
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 (15):
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: 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

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

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

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

Subbaraya Sundeep (2):
octeontx2-af: Fix loop in free and unmap counter
octeontx2-af: Fix static code analyzer reported issues

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

Sunil Goutham (1):
octeontx2-af: Set proper errorcode for IPv4 checksum errors

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

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

Tian Tao (1):
i2c: fix platform_get_irq.cocci warnings

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 (1):
PM: cpu: Make notifier chain use a raw_spinlock_t

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

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 (1):
drm/panfrost: Fix missing clk_disable_unprepare() on error in panfrost_clk_init()

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

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

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 (1):
ASoC: mediatek: mt8183: Fix Unbalanced pm_runtime_enable in mt8183_afe_pcm_dev_probe

Zhen Lei (3):
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()

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 982aa1876aa0..91eb017f5296 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 64
+SUBLEVEL = 65
 EXTRAVERSION =
 NAME = Dare mighty things
 
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 04688e8abce2..740a6c816266 100644
@@ -251,8 +251,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>;
 		};
 	};
arch/arm/boot/dts/meson8b-ec100.dts +2 -2
index ed06102a4014..c6824d26dbbf 100644
@@ -153,7 +153,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>;
@@ -237,7 +237,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 33037ef62d0a..b2edac1fce6d 100644
@@ -39,6 +39,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>;
 
@@ -84,7 +86,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 5963566dbcc9..73ce1c13da24 100644
@@ -136,7 +136,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>;
@@ -168,7 +168,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 7599e1a00ff5..48952a556648 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 bbd34ae12a53..2e437f20da39 100644
@@ -134,6 +134,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 83d2d83f7692..2a2015a15362 100644
@@ -487,8 +487,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/renesas/beacon-renesom-som.dtsi +2 -1
index e3773b05c403..3c73dfc430af 100644
@@ -55,7 +55,8 @@ &avb {
 	pinctrl-0 = <&avb_pins>;
 	pinctrl-names = "default";
 	phy-handle = <&phy0>;
-	phy-mode = "rgmii-id";
+	rx-internal-delay-ps = <1800>;
+	tx-internal-delay-ps = <2000>;
 	status = "okay";
 
 	phy0: ethernet-phy@0 {
arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi +2 -1
index b9e46aed5336..dde3a07bc417 100644
@@ -19,7 +19,8 @@ &avb {
 	pinctrl-0 = <&avb_pins>;
 	pinctrl-names = "default";
 	phy-handle = <&phy0>;
-	phy-mode = "rgmii-txid";
+	tx-internal-delay-ps = <2000>;
+	rx-internal-delay-ps = <1800>;
 	status = "okay";
 
 	phy0: ethernet-phy@0 {
arch/arm64/boot/dts/renesas/r8a774a1.dtsi +2 -0
index c58a0846db50..a5ebe574fbac 100644
@@ -1131,6 +1131,8 @@ avb: ethernet@e6800000 {
 			power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
 			resets = <&cpg 812>;
 			phy-mode = "rgmii";
+			rx-internal-delay-ps = <0>;
+			tx-internal-delay-ps = <0>;
 			iommus = <&ipmmu_ds0 16>;
 			#address-cells = <1>;
 			#size-cells = <0>;
arch/arm64/boot/dts/renesas/r8a774b1.dtsi +2 -0
index 9ebf6e58ba31..20003a41a706 100644
@@ -1004,6 +1004,8 @@ avb: ethernet@e6800000 {
 			power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
 			resets = <&cpg 812>;
 			phy-mode = "rgmii";
+			rx-internal-delay-ps = <0>;
+			tx-internal-delay-ps = <0>;
 			iommus = <&ipmmu_ds0 16>;
 			#address-cells = <1>;
 			#size-cells = <0>;
arch/arm64/boot/dts/renesas/r8a774c0.dtsi +1 -0
index f27d9b2eb996..e0e54342cd4c 100644
@@ -960,6 +960,7 @@ avb: ethernet@e6800000 {
 			power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
 			resets = <&cpg 812>;
 			phy-mode = "rgmii";
+			rx-internal-delay-ps = <0>;
 			iommus = <&ipmmu_ds0 16>;
 			#address-cells = <1>;
 			#size-cells = <0>;
arch/arm64/boot/dts/renesas/r8a774e1.dtsi +2 -0
index 708258696b4f..2e6c12a46daf 100644
@@ -1233,6 +1233,8 @@ avb: ethernet@e6800000 {
 			power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
 			resets = <&cpg 812>;
 			phy-mode = "rgmii";
+			rx-internal-delay-ps = <0>;
+			tx-internal-delay-ps = <0>;
 			iommus = <&ipmmu_ds0 16>;
 			#address-cells = <1>;
 			#size-cells = <0>;
arch/arm64/boot/dts/renesas/r8a77995-draak.dts +0 -4
index 8f471881b7a3..2e4bb7ecd5bd 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/m68k/Kconfig.cpu +7 -1
index 694c4fca9f5d..c17205da47fe 100644
@@ -25,6 +25,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
@@ -38,6 +39,7 @@ config M68000
 	bool "MC68000"
 	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
@@ -53,6 +55,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
@@ -357,7 +360,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
@@ -411,6 +414,9 @@ config NODES_SHIFT
 config CPU_HAS_NO_BITFIELDS
 	bool
 
+config CPU_HAS_NO_CAS
+	bool
+
 config CPU_HAS_NO_MULDIV64
 	bool
 
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 463c24e26000..171913b9a925 100644
@@ -957,6 +957,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 2f177298c663..2bb9996ff09b 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 f94b4f78d4da..7f719b468b44 100644
@@ -4015,7 +4015,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 79dcd647b378..2d134833bca6 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 ca1a105e3b5d..0ddb1fe353dc 100644
@@ -659,9 +659,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;
 }
 EXPORT_SYMBOL_GPL(zpci_disable_device);
 
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/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 fc25c88c7ff2..9b5ff423e939 100644
@@ -259,6 +259,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 b7a27589dfa0..056d0367864e 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:
 		/*
@@ -1628,10 +1631,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 3075624723b2..576f16a505e3 100644
@@ -241,6 +241,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 +0 -6
index 5e25d93ec7d0..060d9a906535 100644
@@ -267,12 +267,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;
 }
 
arch/x86/kvm/vmx/nested.c +3 -4
index e0c7910207c0..d5f24a2f3e91 100644
@@ -2243,12 +2243,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 de24d3826788..fcd8bcb7e0ea 100644
@@ -6396,6 +6396,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 812585986bb8..75c59ad27e9f 100644
@@ -3116,6 +3116,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 c91dca641eb4..8ea37328ca84 100644
@@ -2251,6 +2251,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 9c931df2d986..0703a208ca24 100644
@@ -978,6 +978,14 @@ static int __bio_iov_bvec_add_pages(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 *))
 
 /**
@@ -1022,8 +1030,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;
@@ -1068,6 +1078,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 5da43f0973b4..5ffa9aab49de 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 349cd7d3af81..26f4bcc10de9 100644
@@ -341,6 +341,8 @@ void __blk_queue_split(struct bio **bio, unsigned int *nr_segs)
 		trace_block_split(q, split, (*bio)->bi_iter.bi_sector);
 		submit_bio_noacct(*bio);
 		*bio = split;
+
+		blk_throtl_charge_bio_split(*bio);
 	}
 }
 
@@ -700,22 +702,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 b771c4299982..63e9d00a0832 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;
 };
@@ -771,6 +774,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
@@ -793,6 +798,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],
@@ -1025,6 +1033,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)
@@ -2046,12 +2057,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;
@@ -2170,6 +2183,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_disk->queue;
block/blk.h +2 -0
index ecfd523c68d0..f84c83300f6f 100644
@@ -299,11 +299,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 293c5c81397a..2a525863d4e9 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 2b9635d0dcba..e4e90761eab3 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 b6db52ebf0be..b338799c0b24 100644
@@ -47,11 +47,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."
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/base/dd.c +10 -6
index 85bb8742f090..81ad4f867f02 100644
@@ -543,7 +543,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;
@@ -565,15 +566,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 a529235e6bfe..f41e4e4993d3 100644
@@ -164,7 +164,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,
@@ -705,10 +705,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);
@@ -1257,11 +1255,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))
@@ -1269,13 +1267,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)
@@ -1506,9 +1503,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 5db536ccfcd6..456a1787e18d 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 +10 -0
index 59c452fff835..98274ba0701d 100644
@@ -1759,7 +1759,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/char/tpm/tpm_ibmvtpm.c +15 -11
index 994385bf37c0..3ca7528322f5 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;
 }
 
 /**
@@ -459,7 +456,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,
 };
@@ -552,7 +549,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:
@@ -690,8 +687,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 760777458a90..2acfcc966bb5 100644
@@ -572,7 +572,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);
@@ -608,20 +609,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)
@@ -684,7 +690,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 78766b6ec271..21bb2bb767a1 100644
@@ -1224,12 +1224,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/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 39d17ed1db2f..48f78e34cf8d 100644
@@ -1735,7 +1735,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;
@@ -2143,9 +2143,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) {
@@ -2193,9 +2193,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)
@@ -2214,9 +2214,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 d2fedbd7113c..9709f29b6454 100644
@@ -79,10 +79,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 29fd3f1091ab..5e6909d6cfc6 100644
@@ -79,10 +79,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 f22342f612c1..469e06c93faf 100644
@@ -195,8 +195,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);
@@ -219,12 +219,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 42029153408e..5c78433d19d4 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 da6ef007a6ae..de2f137e44ef 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;
@@ -67,7 +69,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) &
@@ -88,8 +90,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 8b090b7ae8c6..e829c6aaf16f 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 2c98fb63f7b7..54b738da829d 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 messge 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 messge 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 31a36288623a..024401ec9d1a 100644
@@ -159,6 +159,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 */
@@ -171,7 +172,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 */
@@ -183,10 +184,10 @@ static irqreturn_t adf_isr(int irq, void *privdata)
 		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 5246f0524ca3..fc4cf141b1de 100644
@@ -79,10 +79,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 4912a7b88380..3a7362f968c9 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) * 0x4000 + (j) * 4)
-#define I10NM_GET_MCDDRTCFG(m, i, j)	\
-	readl((m)->mbase + 0x20970 + (i) * 0x4000 + (j) * 4)
+#define I10NM_GET_MCDDRTCFG(m, i)	\
+	readl((m)->mbase + 0x20970 + (i) * 0x4000)
 #define I10NM_GET_MCMTR(m, i)		\
 	readl((m)->mbase + 0x20ef8 + (i) * 0x4000)
 
@@ -170,10 +170,10 @@ static int i10nm_get_dimm_config(struct mem_ctl_info *mci)
 			continue;
 
 		ndimms = 0;
+		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 6c474fbef32a..b6d4ae84a9a5 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 +43 -3

96 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c +26 -28

92 lines not on this page · raw message

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 2828360153d1..30b949d6856c 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 758c355b4fd8..f8c7100a8acb 100644
@@ -340,10 +340,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);
 	}
 }
 
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c +38 -30

110 lines not on this page · raw message

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 17f26052e845..f31e8ef3c258 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 9e1224d54729..b535621f4f78 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 bf7c34cfb84c..c256929e859b 100644
@@ -60,7 +60,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/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 -3
index ab15b1ec2ab3..8993534bc510 100644
@@ -413,10 +413,8 @@ static int hix5hd2_i2c_probe(struct platform_device *pdev)
 		return PTR_ERR(priv->regs);
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0) {
-		dev_err(&pdev->dev, "cannot find HS-I2C IRQ\n");
+	if (irq < 0)
 		return irq;
-	}
 
 	priv->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(priv->clk)) {
drivers/i2c/busses/i2c-iop3xx.c +2 -4
index 2f8b8050a223..899624721c1e 100644
@@ -467,16 +467,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 dcde71ae6341..1a5f1ccd1d2f 100644
@@ -1207,7 +1207,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 40fa9e4af5d1..05831848b7bf 100644
@@ -1140,7 +1140,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/irqchip/irq-gic-v3.c +22 -1
index 1005b182bab4..1bdb7acf445f 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 9bf6b9a5f734..90e1ad6e3612 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/leds-is31fl32xx.c +1 -0
index 2180255ad339..899ed94b6687 100644
@@ -385,6 +385,7 @@ static int is31fl32xx_parse_dt(struct device *dev,
 			dev_err(dev,
 				"Node %pOF 'reg' conflicts with another LED\n",
 				child);
+			ret = -EINVAL;
 			goto err;
 		}
 
drivers/leds/leds-lt3593.c +2 -3
index 68e06434ac08..7dab08773a34 100644
@@ -99,10 +99,9 @@ static int lt3593_led_probe(struct platform_device *pdev)
 	init_data.default_label = ":";
 
 	ret = devm_led_classdev_register_ext(dev, &led_data->cdev, &init_data);
-	if (ret < 0) {
-		fwnode_handle_put(child);
+	fwnode_handle_put(child);
+	if (ret < 0)
 		return ret;
-	}
 
 	platform_set_drvdata(pdev, led_data);
 
drivers/leds/trigger/ledtrig-audio.c +29 -8
index f76621e88482..c6b437e6369b 100644
@@ -6,10 +6,33 @@
 #include <linux/kernel.h>
 #include <linux/leds.h>
 #include <linux/module.h>
+#include "../leds.h"
 
-static struct led_trigger *ledtrig_audio[NUM_AUDIO_LEDS];
 static enum led_brightness audio_state[NUM_AUDIO_LEDS];
 
+static int ledtrig_audio_mute_activate(struct led_classdev *led_cdev)
+{
+	led_set_brightness_nosleep(led_cdev, audio_state[LED_AUDIO_MUTE]);
+	return 0;
+}
+
+static int ledtrig_audio_micmute_activate(struct led_classdev *led_cdev)
+{
+	led_set_brightness_nosleep(led_cdev, audio_state[LED_AUDIO_MICMUTE]);
+	return 0;
+}
+
+static struct led_trigger ledtrig_audio[NUM_AUDIO_LEDS] = {
+	[LED_AUDIO_MUTE] = {
+		.name     = "audio-mute",
+		.activate = ledtrig_audio_mute_activate,
+	},
+	[LED_AUDIO_MICMUTE] = {
+		.name     = "audio-micmute",
+		.activate = ledtrig_audio_micmute_activate,
+	},
+};
+
 enum led_brightness ledtrig_audio_get(enum led_audio type)
 {
 	return audio_state[type];
@@ -19,24 +42,22 @@ EXPORT_SYMBOL_GPL(ledtrig_audio_get);
 void ledtrig_audio_set(enum led_audio type, enum led_brightness state)
 {
 	audio_state[type] = state;
-	led_trigger_event(ledtrig_audio[type], state);
+	led_trigger_event(&ledtrig_audio[type], state);
 }
 EXPORT_SYMBOL_GPL(ledtrig_audio_set);
 
 static int __init ledtrig_audio_init(void)
 {
-	led_trigger_register_simple("audio-mute",
-				    &ledtrig_audio[LED_AUDIO_MUTE]);
-	led_trigger_register_simple("audio-micmute",
-				    &ledtrig_audio[LED_AUDIO_MICMUTE]);
+	led_trigger_register(&ledtrig_audio[LED_AUDIO_MUTE]);
+	led_trigger_register(&ledtrig_audio[LED_AUDIO_MICMUTE]);
 	return 0;
 }
 module_init(ledtrig_audio_init);
 
 static void __exit ledtrig_audio_exit(void)
 {
-	led_trigger_unregister_simple(ledtrig_audio[LED_AUDIO_MUTE]);
-	led_trigger_unregister_simple(ledtrig_audio[LED_AUDIO_MICMUTE]);
+	led_trigger_unregister(&ledtrig_audio[LED_AUDIO_MUTE]);
+	led_trigger_unregister(&ledtrig_audio[LED_AUDIO_MICMUTE]);
 }
 module_exit(ledtrig_audio_exit);
 
drivers/md/bcache/super.c +11 -5
index 248bda63f085..81f1cc5b3499 100644
@@ -934,20 +934,20 @@ static int bcache_device_init(struct bcache_device *d, unsigned int block_size,
 	n = BITS_TO_LONGS(d->nr_stripes) * sizeof(unsigned long);
 	d->full_dirty_stripes = kvzalloc(n, GFP_KERNEL);
 	if (!d->full_dirty_stripes)
-		return -ENOMEM;
+		goto out_free_stripe_sectors_dirty;
 
 	idx = ida_simple_get(&bcache_device_idx, 0,
 				BCACHE_DEVICE_IDX_MAX, GFP_KERNEL);
 	if (idx < 0)
-		return idx;
+		goto out_free_full_dirty_stripes;
 
 	if (bioset_init(&d->bio_split, 4, offsetof(struct bbio, bio),
 			BIOSET_NEED_BVECS|BIOSET_NEED_RESCUER))
-		goto err;
+		goto out_ida_remove;
 
 	d->disk = alloc_disk(BCACHE_MINORS);
 	if (!d->disk)
-		goto err;
+		goto out_bioset_exit;
 
 	set_capacity(d->disk, sectors);
 	snprintf(d->disk->disk_name, DISK_NAME_LEN, "bcache%i", idx);
@@ -993,8 +993,14 @@ static int bcache_device_init(struct bcache_device *d, unsigned int block_size,
 
 	return 0;
 
-err:
+out_bioset_exit:
+	bioset_exit(&d->bio_split);
+out_ida_remove:
 	ida_simple_remove(&bcache_device_idx, idx);
+out_free_full_dirty_stripes:
+	kvfree(d->full_dirty_stripes);
+out_free_stripe_sectors_dirty:
+	kvfree(d->stripe_sectors_dirty);
 	return -ENOMEM;
 
 }
drivers/media/i2c/tda1997x.c +1 -0
index 89bb7e6dc7a4..9554c8348c02 100644
@@ -2233,6 +2233,7 @@ static int tda1997x_core_init(struct v4l2_subdev *sd)
 	/* get initial HDMI status */
 	state->hdmi_status = io_read(sd, REG_HDMI_FLAGS);
 
+	io_write(sd, REG_EDID_ENABLE, EDID_ENABLE_A_EN | EDID_ENABLE_B_EN);
 	return 0;
 }
 
drivers/media/platform/coda/coda-bit.c +13 -5
index bf75927bac4e..159c9de85788 100644
@@ -2031,17 +2031,25 @@ static int __coda_start_decoding(struct coda_ctx *ctx)
 	u32 src_fourcc, dst_fourcc;
 	int ret;
 
+	q_data_src = get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT);
+	q_data_dst = get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
+	src_fourcc = q_data_src->fourcc;
+	dst_fourcc = q_data_dst->fourcc;
+
 	if (!ctx->initialized) {
 		ret = __coda_decoder_seq_init(ctx);
 		if (ret < 0)
 			return ret;
+	} else {
+		ctx->frame_mem_ctrl &= ~(CODA_FRAME_CHROMA_INTERLEAVE | (0x3 << 9) |
+					 CODA9_FRAME_TILED2LINEAR);
+		if (dst_fourcc == V4L2_PIX_FMT_NV12 || dst_fourcc == V4L2_PIX_FMT_YUYV)
+			ctx->frame_mem_ctrl |= CODA_FRAME_CHROMA_INTERLEAVE;
+		if (ctx->tiled_map_type == GDI_TILED_FRAME_MB_RASTER_MAP)
+			ctx->frame_mem_ctrl |= (0x3 << 9) |
+				((ctx->use_vdoa) ? 0 : CODA9_FRAME_TILED2LINEAR);
 	}
 
-	q_data_src = get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT);
-	q_data_dst = get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
-	src_fourcc = q_data_src->fourcc;
-	dst_fourcc = q_data_dst->fourcc;
-
 	coda_write(dev, ctx->parabuf.paddr, CODA_REG_BIT_PARA_BUF_ADDR);
 
 	ret = coda_alloc_framebuffers(ctx, q_data_dst, src_fourcc);
drivers/media/platform/qcom/venus/venc.c +2 -0
index 47246528ac7e..e2d0fd5eaf29 100644
@@ -183,6 +183,8 @@ venc_try_fmt_common(struct venus_inst *inst, struct v4l2_format *f)
 		else
 			return NULL;
 		fmt = find_format(inst, pixmp->pixelformat, f->type);
+		if (!fmt)
+			return NULL;
 	}
 
 	pixmp->width = clamp(pixmp->width, frame_width_min(inst),
drivers/media/platform/rockchip/rga/rga-buf.c +1 -2
index bf9a75b75083..81508ed5abf3 100644
@@ -79,9 +79,8 @@ static int rga_buf_start_streaming(struct vb2_queue *q, unsigned int count)
 	struct rockchip_rga *rga = ctx->rga;
 	int ret;
 
-	ret = pm_runtime_get_sync(rga->dev);
+	ret = pm_runtime_resume_and_get(rga->dev);
 	if (ret < 0) {
-		pm_runtime_put_noidle(rga->dev);
 		rga_buf_return_buffers(q, VB2_BUF_STATE_QUEUED);
 		return ret;
 	}
drivers/media/platform/rockchip/rga/rga.c +24 -5
index 9d122429706e..6759091b15e0 100644
@@ -863,10 +863,12 @@ static int rga_probe(struct platform_device *pdev)
 	if (IS_ERR(rga->m2m_dev)) {
 		v4l2_err(&rga->v4l2_dev, "Failed to init mem2mem device\n");
 		ret = PTR_ERR(rga->m2m_dev);
-		goto unreg_video_dev;
+		goto rel_vdev;
 	}
 
-	pm_runtime_get_sync(rga->dev);
+	ret = pm_runtime_resume_and_get(rga->dev);
+	if (ret < 0)
+		goto rel_vdev;
 
 	rga->version.major = (rga_read(rga, RGA_VERSION_INFO) >> 24) & 0xFF;
 	rga->version.minor = (rga_read(rga, RGA_VERSION_INFO) >> 20) & 0x0F;
@@ -880,11 +882,23 @@ static int rga_probe(struct platform_device *pdev)
 	rga->cmdbuf_virt = dma_alloc_attrs(rga->dev, RGA_CMDBUF_SIZE,
 					   &rga->cmdbuf_phy, GFP_KERNEL,
 					   DMA_ATTR_WRITE_COMBINE);
+	if (!rga->cmdbuf_virt) {
+		ret = -ENOMEM;
+		goto rel_vdev;
+	}
 
 	rga->src_mmu_pages =
 		(unsigned int *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 3);
+	if (!rga->src_mmu_pages) {
+		ret = -ENOMEM;
+		goto free_dma;
+	}
 	rga->dst_mmu_pages =
 		(unsigned int *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 3);
+	if (rga->dst_mmu_pages) {
+		ret = -ENOMEM;
+		goto free_src_pages;
+	}
 
 	def_frame.stride = (def_frame.width * def_frame.fmt->depth) >> 3;
 	def_frame.size = def_frame.stride * def_frame.height;
@@ -892,7 +906,7 @@ static int rga_probe(struct platform_device *pdev)
 	ret = video_register_device(vfd, VFL_TYPE_VIDEO, -1);
 	if (ret) {
 		v4l2_err(&rga->v4l2_dev, "Failed to register video device\n");
-		goto rel_vdev;
+		goto free_dst_pages;
 	}
 
 	v4l2_info(&rga->v4l2_dev, "Registered %s as /dev/%s\n",
@@ -900,10 +914,15 @@ static int rga_probe(struct platform_device *pdev)
 
 	return 0;
 
+free_dst_pages:
+	free_pages((unsigned long)rga->dst_mmu_pages, 3);
+free_src_pages:
+	free_pages((unsigned long)rga->src_mmu_pages, 3);
+free_dma:
+	dma_free_attrs(rga->dev, RGA_CMDBUF_SIZE, rga->cmdbuf_virt,
+		       rga->cmdbuf_phy, DMA_ATTR_WRITE_COMBINE);
 rel_vdev:
 	video_device_release(vfd);
-unreg_video_dev:
-	video_unregister_device(rga->vfd);
 unreg_v4l2_dev:
 	v4l2_device_unregister(&rga->v4l2_dev);
 err_put_clk:
drivers/media/spi/cxd2880-spi.c +5 -2
index 4077217777f9..93194f03764d 100644
@@ -524,13 +524,13 @@ cxd2880_spi_probe(struct spi_device *spi)
 	if (IS_ERR(dvb_spi->vcc_supply)) {
 		if (PTR_ERR(dvb_spi->vcc_supply) == -EPROBE_DEFER) {
 			ret = -EPROBE_DEFER;
-			goto fail_adapter;
+			goto fail_regulator;
 		}
 		dvb_spi->vcc_supply = NULL;
 	} else {
 		ret = regulator_enable(dvb_spi->vcc_supply);
 		if (ret)
-			goto fail_adapter;
+			goto fail_regulator;
 	}
 
 	dvb_spi->spi = spi;
@@ -618,6 +618,9 @@ cxd2880_spi_probe(struct spi_device *spi)
 fail_attach:
 	dvb_unregister_adapter(&dvb_spi->adapter);
 fail_adapter:
+	if (!dvb_spi->vcc_supply)
+		regulator_disable(dvb_spi->vcc_supply);
+fail_regulator:
 	kfree(dvb_spi);
 	return ret;
 }
drivers/media/usb/dvb-usb/dvb-usb-i2c.c +7 -2
index 2e07106f4680..bc4b2abdde1a 100644
@@ -17,7 +17,8 @@ int dvb_usb_i2c_init(struct dvb_usb_device *d)
 
 	if (d->props.i2c_algo == NULL) {
 		err("no i2c algorithm specified");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err;
 	}
 
 	strscpy(d->i2c_adap.name, d->desc->name, sizeof(d->i2c_adap.name));
@@ -27,11 +28,15 @@ int dvb_usb_i2c_init(struct dvb_usb_device *d)
 
 	i2c_set_adapdata(&d->i2c_adap, d);
 
-	if ((ret = i2c_add_adapter(&d->i2c_adap)) < 0)
+	ret = i2c_add_adapter(&d->i2c_adap);
+	if (ret < 0) {
 		err("could not add i2c adapter");
+		goto err;
+	}
 
 	d->state |= DVB_USB_STATE_I2C;
 
+err:
 	return ret;
 }
 
drivers/media/usb/dvb-usb/dvb-usb-init.c +1 -1
index 28e1fd64dd3c..61439c8f33ca 100644
@@ -194,8 +194,8 @@ static int dvb_usb_init(struct dvb_usb_device *d, short *adapter_nums)
 
 err_adapter_init:
 	dvb_usb_adapter_exit(d);
-err_i2c_init:
 	dvb_usb_i2c_exit(d);
+err_i2c_init:
 	if (d->priv && d->props.priv_destroy)
 		d->props.priv_destroy(d);
 err_priv_init:
drivers/media/usb/dvb-usb/nova-t-usb2.c +4 -2
index e7b290552b66..9c0eb0d40822 100644
@@ -130,7 +130,7 @@ static int nova_t_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
 
 static int nova_t_read_mac_address (struct dvb_usb_device *d, u8 mac[6])
 {
-	int i;
+	int i, ret;
 	u8 b;
 
 	mac[0] = 0x00;
@@ -139,7 +139,9 @@ static int nova_t_read_mac_address (struct dvb_usb_device *d, u8 mac[6])
 
 	/* this is a complete guess, but works for my box */
 	for (i = 136; i < 139; i++) {
-		dibusb_read_eeprom_byte(d,i, &b);
+		ret = dibusb_read_eeprom_byte(d, i, &b);
+		if (ret)
+			return ret;
 
 		mac[5 - (i - 136)] = b;
 	}
drivers/media/usb/dvb-usb/vp702x.c +9 -3
index bf54747e2e01..a1d9e4801a2b 100644
@@ -291,16 +291,22 @@ static int vp702x_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
 static int vp702x_read_mac_addr(struct dvb_usb_device *d,u8 mac[6])
 {
 	u8 i, *buf;
+	int ret;
 	struct vp702x_device_state *st = d->priv;
 
 	mutex_lock(&st->buf_mutex);
 	buf = st->buf;
-	for (i = 6; i < 12; i++)
-		vp702x_usb_in_op(d, READ_EEPROM_REQ, i, 1, &buf[i - 6], 1);
+	for (i = 6; i < 12; i++) {
+		ret = vp702x_usb_in_op(d, READ_EEPROM_REQ, i, 1,
+				       &buf[i - 6], 1);
+		if (ret < 0)
+			goto err;
+	}
 
 	memcpy(mac, buf, 6);
+err:
 	mutex_unlock(&st->buf_mutex);
-	return 0;
+	return ret;
 }
 
 static int vp702x_frontend_attach(struct dvb_usb_adapter *adap)
drivers/media/usb/em28xx/em28xx-input.c +0 -1
index 59529cbf9cd0..0b6d77c3bec8 100644
@@ -842,7 +842,6 @@ static int em28xx_ir_init(struct em28xx *dev)
 	kfree(ir);
 ref_put:
 	em28xx_shutdown_buttons(dev);
-	kref_put(&dev->ref, em28xx_free_device);
 	return err;
 }
 
drivers/media/usb/go7007/go7007-driver.c +0 -26
index f1767be9d868..6650eab913d8 100644
@@ -691,49 +691,23 @@ struct go7007 *go7007_alloc(const struct go7007_board_info *board,
 						struct device *dev)
 {
 	struct go7007 *go;
-	int i;
 
 	go = kzalloc(sizeof(struct go7007), GFP_KERNEL);
 	if (go == NULL)
 		return NULL;
 	go->dev = dev;
 	go->board_info = board;
-	go->board_id = 0;
 	go->tuner_type = -1;
-	go->channel_number = 0;
-	go->name[0] = 0;
 	mutex_init(&go->hw_lock);
 	init_waitqueue_head(&go->frame_waitq);
 	spin_lock_init(&go->spinlock);
 	go->status = STATUS_INIT;
-	memset(&go->i2c_adapter, 0, sizeof(go->i2c_adapter));
-	go->i2c_adapter_online = 0;
-	go->interrupt_available = 0;
 	init_waitqueue_head(&go->interrupt_waitq);
-	go->input = 0;
 	go7007_update_board(go);
-	go->encoder_h_halve = 0;
-	go->encoder_v_halve = 0;
-	go->encoder_subsample = 0;
 	go->format = V4L2_PIX_FMT_MJPEG;
 	go->bitrate = 1500000;
 	go->fps_scale = 1;
-	go->pali = 0;
 	go->aspect_ratio = GO7007_RATIO_1_1;
-	go->gop_size = 0;
-	go->ipb = 0;
-	go->closed_gop = 0;
-	go->repeat_seqhead = 0;
-	go->seq_header_enable = 0;
-	go->gop_header_enable = 0;
-	go->dvd_mode = 0;
-	go->interlace_coding = 0;
-	for (i = 0; i < 4; ++i)
-		go->modet[i].enable = 0;
-	for (i = 0; i < 1624; ++i)
-		go->modet_map[i] = 0;
-	go->audio_deliver = NULL;
-	go->audio_enabled = 0;
 
 	return go;
 }
drivers/media/usb/go7007/go7007-usb.c +1 -1
index dbf0455d5d50..eeb85981e02b 100644
@@ -1134,7 +1134,7 @@ static int go7007_usb_probe(struct usb_interface *intf,
 
 	ep = usb->usbdev->ep_in[4];
 	if (!ep)
-		return -ENODEV;
+		goto allocfail;
 
 	/* Allocate the URB and buffer for receiving incoming interrupts */
 	usb->intr_urb = usb_alloc_urb(0, GFP_KERNEL);
drivers/misc/lkdtm/core.c +1 -1
index c802db9aaeb0..32b3d77368e3 100644
@@ -81,7 +81,7 @@ static struct crashpoint crashpoints[] = {
 	CRASHPOINT("FS_DEVRW",		 "ll_rw_block"),
 	CRASHPOINT("MEM_SWAPOUT",	 "shrink_inactive_list"),
 	CRASHPOINT("TIMERADD",		 "hrtimer_start"),
-	CRASHPOINT("SCSI_DISPATCH_CMD",	 "scsi_dispatch_cmd"),
+	CRASHPOINT("SCSI_QUEUE_RQ",	 "scsi_queue_rq"),
 	CRASHPOINT("IDE_CORE_CP",	 "generic_ide_ioctl"),
 #endif
 };
drivers/mmc/host/dw_mmc.c +1 -0
index 8b5d542e20f3..7f90326b1be5 100644
@@ -782,6 +782,7 @@ static int dw_mci_edmac_start_dma(struct dw_mci *host,
 	int ret = 0;
 
 	/* Set external dma config: burst size, burst width */
+	memset(&cfg, 0, sizeof(cfg));
 	cfg.dst_addr = host->phy_regs + fifo_offset;
 	cfg.src_addr = cfg.dst_addr;
 	cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
drivers/mmc/host/moxart-mmc.c +1 -0
index f25079ba3bca..2e4a7c6971dc 100644
@@ -631,6 +631,7 @@ static int moxart_probe(struct platform_device *pdev)
 			 host->dma_chan_tx, host->dma_chan_rx);
 		host->have_dma = true;
 
+		memset(&cfg, 0, sizeof(cfg));
 		cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
 		cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
 
drivers/mmc/host/sdhci.c +1 -0
index 6cdadbb3accd..b1e1d327cb8e 100644
@@ -1223,6 +1223,7 @@ static int sdhci_external_dma_setup(struct sdhci_host *host,
 	if (!host->mapbase)
 		return -EINVAL;
 
+	memset(&cfg, 0, sizeof(cfg));
 	cfg.src_addr = host->mapbase + SDHCI_BUFFER;
 	cfg.dst_addr = host->mapbase + SDHCI_BUFFER;
 	cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +3 -0
index 59253846e885..f26d03735619 100644
@@ -417,6 +417,9 @@ static int atl_resume_common(struct device *dev, bool deep)
 	pci_restore_state(pdev);
 
 	if (deep) {
+		/* Reinitialize Nic/Vecs objects */
+		aq_nic_deinit(nic, !nic->aq_hw->aq_nic_cfg->wol);
+
 		ret = aq_nic_init(nic);
 		if (ret)
 			goto err_exit;
drivers/net/ethernet/google/gve/gve_adminq.c +4 -2
index 24ae6a28a806..6009d76e41fc 100644
@@ -182,7 +182,8 @@ static int gve_adminq_issue_cmd(struct gve_priv *priv,
 	tail = ioread32be(&priv->reg_bar0->adminq_event_counter);
 
 	// Check if next command will overflow the buffer.
-	if (((priv->adminq_prod_cnt + 1) & priv->adminq_mask) == tail) {
+	if (((priv->adminq_prod_cnt + 1) & priv->adminq_mask) ==
+	    (tail & priv->adminq_mask)) {
 		int err;
 
 		// Flush existing commands to make room.
@@ -192,7 +193,8 @@ static int gve_adminq_issue_cmd(struct gve_priv *priv,
 
 		// Retry.
 		tail = ioread32be(&priv->reg_bar0->adminq_event_counter);
-		if (((priv->adminq_prod_cnt + 1) & priv->adminq_mask) == tail) {
+		if (((priv->adminq_prod_cnt + 1) & priv->adminq_mask) ==
+		    (tail & priv->adminq_mask)) {
 			// This should never happen. We just flushed the
 			// command queue so there should be enough space.
 			return -ENOMEM;
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +20 -3
index e4f13a49c3df..a02167cce81e 100644
@@ -1107,12 +1107,12 @@ static int i40e_quiesce_vf_pci(struct i40e_vf *vf)
 }
 
 /**
- * i40e_getnum_vf_vsi_vlan_filters
+ * __i40e_getnum_vf_vsi_vlan_filters
  * @vsi: pointer to the vsi
  *
  * called to get the number of VLANs offloaded on this VF
  **/
-static int i40e_getnum_vf_vsi_vlan_filters(struct i40e_vsi *vsi)
+static int __i40e_getnum_vf_vsi_vlan_filters(struct i40e_vsi *vsi)
 {
 	struct i40e_mac_filter *f;
 	u16 num_vlans = 0, bkt;
@@ -1125,6 +1125,23 @@ static int i40e_getnum_vf_vsi_vlan_filters(struct i40e_vsi *vsi)
 	return num_vlans;
 }
 
+/**
+ * i40e_getnum_vf_vsi_vlan_filters
+ * @vsi: pointer to the vsi
+ *
+ * wrapper for __i40e_getnum_vf_vsi_vlan_filters() with spinlock held
+ **/
+static int i40e_getnum_vf_vsi_vlan_filters(struct i40e_vsi *vsi)
+{
+	int num_vlans;
+
+	spin_lock_bh(&vsi->mac_filter_hash_lock);
+	num_vlans = __i40e_getnum_vf_vsi_vlan_filters(vsi);
+	spin_unlock_bh(&vsi->mac_filter_hash_lock);
+
+	return num_vlans;
+}
+
 /**
  * i40e_get_vlan_list_sync
  * @vsi: pointer to the VSI
@@ -1142,7 +1159,7 @@ static void i40e_get_vlan_list_sync(struct i40e_vsi *vsi, u16 *num_vlans,
 	int bkt;
 
 	spin_lock_bh(&vsi->mac_filter_hash_lock);
-	*num_vlans = i40e_getnum_vf_vsi_vlan_filters(vsi);
+	*num_vlans = __i40e_getnum_vf_vsi_vlan_filters(vsi);
 	*vlan_list = kcalloc(*num_vlans, sizeof(**vlan_list), GFP_ATOMIC);
 	if (!(*vlan_list))
 		goto err;
drivers/net/ethernet/intel/ice/ice_main.c +9 -4
index a46780570cd9..5d0dc1f811e0 100644
@@ -4879,6 +4879,7 @@ static int ice_set_mac_address(struct net_device *netdev, void *pi)
 	struct ice_hw *hw = &pf->hw;
 	struct sockaddr *addr = pi;
 	enum ice_status status;
+	u8 old_mac[ETH_ALEN];
 	u8 flags = 0;
 	int err = 0;
 	u8 *mac;
@@ -4901,8 +4902,13 @@ static int ice_set_mac_address(struct net_device *netdev, void *pi)
 	}
 
 	netif_addr_lock_bh(netdev);
+	ether_addr_copy(old_mac, netdev->dev_addr);
+	/* change the netdev's MAC address */
+	memcpy(netdev->dev_addr, mac, netdev->addr_len);
+	netif_addr_unlock_bh(netdev);
+
 	/* Clean up old MAC filter. Not an error if old filter doesn't exist */
-	status = ice_fltr_remove_mac(vsi, netdev->dev_addr, ICE_FWD_TO_VSI);
+	status = ice_fltr_remove_mac(vsi, old_mac, ICE_FWD_TO_VSI);
 	if (status && status != ICE_ERR_DOES_NOT_EXIST) {
 		err = -EADDRNOTAVAIL;
 		goto err_update_filters;
@@ -4925,13 +4931,12 @@ static int ice_set_mac_address(struct net_device *netdev, void *pi)
 	if (err) {
 		netdev_err(netdev, "can't set MAC %pM. filter update failed\n",
 			   mac);
[… more lines in the raw message]

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +9 -7
index 169ae491f978..6fa9358e6db4 100644

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

drivers/net/ethernet/mellanox/mlx5/core/devlink.c +52 -0

52 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en/fs.h +0 -6
index dc744702aee4..000ca294b0a0 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_fs.c +5 -5
index 93877becfae2..f405c256b3cd 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +15 -0
index 6b4a3d90c9f7..6974090a7efa 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +4 -1
index c9c2962ad49f..5801f55ff077 100644

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

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c +2 -16
index 97b5fcb1f406..5c6a376aa62e 100644

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

drivers/net/ethernet/pensando/ionic/ionic_devlink.c +7 -7
index 51d64718ed9f..3d94064c685d 100644

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

drivers/net/ethernet/qualcomm/qca_spi.c +1 -1
index 5a3b65a6eb4f..36bcb5db3be9 100644

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

drivers/net/ethernet/qualcomm/qca_uart.c +1 -1
index 362b4f5c162c..0b7301db20ed 100644

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

drivers/net/wireless/ath/ath6kl/wmi.c +3 -1
index dbc47702a268..5bacddee8344 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +1 -1
index 603aff421e38..1f12dfb33938 100644

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

drivers/net/wireless/intel/iwlwifi/fw/acpi.c +16 -16
index 3e5a35e26ad3..5e4faf9ce4bb 100644

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

drivers/net/wireless/intel/iwlwifi/fw/acpi.h +5 -5
index bddf8a44e163..dfd341421adc 100644

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

drivers/net/wireless/intel/iwlwifi/fw/api/commands.h +1 -1
index 8cc36dbb2311..21543bc21c16 100644

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

drivers/net/wireless/intel/iwlwifi/fw/api/nvm-reg.h +4 -4
index 55573168444e..dd79bac98657 100644

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

drivers/net/wireless/intel/iwlwifi/fw/api/scan.h +6 -6
index 5cc33a1b7172..65d660819966 100644

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

drivers/net/wireless/intel/iwlwifi/fw/file.h +1 -1
index 02c64b988a13..1be9ab186bbd 100644

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

drivers/net/wireless/intel/iwlwifi/iwl-config.h +1 -1
index bd04e4fbbb8a..1a844c10c442 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/fw.c +3 -3
index ad374b25e255..6348dfa61724 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +5 -5
index cbdebefb854a..5243b84e653c 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +7 -6
index 8cba923b1ec6..9caff70cbd27 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/scan.c +12 -12
index 875281cf7fc0..aebaad45043f 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/drv.c +1 -0
index eeb70560b746..90b12e201795 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 00b558984798..3b13de59605e 100644

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

drivers/nvme/host/rdma.c +2 -2
index e6d58402b829..c6c2e2361b2f 100644

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

drivers/nvme/host/tcp.c +2 -2
index 82b2611d39a2..5b11d8a23813 100644

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

drivers/nvme/target/fabrics-cmd.c +5 -4
index 42bd12b8bf00..e62d3d0fa6c8 100644

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

drivers/pci/pci.c +18 -7
index 9e971fffeb6a..29f5d699fa06 100644

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

drivers/power/supply/axp288_fuel_gauge.c +2 -2
index 148eb8105803..be24529157be 100644

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

drivers/power/supply/cw2015_battery.c +3 -1
index 0146f1bfc29b..de1fa71be1e8 100644

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

drivers/power/supply/max17042_battery.c +1 -1
index 794caf03658d..48d3985eaa8a 100644

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

drivers/power/supply/smb347-charger.c +10 -0
index 8cfbd8d6b478..912e2184f918 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 cca1a7c4bb33..305db4173dcf 100644

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

drivers/s390/crypto/ap_bus.c +8 -17
index ef738b42a092..c00a288a4eca 100644

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

drivers/s390/crypto/ap_bus.h +2 -8
index 5029b80132aa..ccdbd95cab70 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 b1046811450f..ffab935ddd95 100644

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

drivers/soc/qcom/rpmhpd.c +2 -3
index e72426221a69..c8b584d0c8fb 100644

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

drivers/soc/qcom/smsm.c +8 -3
index 70c3c90b997c..c428d0f78816 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 7453a1dbbc06..fda73221f3b7 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 392ec5cfa3d6..307c079b938d 100644

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

drivers/spi/spi-zynq-qspi.c +4 -4
index 68193db8b2e3..b635835729d6 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 2e74c88808db..a70911a227a8 100644

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

drivers/tty/tty_io.c +2 -2
index bc5314092aa4..669aef77a0bd 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 8bd077fb1190..2a29e2f681fe 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/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 98030d75833b..00939ca2065a 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/debugfs/file.c +6 -2
index 686e0ad28788..3aa5eb9ce498 100644

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

fs/f2fs/file.c +2 -3
index 5c74b2997197..6ee8b1e0e174 100644

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

fs/f2fs/super.c +10 -1
index c52988067887..476b2c497d28 100644

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

fs/fcntl.c +3 -2
index 05b36b28f2e8..71b43538fa44 100644

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

fs/fuse/file.c +6 -3
index 8de9c24ac4ac..c9606f2d2864 100644

Lines of this file are not shown. View the 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_uring.c +1 -0
index 108b0ed31c11..2009d1cda606 100644

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

fs/iomap/swapfile.c +6 -0
index a5e478de1417..2ceea45aefd8 100644

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

fs/isofs/inode.c +13 -14
index ec90773527ee..35675a1065be 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 80e394a2e3fd..142aac9b63a8 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 542471b76f41..8aae375864b6 100644

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

include/linux/energy_model.h +16 -0
index b67a51c574b9..5f04a2b35e80 100644

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

include/linux/hrtimer.h +0 -5
index 107cedd7019a..7f1b8549ebce 100644

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

include/linux/local_lock_internal.h +23 -16
index 4a8795b21d77..3f02b818625e 100644

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

include/linux/lockdep.h +12 -3
index f5594879175a..20b6797babe2 100644

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

include/linux/lockdep_types.h +14 -4
index 9a1fd49df17f..2ec9ff5a7fff 100644

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

include/linux/mlx5/mlx5_ifc.h +2 -1
index af8f4e2cf21d..70a3664785f8 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/time64.h +7 -2
index 5117cb5b5656..81b9686a2079 100644

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

include/soc/bcm2835/raspberrypi-firmware.h +2 -0
index cc9cdbc66403..fdfef7fe40df 100644

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

include/uapi/linux/bpf.h +1 -1
index 556216dc9703..762bf87c26a3 100644

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

kernel/bpf/verifier.c +20 -11
index 29d4f4e37595..cba1f86e75cd 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 6990490fa67b..1f981162648a 100644

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

kernel/locking/lockdep.c +9 -7
index 8ae9d7abebc0..5184f6896815 100644

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

kernel/locking/mutex.c +5 -10
index 15ac7c4bb111..86061901636c 100644

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

kernel/power/energy_model.c +3 -1
index 994ca8353543..be381eb6116a 100644

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

kernel/rcu/tree.c +4 -0
index 8c3ba0185082..8c81c05c4236 100644

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

kernel/rcu/tree_plugin.h +1 -0
index 7d4f78bf4057..574aeaac9272 100644

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

kernel/rcu/tree_stall.h +31 -3
index ca21d28a0f98..251a9af3709a 100644

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

kernel/sched/core.c +19 -6
index 84c105902027..6db20a66e8e6 100644

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

kernel/sched/deadline.c +5 -3
index 6b98c1fe6e7f..a3ae00c348a8 100644

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

kernel/sched/fair.c +1 -1
index bad97d35684d..c004e3b89c32 100644

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

kernel/sched/sched.h +2 -0
index 39112ac7ab34..08db8e095e48 100644

Lines of this file are not shown. View the 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 08c033b80256..d3d42b7637a1 100644

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

kernel/time/tick-internal.h +3 -0
index 7b2496136729..5294f5b1f955 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 65d3f5409963..a9097fb7eb82 100644

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

net/bluetooth/mgmt.c +1 -1
index 31a585fe0c7c..08f67f91d427 100644

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

net/bluetooth/sco.c +6 -5
index 22a110f37abc..600b1832e1dd 100644

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

net/core/devlink.c +22 -14
index 90badb6f7227..96cf4bc1f958 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 04e259a04443..71395e745bc5 100644

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

net/ipv6/route.c +4 -1
index bcf4fae83a9b..168a7b4d957a 100644

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

net/mac80211/tx.c +3 -1
index 20b3581a1c43..673ad3cf2c3a 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/sched/sch_cbq.c +1 -1
index 53d45e029c36..4a78fcf5d4f9 100644

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

samples/bpf/xdp_redirect_cpu_user.c +1 -1
index f78cb18319aa..16eb839e71f0 100644

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

samples/pktgen/pktgen_sample04_many_flows.sh +7 -5
index 2cd6b701400d..9db1ecf8de8b 100755

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

samples/pktgen/pktgen_sample05_flow_per_thread.sh +7 -5
index 4cb6252ade39..9fc6c6da028a 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 547445d1e3c6..89e545eb9a8a 100644

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

sound/soc/codecs/wcd9335.c +21 -2
index 4d2b1ec7c03b..2677d0c3b19b 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 26dde88bb227..9b85811ffd51 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 4ed1349affc4..20f2132a9cd6 100644

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

sound/soc/intel/skylake/skl-topology.c +10 -15
index 0955cbb4e918..73976c6dfbdc 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

tools/include/uapi/linux/bpf.h +1 -1
index 556216dc9703..762bf87c26a3 100644

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

tools/lib/bpf/Makefile +5 -5
index 310f647c2d5b..154b75fc1373 100644

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

tools/lib/bpf/libbpf.c +8 -8
index 95eef7ebdac5..28923b776cdc 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.

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

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