Skip to contentSkip to conversation

Linux 5.4.235

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 11, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.4.235 kernel.

All users of the 5.4 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/admin-guide/cgroup-v1/memory.rst                      |   13 
 Documentation/admin-guide/hw-vuln/spectre.rst                       |   21 
 Documentation/dev-tools/gdb-kernel-debugging.rst                    |    4 
 Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml  |    1 
 Documentation/virt/kvm/api.txt                                      |   18 
 Documentation/virt/kvm/devices/vm.txt                               |    4 
 Makefile                                                            |   13 
 arch/alpha/kernel/traps.c                                           |   30 
 arch/arm/boot/dts/exynos3250-rinato.dts                             |    2 
 arch/arm/boot/dts/exynos4-cpu-thermal.dtsi                          |    2 
 arch/arm/boot/dts/exynos4.dtsi                                      |    2 
 arch/arm/boot/dts/exynos5410-odroidxu.dts                           |    1 
 arch/arm/boot/dts/exynos5420.dtsi                                   |    2 
 arch/arm/boot/dts/imx7s.dtsi                                        |    2 
 arch/arm/boot/dts/spear320-hmi.dts                                  |    2 
 arch/arm/mach-imx/mmdc.c                                            |   24 
 arch/arm/mach-omap1/timer.c                                         |    2 
 arch/arm/mach-omap2/timer.c                                         |    1 
 arch/arm/mach-zynq/slcr.c                                           |    1 
 arch/arm64/boot/dts/amlogic/meson-axg.dtsi                          |    4 
 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi                   |    2 
 arch/arm64/boot/dts/amlogic/meson-g12a.dtsi                         |   20 
 arch/arm64/boot/dts/amlogic/meson-gx.dtsi                           |    6 
 arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts          |    2 
 arch/arm64/boot/dts/amlogic/meson-gxl.dtsi                          |    2 
 arch/arm64/boot/dts/mediatek/mt7622.dtsi                            |    1 
 arch/arm64/boot/dts/qcom/qcs404.dtsi                                |   12 
 arch/m68k/68000/entry.S                                             |    2 
 arch/m68k/Kconfig.devices                                           |    1 
 arch/m68k/coldfire/entry.S                                          |    2 
 arch/m68k/kernel/entry.S                                            |    3 
 arch/mips/include/asm/syscall.h                                     |    2 
 arch/mips/include/asm/vpe.h                                         |    1 
 arch/mips/kernel/smp-cps.c                                          |    8 
 arch/mips/kernel/vpe-mt.c                                           |    7 
 arch/mips/lantiq/prom.c                                             |    6 
 arch/powerpc/Makefile                                               |    2 
 arch/powerpc/kernel/eeh_driver.c                                    |   71 
 arch/powerpc/kernel/rtas.c                                          |   24 
 arch/powerpc/platforms/powernv/pci-ioda.c                           |    3 
 arch/powerpc/platforms/pseries/lpar.c                               |   20 
 arch/powerpc/platforms/pseries/lparcfg.c                            |   20 
 arch/riscv/kernel/time.c                                            |    3 
 arch/s390/kernel/kprobes.c                                          |    4 
 arch/s390/kernel/vmlinux.lds.S                                      |    1 
 arch/s390/kvm/kvm-s390.c                                            |   16 
 arch/sparc/Kconfig                                                  |    2 
 arch/um/drivers/vector_kern.c                                       |    1 
 arch/x86/crypto/ghash-clmulni-intel_glue.c                          |    6 
 arch/x86/include/asm/microcode.h                                    |    4 
 arch/x86/include/asm/microcode_amd.h                                |    4 
 arch/x86/include/asm/msr-index.h                                    |    4 
 arch/x86/include/asm/reboot.h                                       |    2 
 arch/x86/include/asm/resctrl_sched.h                                |   19 
 arch/x86/include/asm/virtext.h                                      |   16 
 arch/x86/kernel/cpu/bugs.c                                          |   35 
 arch/x86/kernel/cpu/microcode/amd.c                                 |   53 
 arch/x86/kernel/cpu/microcode/core.c                                |    6 
 arch/x86/kernel/cpu/resctrl/rdtgroup.c                              |   14 
 arch/x86/kernel/crash.c                                             |   17 
 arch/x86/kernel/kprobes/opt.c                                       |    6 
 arch/x86/kernel/process_32.c                                        |    2 
 arch/x86/kernel/process_64.c                                        |    2 
 arch/x86/kernel/reboot.c                                            |   88 -
 arch/x86/kernel/smp.c                                               |    6 
 arch/x86/kernel/sysfb_efi.c                                         |    8 
 arch/x86/um/vdso/um_vdso.c                                          |   12 
 block/bio-integrity.c                                               |    1 
 block/blk-iocost.c                                                  |   11 
 block/blk-mq-sched.c                                                |   71 
 block/blk-mq.c                                                      |    6 
 crypto/essiv.c                                                      |   10 
 crypto/rsa-pkcs1pad.c                                               |   34 
 crypto/seqiv.c                                                      |    2 
 drivers/acpi/acpica/Makefile                                        |    2 
 drivers/acpi/acpica/hwvalid.c                                       |    7 
 drivers/acpi/acpica/nsrepair.c                                      |   12 
 drivers/acpi/battery.c                                              |    2 
 drivers/acpi/video_detect.c                                         |    2 
 drivers/block/rbd.c                                                 |   20 
 drivers/char/ipmi/ipmi_ssif.c                                       |   46 
 drivers/clk/clk.c                                                   |   11 
 drivers/clk/qcom/gcc-qcs404.c                                       |   24 
 drivers/clk/qcom/gpucc-sdm845.c                                     |    7 
 drivers/clk/renesas/r7s9210-cpg-mssr.c                              |    2 
 drivers/clk/renesas/renesas-cpg-mssr.c                              |   29 
 drivers/clk/renesas/renesas-cpg-mssr.h                              |   12 
 drivers/crypto/amcc/crypto4xx_core.c                                |   10 
 drivers/crypto/ccp/ccp-dmaengine.c                                  |   21 
 drivers/firmware/google/framebuffer-coreboot.c                      |    4 
 drivers/gpio/gpio-vf610.c                                           |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                   |    6 
 drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c            |    6 
 drivers/gpu/drm/drm_atomic_helper.c                                 |   29 
 drivers/gpu/drm/drm_bridge.c                                        |  125 -
 drivers/gpu/drm/drm_encoder.c                                       |    2 
 drivers/gpu/drm/drm_fourcc.c                                        |    4 
 drivers/gpu/drm/drm_mipi_dsi.c                                      |   52 
 drivers/gpu/drm/drm_panel_orientation_quirks.c                      |    6 
 drivers/gpu/drm/drm_probe_helper.c                                  |    2 
 drivers/gpu/drm/drm_vblank.c                                        |   28 
 drivers/gpu/drm/exynos/exynos_dp.c                                  |    1 
 drivers/gpu/drm/exynos/exynos_drm_dsi.c                             |    8 
 drivers/gpu/drm/i915/display/intel_quirks.c                         |    2 
 drivers/gpu/drm/mediatek/mtk_drm_drv.c                              |    1 
 drivers/gpu/drm/mediatek/mtk_drm_gem.c                              |    8 
 drivers/gpu/drm/mediatek/mtk_hdmi.c                                 |    8 
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c                            |    7 
 drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c                           |    5 
 drivers/gpu/drm/msm/dsi/dsi_host.c                                  |    3 
 drivers/gpu/drm/msm/hdmi/hdmi.c                                     |    4 
 drivers/gpu/drm/msm/msm_fence.c                                     |    2 
 drivers/gpu/drm/mxsfb/Kconfig                                       |    1 
 drivers/gpu/drm/omapdrm/dss/dsi.c                                   |   26 
 drivers/gpu/drm/omapdrm/omap_drv.c                                  |    4 
 drivers/gpu/drm/omapdrm/omap_encoder.c                              |    3 
 drivers/gpu/drm/radeon/atombios_encoders.c                          |    5 
 drivers/gpu/drm/radeon/radeon_device.c                              |    1 
 drivers/gpu/drm/vc4/vc4_dpi.c                                       |   66 
 drivers/gpu/drm/vc4/vc4_dsi.c                                       |    8 
 drivers/gpu/host1x/hw/syncpt_hw.c                                   |    3 
 drivers/gpu/ipu-v3/ipu-common.c                                     |    1 
 drivers/hid/hid-asus.c                                              |  136 +
 drivers/hid/hid-bigbenff.c                                          |   75 -
 drivers/hid/hid-debug.c                                             |    1 
 drivers/hid/hid-ids.h                                               |    1 
 drivers/hid/hid-input.c                                             |    8 
 drivers/hwmon/coretemp.c                                            |  128 -
 drivers/hwmon/ltc2945.c                                             |    2 
 drivers/hwmon/mlxreg-fan.c                                          |    6 
 drivers/iio/accel/mma9551_core.c                                    |   10 
 drivers/input/keyboard/omap-keypad.c                                |    2 
 drivers/input/serio/hil_mlc.c                                       |    2 
 drivers/input/touchscreen/ads7846.c                                 |   13 
 drivers/irqchip/irq-alpine-msi.c                                    |    1 
 drivers/irqchip/irq-bcm7120-l2.c                                    |    3 
 drivers/irqchip/irq-brcmstb-l2.c                                    |    6 
 drivers/irqchip/irq-mvebu-gicp.c                                    |    1 
 drivers/irqchip/irq-ti-sci-intr.c                                   |    1 
 drivers/md/dm-cache-target.c                                        |    4 
 drivers/md/dm-flakey.c                                              |   30 
 drivers/md/dm-thin.c                                                |    2 
 drivers/md/dm.c                                                     |    1 
 drivers/media/i2c/ov5675.c                                          |    4 
 drivers/media/i2c/ov7670.c                                          |    2 
 drivers/media/i2c/ov772x.c                                          |    3 
 drivers/media/pci/intel/ipu3/ipu3-cio2.c                            |    3 
 drivers/media/platform/omap3isp/isp.c                               |    9 
 drivers/media/rc/ene_ir.c                                           |    3 
 drivers/media/usb/siano/smsusb.c                                    |    1 
 drivers/media/usb/uvc/uvc_ctrl.c                                    |   30 
 drivers/media/usb/uvc/uvc_driver.c                                  |   66 
 drivers/media/usb/uvc/uvc_entity.c                                  |    2 
 drivers/media/usb/uvc/uvc_status.c                                  |   40 
 drivers/media/usb/uvc/uvc_video.c                                   |   15 
 drivers/media/usb/uvc/uvcvideo.h                                    |    6 
 drivers/mfd/arizona-core.c                                          |    2 
 drivers/mfd/pcf50633-adc.c                                          |    7 
 drivers/misc/mei/bus-fixup.c                                        |    8 
 drivers/mtd/nand/raw/sunxi_nand.c                                   |    2 
 drivers/mtd/ubi/build.c                                             |    7 
 drivers/mtd/ubi/vmt.c                                               |   18 
 drivers/mtd/ubi/wl.c                                                |   25 
 drivers/net/can/usb/esd_usb2.c                                      |    4 
 drivers/net/ethernet/broadcom/genet/bcmgenet.c                      |    8 
 drivers/net/ethernet/intel/ice/ice_main.c                           |   17 
 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c            |    2 
 drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c                |    1 
 drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c                 |    3 
 drivers/net/tap.c                                                   |    2 
 drivers/net/tun.c                                                   |    2 
 drivers/net/wan/farsync.c                                           |    4 
 drivers/net/wireless/ath/ath10k/wmi.c                               |    4 
 drivers/net/wireless/ath/ath9k/hif_usb.c                            |   60 
 drivers/net/wireless/ath/ath9k/htc.h                                |   32 
 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c                       |   10 
 drivers/net/wireless/ath/ath9k/htc_hst.c                            |    4 
 drivers/net/wireless/ath/ath9k/wmi.c                                |    1 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c           |    7 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c             |    1 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c           |    5 
 drivers/net/wireless/intel/ipw2x00/ipw2100.c                        |  121 -
 drivers/net/wireless/intel/ipw2x00/ipw2200.c                        |   67 
 drivers/net/wireless/intel/iwlegacy/3945-mac.c                      |   24 
 drivers/net/wireless/intel/iwlegacy/4965-mac.c                      |   12 
 drivers/net/wireless/intel/iwlegacy/common.c                        |    8 
 drivers/net/wireless/intersil/orinoco/hw.c                          |    2 
 drivers/net/wireless/marvell/libertas/cmdresp.c                     |    2 
 drivers/net/wireless/marvell/libertas/if_usb.c                      |    2 
 drivers/net/wireless/marvell/libertas/main.c                        |    3 
 drivers/net/wireless/marvell/libertas_tf/if_usb.c                   |    2 
 drivers/net/wireless/marvell/mwifiex/11n.c                          |    6 
 drivers/net/wireless/mediatek/mt76/dma.c                            |   13 
 drivers/net/wireless/mediatek/mt76/mt76x02_beacon.c                 |    5 
 drivers/net/wireless/mediatek/mt7601u/dma.c                         |    3 
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c              |    5 
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c               |   11 
 drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c                |   91 -
 drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.c              |    4 
 drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.h              |    4 
 drivers/net/wireless/rsi/rsi_91x_coex.c                             |    1 
 drivers/net/wireless/st/cw1200/scan.c                               |    3 
 drivers/net/wireless/wl3501_cs.c                                    |    2 
 drivers/nfc/st-nci/se.c                                             |    6 
 drivers/nfc/st21nfca/se.c                                           |    6 
 drivers/opp/debugfs.c                                               |    2 
 drivers/pci/pci.c                                                   |    2 
 drivers/pci/pci.h                                                   |   43 
 drivers/pci/quirks.c                                                |   23 
 drivers/phy/rockchip/phy-rockchip-typec.c                           |    3 
 drivers/pinctrl/pinctrl-at91-pio4.c                                 |    4 
 drivers/pinctrl/pinctrl-at91.c                                      |    2 
 drivers/pinctrl/stm32/pinctrl-stm32.c                               |    1 
 drivers/powercap/powercap_sys.c                                     |   14 
 drivers/pwm/pwm-sifive.c                                            |   16 
 drivers/pwm/pwm-stm32-lp.c                                          |    2 
 drivers/regulator/max77802-regulator.c                              |   34 
 drivers/regulator/s5m8767.c                                         |    6 
 drivers/remoteproc/qcom_q6v5_mss.c                                  |   59 
 drivers/rpmsg/qcom_glink_native.c                                   |    1 
 drivers/rtc/rtc-pm8xxx.c                                            |   24 
 drivers/rtc/rtc-sun6i.c                                             |   32 
 drivers/s390/block/dasd.c                                           |    4 
 drivers/s390/block/dasd_eckd.c                                      |   82 -
 drivers/s390/block/dasd_int.h                                       |    1 
 drivers/s390/crypto/ap_bus.c                                        |    2 
 drivers/scsi/aic94xx/aic94xx_task.c                                 |    3 
 drivers/scsi/ipr.c                                                  |   41 
 drivers/scsi/qla2xxx/qla_nvme.c                                     |   19 
 drivers/scsi/qla2xxx/qla_os.c                                       |    9 
 drivers/scsi/scsi_lib.c                                             |    7 
 drivers/scsi/ses.c                                                  |   64 
 drivers/spi/spi-bcm63xx-hsspi.c                                     |   20 
 drivers/spi/spi-synquacer.c                                         |    7 
 drivers/staging/emxx_udc/emxx_udc.c                                 |    7 
 drivers/staging/most/dim2/dim2.c                                    |    2 
 drivers/staging/octeon/ethernet-tx.c                                |    2 
 drivers/staging/wilc1000/wilc_netdev.c                              |    7 
 drivers/thermal/hisi_thermal.c                                      |    4 
 drivers/thermal/intel/Kconfig                                       |    3 
 drivers/thermal/intel/intel_powerclamp.c                            |   20 
 drivers/thermal/intel/intel_quark_dts_thermal.c                     |   12 
 drivers/thermal/intel/intel_soc_dts_iosf.c                          |    2 
 drivers/tty/serial/fsl_lpuart.c                                     |   24 
 drivers/tty/tty_io.c                                                |    8 
 drivers/tty/vt/keyboard.c                                           |    2 
 drivers/tty/vt/vc_screen.c                                          |    4 
 drivers/usb/gadget/udc/snps_udc_core.c                              |    6 
 drivers/usb/host/fhci-sched.c                                       |    2 
 drivers/usb/host/xhci-mvebu.c                                       |    2 
 drivers/usb/storage/ene_ub6250.c                                    |    2 
 drivers/watchdog/at91sam9_wdt.c                                     |    7 
 drivers/watchdog/pcwd_usb.c                                         |    6 
 drivers/watchdog/watchdog_dev.c                                     |    2 
 fs/cifs/smbdirect.c                                                 |    4 
 fs/coda/upcall.c                                                    |    2 
 fs/ext4/xattr.c                                                     |   35 
 fs/f2fs/data.c                                                      |    6 
 fs/f2fs/inline.c                                                    |   28 
 fs/f2fs/super.c                                                     |   11 
 fs/f2fs/verity.c                                                    |   12 
 fs/gfs2/aops.c                                                      |    3 
 fs/hfs/bnode.c                                                      |    1 
 fs/hfsplus/super.c                                                  |    4 
 fs/jfs/jfs_dmap.c                                                   |    3 
 fs/nfsd/nfs4layouts.c                                               |    4 
 fs/nfsd/nfs4proc.c                                                  |    2 
 fs/ocfs2/move_extents.c                                             |   34 
 fs/ubifs/budget.c                                                   |    9 
 fs/ubifs/dir.c                                                      |    9 
 fs/ubifs/file.c                                                     |   12 
 fs/ubifs/super.c                                                    |   17 
 fs/ubifs/tnc.c                                                      |   24 
 fs/ubifs/ubifs.h                                                    |    5 
 fs/udf/file.c                                                       |   26 
 fs/udf/inode.c                                                      |   74 -
 fs/udf/super.c                                                      |    1 
 fs/udf/udf_i.h                                                      |    3 
 fs/udf/udf_sb.h                                                     |    2 
 include/drm/drm_bridge.h                                            |   77 -
 include/drm/drm_crtc.h                                              |   34 
 include/drm/drm_mipi_dsi.h                                          |    4 
 include/drm/drm_simple_kms_helper.h                                 |    7 
 include/drm/drm_vblank.h                                            |    1 
 include/linux/ima.h                                                 |    6 
 include/linux/interrupt.h                                           |   15 
 include/linux/kernel_stat.h                                         |    2 
 include/linux/kprobes.h                                             |    2 
 include/linux/pci_ids.h                                             |    2 
 include/linux/uaccess.h                                             |    4 
 include/net/sctp/structs.h                                          |    1 
 include/net/sock.h                                                  |    9 
 include/sound/soc-dapm.h                                            |    3 
 include/uapi/linux/usb/video.h                                      |   30 
 include/uapi/linux/uvcvideo.h                                       |    2 
 kernel/backtracetest.c                                              |    2 
 kernel/debug/debug_core.c                                           |    2 
 kernel/fail_function.c                                              |    5 
 kernel/irq/irqdomain.c                                              |   31 
 kernel/irq/resend.c                                                 |    2 
 kernel/kprobes.c                                                    |    6 
 kernel/rcu/tree_exp.h                                               |    2 
 kernel/sched/deadline.c                                             |    5 
 kernel/sched/rt.c                                                   |   10 
 kernel/time/hrtimer.c                                               |    2 
 kernel/time/posix-stubs.c                                           |    2 
 kernel/time/posix-timers.c                                          |    2 
 kernel/trace/ring_buffer.c                                          |    7 
 lib/mpi/mpicoder.c                                                  |    3 
 mm/huge_memory.c                                                    |    3 
 mm/memcontrol.c                                                     |    4 
 net/9p/trans_rdma.c                                                 |   15 
 net/9p/trans_xen.c                                                  |   48 
 net/atm/pppoatm.c                                                   |    2 
 net/bluetooth/hci_sock.c                                            |   11 
 net/bluetooth/l2cap_core.c                                          |   24 
 net/bluetooth/l2cap_sock.c                                          |    8 
 net/core/dev.c                                                      |    4 
 net/core/sock.c                                                     |   22 
 net/ipv4/inet_connection_sock.c                                     |    1 
 net/ipv4/inet_hashtables.c                                          |   12 
 net/ipv4/tcp_minisocks.c                                            |    7 
 net/ipv6/route.c                                                    |   11 
 net/iucv/iucv.c                                                     |    2 
 net/mac80211/sta_info.c                                             |    2 
 net/netfilter/nf_conntrack_netlink.c                                |    5 
 net/nfc/netlink.c                                                   |    4 
 net/rds/message.c                                                   |    2 
 net/sched/Kconfig                                                   |   11 
 net/sched/Makefile                                                  |    1 
 net/sched/act_sample.c                                              |   11 
 net/sched/cls_tcindex.c                                             |  730 ----------
 net/sctp/stream_sched_prio.c                                        |   52 
 net/tls/tls_sw.c                                                    |   26 
 net/wireless/sme.c                                                  |   31 
 security/integrity/ima/ima_main.c                                   |    7 
 security/security.c                                                 |    7 
 sound/drivers/pcsp/pcsp_lib.c                                       |    2 
 sound/pci/hda/patch_ca0132.c                                        |    2 
 sound/pci/hda/patch_realtek.c                                       |    1 
 sound/pci/ice1712/aureon.c                                          |    2 
 sound/soc/fsl/fsl_sai.c                                             |    1 
 sound/soc/kirkwood/kirkwood-dma.c                                   |    2 
 sound/soc/soc-compress.c                                            |    2 
 tools/iio/iio_utils.c                                               |   23 
 tools/lib/bpf/nlattr.c                                              |    2 
 tools/perf/perf-completion.sh                                       |   11 
 tools/perf/util/llvm-utils.c                                        |   25 
 tools/testing/ktest/ktest.pl                                        |   26 
 tools/testing/ktest/sample.conf                                     |    5 
 tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc |    2 
 tools/testing/selftests/net/fib_tests.sh                            |    2 
 tools/testing/selftests/net/udpgso_bench_rx.c                       |    6 
 virt/kvm/coalesced_mmio.c                                           |    8 
 354 files changed, 2762 insertions(+), 2413 deletions(-)

Al Viro (1):
alpha: fix FEN fault handling

Alexander Potapenko (1):
fs: f2fs: initialize fsdata in pagecache_write()

Alexander Usyskin (1):
mei: bus-fixup:upon error print return values of send and receive

Alexander Wetzel (1):
wifi: cfg80211: Fix use after free for wext

Alexey Khoroshilov (1):
clk: renesas: cpg-mssr: Fix use after free if cpg_mssr_common_init() failed

Alexey Kodanev (1):
wifi: orinoco: check return value of hermes_write_wordrec()

Alexey V. Vissarionov (1):
ALSA: hda/ca0132: minor fix for allocation size

Alper Nebi Yasak (1):
firmware: coreboot: framebuffer: Ignore reserved pixel color bits

Ammar Faizi (1):
x86: um: vdso: Add '%rcx' and '%r11' to the syscall clobber list

Andreas Gruenbacher (1):
gfs2: jdata writepage fix

AngeloGioacchino Del Regno (1):
arm64: dts: mediatek: mt7622: Add missing pwm-cells to pwm node

Angus Chen (1):
ARM: imx: Call ida_simple_remove() for ida_simple_get

Armin Wolf (1):
ACPI: battery: Fix missing NUL-termination with large strings

Arnd Bergmann (3):
rtlwifi: fix -Wpointer-sign warning
wifi: ath9k: use proper statements in conditionals
scsi: ipr: Work around fortify-string warning

Arun Easi (1):
scsi: qla2xxx: Fix DMA-API call trace on NVMe LS requests

Benjamin Coddington (1):
nfsd: fix race to check ls_layouts

Bitterblue Smith (1):
wifi: rtl8xxxu: Use a longer retry limit of 48

Bjorn Andersson (1):
rpmsg: glink: Avoid infinite loop on intent for missing channel

Boris Brezillon (3):
drm/exynos: Don't reset bridge->next
drm/bridge: Rename bridge helpers targeting a bridge chain drm/bridge: Introduce drm_bridge_get_next_bridge()

Borislav Petkov (AMD) (3):
x86/microcode/amd: Remove load_microcode_amd()'s bsp parameter x86/microcode/AMD: Add a @cpu parameter to the reloading functions x86/microcode/AMD: Fix mixed steppings support

Breno Leitao (1):
x86/bugs: Reset speculation control settings on init

Chen Hui (1):
ARM: OMAP2+: Fix memory leak in realtime_counter_init()

Chen Jun (1):
watchdog: Fix kmemleak in watchdog_cdev_register

Chen Wandun (1):
crypto: essiv - remove redundant null pointer check before kfree

Chen-Yu Tsai (1):
clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled()

Christian Hewitt (1):
arm64: dts: meson: remove CPU opps below 1GHz for G12A boards

Christophe JAILLET (2):
ipw2x00: switch from 'pci_' to 'dma_' API
spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one()

Claudiu Beznea (1):
pinctrl: at91: use devm_kasprintf() to avoid potential leaks

Conor Dooley (1):
RISC-V: time: initialize hrtimer based broadcast clock event device

Corey Minyard (1):
ipmi_ssif: Rename idle state and check

Damien Le Moal (1):
PCI: Avoid FLR for AMD FCH AHCI adapters

Dan Carpenter (2):
wifi: mwifiex: fix loop iterator in mwifiex_update_ampdu_txwinsize()
thermal: intel: quark_dts: fix error pointer dereference

Daniel Axtens (1):
powerpc/eeh: Small refactor of eeh_handle_normal_event()

Daniel Mentz (1):
drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness

Daniel Scally (1):
usb: uvc: Enumerate valid values for color matching

Daniil Tatianin (1):
ACPICA: nsrepair: handle cases without a return value correctly

Darrell Kavanagh (2):
drm: panel-orientation-quirks: Add quirk for Lenovo IdeaPad Duet 3 10IGL5 firmware/efi sysfb_efi: Add quirk for Lenovo IdeaPad Duet 3

Dave Stevenson (2):
drm/vc4: dpi: Add option for inverting pixel clock and output enable drm/vc4: dpi: Fix format mapping for RGB565

Dietmar Eggemann (1):
sched/deadline,rt: Remove unused parameter from pick_next_[rt|dl]_entity()

Dmitry Baryshkov (5):
arm64: dts: qcom: qcs404: use symbol names for PCIe resets drm/msm: use strscpy instead of strncpy
clk: qcom: gcc-qcs404: disable gpll[04]_out_aux parents
clk: qcom: gcc-qcs404: fix names of the DSI clocks used as parents
clk: qcom: gpucc-sdm845: fix clk_dis_wait being programmed for CX GDSC

Dmitry Fomin (1):

      ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls()

Dmitry Goncharov (1):
kbuild: Port silent mode detection to future gnu make.

Dongliang Mu (1):
fs: hfsplus: fix UAF issue in hfsplus_put_super

Douglas Anderson (1):
Revert "scsi: core: run queue if SCSI device queue isn't ready and queue is idle"

Duoming Zhou (2):
media: rc: Fix use-after-free bugs caused by ene_tx_irqsim()
media: usb: siano: Fix use after free bugs caused by do_submit_urb

Elvira Khabirova (1):
mips: fix syscall_get_nr

Emil Renner Berthing (1):
pwm: sifive: Always let the first pwm_apply_state succeed

Eric Biggers (4):
crypto: x86/ghash - fix unaligned access in ghash_setkey()
f2fs: fix information leak in f2fs_move_inline_dirents()
f2fs: fix cgroup writeback accounting with fs-layer encryption
f2fs: use memcpy_{to,from}_page() where possible

Eric Dumazet (2):
net: fix __dev_kfree_skb_any() vs drop monitor
tcp: tcp_check_req() can be called from process context

Fabrice Gasnier (1):
pwm: stm32-lp: fix the check on arr and cmp registers update

Fedor Pchelkin (3):
wifi: ath9k: htc_hst: free skb in ath9k_htc_rx_msg() if there is no callback function
wifi: ath9k: hif_usb: clean up skbs if ath9k_hif_usb_rx_stream() fails
nfc: fix memory leak of se_io context in nfc_genl_se_io

Florian Fainelli (3):
irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts
net: bcmgenet: Add a check for oversized packets

Frank Jungclaus (1):
can: esd_usb: Move mislocated storage of SJA1000_ECC_SEG bits in case of a bus error

Frederic Barrat (1):
powerpc/powernv/ioda: Skip unallocated resources when mapping to PE

Ganesh Goudar (1):
powerpc/eeh: Set channel state after notifying the drivers

Geert Uytterhoeven (3):
drm/fourcc: Add missing big-endian XRGB1555 and RGB565 formats
drm: mxsfb: DRM_MXSFB should depend on ARCH_MXS || ARCH_MXC
clk: renesas: cpg-mssr: Remove superfluous check in resume code

Geliang Tang (1):
mptcp: add sk_stop_timer_sync helper

George Kennedy (2):
ubi: ensure that VID header offset + VID header size <= alloc, size
vc_screen: modify vcs_size() handling in vcs_read()

Greg Kroah-Hartman (2):
kernel/fail_function: fix memory leak with using debugfs_lookup() Linux 5.4.235

Guenter Roeck (1):
media: uvcvideo: Handle errors from calls to usb_string

Haibo Chen (1):
gpio: vf610: connect GPIO label to dev name

Hangyu Hua (1):
netfilter: ctnetlink: fix possible refcount leak in ctnetlink_create_conntrack()

Hans Verkuil (1):
media: i2c: ov7670: 0 instead of -EINVAL was returned

Hans de Goede (5):
HID: asus: Only set EV_REP if we are adding a mapping
HID: asus: Add report_size to struct asus_touchpad_info
HID: asus: Add support for multi-touch touchpad on Medion Akoya E1239T
HID: asus: Fix mute and touchpad-toggle keys on Medion Akoya E1239T
ACPI: video: Fix Lenovo Ideapad Z570 DMI match

Harshit Mogalapalli (2):
iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_status_word()
iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_config_word()

Heming Zhao via Ocfs2-devel (2):
ocfs2: fix defrag path triggering jbd2 ASSERT
ocfs2: fix non-auto defrag path not working issue

Herbert Xu (5):
lib/mpi: Fix buffer overrun when SG is too long
crypto: essiv - Handle EBUSY correctly
crypto: seqiv - Handle EBUSY correctly
crypto: rsa-pkcs1pad - Use akcipher_request_complete
crypto: crypto4xx - Call dma_unmap_page when done

Ian Rogers (1):
perf llvm: Fix inadvertent file creation

Ilya Dryomov (1):
rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails

Ilya Leoshkevich (2):
libbpf: Fix alen calculation in libbpf_nla_dump_errormsg()
s390: discard .interp section

Jack Morgenstein (1):
net/mlx5: Enhance debug print in page allocation failure

Jakob Koschel (1):
docs/scripts/gdb: add necessary make scripts_gdb step

Jakub Kicinski (1):
net: tls: avoid hanging tasks on the tx_lock

Jakub Sitnicki (1):
selftests/net: Interpret UDP_GRO cmsg data as an int value

Jamal Hadi Salim (1):
net/sched: Retire tcindex classifier

James Bottomley (1):
scsi: ses: Don't attach if enclosure has no components

Jan Höppner (1):
s390/dasd: Prepare for additional path event handling

Jan Kara (7):
udf: Define EFSCORRUPTED error code
udf: Truncate added extents on failed expansion
udf: Do not bother merging very long extents
udf: Do not update file length for failed writes to inline files
udf: Preserve link count of system files
udf: Detect system inodes linked into directory hierarchy
udf: Fix file corruption when appending just after end of preallocated extent

Jann Horn (1):
timers: Prevent union confusion from unexpected restart_syscall()

Jeff Layton (1):
nfsd: zero out pointers after putting nfsd_files on COPY setup error

Jernej Skrabec (1):
rtc: sun6i: Make external 32k oscillator optional

Jesse Brandeburg (1):
ice: add missing checks for PF vsi type

Jia-Ju Bai (1):
tracing: Add NULL checks for buffer in ring_buffer_free_read_page()

Jiapeng Chong (1):
phy: rockchip-typec: Fix unsigned comparison with less than zero

Jiasheng Jiang (9):
wifi: iwl3945: Add missing check for create_singlethread_workqueue
wifi: iwl4965: Add missing check for create_singlethread_workqueue() drm/msm/hdmi: Add missing check for alloc_ordered_workqueue drm/msm/dpu: Add check for cstate
drm/msm/dpu: Add check for pstates
drm/msm/mdp5: Add check for kzalloc
scsi: aic94xx: Add missing check for dma_map_single()
media: platform: ti: Add missing check for devm_regulator_get drm/msm/dsi: Add missing check for alloc_ordered_workqueue

Jingyuan Liang (1):
HID: Add Mapping for System Microphone Mute

Jisoo Jang (3):
wifi: brcmfmac: Fix potential stack-out-of-bounds in brcmf_c_preinit_dcmds()
wifi: brcmfmac: ensure CLM version is null-terminated to prevent stack-out-of-bounds
wifi: mt7601u: fix an integer underflow

Johan Hovold (4):
rtc: pm8xxx: fix set-alarm race
irqdomain: Fix association race
irqdomain: Fix disassociation race
irqdomain: Drop bogus fwspec-mapping error handling

Johannes Weiner (1):
mm: memcontrol: deprecate charge moving

Jonathan Cormier (1):
hwmon: (ltc2945) Handle error case in ltc2945_value_store

Juergen Gross (2):
9p/xen: fix version parsing
9p/xen: fix connection sequence

Jun ASAKA (1):
wifi: rtl8xxxu: fixing transmisison failure for rtl8192eu

Jun Nie (2):
ext4: optimize ea_inode block expansion
ext4: refuse to create ea block when umounted

KP Singh (2):
x86/speculation: Allow enabling STIBP with legacy IBRS Documentation/hw-vuln: Document the interaction between IBRS and STIBP

Kees Cook (10):
usb: gadget: udc: Avoid tasklet passing a global
treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
coda: Avoid partial allocation of sig_inputArgs
uaccess: Add minimum bounds check on kernel buffer size
ASoC: kirkwood: Iterate over array indexes instead of using pointer math
regulator: max77802: Bounds check regulator id against opmode
regulator: s5m8767: Bounds check id indexing into arrays
media: uvcvideo: Silence memcpy() run-time false positive warnings
usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer math
USB: ene_usb6250: Allocate enough memory for full object

Kemeng Shi (3):
blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx
blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_wait
blk-mq: correct stale comment of .get_budget

Koba Ko (1):
crypto: ccp - Failure on re-initialization due to duplicate sysfs filename

Krzysztof Kozlowski (5):
ARM: dts: exynos: correct wr-active property in Exynos3250 Rinato
ARM: dts: exynos: correct HDMI phy compatible in Exynos4
ARM: dts: exynos: correct TMU phandle in Exynos4
ARM: dts: exynos: correct TMU phandle in Odroid XU
ARM: dts: spear320-hmi: correct STMPE GPIO compatible

Kuninori Morimoto (1):
ASoC: soc-compress.c: fixup private_data on snd_soc_new_compress()

Kuniyuki Iwashima (1):

      tcp: Fix listen() regression in 5.4.229.

Li Hua (2):
ubifs: Fix build errors as symbol undefined
watchdog: pcwd_usb: Fix attempting to access uninitialized memory

Li Nan (1):
blk-iocost: fix divide by 0 error in calc_lcoefs()

Li Zetao (4):
wifi: rtlwifi: Fix global-out-of-bounds bug in _rtl8812ae_phy_set_txpower_limit()
ubi: Fix use-after-free when volume resizing failed
ubi: Fix unreferenced object reported by kmemleak in ubi_resize_volume()
ubifs: Fix memory leak in alloc_wbufs()

Liang He (2):
gpu: ipu-v3: common: Add of_node_put() for reference returned by of_graph_get_port_by_id()
mfd: arizona: Use pm_runtime_resume_and_get() to prevent refcnt leak

Linus Torvalds (1):
x86/resctl: fix scheduler confusion with 'current'

Liu Shixin (1):
hfs: fix missing hfs_bnode_get() in __hfs_bnode_create

Liu Shixin via Jfs-discussion (1):
fs/jfs: fix shift exponent db_agl2size negative

Liwei Song (1):
drm/radeon: free iio for atombios when driver shutdown

Lorenzo Bianconi (1):
wifi: mt76: dma: free rx_head in mt76_dma_rx_cleanup

Lu Wei (1):
ipv6: Add lwtunnel encap size of all siblings in nexthop calculation

Luc Van Oostenryck (1):
wilc1000: let wilc_mac_xmit() return NETDEV_TX_OK

Luca Ellero (2):
Input: ads7846 - don't report pressure for ads7845
Input: ads7846 - don't check penirq immediately for 7845

Lucas Tanure (1):
ASoC: soc-dapm.h: fixup warning struct snd_pcm_substream not declared

Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix potential user-after-free

Lukas Wunner (2):
PCI/PM: Observe reset delay irrespective of bridge_d3
PCI: hotplug: Allow marking devices as disconnected during bind/unbind

Luke D. Jones (1):
HID: asus: Remove check for same LED brightness on set

Maor Dickman (1):
net/mlx5: Geneve, Fix handling of Geneve object id as error code

Mario Limonciello (1):
ACPICA: Drop port I/O validation for some regions

Mark Hawrylak (1):
drm/radeon: Fix eDP for single-display iMac11,2

Mark Rutland (1):
ACPI: Don't build ACPICA with '-Os'

Markus Elfring (1):
net/wireless: Delete unnecessary checks before the macro call “dev_kfree_skb”

Markuss Broks (1):
ARM: dts: exynos: Use Exynos5420 compatible for the MIPI video phy

Martin Blumenstingl (3):
arm64: dts: meson-gx: Fix Ethernet MAC address unit name
arm64: dts: meson-g12a: Fix internal Ethernet PHY unit name
arm64: dts: meson-gx: Fix the SCPI DVFS node name and unit address

Martin K. Petersen (1):
block: bio-integrity: Copy flags when bio_integrity_payload is cloned

Masami Hiramatsu (Google) (1):

      selftests/ftrace: Fix bash specific "==" operator

Mavroudis Chatzilaridis (1):
drm/i915/quirks: Add inverted backlight quirk for HP 14-r206nv

Maxime Ripard (1):
dt-bindings: rtc: sun6i-a31-rtc: Loosen the requirements on the clocks

Mengyuan Lou (1):
PCI: Add ACS quirk for Wangxun NICs

Miaoqian Lin (4):
irqchip/alpine-msi: Fix refcount leak in alpine_msix_init_domains irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe irqchip/ti-sci: Fix refcount leak in ti_sci_intr_irq_domain_probe
pinctrl: stm32: Fix refcount leak in stm32_pctrl_get_irq_domain

Michael Schmitz (1):
m68k: Check syscall_trace_enter() return code

Mike Snitzer (3):
dm: remove flush_scheduled_work() during local_exit() dm thin: add cond_resched() to various workqueue loops dm cache: add cond_resched() to various workqueue loops

Mikko Perttunen (1):
gpu: host1x: Don't skip assigning syncpoints to channels

Mikulas Patocka (2):
dm flakey: fix logic when corrupting a bio
dm flakey: don't corrupt the zero page

Miles Chen (1):
drm/mediatek: Use NULL instead of 0 for NULL pointer

Minsuk Kang (1):
wifi: ath9k: Fix potential stack-out-of-bounds write in ath9k_wmi_rsp_callback()

Nathan Chancellor (1):
powerpc: Remove linker flag from KBUILD_AFLAGS

Nathan Lynch (4):
powerpc/pseries/lpar: add missing RTAS retry status handling powerpc/pseries/lparcfg: add missing RTAS retry status handling powerpc/rtas: make all exports GPL
powerpc/rtas: ensure 4KB alignment for rtas_data_buf

Neil Armstrong (6):
arm64: dts: amlogic: meson-gx: fix SCPI clock dvfs node name
arm64: dts: amlogic: meson-axg: fix SCPI clock dvfs node name
arm64: dts: amlogic: meson-gx: add missing SCPI sensors compatible
arm64: dts: amlogic: meson-gx: add missing unit address to rng node name
arm64: dts: amlogic: meson-gxl: add missing unit address to eth-phy-mux node name
arm64: dts: amlogic: meson-gxl-s905d-phicomm-n1: fix led node name

Nguyen Dinh Phi (1):
Bluetooth: hci_sock: purge socket queues in the destruct() callback

Nico Boehr (1):
KVM: s390: disable migration mode when dirty tracking is disabled

Nícolas F. R. A. Prado (1):
drm/mediatek: Clean dangling pointer on bind error path

Paul E. McKenney (1):
rcu: Suppress smp_processor_id() complaint in synchronize_rcu_expedited_wait()

Pavel Skripkin (1):
ath9k: htc: clean up statistics macros

Pedro Tammela (1):
net/sched: act_sample: fix action bind logic

Peng Fan (1):
ARM: dts: imx7s: correct iomuxc gpr mux controller cells

Pietro Borrello (12):
HID: asus: use spinlock to protect concurrent accesses
HID: asus: use spinlock to safely schedule workers sched/rt: pick_next_rt_entity(): check list_entry
net: add sock_init_data_uid()
tun: tun_chr_open(): correctly initialize socket uid
tap: tap_open(): correctly initialize socket uid
rds: rds_rm_zerocopy_callback() correct order for list_add_tail()
HID: bigben: use spinlock to protect concurrent accesses
HID: bigben_worker() remove unneeded check on report_field
HID: bigben: use spinlock to safely schedule workers
hid: bigben_probe(): validate report count
inet: fix fast path in __inet_hash_connect()

Qi Zheng (1):
OPP: fix error checking in opp_migrate_dentry()

Qiheng Lin (3):
ARM: zynq: Fix refcount leak in zynq_early_slcr_init s390/dasd: Fix potential memleak in dasd_eckd_init()
mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read()

Quinn Tran (2):
scsi: qla2xxx: Fix link failure in NPIV environment
scsi: qla2xxx: Fix erroneous link down

Randy Dunlap (5):
m68k: /proc/hardware should depend on PROC_FS
sparc: allow PM configs for sparc32 COMPILE_TEST
MIPS: SMP-CPS: fix build error when HOTPLUG_CPU not set
MIPS: vpe-mt: drop physical_memsize
thermal: intel: BXT_PMIC: select REGMAP instead of depending on it

Ricardo Ribalda (4):
media: uvcvideo: Handle cameras with invalid descriptors
media: uvcvideo: Quirk for autosuspend in Logitech B910 and C910
media: uvcvideo: Provide sync and async uvc_ctrl_status_event
media: uvcvideo: Fix race condition with usb_kill_urb

Rob Clark (1):
drm/mediatek: Drop unbalanced obj unref

Roberto Sassu (1):
ima: Align ima_file_mmap() parameters with mmap_file LSM hook

Robin Murphy (1):
hwmon: (coretemp) Simplify platform device handling

Roman Li (1):
drm/amd/display: Fix potential null-deref in dm_resume

Roxana Nicolescu (1):
selftest: fib_tests: Always cleanup before exit

Sakari Ailus (1):
media: ipu3-cio2: Fix PM runtime usage_count in driver unbind

Salman Qazi (1):
block: Limit number of items taken from the I/O scheduler in one go

Samuel Holland (2):
mtd: rawnand: sunxi: Fix the size of the last OOB region
rtc: sun6i: Always export the internal oscillator

Sean Christopherson (5):
KVM: Destroy target device if coalesced MMIO unregistration fails x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows) x86/crash: Disable virt in core NMI crash handler to avoid double shootdown x86/reboot: Disable virtualization in an emergency if SVM is supported x86/reboot: Disable SVM, not just VMX, when stopping CPUs

Shang XiaoJing (1):

      media: ov5675: Fix memleak in ov5675_init_controls()

Shay Drory (1):
net/mlx5: fw_tracer: Fix debug print

Shayne Chen (1):

      wifi: mac80211: make rate u32 in sta_set_rate_info_rx()

Shengjiu Wang (1):
ASoC: fsl_sai: initialize is_dsp_mode flag

Sherry Sun (1):
tty: serial: fsl_lpuart: disable the CTS when send break signal

Sibi Sankar (1):
remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers

Srinivas Pandruvada (1):
thermal: intel: powerclamp: Fix cur_state for multi package system

Steven Rostedt (3):
ktest.pl: Give back console on Ctrt^C on monitor ktest.pl: Fix missing "end_monitor" when machine check fails ktest.pl: Add RUN_TIMEOUT option with default unlimited

Sven Schnelle (1):
tty: fix out-of-bounds access in tty_driver_lookup_tty()

Thomas Zimmermann (1):
drm: Initialize struct drm_crtc_state.no_vblank from device settings

Tomas Henzl (4):
scsi: ses: Fix slab-out-of-bounds in ses_enclosure_data_process()
scsi: ses: Fix possible addl_desc_ptr out-of-bounds accesses
scsi: ses: Fix possible desc_ptr out-of-bounds accesses
scsi: ses: Fix slab-out-of-bounds in ses_intf_remove()

Tomi Valkeinen (1):
drm/omap: dsi: Fix excessive stack usage

Tzung-Bi Shih (1):
ASoC: dapm: declare missing structure prototypes

Uwe Kleine-König (1):
pwm: sifive: Reduce time the controller lock is held

Vadim Pasternak (1):
hwmon: (mlxreg-fan) Return zero speed for broken fan

Valentin Schneider (1):

      x86/resctrl: Apply READ_ONCE/WRITE_ONCE to task_struct.{rmid,closid}

Vasily Gorbik (2):
s390/kprobes: fix irq mask clobbering on kprobe reenter from post_handler s390/kprobes: fix current_kprobe never cleared after kprobes reenter

Wambui Karuga (1):
drm/mediatek: remove cast to pointers passed to kfree

Wan Jiabing (1):
ath9k: hif_usb: simplify if-if to if-else

William Zhang (1):
spi: bcm63xx-hsspi: Fix multi-bit mode setting

Xiang Yang (1):
um: vector: Fix memory leak in vector_config

Xin Long (1):
sctp: add a refcnt in sctp_stream_priorities to avoid a nested loop

Yang Jihong (2):
x86/kprobes: Fix __recover_optprobed_insn check optimizing logic x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe range

Yang Li (1):
thermal: intel: Fix unsigned comparison with less than zero

Yang Yingliang (11):
ARM: OMAP1: call platform_device_put() in error case in omap1_dm_timer_init()
wifi: iwlegacy: common: don't call dev_kfree_skb() under spin_lock_irqsave()
wifi: rtl8xxxu: don't call dev_kfree_skb() under spin_lock_irqsave()
wifi: ipw2x00: don't call dev_kfree_skb() under spin_lock_irqsave()
wifi: libertas_tf: don't call kfree_skb() under spin_lock_irqsave()
wifi: libertas: if_usb: don't call kfree_skb() under spin_lock_irqsave()
wifi: libertas: main: don't call kfree_skb() under spin_lock_irqsave()
wifi: libertas: cmdresp: don't call kfree_skb() under spin_lock_irqsave()
wifi: wl3501_cs: don't call kfree_skb() under spin_lock_irqsave()
powercap: fix possible name leak in powercap_register_zone()
ubi: Fix possible null-ptr-deref in ubi_free_volume()

Yicong Yang (1):
perf tools: Fix auto-complete on aarch64

Yin Fengwei (1):
mm/thp: check and bail out if page in deferred queue already

Yongqin Liu (1):
thermal/drivers/hisi: Drop second sensor hi3660

Yoshihiro Shimoda (1):
clk: renesas: cpg-mssr: Use enum clk_reg_layout instead of a boolean flag

Yuan Can (4):
wifi: rsi: Fix memory leak in rsi_coex_attach() drm/bridge: megachips: Fix error handling in i2c_register_driver()
media: i2c: ov772x: Fix memleak in ov772x_probe()
staging: emxx_udc: Add checks for dma_alloc_coherent()

Yulong Zhang (1):
tools/iio/iio_utils:fix memory leak

Zhang Changzhong (2):
wifi: wilc1000: fix potential memory leak in wilc_mac_xmit()
wifi: brcmfmac: fix potential memory leak in brcmf_netdev_start_xmit()

Zhang Xiaoxu (2):
cifs: Fix lost destroy smbd connection when MR allocate failed
cifs: Fix warning and UAF when destroy the MR list

Zhen Lei (1):
genirq: Fix the return type of kstat_cpu_irqs_sum()

Zhengchao Shao (4):
wifi: libertas: fix memory leak in lbs_init_adapter()
wifi: ipw2200: fix memory leak in ipw_wdev_init()
wifi: brcmfmac: unmap dma buffer in brcmf_msgbuf_alloc_pktid() 9p/rdma: unmap receive dma buffer in rdma_request()/post_recv()

Zhihao Cheng (10):
ubifs: Rectify space budget for ubifs_symlink() if symlink is encrypted
ubifs: Rectify space budget for ubifs_xrename()
ubifs: Fix wrong dirty space budget for dirty inode
ubifs: do_rename: Fix wrong space budget when target inode's nlink > 1
ubifs: Reserve one leb for each journal head while doing budget
ubifs: Re-statistic cleaned znode count if commit failed
ubifs: dirty_cow_znode: Fix memleak in error handling path
ubifs: ubifs_writepage: Mark page dirty after writing inode failed
ubi: Fix UAF wear-leveling entry in eraseblk_count_seq_show()
ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed

ruanjinjie (1):
watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in error path

Álvaro Fernández Rojas (1):
spi: bcm63xx-hsspi: fix pm_runtime

Łukasz Stelmach (1):
ALSA: hda/realtek: Add quirk for HP EliteDesk 800 G6 Tower PC

author maintainer
#1 lore raw
Documentation/admin-guide/cgroup-v1/memory.rst +11 -2
index 0ae4f564c2d6..6ec63c239616 100644
@@ -82,6 +82,8 @@ Brief summary of control files.
  memory.swappiness		     set/show swappiness parameter of vmscan
 				     (See sysctl's vm.swappiness)
  memory.move_charge_at_immigrate     set/show controls of moving charges
+                                     This knob is deprecated and shouldn't be
+                                     used.
  memory.oom_control		     set/show oom controls.
  memory.numa_stat		     show the number of memory usage per numa
 				     node
@@ -745,8 +747,15 @@ NOTE2:
        It is recommended to set the soft limit always below the hard limit,
        otherwise the hard limit will take precedence.
 
-8. Move charges at task migration
-=================================
+8. Move charges at task migration (DEPRECATED!)
+===============================================
+
+THIS IS DEPRECATED!
+
+It's expensive and unreliable! It's better practice to launch workload
+tasks directly from inside their target cgroup. Use dedicated workload
+cgroups to allow fine-grained policy adjustments without having to
+move physical pages between control domains.
 
 Users can move charges associated with a task along with task migration, that
 is, uncharge task's pages from the old cgroup and charge them to the new cgroup.
Documentation/admin-guide/hw-vuln/spectre.rst +16 -5
index 7e061ed449aa..0fba3758d0da 100644
@@ -479,8 +479,16 @@ Spectre variant 2
    On Intel Skylake-era systems the mitigation covers most, but not all,
    cases. See :ref:`[3] <spec_ref3>` for more details.
 
-   On CPUs with hardware mitigation for Spectre variant 2 (e.g. Enhanced
-   IBRS on x86), retpoline is automatically disabled at run time.
+   On CPUs with hardware mitigation for Spectre variant 2 (e.g. IBRS
+   or enhanced IBRS on x86), retpoline is automatically disabled at run time.
+
+   Systems which support enhanced IBRS (eIBRS) enable IBRS protection once at
+   boot, by setting the IBRS bit, and they're automatically protected against
+   Spectre v2 variant attacks, including cross-thread branch target injections
+   on SMT systems (STIBP). In other words, eIBRS enables STIBP too.
+
+   Legacy IBRS systems clear the IBRS bit on exit to userspace and
+   therefore explicitly enable STIBP for that
 
    The retpoline mitigation is turned on by default on vulnerable
    CPUs. It can be forced on or off by the administrator
@@ -504,9 +512,12 @@ Spectre variant 2
    For Spectre variant 2 mitigation, individual user programs
    can be compiled with return trampolines for indirect branches.
    This protects them from consuming poisoned entries in the branch
-   target buffer left by malicious software.  Alternatively, the
-   programs can disable their indirect branch speculation via prctl()
-   (See :ref:`Documentation/userspace-api/spec_ctrl.rst <set_spec_ctrl>`).
+   target buffer left by malicious software.
+
+   On legacy IBRS systems, at return to userspace, implicit STIBP is disabled
+   because the kernel clears the IBRS bit. In this case, the userspace programs
+   can disable indirect branch speculation via prctl() (See
+   :ref:`Documentation/userspace-api/spec_ctrl.rst <set_spec_ctrl>`).
    On x86, this will turn on STIBP to guard against attacks from the
    sibling thread when the user program is running, and use IBPB to
    flush the branch target buffer when switching to/from the program.
Documentation/dev-tools/gdb-kernel-debugging.rst +4 -0
index 19df79286f00..afe4bc206486 100644
@@ -39,6 +39,10 @@ Setup
   this mode. In this case, you should build the kernel with
   CONFIG_RANDOMIZE_BASE disabled if the architecture supports KASLR.
 
+- Build the gdb scripts (required on kernels v5.1 and above)::
+
+    make scripts_gdb
+
 - Enable the gdb stub of QEMU/KVM, either
 
     - at VM startup time by appending "-s" to the QEMU command line
Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml +0 -1
index d7a57ec4a640..140793050df3 100644
@@ -128,7 +128,6 @@ required:
   - compatible
   - reg
   - interrupts
-  - clocks
   - clock-output-names
 
 additionalProperties: false
Documentation/virt/kvm/api.txt +12 -6
index fd22224853e5..180475bcd671 100644
@@ -3615,6 +3615,18 @@ Type: vm ioctl
 Parameters: struct kvm_s390_cmma_log (in, out)
 Returns: 0 on success, a negative value on error
 
+Errors:
+
+  ======     =============================================================
+  ENOMEM     not enough memory can be allocated to complete the task
+  ENXIO      if CMMA is not enabled
+  EINVAL     if KVM_S390_CMMA_PEEK is not set but migration mode was not enabled
+  EINVAL     if KVM_S390_CMMA_PEEK is not set but dirty tracking has been
+             disabled (and thus migration mode was automatically disabled)
+  EFAULT     if the userspace address is invalid or if no page table is
+             present for the addresses (e.g. when using hugepages).
+  ======     =============================================================
+
 This ioctl is used to get the values of the CMMA bits on the s390
 architecture. It is meant to be used in two scenarios:
 - During live migration to save the CMMA values. Live migration needs
@@ -3691,12 +3703,6 @@ mask is unused.
 
 values points to the userspace buffer where the result will be stored.
 
-This ioctl can fail with -ENOMEM if not enough memory can be allocated to
-complete the task, with -ENXIO if CMMA is not enabled, with -EINVAL if
-KVM_S390_CMMA_PEEK is not set but migration mode was not enabled, with
--EFAULT if the userspace address is invalid or if no page table is
-present for the addresses (e.g. when using hugepages).
-
 4.108 KVM_S390_SET_CMMA_BITS
 
 Capability: KVM_CAP_S390_CMMA_MIGRATION
Documentation/virt/kvm/devices/vm.txt +4 -0
index 4ffb82b02468..38ec142a4a84 100644
@@ -254,6 +254,10 @@ Allows userspace to start migration mode, needed for PGSTE migration.
 Setting this attribute when migration mode is already active will have
 no effects.
 
+Dirty tracking must be enabled on all memslots, else -EINVAL is returned. When
+dirty tracking is disabled on any memslot, migration mode is automatically
+stopped.
+
 Parameters: none
 Returns:    -ENOMEM if there is not enough free memory to start migration mode
 	    -EINVAL if the state of the VM is invalid (e.g. no memory defined)
Makefile +10 -3
index 7688832a51d2..f75275728ce8 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 234
+SUBLEVEL = 235
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
@@ -89,9 +89,16 @@ endif
 
 # If the user is running make -s (silent mode), suppress echoing of
 # commands
+# make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS.
 
-ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
-  quiet=silent_
+ifeq ($(filter 3.%,$(MAKE_VERSION)),)
+silence:=$(findstring s,$(firstword -$(MAKEFLAGS)))
+else
+silence:=$(findstring s,$(filter-out --%,$(MAKEFLAGS)))
+endif
+
+ifeq ($(silence),s)
+quiet=silent_
 endif
 
 export quiet Q KBUILD_VERBOSE
arch/alpha/kernel/traps.c +15 -15
index f87d8e1fcfe4..1a0a98cfdae7 100644
@@ -235,7 +235,21 @@ do_entIF(unsigned long type, struct pt_regs *regs)
 {
 	int signo, code;
 
-	if ((regs->ps & ~IPL_MAX) == 0) {
+	if (type == 3) { /* FEN fault */
+		/* Irritating users can call PAL_clrfen to disable the
+		   FPU for the process.  The kernel will then trap in
+		   do_switch_stack and undo_switch_stack when we try
+		   to save and restore the FP registers.
+
+		   Given that GCC by default generates code that uses the
+		   FP registers, PAL_clrfen is not useful except for DoS
+		   attacks.  So turn the bleeding FPU back on and be done
+		   with it.  */
+		current_thread_info()->pcb.flags |= 1;
+		__reload_thread(&current_thread_info()->pcb);
+		return;
+	}
+	if (!user_mode(regs)) {
 		if (type == 1) {
 			const unsigned int *data
 			  = (const unsigned int *) regs->pc;
@@ -368,20 +382,6 @@ do_entIF(unsigned long type, struct pt_regs *regs)
 		}
 		break;
 
-	      case 3: /* FEN fault */
-		/* Irritating users can call PAL_clrfen to disable the
-		   FPU for the process.  The kernel will then trap in
-		   do_switch_stack and undo_switch_stack when we try
-		   to save and restore the FP registers.
-
-		   Given that GCC by default generates code that uses the
-		   FP registers, PAL_clrfen is not useful except for DoS
-		   attacks.  So turn the bleeding FPU back on and be done
-		   with it.  */
-		current_thread_info()->pcb.flags |= 1;
-		__reload_thread(&current_thread_info()->pcb);
-		return;
-
 	      case 5: /* illoc */
 	      default: /* unexpected instruction-fault type */
 		      ;
arch/arm/boot/dts/exynos3250-rinato.dts +1 -1
index 468932f45289..72d6b7c27151 100644
@@ -239,7 +239,7 @@
 	i80-if-timings {
 		cs-setup = <0>;
 		wr-setup = <0>;
-		wr-act = <1>;
+		wr-active = <1>;
 		wr-hold = <0>;
 	};
 };
arch/arm/boot/dts/exynos4-cpu-thermal.dtsi +1 -1
index 021d9fc1b492..27a1a8952665 100644
@@ -10,7 +10,7 @@
 / {
 thermal-zones {
 	cpu_thermal: cpu-thermal {
-		thermal-sensors = <&tmu 0>;
+		thermal-sensors = <&tmu>;
 		polling-delay-passive = <0>;
 		polling-delay = <0>;
 		trips {
arch/arm/boot/dts/exynos4.dtsi +1 -1
index 433f109d97ca..1dd009c4dc91 100644
@@ -605,7 +605,7 @@
 			status = "disabled";
 
 			hdmi_i2c_phy: hdmiphy@38 {
-				compatible = "exynos4210-hdmiphy";
+				compatible = "samsung,exynos4210-hdmiphy";
 				reg = <0x38>;
 			};
 		};
arch/arm/boot/dts/exynos5410-odroidxu.dts +0 -1
index f68baaf58f9e..51b1a7f19471 100644
@@ -116,7 +116,6 @@
 };
 
 &cpu0_thermal {
-	thermal-sensors = <&tmu_cpu0 0>;
 	polling-delay-passive = <0>;
 	polling-delay = <0>;
 
arch/arm/boot/dts/exynos5420.dtsi +1 -1
index 7d51e0f4ab79..5da434ccf12a 100644
@@ -539,7 +539,7 @@
 		};
 
 		mipi_phy: mipi-video-phy {
-			compatible = "samsung,s5pv210-mipi-video-phy";
+			compatible = "samsung,exynos5420-mipi-video-phy";
 			syscon = <&pmu_system_controller>;
 			#phy-cells = <1>;
 		};
arch/arm/boot/dts/imx7s.dtsi +1 -1
index e2e604d6ba0b..1ef076b64de2 100644
@@ -504,7 +504,7 @@
 
 				mux: mux-controller {
 					compatible = "mmio-mux";
-					#mux-control-cells = <0>;
+					#mux-control-cells = <1>;
 					mux-reg-masks = <0x14 0x00000010>;
 				};
 
arch/arm/boot/dts/spear320-hmi.dts +1 -1
index 367ba48aac3e..5c562fb4886f 100644
@@ -242,7 +242,7 @@
 					irq-trigger = <0x1>;
 
 					stmpegpio: stmpe-gpio {
-						compatible = "stmpe,gpio";
+						compatible = "st,stmpe-gpio";
 						reg = <0>;
 						gpio-controller;
 						#gpio-cells = <2>;
arch/arm/mach-imx/mmdc.c +12 -12
index af12668d0bf5..b9efe9da06e0 100644
@@ -99,6 +99,7 @@ struct mmdc_pmu {
 	cpumask_t cpu;
 	struct hrtimer hrtimer;
 	unsigned int active_events;
+	int id;
 	struct device *dev;
 	struct perf_event *mmdc_events[MMDC_NUM_COUNTERS];
 	struct hlist_node node;
@@ -433,8 +434,6 @@ static enum hrtimer_restart mmdc_pmu_timer_handler(struct hrtimer *hrtimer)
 static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
 		void __iomem *mmdc_base, struct device *dev)
 {
-	int mmdc_num;
-
 	*pmu_mmdc = (struct mmdc_pmu) {
 		.pmu = (struct pmu) {
 			.task_ctx_nr    = perf_invalid_context,
@@ -452,15 +451,16 @@ static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
 		.active_events = 0,
 	};
 
-	mmdc_num = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
+	pmu_mmdc->id = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
 
-	return mmdc_num;
+	return pmu_mmdc->id;
 }
 
 static int imx_mmdc_remove(struct platform_device *pdev)
 {
 	struct mmdc_pmu *pmu_mmdc = platform_get_drvdata(pdev);
 
+	ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
 	cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
 	perf_pmu_unregister(&pmu_mmdc->pmu);
 	iounmap(pmu_mmdc->mmdc_base);
@@ -474,7 +474,6 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
 {
 	struct mmdc_pmu *pmu_mmdc;
 	char *name;
-	int mmdc_num;
 	int ret;
 	const struct of_device_id *of_id =
 		of_match_device(imx_mmdc_dt_ids, &pdev->dev);
@@ -497,14 +496,14 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
 		cpuhp_mmdc_state = ret;
 	}
 
-	mmdc_num = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
-	pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
-	if (mmdc_num == 0)
-		name = "mmdc";
-	else
-		name = devm_kasprintf(&pdev->dev,
-				GFP_KERNEL, "mmdc%d", mmdc_num);
+	ret = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
+	if (ret < 0)
+		goto  pmu_free;
 
+	name = devm_kasprintf(&pdev->dev,
+				GFP_KERNEL, "mmdc%d", ret);
+
+	pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
 	pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
 
 	hrtimer_init(&pmu_mmdc->hrtimer, CLOCK_MONOTONIC,
@@ -525,6 +524,7 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
 
 pmu_register_err:
 	pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret);
+	ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
 	cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
 	hrtimer_cancel(&pmu_mmdc->hrtimer);
 pmu_free:
arch/arm/mach-omap1/timer.c +1 -1
index 4447210c9b0d..291bc376d30e 100644
@@ -165,7 +165,7 @@ static int __init omap1_dm_timer_init(void)
 	kfree(pdata);
 
 err_free_pdev:
-	platform_device_unregister(pdev);
+	platform_device_put(pdev);
 
 	return ret;
 }
arch/arm/mach-omap2/timer.c +1 -0
index 1defb838eae3..a5da85b73461 100644
@@ -700,6 +700,7 @@ static void __init realtime_counter_init(void)
 	}
 
 	rate = clk_get_rate(sys_clk);
+	clk_put(sys_clk);
 
 	if (soc_is_dra7xx()) {
 		/*
arch/arm/mach-zynq/slcr.c +1 -0
index 37707614885a..9765b3f4c2fc 100644
@@ -213,6 +213,7 @@ int __init zynq_early_slcr_init(void)
 	zynq_slcr_regmap = syscon_regmap_lookup_by_compatible("xlnx,zynq-slcr");
 	if (IS_ERR(zynq_slcr_regmap)) {
 		pr_err("%s: failed to find zynq-slcr\n", __func__);
+		of_node_put(np);
 		return -ENODEV;
 	}
 
arch/arm64/boot/dts/amlogic/meson-axg.dtsi +2 -2
index 8732229f0588..72255898081c 100644
@@ -150,7 +150,7 @@
 		scpi_clocks: clocks {
 			compatible = "arm,scpi-clocks";
 
-			scpi_dvfs: clock-controller {
+			scpi_dvfs: clocks-0 {
 				compatible = "arm,scpi-dvfs-clocks";
 				#clock-cells = <1>;
 				clock-indices = <0>;
@@ -159,7 +159,7 @@
 		};
 
 		scpi_sensors: sensors {
-			compatible = "amlogic,meson-gxbb-scpi-sensors";
+			compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors";
 			#thermal-sensor-cells = <1>;
 		};
 	};
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +1 -1
index 6b495587eee2..937b27549d56 100644
@@ -1783,7 +1783,7 @@
 					#address-cells = <1>;
 					#size-cells = <0>;
 
-					internal_ephy: ethernet_phy@8 {
+					internal_ephy: ethernet-phy@8 {
 						compatible = "ethernet-phy-id0180.3301",
 							     "ethernet-phy-ieee802.3-c22";
 						interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +0 -20
index eb5d177d7a99..c8c438c0b429 100644
@@ -54,26 +54,6 @@
 		compatible = "operating-points-v2";
 		opp-shared;
 
-		opp-100000000 {
-			opp-hz = /bits/ 64 <100000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-250000000 {
-			opp-hz = /bits/ 64 <250000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-500000000 {
-			opp-hz = /bits/ 64 <500000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-667000000 {
-			opp-hz = /bits/ 64 <666666666>;
-			opp-microvolt = <731000>;
-		};
-
 		opp-1000000000 {
 			opp-hz = /bits/ 64 <1000000000>;
 			opp-microvolt = <731000>;
arch/arm64/boot/dts/amlogic/meson-gx.dtsi +3 -3
index 0c667ec15f8c..e9f9ddd27ad7 100644
@@ -172,7 +172,7 @@
 			reg = <0x14 0x10>;
 		};
 
-		eth_mac: eth_mac@34 {
+		eth_mac: eth-mac@34 {
 			reg = <0x34 0x10>;
 		};
 
@@ -189,7 +189,7 @@
 		scpi_clocks: clocks {
 			compatible = "arm,scpi-clocks";
 
-			scpi_dvfs: scpi_clocks@0 {
+			scpi_dvfs: clocks-0 {
 				compatible = "arm,scpi-dvfs-clocks";
 				#clock-cells = <1>;
 				clock-indices = <0>;
@@ -464,7 +464,7 @@
 			#size-cells = <2>;
 			ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>;
 
-			hwrng: rng {
+			hwrng: rng@0 {
 				compatible = "amlogic,meson-rng";
 				reg = <0x0 0x0 0x0 0x4>;
 			};
arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts +1 -1
index b5667f1fb2c8..22fb3e324da5 100644
@@ -18,7 +18,7 @@
 	leds {
 		compatible = "gpio-leds";
 
-		status {
+		led {
 			label = "n1:white:status";
 			gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
 			default-state = "on";
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +1 -1
index e3cfa24dca5a..6809f495a503 100644
@@ -700,7 +700,7 @@
 		};
 	};
 
-	eth-phy-mux {
+	eth-phy-mux@55c {
 		compatible = "mdio-mux-mmioreg", "mdio-mux";
 		#address-cells = <1>;
 		#size-cells = <0>;
arch/arm64/boot/dts/mediatek/mt7622.dtsi +1 -0
index e7e002d8b108..3bfe9f5d2a14 100644
@@ -428,6 +428,7 @@
 	pwm: pwm@11006000 {
 		compatible = "mediatek,mt7622-pwm";
 		reg = <0 0x11006000 0 0x1000>;
+		#pwm-cells = <2>;
 		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
 		clocks = <&topckgen CLK_TOP_PWM_SEL>,
 			 <&pericfg CLK_PERI_PWM_PD>,
arch/arm64/boot/dts/qcom/qcs404.dtsi +6 -6
index a97eeb4569c0..1eb51b12cfac 100644
@@ -533,7 +533,7 @@
 
 			clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
 			resets = <&gcc GCC_PCIEPHY_0_PHY_BCR>,
-				 <&gcc 21>;
+				 <&gcc GCC_PCIE_0_PIPE_ARES>;
 			reset-names = "phy", "pipe";
 
 			clock-output-names = "pcie_0_pipe_clk";
@@ -991,12 +991,12 @@
 				 <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
 			clock-names = "iface", "aux", "master_bus", "slave_bus";
 
-			resets = <&gcc 18>,
-				 <&gcc 17>,
-				 <&gcc 15>,
-				 <&gcc 19>,
+			resets = <&gcc GCC_PCIE_0_AXI_MASTER_ARES>,
+				 <&gcc GCC_PCIE_0_AXI_SLAVE_ARES>,
+				 <&gcc GCC_PCIE_0_AXI_MASTER_STICKY_ARES>,
+				 <&gcc GCC_PCIE_0_CORE_STICKY_ARES>,
 				 <&gcc GCC_PCIE_0_BCR>,
-				 <&gcc 16>;
+				 <&gcc GCC_PCIE_0_AHB_ARES>;
 			reset-names = "axi_m",
 				      "axi_s",
 				      "axi_m_sticky",
arch/m68k/68000/entry.S +2 -0
index 259b3661b614..94abf3d8afc5 100644
@@ -47,6 +47,8 @@ do_trace:
 	jbsr	syscall_trace_enter
 	RESTORE_SWITCH_STACK
 	addql	#4,%sp
+	addql	#1,%d0
+	jeq	ret_from_exception
 	movel	%sp@(PT_OFF_ORIG_D0),%d1
 	movel	#-ENOSYS,%d0
 	cmpl	#NR_syscalls,%d1
arch/m68k/Kconfig.devices +1 -0
index 3e9b0b826f8a..6fb693bb0771 100644
@@ -19,6 +19,7 @@ config HEARTBEAT
 # We have a dedicated heartbeat LED. :-)
 config PROC_HARDWARE
 	bool "/proc/hardware support"
+	depends on PROC_FS
 	help
 	  Say Y here to support the /proc/hardware file, which gives you
 	  access to information about the machine you're running on,
arch/m68k/coldfire/entry.S +2 -0
index 52d312d5b4d4..fb3b06567745 100644
@@ -92,6 +92,8 @@ ENTRY(system_call)
 	jbsr	syscall_trace_enter
 	RESTORE_SWITCH_STACK
 	addql	#4,%sp
+	addql	#1,%d0
+	jeq	ret_from_exception
 	movel	%d3,%a0
 	jbsr	%a0@
 	movel	%d0,%sp@(PT_OFF_D0)		/* save the return value */
arch/m68k/kernel/entry.S +3 -0
index 97cd3ea5f10b..9a66657773be 100644
@@ -160,9 +160,12 @@ do_trace_entry:
 	jbsr	syscall_trace
 	RESTORE_SWITCH_STACK
 	addql	#4,%sp
+	addql	#1,%d0			| optimization for cmpil #-1,%d0
+	jeq	ret_from_syscall
 	movel	%sp@(PT_OFF_ORIG_D0),%d0
 	cmpl	#NR_syscalls,%d0
 	jcs	syscall
+	jra	ret_from_syscall
 badsys:
 	movel	#-ENOSYS,%sp@(PT_OFF_D0)
 	jra	ret_from_syscall
arch/mips/include/asm/syscall.h +1 -1
index 25fa651c937d..ebdf4d910af2 100644
@@ -38,7 +38,7 @@ static inline bool mips_syscall_is_indirect(struct task_struct *task,
 static inline long syscall_get_nr(struct task_struct *task,
 				  struct pt_regs *regs)
 {
-	return current_thread_info()->syscall;
+	return task_thread_info(task)->syscall;
 }
 
 static inline void mips_syscall_update_nr(struct task_struct *task,
arch/mips/include/asm/vpe.h +0 -1
index 80e70dbd1f64..012731546cf6 100644
@@ -104,7 +104,6 @@ struct vpe_control {
 	struct list_head tc_list;       /* Thread contexts */
 };
 
-extern unsigned long physical_memsize;
 extern struct vpe_control vpecontrol;
 extern const struct file_operations vpe_fops;
 
arch/mips/kernel/smp-cps.c +5 -3
index dbb3f1fc71ab..f659adb681bc 100644
@@ -423,9 +423,11 @@ static void cps_shutdown_this_cpu(enum cpu_death death)
 			wmb();
 		}
 	} else {
-		pr_debug("Gating power to core %d\n", core);
-		/* Power down the core */
-		cps_pm_enter_state(CPS_PM_POWER_GATED);
+		if (IS_ENABLED(CONFIG_HOTPLUG_CPU)) {
+			pr_debug("Gating power to core %d\n", core);
+			/* Power down the core */
+			cps_pm_enter_state(CPS_PM_POWER_GATED);
+		}
 	}
 }
 
arch/mips/kernel/vpe-mt.c +3 -4
index 9fd7cd48ea1d..496ed8f362f6 100644
@@ -92,12 +92,11 @@ int vpe_run(struct vpe *v)
 	write_tc_c0_tchalt(read_tc_c0_tchalt() & ~TCHALT_H);
 
 	/*
-	 * The sde-kit passes 'memsize' to __start in $a3, so set something
-	 * here...  Or set $a3 to zero and define DFLT_STACK_SIZE and
-	 * DFLT_HEAP_SIZE when you compile your program
+	 * We don't pass the memsize here, so VPE programs need to be
+	 * compiled with DFLT_STACK_SIZE and DFLT_HEAP_SIZE defined.
 	 */
+	mttgpr(7, 0);
 	mttgpr(6, v->ntcs);
-	mttgpr(7, physical_memsize);
 
 	/* set up VPE1 */
 	/*
arch/mips/lantiq/prom.c +0 -6
index 3f568f5aae2d..2729a4b63e18 100644
@@ -22,12 +22,6 @@
 DEFINE_SPINLOCK(ebu_lock);
 EXPORT_SYMBOL_GPL(ebu_lock);
 
-/*
- * This is needed by the VPE loader code, just set it to 0 and assume
- * that the firmware hardcodes this value to something useful.
- */
-unsigned long physical_memsize = 0L;
-
 /*
  * this struct is filled by the soc specific detection code and holds
  * information about the specific soc type, revision and name
arch/powerpc/Makefile +1 -1
index 95183a717eb6..6c32ea6dc755 100644
@@ -93,7 +93,7 @@ aflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mlittle-endian
 
 ifeq ($(HAS_BIARCH),y)
 KBUILD_CFLAGS	+= -m$(BITS)
-KBUILD_AFLAGS	+= -m$(BITS) -Wl,-a$(BITS)
+KBUILD_AFLAGS	+= -m$(BITS)
 KBUILD_LDFLAGS	+= -m elf$(BITS)$(LDEMULATION)
 endif
 
arch/powerpc/kernel/eeh_driver.c +36 -35

91 lines not on this page · raw message

arch/powerpc/kernel/rtas.c +12 -12
index 139377f37b74..ee810df7d522 100644
@@ -51,10 +51,10 @@ struct rtas_t rtas = {
 EXPORT_SYMBOL(rtas);
 
 DEFINE_SPINLOCK(rtas_data_buf_lock);
-EXPORT_SYMBOL(rtas_data_buf_lock);
+EXPORT_SYMBOL_GPL(rtas_data_buf_lock);
 
-char rtas_data_buf[RTAS_DATA_BUF_SIZE] __cacheline_aligned;
-EXPORT_SYMBOL(rtas_data_buf);
+char rtas_data_buf[RTAS_DATA_BUF_SIZE] __aligned(SZ_4K);
+EXPORT_SYMBOL_GPL(rtas_data_buf);
 
 unsigned long rtas_rmo_buf;
 
@@ -63,7 +63,7 @@ unsigned long rtas_rmo_buf;
  * This is done like this so rtas_flash can be a module.
  */
 void (*rtas_flash_term_hook)(int);
-EXPORT_SYMBOL(rtas_flash_term_hook);
+EXPORT_SYMBOL_GPL(rtas_flash_term_hook);
 
 /* RTAS use home made raw locking instead of spin_lock_irqsave
  * because those can be called from within really nasty contexts
@@ -311,7 +311,7 @@ void rtas_progress(char *s, unsigned short hex)
  
 	spin_unlock(&progress_lock);
 }
-EXPORT_SYMBOL(rtas_progress);		/* needed by rtas_flash module */
+EXPORT_SYMBOL_GPL(rtas_progress);		/* needed by rtas_flash module */
 
 int rtas_token(const char *service)
 {
@@ -321,7 +321,7 @@ int rtas_token(const char *service)
 	tokp = of_get_property(rtas.dev, service, NULL);
 	return tokp ? be32_to_cpu(*tokp) : RTAS_UNKNOWN_SERVICE;
 }
-EXPORT_SYMBOL(rtas_token);
+EXPORT_SYMBOL_GPL(rtas_token);
 
 int rtas_service_present(const char *service)
 {
@@ -481,7 +481,7 @@ int rtas_call(int token, int nargs, int nret, int *outputs, ...)
 	}
 	return ret;
 }
-EXPORT_SYMBOL(rtas_call);
+EXPORT_SYMBOL_GPL(rtas_call);
 
 /* For RTAS_BUSY (-2), delay for 1 millisecond.  For an extended busy status
  * code of 990n, perform the hinted delay of 10^n (last digit) milliseconds.
@@ -516,7 +516,7 @@ unsigned int rtas_busy_delay(int status)
 
 	return ms;
 }
-EXPORT_SYMBOL(rtas_busy_delay);
+EXPORT_SYMBOL_GPL(rtas_busy_delay);
 
 static int rtas_error_rc(int rtas_rc)
 {
@@ -562,7 +562,7 @@ int rtas_get_power_level(int powerdomain, int *level)
 		return rtas_error_rc(rc);
 	return rc;
 }
-EXPORT_SYMBOL(rtas_get_power_level);
+EXPORT_SYMBOL_GPL(rtas_get_power_level);
 
 int rtas_set_power_level(int powerdomain, int level, int *setlevel)
 {
@@ -580,7 +580,7 @@ int rtas_set_power_level(int powerdomain, int level, int *setlevel)
 		return rtas_error_rc(rc);
 	return rc;
 }
-EXPORT_SYMBOL(rtas_set_power_level);
+EXPORT_SYMBOL_GPL(rtas_set_power_level);
 
 int rtas_get_sensor(int sensor, int index, int *state)
 {
@@ -598,7 +598,7 @@ int rtas_get_sensor(int sensor, int index, int *state)
 		return rtas_error_rc(rc);
 	return rc;
 }
-EXPORT_SYMBOL(rtas_get_sensor);
+EXPORT_SYMBOL_GPL(rtas_get_sensor);
 
 int rtas_get_sensor_fast(int sensor, int index, int *state)
 {
@@ -659,7 +659,7 @@ int rtas_set_indicator(int indicator, int index, int new_value)
 		return rtas_error_rc(rc);
 	return rc;
 }
-EXPORT_SYMBOL(rtas_set_indicator);
+EXPORT_SYMBOL_GPL(rtas_set_indicator);
 
 /*
  * Ignoring RTAS extended delay
arch/powerpc/platforms/powernv/pci-ioda.c +2 -1
index 058223233088..df4457e743d3 100644
@@ -3008,7 +3008,8 @@ static void pnv_ioda_setup_pe_res(struct pnv_ioda_pe *pe,
 	int index;
 	int64_t rc;
 
-	if (!res || !res->flags || res->start > res->end)
+	if (!res || !res->flags || res->start > res->end ||
+	    res->flags & IORESOURCE_UNSET)
 		return;
 
 	if (res->flags & IORESOURCE_IO) {
arch/powerpc/platforms/pseries/lpar.c +10 -10
index c93b9a3bf237..55af0e4cf355 100644
@@ -1416,22 +1416,22 @@ static inline void __init check_lp_set_hblkrm(unsigned int lp,
 
 void __init pseries_lpar_read_hblkrm_characteristics(void)
 {
+	const s32 token = rtas_token("ibm,get-system-parameter");
 	unsigned char local_buffer[SPLPAR_TLB_BIC_MAXLENGTH];
 	int call_status, len, idx, bpsize;
 
 	if (!firmware_has_feature(FW_FEATURE_BLOCK_REMOVE))
 		return;
 
-	spin_lock(&rtas_data_buf_lock);
-	memset(rtas_data_buf, 0, RTAS_DATA_BUF_SIZE);
-	call_status = rtas_call(rtas_token("ibm,get-system-parameter"), 3, 1,
-				NULL,
-				SPLPAR_TLB_BIC_TOKEN,
-				__pa(rtas_data_buf),
-				RTAS_DATA_BUF_SIZE);
-	memcpy(local_buffer, rtas_data_buf, SPLPAR_TLB_BIC_MAXLENGTH);
-	local_buffer[SPLPAR_TLB_BIC_MAXLENGTH - 1] = '\0';
-	spin_unlock(&rtas_data_buf_lock);
+	do {
+		spin_lock(&rtas_data_buf_lock);
+		memset(rtas_data_buf, 0, RTAS_DATA_BUF_SIZE);
+		call_status = rtas_call(token, 3, 1, NULL, SPLPAR_TLB_BIC_TOKEN,
+					__pa(rtas_data_buf), RTAS_DATA_BUF_SIZE);
+		memcpy(local_buffer, rtas_data_buf, SPLPAR_TLB_BIC_MAXLENGTH);
+		local_buffer[SPLPAR_TLB_BIC_MAXLENGTH - 1] = '\0';
+		spin_unlock(&rtas_data_buf_lock);
+	} while (rtas_busy_delay(call_status));
 
 	if (call_status != 0) {
 		pr_warn("%s %s Error calling get-system-parameter (0x%x)\n",
arch/powerpc/platforms/pseries/lparcfg.c +10 -10
index 38c306551f76..e12cf62357f2 100644
@@ -289,6 +289,7 @@ static void parse_mpp_x_data(struct seq_file *m)
  */
 static void parse_system_parameter_string(struct seq_file *m)
 {
+	const s32 token = rtas_token("ibm,get-system-parameter");
 	int call_status;
 
 	unsigned char *local_buffer = kmalloc(SPLPAR_MAXLENGTH, GFP_KERNEL);
@@ -298,16 +299,15 @@ static void parse_system_parameter_string(struct seq_file *m)
 		return;
 	}
 
-	spin_lock(&rtas_data_buf_lock);
-	memset(rtas_data_buf, 0, SPLPAR_MAXLENGTH);
-	call_status = rtas_call(rtas_token("ibm,get-system-parameter"), 3, 1,
-				NULL,
-				SPLPAR_CHARACTERISTICS_TOKEN,
-				__pa(rtas_data_buf),
-				RTAS_DATA_BUF_SIZE);
-	memcpy(local_buffer, rtas_data_buf, SPLPAR_MAXLENGTH);
-	local_buffer[SPLPAR_MAXLENGTH - 1] = '\0';
-	spin_unlock(&rtas_data_buf_lock);
+	do {
+		spin_lock(&rtas_data_buf_lock);
+		memset(rtas_data_buf, 0, SPLPAR_MAXLENGTH);
+		call_status = rtas_call(token, 3, 1, NULL, SPLPAR_CHARACTERISTICS_TOKEN,
+					__pa(rtas_data_buf), RTAS_DATA_BUF_SIZE);
+		memcpy(local_buffer, rtas_data_buf, SPLPAR_MAXLENGTH);
+		local_buffer[SPLPAR_MAXLENGTH - 1] = '\0';
+		spin_unlock(&rtas_data_buf_lock);
+	} while (rtas_busy_delay(call_status));
 
 	if (call_status != 0) {
 		printk(KERN_INFO
arch/riscv/kernel/time.c +3 -0
index 8aa70b519e04..726860a490f3 100644
@@ -5,6 +5,7 @@
  */
 
 #include <linux/of_clk.h>
+#include <linux/clockchips.h>
 #include <linux/clocksource.h>
 #include <linux/delay.h>
 #include <asm/sbi.h>
@@ -28,4 +29,6 @@ void __init time_init(void)
 
 	of_clk_init(NULL);
 	timer_probe();
+
+	tick_setup_hrtimer_broadcast();
 }
arch/s390/kernel/kprobes.c +2 -2
index 6f1388391620..a97c1755517e 100644
@@ -255,6 +255,7 @@ static void pop_kprobe(struct kprobe_ctlblk *kcb)
 {
 	__this_cpu_write(current_kprobe, kcb->prev_kprobe.kp);
 	kcb->kprobe_status = kcb->prev_kprobe.status;
+	kcb->prev_kprobe.kp = NULL;
 }
 NOKPROBE_SYMBOL(pop_kprobe);
 
@@ -509,12 +510,11 @@ static int post_kprobe_handler(struct pt_regs *regs)
 	if (!p)
 		return 0;
 
+	resume_execution(p, regs);
 	if (kcb->kprobe_status != KPROBE_REENTER && p->post_handler) {
 		kcb->kprobe_status = KPROBE_HIT_SSDONE;
 		p->post_handler(p, regs, 0);
 	}
-
-	resume_execution(p, regs);
 	pop_kprobe(kcb);
 	preempt_enable_no_resched();
 
arch/s390/kernel/vmlinux.lds.S +1 -0
index 4df41695caec..99053c80388e 100644
@@ -189,5 +189,6 @@ SECTIONS
 	DISCARDS
 	/DISCARD/ : {
 		*(.eh_frame)
+		*(.interp)
 	}
 }
arch/s390/kvm/kvm-s390.c +16 -0
index 49dc00d82e5e..9ade970b4232 100644
@@ -4527,6 +4527,22 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
 	if (mem->guest_phys_addr + mem->memory_size > kvm->arch.mem_limit)
 		return -EINVAL;
 
+	if (!kvm->arch.migration_mode)
+		return 0;
+
+	/*
+	 * Turn off migration mode when:
+	 * - userspace creates a new memslot with dirty logging off,
+	 * - userspace modifies an existing memslot (MOVE or FLAGS_ONLY) and
+	 *   dirty logging is turned off.
+	 * Migration mode expects dirty page logging being enabled to store
+	 * its dirty bitmap.
+	 */
+	if (change != KVM_MR_DELETE &&
+	    !(mem->flags & KVM_MEM_LOG_DIRTY_PAGES))
+		WARN(kvm_s390_vm_stop_migration(kvm),
+		     "Failed to stop migration mode");
+
 	return 0;
 }
 
arch/sparc/Kconfig +1 -1
index 349e27771cea..8cb5bb020b4b 100644
@@ -321,7 +321,7 @@ config FORCE_MAX_ZONEORDER
 	  This config option is actually maximum order plus one. For example,
 	  a value of 13 means that the largest free memory block is 2^12 pages.
 
-if SPARC64
+if SPARC64 || COMPILE_TEST
 source "kernel/power/Kconfig"
 endif
 
arch/um/drivers/vector_kern.c +1 -0
index 769ffbd9e9a6..eb9dba8dcf95 100644
@@ -746,6 +746,7 @@ static int vector_config(char *str, char **error_out)
 
 	if (parsed == NULL) {
 		*error_out = "vector_config failed to parse parameters";
+		kfree(params);
 		return -EINVAL;
 	}
 
arch/x86/crypto/ghash-clmulni-intel_glue.c +3 -3
index 04d72a5a8ce9..c9864ac9c014 100644
@@ -19,6 +19,7 @@
 #include <crypto/internal/simd.h>
 #include <asm/cpu_device_id.h>
 #include <asm/simd.h>
+#include <asm/unaligned.h>
 
 #define GHASH_BLOCK_SIZE	16
 #define GHASH_DIGEST_SIZE	16
@@ -54,7 +55,6 @@ static int ghash_setkey(struct crypto_shash *tfm,
 			const u8 *key, unsigned int keylen)
 {
 	struct ghash_ctx *ctx = crypto_shash_ctx(tfm);
-	be128 *x = (be128 *)key;
 	u64 a, b;
 
 	if (keylen != GHASH_BLOCK_SIZE) {
@@ -63,8 +63,8 @@ static int ghash_setkey(struct crypto_shash *tfm,
 	}
 
 	/* perform multiplication by 'x' in GF(2^128) */
-	a = be64_to_cpu(x->a);
-	b = be64_to_cpu(x->b);
+	a = get_unaligned_be64(key);
+	b = get_unaligned_be64(key + 8);
 
 	ctx->shash.a = (b << 1) | (a >> 63);
 	ctx->shash.b = (a << 1) | (b >> 63);
arch/x86/include/asm/microcode.h +2 -2
index f73327397b89..509cc0262fdc 100644
@@ -131,7 +131,7 @@ static inline unsigned int x86_cpuid_family(void)
 int __init microcode_init(void);
 extern void __init load_ucode_bsp(void);
 extern void load_ucode_ap(void);
-void reload_early_microcode(void);
+void reload_early_microcode(unsigned int cpu);
 extern bool get_builtin_firmware(struct cpio_data *cd, const char *name);
 extern bool initrd_gone;
 void microcode_bsp_resume(void);
@@ -139,7 +139,7 @@ void microcode_bsp_resume(void);
 static inline int __init microcode_init(void)			{ return 0; };
 static inline void __init load_ucode_bsp(void)			{ }
 static inline void load_ucode_ap(void)				{ }
-static inline void reload_early_microcode(void)			{ }
+static inline void reload_early_microcode(unsigned int cpu)	{ }
 static inline void microcode_bsp_resume(void)			{ }
 static inline bool
 get_builtin_firmware(struct cpio_data *cd, const char *name)	{ return false; }
arch/x86/include/asm/microcode_amd.h +2 -2
index 5c524d4f71cd..a645b25ee442 100644
@@ -47,12 +47,12 @@ struct microcode_amd {
 extern void __init load_ucode_amd_bsp(unsigned int family);
 extern void load_ucode_amd_ap(unsigned int family);
 extern int __init save_microcode_in_initrd_amd(unsigned int family);
-void reload_ucode_amd(void);
+void reload_ucode_amd(unsigned int cpu);
 #else
 static inline void __init load_ucode_amd_bsp(unsigned int family) {}
 static inline void load_ucode_amd_ap(unsigned int family) {}
 static inline int __init
 save_microcode_in_initrd_amd(unsigned int family) { return -EINVAL; }
-void reload_ucode_amd(void) {}
+static inline void reload_ucode_amd(unsigned int cpu) {}
 #endif
 #endif /* _ASM_X86_MICROCODE_AMD_H */
arch/x86/include/asm/msr-index.h +4 -0
index 7fa0b213b007..67d43645a2b6 100644
@@ -50,6 +50,10 @@
 #define SPEC_CTRL_RRSBA_DIS_S_SHIFT	6	   /* Disable RRSBA behavior */
 #define SPEC_CTRL_RRSBA_DIS_S		BIT(SPEC_CTRL_RRSBA_DIS_S_SHIFT)
 
+/* A mask for bits which the kernel toggles when controlling mitigations */
+#define SPEC_CTRL_MITIGATIONS_MASK	(SPEC_CTRL_IBRS | SPEC_CTRL_STIBP | SPEC_CTRL_SSBD \
+							| SPEC_CTRL_RRSBA_DIS_S)
+
 #define MSR_IA32_PRED_CMD		0x00000049 /* Prediction Command */
 #define PRED_CMD_IBPB			BIT(0)	   /* Indirect Branch Prediction Barrier */
 
arch/x86/include/asm/reboot.h +2 -0
index 04c17be9b5fd..bc5b4d788c08 100644
@@ -25,6 +25,8 @@ void __noreturn machine_real_restart(unsigned int type);
 #define MRR_BIOS	0
 #define MRR_APM		1
 
+void cpu_emergency_disable_virtualization(void);
+
 typedef void (*nmi_shootdown_cb)(int, struct pt_regs*);
 void nmi_panic_self_stop(struct pt_regs *regs);
 void nmi_shootdown_cpus(nmi_shootdown_cb callback);
arch/x86/include/asm/resctrl_sched.h +11 -8
index f6b7fe2833cc..79b648743b84 100644
@@ -51,24 +51,27 @@ DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key);
  *   simple as possible.
  * Must be called with preemption disabled.
  */
-static void __resctrl_sched_in(void)
+static inline void __resctrl_sched_in(struct task_struct *tsk)
 {
 	struct resctrl_pqr_state *state = this_cpu_ptr(&pqr_state);
 	u32 closid = state->default_closid;
 	u32 rmid = state->default_rmid;
+	u32 tmp;
 
 	/*
 	 * If this task has a closid/rmid assigned, use it.
 	 * Else use the closid/rmid assigned to this cpu.
 	 */
 	if (static_branch_likely(&rdt_alloc_enable_key)) {
-		if (current->closid)
-			closid = current->closid;
+		tmp = READ_ONCE(tsk->closid);
+		if (tmp)
+			closid = tmp;
 	}
 
 	if (static_branch_likely(&rdt_mon_enable_key)) {
-		if (current->rmid)
-			rmid = current->rmid;
+		tmp = READ_ONCE(tsk->rmid);
+		if (tmp)
+			rmid = tmp;
 	}
 
 	if (closid != state->cur_closid || rmid != state->cur_rmid) {
@@ -78,15 +81,15 @@ static void __resctrl_sched_in(void)
 	}
 }
 
-static inline void resctrl_sched_in(void)
+static inline void resctrl_sched_in(struct task_struct *tsk)
 {
 	if (static_branch_likely(&rdt_enable_key))
-		__resctrl_sched_in();
+		__resctrl_sched_in(tsk);
 }
 
 #else
 
-static inline void resctrl_sched_in(void) {}
+static inline void resctrl_sched_in(struct task_struct *tsk) {}
 
 #endif /* CONFIG_X86_CPU_RESCTRL */
 
arch/x86/include/asm/virtext.h +15 -1
index fda3e7747c22..8eefa3386d8c 100644
@@ -120,7 +120,21 @@ static inline void cpu_svm_disable(void)
 
 	wrmsrl(MSR_VM_HSAVE_PA, 0);
 	rdmsrl(MSR_EFER, efer);
-	wrmsrl(MSR_EFER, efer & ~EFER_SVME);
+	if (efer & EFER_SVME) {
+		/*
+		 * Force GIF=1 prior to disabling SVM to ensure INIT and NMI
+		 * aren't blocked, e.g. if a fatal error occurred between CLGI
+		 * and STGI.  Note, STGI may #UD if SVM is disabled from NMI
+		 * context between reading EFER and executing STGI.  In that
+		 * case, GIF must already be set, otherwise the NMI would have
+		 * been blocked, so just eat the fault.
+		 */
+		asm_volatile_goto("1: stgi\n\t"
+				  _ASM_EXTABLE(1b, %l[fault])
+				  ::: "memory" : fault);
+fault:
+		wrmsrl(MSR_EFER, efer & ~EFER_SVME);
+	}
 }
 
 /** Makes sure SVM is disabled, if it is supported on the CPU
arch/x86/kernel/cpu/bugs.c +27 -8
index 8dca326a9e78..75ca28bb267c 100644
@@ -135,9 +135,17 @@ void __init check_bugs(void)
 	 * have unknown values. AMD64_LS_CFG MSR is cached in the early AMD
 	 * init code as it is not enumerated and depends on the family.
 	 */
-	if (boot_cpu_has(X86_FEATURE_MSR_SPEC_CTRL))
+	if (cpu_feature_enabled(X86_FEATURE_MSR_SPEC_CTRL)) {
 		rdmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base);
 
+		/*
+		 * Previously running kernel (kexec), may have some controls
+		 * turned ON. Clear them and let the mitigations setup below
+		 * rediscover them based on configuration.
+		 */
+		x86_spec_ctrl_base &= ~SPEC_CTRL_MITIGATIONS_MASK;
+	}
+
 	/* Select the proper CPU mitigations before patching alternatives: */
 	spectre_v1_select_mitigation();
 	spectre_v2_select_mitigation();
@@ -975,14 +983,18 @@ spectre_v2_parse_user_cmdline(void)
 	return SPECTRE_V2_USER_CMD_AUTO;
 }
 
-static inline bool spectre_v2_in_ibrs_mode(enum spectre_v2_mitigation mode)
+static inline bool spectre_v2_in_eibrs_mode(enum spectre_v2_mitigation mode)
 {
-	return mode == SPECTRE_V2_IBRS ||
-	       mode == SPECTRE_V2_EIBRS ||
+	return mode == SPECTRE_V2_EIBRS ||
 	       mode == SPECTRE_V2_EIBRS_RETPOLINE ||
 	       mode == SPECTRE_V2_EIBRS_LFENCE;
 }
 
+static inline bool spectre_v2_in_ibrs_mode(enum spectre_v2_mitigation mode)
+{
+	return spectre_v2_in_eibrs_mode(mode) || mode == SPECTRE_V2_IBRS;
+}
+
 static void __init
 spectre_v2_user_select_mitigation(void)
 {
@@ -1045,12 +1057,19 @@ spectre_v2_user_select_mitigation(void)
 	}
 
 	/*
-	 * If no STIBP, IBRS or enhanced IBRS is enabled, or SMT impossible,
-	 * STIBP is not required.
+	 * If no STIBP, enhanced IBRS is enabled, or SMT impossible, STIBP
+	 * is not required.
+	 *
+	 * Enhanced IBRS also protects against cross-thread branch target
+	 * injection in user-mode as the IBRS bit remains always set which
+	 * implicitly enables cross-thread protections.  However, in legacy IBRS
+	 * mode, the IBRS bit is set only on kernel entry and cleared on return
+	 * to userspace. This disables the implicit cross-thread protection,
+	 * so allow for STIBP to be selected in that case.
 	 */
 	if (!boot_cpu_has(X86_FEATURE_STIBP) ||
 	    !smt_possible ||
-	    spectre_v2_in_ibrs_mode(spectre_v2_enabled))
+	    spectre_v2_in_eibrs_mode(spectre_v2_enabled))
 		return;
 
 	/*
@@ -2113,7 +2132,7 @@ static ssize_t mmio_stale_data_show_state(char *buf)
 
 static char *stibp_state(void)
 {
-	if (spectre_v2_in_ibrs_mode(spectre_v2_enabled))
+	if (spectre_v2_in_eibrs_mode(spectre_v2_enabled))
 		return "";
 
 	switch (spectre_v2_user_stibp) {
arch/x86/kernel/cpu/microcode/amd.c +27 -26

118 lines not on this page · raw message

arch/x86/kernel/cpu/microcode/core.c +3 -3
index c95a27513a30..834c5f723dae 100644
@@ -322,7 +322,7 @@ struct cpio_data find_microcode_in_initrd(const char *path, bool use_pa)
 #endif
 }
 
-void reload_early_microcode(void)
+void reload_early_microcode(unsigned int cpu)
 {
 	int vendor, family;
 
@@ -336,7 +336,7 @@ void reload_early_microcode(void)
 		break;
 	case X86_VENDOR_AMD:
 		if (family >= 0x10)
-			reload_ucode_amd();
+			reload_ucode_amd(cpu);
 		break;
 	default:
 		break;
@@ -782,7 +782,7 @@ void microcode_bsp_resume(void)
 	if (uci->valid && uci->mc)
 		microcode_ops->apply_microcode(cpu);
 	else if (!uci->mc)
-		reload_early_microcode();
+		reload_early_microcode(cpu);
 }
 
 static struct syscore_ops mc_syscore_ops = {
arch/x86/kernel/cpu/resctrl/rdtgroup.c +7 -7
index 8d6023e6ad9e..0e4f14dae1c0 100644
@@ -311,7 +311,7 @@ static void update_cpu_closid_rmid(void *info)
 	 * executing task might have its own closid selected. Just reuse
 	 * the context switch code.
 	 */
-	resctrl_sched_in();
+	resctrl_sched_in(current);
 }
 
 /*
@@ -532,7 +532,7 @@ static void _update_task_closid_rmid(void *task)
 	 * Otherwise, the MSR is updated when the task is scheduled in.
 	 */
 	if (task == current)
-		resctrl_sched_in();
+		resctrl_sched_in(task);
 }
 
 static void update_task_closid_rmid(struct task_struct *t)
@@ -563,11 +563,11 @@ static int __rdtgroup_move_task(struct task_struct *tsk,
 	 */
 
 	if (rdtgrp->type == RDTCTRL_GROUP) {
-		tsk->closid = rdtgrp->closid;
-		tsk->rmid = rdtgrp->mon.rmid;
+		WRITE_ONCE(tsk->closid, rdtgrp->closid);
+		WRITE_ONCE(tsk->rmid, rdtgrp->mon.rmid);
 	} else if (rdtgrp->type == RDTMON_GROUP) {
 		if (rdtgrp->mon.parent->closid == tsk->closid) {
-			tsk->rmid = rdtgrp->mon.rmid;
+			WRITE_ONCE(tsk->rmid, rdtgrp->mon.rmid);
 		} else {
 			rdt_last_cmd_puts("Can't move task to different control group\n");
 			return -EINVAL;
@@ -2177,8 +2177,8 @@ static void rdt_move_group_tasks(struct rdtgroup *from, struct rdtgroup *to,
 	for_each_process_thread(p, t) {
 		if (!from || is_closid_match(t, from) ||
 		    is_rmid_match(t, from)) {
-			t->closid = to->closid;
-			t->rmid = to->mon.rmid;
+			WRITE_ONCE(t->closid, to->closid);
+			WRITE_ONCE(t->rmid, to->mon.rmid);
 
 			/*
 			 * Order the closid/rmid stores above before the loads
arch/x86/kernel/crash.c +1 -16
index 0c319d09378d..539d8cf5904d 100644
@@ -37,7 +37,6 @@
 #include <linux/kdebug.h>
 #include <asm/cpu.h>
 #include <asm/reboot.h>
-#include <asm/virtext.h>
 #include <asm/intel_pt.h>
 #include <asm/crash.h>
 #include <asm/cmdline.h>
@@ -94,15 +93,6 @@ static void kdump_nmi_callback(int cpu, struct pt_regs *regs)
 	 */
 	cpu_crash_vmclear_loaded_vmcss();
 
-	/* Disable VMX or SVM if needed.
-	 *
-	 * We need to disable virtualization on all CPUs.
-	 * Having VMX or SVM enabled on any CPU may break rebooting
-	 * after the kdump kernel has finished its task.
-	 */
-	cpu_emergency_vmxoff();
-	cpu_emergency_svm_disable();
-
 	/*
 	 * Disable Intel PT to stop its logging
 	 */
@@ -161,12 +151,7 @@ void native_machine_crash_shutdown(struct pt_regs *regs)
 	 */
 	cpu_crash_vmclear_loaded_vmcss();
 
-	/* Booting kdump kernel with VMX or SVM enabled won't work,
-	 * because (among other limitations) we can't disable paging
-	 * with the virt flags.
-	 */
-	cpu_emergency_vmxoff();
-	cpu_emergency_svm_disable();
+	cpu_emergency_disable_virtualization();
 
 	/*
 	 * Disable Intel PT to stop its logging
arch/x86/kernel/kprobes/opt.c +3 -3
index b348dd506d58..90d41b22c5c2 100644
@@ -43,8 +43,8 @@ unsigned long __recover_optprobed_insn(kprobe_opcode_t *buf, unsigned long addr)
 		/* This function only handles jump-optimized kprobe */
 		if (kp && kprobe_optimized(kp)) {
 			op = container_of(kp, struct optimized_kprobe, kp);
-			/* If op->list is not empty, op is under optimizing */
-			if (list_empty(&op->list))
+			/* If op is optimized or under unoptimizing */
+			if (list_empty(&op->list) || optprobe_queued_unopt(op))
 				goto found;
 		}
 	}
@@ -314,7 +314,7 @@ int arch_check_optimized_kprobe(struct optimized_kprobe *op)
 
 	for (i = 1; i < op->optinsn.size; i++) {
 		p = get_kprobe(op->kp.addr + i);
-		if (p && !kprobe_disabled(p))
+		if (p && !kprobe_disarmed(p))
 			return -EEXIST;
 	}
 
arch/x86/kernel/process_32.c +1 -1
index 352f876950ab..8ef71fa91ff8 100644
@@ -293,7 +293,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
 	switch_fpu_finish(next_p);
 
 	/* Load the Intel cache allocation PQR MSR. */
-	resctrl_sched_in();
+	resctrl_sched_in(next_p);
 
 	return prev_p;
 }
arch/x86/kernel/process_64.c +1 -1
index 633788362906..b77f0d9dad55 100644
@@ -610,7 +610,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
 	}
 
 	/* Load the Intel cache allocation PQR MSR. */
-	resctrl_sched_in();
+	resctrl_sched_in(next_p);
 
 	return prev_p;
 }
arch/x86/kernel/reboot.c +64 -24

148 lines not on this page · raw message

arch/x86/kernel/smp.c +3 -3
index b8d4e9c3c070..31ee37f87b2b 100644
@@ -31,7 +31,7 @@
 #include <asm/mce.h>
 #include <asm/trace/irq_vectors.h>
 #include <asm/kexec.h>
-#include <asm/virtext.h>
+#include <asm/reboot.h>
 
 /*
  *	Some notes on x86 processor bugs affecting SMP operation:
@@ -121,7 +121,7 @@ static int smp_stop_nmi_callback(unsigned int val, struct pt_regs *regs)
 	if (raw_smp_processor_id() == atomic_read(&stopping_cpu))
 		return NMI_HANDLED;
 
-	cpu_emergency_vmxoff();
+	cpu_emergency_disable_virtualization();
 	stop_this_cpu(NULL);
 
 	return NMI_HANDLED;
@@ -134,7 +134,7 @@ static int smp_stop_nmi_callback(unsigned int val, struct pt_regs *regs)
 asmlinkage __visible void smp_reboot_interrupt(void)
 {
 	ipi_entering_ack_irq();
-	cpu_emergency_vmxoff();
+	cpu_emergency_disable_virtualization();
 	stop_this_cpu(NULL);
 	irq_exit();
 }
arch/x86/kernel/sysfb_efi.c +8 -0
index 653b7f617b61..9ea65611fba0 100644
@@ -264,6 +264,14 @@ static const struct dmi_system_id efifb_dmi_swap_width_height[] __initconst = {
 					"Lenovo ideapad D330-10IGM"),
 		},
 	},
+	{
+		/* Lenovo IdeaPad Duet 3 10IGL5 with 1200x1920 portrait screen */
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_VERSION,
+					"IdeaPad Duet 3 10IGL5"),
+		},
+	},
 	{},
 };
 
arch/x86/um/vdso/um_vdso.c +8 -4
index 891868756a51..6d5269093f7c 100644
@@ -17,8 +17,10 @@ int __vdso_clock_gettime(clockid_t clock, struct timespec *ts)
 {
 	long ret;
 
-	asm("syscall" : "=a" (ret) :
-		"0" (__NR_clock_gettime), "D" (clock), "S" (ts) : "memory");
+	asm("syscall"
+		: "=a" (ret)
+		: "0" (__NR_clock_gettime), "D" (clock), "S" (ts)
+		: "rcx", "r11", "memory");
 
 	return ret;
 }
@@ -29,8 +31,10 @@ int __vdso_gettimeofday(struct timeval *tv, struct timezone *tz)
 {
 	long ret;
 
-	asm("syscall" : "=a" (ret) :
-		"0" (__NR_gettimeofday), "D" (tv), "S" (tz) : "memory");
+	asm("syscall"
+		: "=a" (ret)
+		: "0" (__NR_gettimeofday), "D" (tv), "S" (tz)
+		: "rcx", "r11", "memory");
 
 	return ret;
 }
block/bio-integrity.c +1 -0
index ec295be93ca0..247f7c480e66 100644
@@ -424,6 +424,7 @@ int bio_integrity_clone(struct bio *bio, struct bio *bio_src,
 
 	bip->bip_vcnt = bip_src->bip_vcnt;
 	bip->bip_iter = bip_src->bip_iter;
+	bip->bip_flags = bip_src->bip_flags & ~BIP_BLOCK_INTEGRITY;
 
 	return 0;
 }
block/blk-iocost.c +8 -3
index ef287c33d6d9..4fdc8858a69a 100644
@@ -785,9 +785,14 @@ static void calc_lcoefs(u64 bps, u64 seqiops, u64 randiops,
 
 	*page = *seqio = *randio = 0;
 
-	if (bps)
-		*page = DIV64_U64_ROUND_UP(VTIME_PER_SEC,
-					   DIV_ROUND_UP_ULL(bps, IOC_PAGE_SIZE));
+	if (bps) {
+		u64 bps_pages = DIV_ROUND_UP_ULL(bps, IOC_PAGE_SIZE);
+
+		if (bps_pages)
+			*page = DIV64_U64_ROUND_UP(VTIME_PER_SEC, bps_pages);
+		else
+			*page = 1;
+	}
 
 	if (seqiops) {
 		v = DIV64_U64_ROUND_UP(VTIME_PER_SEC, seqiops);
block/blk-mq-sched.c +54 -17

144 lines not on this page · raw message

block/blk-mq.c +5 -1
index 84798d09ca46..325a5944b4cb 100644
@@ -1112,7 +1112,7 @@ static int blk_mq_dispatch_wake(wait_queue_entry_t *wait, unsigned mode,
 static bool blk_mq_mark_tag_wait(struct blk_mq_hw_ctx *hctx,
 				 struct request *rq)
 {
-	struct sbitmap_queue *sbq = &hctx->tags->bitmap_tags;
+	struct sbitmap_queue *sbq;
 	struct wait_queue_head *wq;
 	wait_queue_entry_t *wait;
 	bool ret;
@@ -1135,6 +1135,10 @@ static bool blk_mq_mark_tag_wait(struct blk_mq_hw_ctx *hctx,
 	if (!list_empty_careful(&wait->entry))
 		return false;
 
+	if (blk_mq_tag_is_reserved(rq->mq_hctx->sched_tags, rq->internal_tag))
+		sbq = &hctx->tags->breserved_tags;
+	else
+		sbq = &hctx->tags->bitmap_tags;
 	wq = &bt_wait_ptr(sbq, hctx)->wait;
 
 	spin_lock_irq(&wq->lock);
crypto/essiv.c +7 -3
index a8befc8fb06e..aa6b89e91ac8 100644
@@ -188,8 +188,12 @@ static void essiv_aead_done(struct crypto_async_request *areq, int err)
 	struct aead_request *req = areq->data;
 	struct essiv_aead_request_ctx *rctx = aead_request_ctx(req);
 
-	if (rctx->assoc)
-		kfree(rctx->assoc);
+	if (err == -EINPROGRESS)
+		goto out;
+
+	kfree(rctx->assoc);
+
+out:
 	aead_request_complete(req, err);
 }
 
@@ -265,7 +269,7 @@ static int essiv_aead_crypt(struct aead_request *req, bool enc)
 	err = enc ? crypto_aead_encrypt(subreq) :
 		    crypto_aead_decrypt(subreq);
 
-	if (rctx->assoc && err != -EINPROGRESS)
+	if (rctx->assoc && err != -EINPROGRESS && err != -EBUSY)
 		kfree(rctx->assoc);
 	return err;
 }
crypto/rsa-pkcs1pad.c +15 -19
index 9cbafaf6dd85..5b4b12b8a71a 100644
@@ -213,16 +213,14 @@ static void pkcs1pad_encrypt_sign_complete_cb(
 		struct crypto_async_request *child_async_req, int err)
 {
 	struct akcipher_request *req = child_async_req->data;
-	struct crypto_async_request async_req;
 
 	if (err == -EINPROGRESS)
-		return;
+		goto out;
+
+	err = pkcs1pad_encrypt_sign_complete(req, err);
 
-	async_req.data = req->base.data;
-	async_req.tfm = crypto_akcipher_tfm(crypto_akcipher_reqtfm(req));
-	async_req.flags = child_async_req->flags;
-	req->base.complete(&async_req,
-			pkcs1pad_encrypt_sign_complete(req, err));
+out:
+	akcipher_request_complete(req, err);
 }
 
 static int pkcs1pad_encrypt(struct akcipher_request *req)
@@ -331,15 +329,14 @@ static void pkcs1pad_decrypt_complete_cb(
 		struct crypto_async_request *child_async_req, int err)
 {
 	struct akcipher_request *req = child_async_req->data;
-	struct crypto_async_request async_req;
 
 	if (err == -EINPROGRESS)
-		return;
+		goto out;
+
+	err = pkcs1pad_decrypt_complete(req, err);
 
-	async_req.data = req->base.data;
-	async_req.tfm = crypto_akcipher_tfm(crypto_akcipher_reqtfm(req));
-	async_req.flags = child_async_req->flags;
-	req->base.complete(&async_req, pkcs1pad_decrypt_complete(req, err));
+out:
+	akcipher_request_complete(req, err);
 }
 
 static int pkcs1pad_decrypt(struct akcipher_request *req)
@@ -511,15 +508,14 @@ static void pkcs1pad_verify_complete_cb(
 		struct crypto_async_request *child_async_req, int err)
 {
 	struct akcipher_request *req = child_async_req->data;
-	struct crypto_async_request async_req;
 
 	if (err == -EINPROGRESS)
-		return;
+		goto out;
 
-	async_req.data = req->base.data;
-	async_req.tfm = crypto_akcipher_tfm(crypto_akcipher_reqtfm(req));
-	async_req.flags = child_async_req->flags;
-	req->base.complete(&async_req, pkcs1pad_verify_complete(req, err));
+	err = pkcs1pad_verify_complete(req, err);
+
+out:
+	akcipher_request_complete(req, err);
 }
 
 /*
crypto/seqiv.c +1 -1
index 96d222c32acc..ae1d67d03625 100644
@@ -25,7 +25,7 @@ static void seqiv_aead_encrypt_complete2(struct aead_request *req, int err)
 	struct aead_request *subreq = aead_request_ctx(req);
 	struct crypto_aead *geniv;
 
-	if (err == -EINPROGRESS)
+	if (err == -EINPROGRESS || err == -EBUSY)
 		return;
 
 	if (err)
drivers/acpi/acpica/Makefile +1 -1
index 59700433a96e..f919811156b1 100644
@@ -3,7 +3,7 @@
 # Makefile for ACPICA Core interpreter
 #
 
-ccflags-y			:= -Os -D_LINUX -DBUILDING_ACPICA
+ccflags-y			:= -D_LINUX -DBUILDING_ACPICA
 ccflags-$(CONFIG_ACPI_DEBUG)	+= -DACPI_DEBUG_OUTPUT
 
 # use acpi.o to put all files here into acpi.o modparam namespace
drivers/acpi/acpica/hwvalid.c +4 -3
index cd576153257c..f1495b88bf13 100644
@@ -23,8 +23,8 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width);
  *
  * The table is used to implement the Microsoft port access rules that
  * first appeared in Windows XP. Some ports are always illegal, and some
- * ports are only illegal if the BIOS calls _OSI with a win_XP string or
- * later (meaning that the BIOS itelf is post-XP.)
+ * ports are only illegal if the BIOS calls _OSI with nothing newer than
+ * the specific _OSI strings.
  *
  * This provides ACPICA with the desired port protections and
  * Microsoft compatibility.
@@ -145,7 +145,8 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width)
 
 			/* Port illegality may depend on the _OSI calls made by the BIOS */
 
-			if (acpi_gbl_osi_data >= port_info->osi_dependency) {
+			if (port_info->osi_dependency == ACPI_ALWAYS_ILLEGAL ||
+			    acpi_gbl_osi_data == port_info->osi_dependency) {
 				ACPI_DEBUG_PRINT((ACPI_DB_VALUES,
 						  "Denied AML access to port 0x%8.8X%8.8X/%X (%s 0x%.4X-0x%.4X)\n",
 						  ACPI_FORMAT_UINT64(address),
drivers/acpi/acpica/nsrepair.c +7 -5
index be86fea8e4d4..57e6488f6933 100644
@@ -181,8 +181,9 @@ acpi_ns_simple_repair(struct acpi_evaluate_info *info,
 	 * Try to fix if there was no return object. Warning if failed to fix.
 	 */
 	if (!return_object) {
-		if (expected_btypes && (!(expected_btypes & ACPI_RTYPE_NONE))) {
-			if (package_index != ACPI_NOT_PACKAGE_ELEMENT) {
+		if (expected_btypes) {
+			if (!(expected_btypes & ACPI_RTYPE_NONE) &&
+			    package_index != ACPI_NOT_PACKAGE_ELEMENT) {
 				ACPI_WARN_PREDEFINED((AE_INFO,
 						      info->full_pathname,
 						      ACPI_WARN_ALWAYS,
@@ -196,14 +197,15 @@ acpi_ns_simple_repair(struct acpi_evaluate_info *info,
 				if (ACPI_SUCCESS(status)) {
 					return (AE_OK);	/* Repair was successful */
 				}
-			} else {
+			}
+
+			if (expected_btypes != ACPI_RTYPE_NONE) {
 				ACPI_WARN_PREDEFINED((AE_INFO,
 						      info->full_pathname,
 						      ACPI_WARN_ALWAYS,
 						      "Missing expected return value"));
+				return (AE_AML_NO_RETURN_VALUE);
 			}
-
-			return (AE_AML_NO_RETURN_VALUE);
 		}
 	}
 
drivers/acpi/battery.c +1 -1
index 974c2df13da1..a49a09e3de1b 100644
@@ -465,7 +465,7 @@ static int extract_package(struct acpi_battery *battery,
 			u8 *ptr = (u8 *)battery + offsets[i].offset;
 			if (element->type == ACPI_TYPE_STRING ||
 			    element->type == ACPI_TYPE_BUFFER)
-				strncpy(ptr, element->string.pointer, 32);
+				strscpy(ptr, element->string.pointer, 32);
 			else if (element->type == ACPI_TYPE_INTEGER) {
 				strncpy(ptr, (u8 *)&element->integer.value,
 					sizeof(u64));
drivers/acpi/video_detect.c +1 -1
index e5518b88f710..ef40cd7f36eb 100644
@@ -316,7 +316,7 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
 	 .ident = "Lenovo Ideapad Z570",
 	 .matches = {
 		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-		DMI_MATCH(DMI_PRODUCT_NAME, "102434U"),
+		DMI_MATCH(DMI_PRODUCT_VERSION, "Ideapad Z570"),
 		},
 	},
 	{
drivers/block/rbd.c +9 -11
index 55745d6953f0..0c74daf6e2c9 100644
@@ -5529,8 +5529,7 @@ static void rbd_dev_release(struct device *dev)
 		module_put(THIS_MODULE);
 }
 
-static struct rbd_device *__rbd_dev_create(struct rbd_client *rbdc,
-					   struct rbd_spec *spec)
+static struct rbd_device *__rbd_dev_create(struct rbd_spec *spec)
 {
 	struct rbd_device *rbd_dev;
 
@@ -5575,9 +5574,6 @@ static struct rbd_device *__rbd_dev_create(struct rbd_client *rbdc,
 	rbd_dev->dev.parent = &rbd_root_dev;
 	device_initialize(&rbd_dev->dev);
 
-	rbd_dev->rbd_client = rbdc;
-	rbd_dev->spec = spec;
-
 	return rbd_dev;
 }
 
@@ -5590,12 +5586,10 @@ static struct rbd_device *rbd_dev_create(struct rbd_client *rbdc,
 {
 	struct rbd_device *rbd_dev;
 
-	rbd_dev = __rbd_dev_create(rbdc, spec);
+	rbd_dev = __rbd_dev_create(spec);
 	if (!rbd_dev)
 		return NULL;
 
-	rbd_dev->opts = opts;
-
 	/* get an id and fill in device name */
 	rbd_dev->dev_id = ida_simple_get(&rbd_dev_id_ida, 0,
 					 minor_to_rbd_dev_id(1 << MINORBITS),
@@ -5612,6 +5606,10 @@ static struct rbd_device *rbd_dev_create(struct rbd_client *rbdc,
 	/* we have a ref from do_rbd_add() */
 	__module_get(THIS_MODULE);
 
+	rbd_dev->rbd_client = rbdc;
+	rbd_dev->spec = spec;
+	rbd_dev->opts = opts;
+
 	dout("%s rbd_dev %p dev_id %d\n", __func__, rbd_dev, rbd_dev->dev_id);
 	return rbd_dev;
 
@@ -6827,7 +6825,7 @@ static int rbd_dev_probe_parent(struct rbd_device *rbd_dev, int depth)
 		goto out_err;
 	}
 
-	parent = __rbd_dev_create(rbd_dev->rbd_client, rbd_dev->parent_spec);
+	parent = __rbd_dev_create(rbd_dev->parent_spec);
 	if (!parent) {
 		ret = -ENOMEM;
 		goto out_err;
@@ -6837,8 +6835,8 @@ static int rbd_dev_probe_parent(struct rbd_device *rbd_dev, int depth)
 	 * Images related by parent/child relationships always share
 	 * rbd_client and spec/parent_spec, so bump their refcounts.
 	 */
-	__rbd_get_client(rbd_dev->rbd_client);
-	rbd_spec_get(rbd_dev->parent_spec);
+	parent->rbd_client = __rbd_get_client(rbd_dev->rbd_client);
+	parent->spec = rbd_spec_get(rbd_dev->parent_spec);
 
 	ret = rbd_dev_image_probe(parent, depth);
 	if (ret < 0)
drivers/char/ipmi/ipmi_ssif.c +23 -23

154 lines not on this page · raw message

drivers/clk/clk.c +11 -0
index c002f83adf57..1c73668b4375 100644
@@ -251,6 +251,17 @@ static bool clk_core_is_enabled(struct clk_core *core)
 		}
 	}
 
+	/*
+	 * This could be called with the enable lock held, or from atomic
+	 * context. If the parent isn't enabled already, we can't do
+	 * anything here. We can also assume this clock isn't enabled.
+	 */
+	if ((core->flags & CLK_OPS_PARENT_ENABLE) && core->parent)
+		if (!clk_core_is_enabled(core->parent)) {
+			ret = false;
+			goto done;
+		}
+
 	ret = core->ops->is_enabled(core->hw);
 done:
 	if (core->rpm_enabled)
drivers/clk/qcom/gcc-qcs404.c +4 -20
index bd32212f37e6..5982253b0330 100644
@@ -25,11 +25,9 @@ enum {
 	P_CORE_BI_PLL_TEST_SE,
 	P_DSI0_PHY_PLL_OUT_BYTECLK,
 	P_DSI0_PHY_PLL_OUT_DSICLK,
-	P_GPLL0_OUT_AUX,
 	P_GPLL0_OUT_MAIN,
 	P_GPLL1_OUT_MAIN,
 	P_GPLL3_OUT_MAIN,
-	P_GPLL4_OUT_AUX,
 	P_GPLL4_OUT_MAIN,
 	P_GPLL6_OUT_AUX,
 	P_HDMI_PHY_PLL_CLK,
@@ -109,28 +107,24 @@ static const char * const gcc_parent_names_4[] = {
 static const struct parent_map gcc_parent_map_5[] = {
 	{ P_XO, 0 },
 	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 1 },
-	{ P_GPLL0_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_5[] = {
 	"cxo",
-	"dsi0pll_byteclk_src",
-	"gpll0_out_aux",
+	"dsi0pllbyte",
 	"core_bi_pll_test_se",
 };
 
 static const struct parent_map gcc_parent_map_6[] = {
 	{ P_XO, 0 },
 	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 2 },
-	{ P_GPLL0_OUT_AUX, 3 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_6[] = {
 	"cxo",
-	"dsi0_phy_pll_out_byteclk",
-	"gpll0_out_aux",
+	"dsi0pllbyte",
 	"core_bi_pll_test_se",
 };
 
@@ -139,7 +133,6 @@ static const struct parent_map gcc_parent_map_7[] = {
 	{ P_GPLL0_OUT_MAIN, 1 },
 	{ P_GPLL3_OUT_MAIN, 2 },
 	{ P_GPLL6_OUT_AUX, 3 },
-	{ P_GPLL4_OUT_AUX, 4 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
@@ -148,7 +141,6 @@ static const char * const gcc_parent_names_7[] = {
 	"gpll0_out_main",
 	"gpll3_out_main",
 	"gpll6_out_aux",
-	"gpll4_out_aux",
 	"core_bi_pll_test_se",
 };
 
@@ -175,7 +167,7 @@ static const struct parent_map gcc_parent_map_9[] = {
 static const char * const gcc_parent_names_9[] = {
 	"cxo",
 	"gpll0_out_main",
-	"dsi0_phy_pll_out_dsiclk",
+	"dsi0pll",
 	"gpll6_out_aux",
 	"core_bi_pll_test_se",
 };
@@ -207,14 +199,12 @@ static const char * const gcc_parent_names_11[] = {
 static const struct parent_map gcc_parent_map_12[] = {
 	{ P_XO, 0 },
 	{ P_DSI0_PHY_PLL_OUT_DSICLK, 1 },
-	{ P_GPLL0_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_12[] = {
 	"cxo",
-	"dsi0pll_pclk_src",
-	"gpll0_out_aux",
+	"dsi0pll",
 	"core_bi_pll_test_se",
 };
 
@@ -237,40 +227,34 @@ static const char * const gcc_parent_names_13[] = {
 static const struct parent_map gcc_parent_map_14[] = {
 	{ P_XO, 0 },
 	{ P_GPLL0_OUT_MAIN, 1 },
-	{ P_GPLL4_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_14[] = {
 	"cxo",
 	"gpll0_out_main",
-	"gpll4_out_aux",
 	"core_bi_pll_test_se",
 };
 
 static const struct parent_map gcc_parent_map_15[] = {
 	{ P_XO, 0 },
-	{ P_GPLL0_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_15[] = {
 	"cxo",
-	"gpll0_out_aux",
 	"core_bi_pll_test_se",
 };
 
 static const struct parent_map gcc_parent_map_16[] = {
 	{ P_XO, 0 },
 	{ P_GPLL0_OUT_MAIN, 1 },
-	{ P_GPLL0_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_16[] = {
 	"cxo",
 	"gpll0_out_main",
-	"gpll0_out_aux",
 	"core_bi_pll_test_se",
 };
 
drivers/clk/qcom/gpucc-sdm845.c +1 -6
index e40efba1bf7d..7a116f62168b 100644
@@ -22,8 +22,6 @@
 #define CX_GMU_CBCR_SLEEP_SHIFT		4
 #define CX_GMU_CBCR_WAKE_MASK		0xf
 #define CX_GMU_CBCR_WAKE_SHIFT		8
-#define CLK_DIS_WAIT_SHIFT		12
-#define CLK_DIS_WAIT_MASK		(0xf << CLK_DIS_WAIT_SHIFT)
 
 enum {
 	P_BI_TCXO,
@@ -124,6 +122,7 @@ static struct clk_branch gpu_cc_cxo_clk = {
 static struct gdsc gpu_cx_gdsc = {
 	.gdscr = 0x106c,
 	.gds_hw_ctrl = 0x1540,
+	.clk_dis_wait_val = 0x8,
 	.pd = {
 		.name = "gpu_cx_gdsc",
 	},
@@ -221,10 +220,6 @@ static int gpu_cc_sdm845_probe(struct platform_device *pdev)
 	value = 0xf << CX_GMU_CBCR_WAKE_SHIFT | 0xf << CX_GMU_CBCR_SLEEP_SHIFT;
 	regmap_update_bits(regmap, 0x1098, mask, value);
 
-	/* Configure clk_dis_wait for gpu_cx_gdsc */
-	regmap_update_bits(regmap, 0x106c, CLK_DIS_WAIT_MASK,
-						8 << CLK_DIS_WAIT_SHIFT);
-
 	return qcom_cc_really_probe(pdev, &gpu_cc_sdm845_desc, regmap);
 }
 
drivers/clk/renesas/r7s9210-cpg-mssr.c +1 -1
index cf65d4e0e116..2772eb0b8ba7 100644
@@ -213,7 +213,7 @@ const struct cpg_mssr_info r7s9210_cpg_mssr_info __initconst = {
 	.cpg_clk_register = rza2_cpg_clk_register,
 
 	/* RZ/A2 has Standby Control Registers */
-	.stbyctrl = true,
+	.reg_layout = CLK_REG_LAYOUT_RZ_A,
 };
 
 static void __init r7s9210_cpg_mssr_early_init(struct device_node *np)
drivers/clk/renesas/renesas-cpg-mssr.c +15 -14
index 6f9612c169af..d0ccb52b0270 100644
@@ -111,12 +111,12 @@ static const u16 srcr[] = {
  * @rcdev: Optional reset controller entity
  * @dev: CPG/MSSR device
  * @base: CPG/MSSR register block base address
+ * @reg_layout: CPG/MSSR register layout
  * @rmw_lock: protects RMW register accesses
  * @np: Device node in DT for this CPG/MSSR module
  * @num_core_clks: Number of Core Clocks in clks[]
  * @num_mod_clks: Number of Module Clocks in clks[]
  * @last_dt_core_clk: ID of the last Core Clock exported to DT
- * @stbyctrl: This device has Standby Control Registers
  * @notifiers: Notifier chain to save/restore clock state for system resume
  * @smstpcr_saved[].mask: Mask of SMSTPCR[] bits under our control
  * @smstpcr_saved[].val: Saved values of SMSTPCR[]
@@ -128,13 +128,13 @@ struct cpg_mssr_priv {
 #endif
 	struct device *dev;
 	void __iomem *base;
+	enum clk_reg_layout reg_layout;
 	spinlock_t rmw_lock;
 	struct device_node *np;
 
 	unsigned int num_core_clks;
 	unsigned int num_mod_clks;
 	unsigned int last_dt_core_clk;
-	bool stbyctrl;
 
 	struct raw_notifier_head notifiers;
 	struct {
@@ -177,7 +177,7 @@ static int cpg_mstp_clock_endisable(struct clk_hw *hw, bool enable)
 		enable ? "ON" : "OFF");
 	spin_lock_irqsave(&priv->rmw_lock, flags);
 
-	if (priv->stbyctrl) {
+	if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A) {
 		value = readb(priv->base + STBCR(reg));
 		if (enable)
 			value &= ~bitmask;
@@ -199,7 +199,7 @@ static int cpg_mstp_clock_endisable(struct clk_hw *hw, bool enable)
 
 	spin_unlock_irqrestore(&priv->rmw_lock, flags);
 
-	if (!enable || priv->stbyctrl)
+	if (!enable || priv->reg_layout == CLK_REG_LAYOUT_RZ_A)
 		return 0;
 
 	for (i = 1000; i > 0; --i) {
@@ -233,7 +233,7 @@ static int cpg_mstp_clock_is_enabled(struct clk_hw *hw)
 	struct cpg_mssr_priv *priv = clock->priv;
 	u32 value;
 
-	if (priv->stbyctrl)
+	if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A)
 		value = readb(priv->base + STBCR(clock->index / 32));
 	else
 		value = readl(priv->base + MSTPSR(clock->index / 32));
@@ -272,7 +272,7 @@ struct clk *cpg_mssr_clk_src_twocell_get(struct of_phandle_args *clkspec,
 
 	case CPG_MOD:
 		type = "module";
-		if (priv->stbyctrl) {
+		if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A) {
 			idx = MOD_CLK_PACK_10(clkidx);
 			range_check = 7 - (clkidx % 10);
 		} else {
@@ -800,7 +800,8 @@ static int cpg_mssr_suspend_noirq(struct device *dev)
 	/* Save module registers with bits under our control */
 	for (reg = 0; reg < ARRAY_SIZE(priv->smstpcr_saved); reg++) {
 		if (priv->smstpcr_saved[reg].mask)
-			priv->smstpcr_saved[reg].val = priv->stbyctrl ?
+			priv->smstpcr_saved[reg].val =
+				priv->reg_layout == CLK_REG_LAYOUT_RZ_A ?
 				readb(priv->base + STBCR(reg)) :
 				readl(priv->base + SMSTPCR(reg));
 	}
@@ -830,7 +831,7 @@ static int cpg_mssr_resume_noirq(struct device *dev)
 		if (!mask)
 			continue;
 
-		if (priv->stbyctrl)
+		if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A)
 			oldval = readb(priv->base + STBCR(reg));
 		else
 			oldval = readl(priv->base + SMSTPCR(reg));
@@ -839,7 +840,7 @@ static int cpg_mssr_resume_noirq(struct device *dev)
 		if (newval == oldval)
 			continue;
 
-		if (priv->stbyctrl) {
+		if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A) {
 			writeb(newval, priv->base + STBCR(reg));
 			/* dummy read to ensure write has completed */
 			readb(priv->base + STBCR(reg));
@@ -861,8 +862,7 @@ static int cpg_mssr_resume_noirq(struct device *dev)
 		}
 
 		if (!i)
-			dev_warn(dev, "Failed to enable %s%u[0x%x]\n",
-				 priv->stbyctrl ? "STB" : "SMSTP", reg,
+			dev_warn(dev, "Failed to enable SMSTP%u[0x%x]\n", reg,
 				 oldval & mask);
 	}
 
@@ -907,12 +907,11 @@ static int __init cpg_mssr_common_init(struct device *dev,
 		goto out_err;
 	}
 
-	cpg_mssr_priv = priv;
 	priv->num_core_clks = info->num_total_core_clks;
 	priv->num_mod_clks = info->num_hw_mod_clks;
 	priv->last_dt_core_clk = info->last_dt_core_clk;
 	RAW_INIT_NOTIFIER_HEAD(&priv->notifiers);
-	priv->stbyctrl = info->stbyctrl;
+	priv->reg_layout = info->reg_layout;
 
 	for (i = 0; i < nclks; i++)
 		priv->clks[i] = ERR_PTR(-ENOENT);
@@ -921,6 +920,8 @@ static int __init cpg_mssr_common_init(struct device *dev,
 	if (error)
 		goto out_err;
 
+	cpg_mssr_priv = priv;
+
 	return 0;
 
 out_err:
@@ -990,7 +991,7 @@ static int __init cpg_mssr_probe(struct platform_device *pdev)
 		return error;
 
 	/* Reset Controller not supported for Standby Control SoCs */
-	if (info->stbyctrl)
+	if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A)
 		return 0;
 
 	error = cpg_mssr_reset_controller_register(priv);
drivers/clk/renesas/renesas-cpg-mssr.h +7 -5
index 4ddcdf3bfb95..f05521b5fa6e 100644
@@ -85,6 +85,11 @@ struct mssr_mod_clk {
 
 struct device_node;
 
+enum clk_reg_layout {
+	CLK_REG_LAYOUT_RCAR_GEN2_AND_GEN3 = 0,
+	CLK_REG_LAYOUT_RZ_A,
+};
+
     /**
      * SoC-specific CPG/MSSR Description
      *
@@ -105,6 +110,7 @@ struct device_node;
      * @crit_mod_clks: Array with Module Clock IDs of critical clocks that
      *                 should not be disabled without a knowledgeable driver
      * @num_crit_mod_clks: Number of entries in crit_mod_clks[]
+     * @reg_layout: CPG/MSSR register layout from enum clk_reg_layout
      *
      * @core_pm_clks: Array with IDs of Core Clocks that are suitable for Power
      *                Management, in addition to Module Clocks
@@ -112,10 +118,6 @@ struct device_node;
      *
      * @init: Optional callback to perform SoC-specific initialization
      * @cpg_clk_register: Optional callback to handle special Core Clock types
-     *
-     * @stbyctrl: This device has Standby Control Registers which are 8-bits
-     *            wide, no status registers (MSTPSR) and have different address
-     *            offsets.
      */
 
 struct cpg_mssr_info {
@@ -130,7 +132,7 @@ struct cpg_mssr_info {
 	unsigned int num_core_clks;
 	unsigned int last_dt_core_clk;
 	unsigned int num_total_core_clks;
-	bool stbyctrl;
+	enum clk_reg_layout reg_layout;
 
 	/* Module Clocks */
 	const struct mssr_mod_clk *mod_clks;
drivers/crypto/amcc/crypto4xx_core.c +4 -6
index 230e8902c727..b58f21dd3fed 100644
@@ -521,7 +521,6 @@ static void crypto4xx_cipher_done(struct crypto4xx_device *dev,
 {
 	struct skcipher_request *req;
 	struct scatterlist *dst;
-	dma_addr_t addr;
 
 	req = skcipher_request_cast(pd_uinfo->async_req);
 
@@ -530,8 +529,8 @@ static void crypto4xx_cipher_done(struct crypto4xx_device *dev,
 					  req->cryptlen, req->dst);
 	} else {
 		dst = pd_uinfo->dest_va;
-		addr = dma_map_page(dev->core_dev->device, sg_page(dst),
-				    dst->offset, dst->length, DMA_FROM_DEVICE);
+		dma_unmap_page(dev->core_dev->device, pd->dest, dst->length,
+			       DMA_FROM_DEVICE);
 	}
 
 	if (pd_uinfo->sa_va->sa_command_0.bf.save_iv == SA_SAVE_IV) {
@@ -556,10 +555,9 @@ static void crypto4xx_ahash_done(struct crypto4xx_device *dev,
 	struct ahash_request *ahash_req;
 
 	ahash_req = ahash_request_cast(pd_uinfo->async_req);
-	ctx  = crypto_tfm_ctx(ahash_req->base.tfm);
+	ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(ahash_req));
 
-	crypto4xx_copy_digest_to_dst(ahash_req->result, pd_uinfo,
-				     crypto_tfm_ctx(ahash_req->base.tfm));
+	crypto4xx_copy_digest_to_dst(ahash_req->result, pd_uinfo, ctx);
 	crypto4xx_ret_sg_desc(dev, pd_uinfo);
 
 	if (pd_uinfo->state & PD_ENTRY_BUSY)
drivers/crypto/ccp/ccp-dmaengine.c +17 -4
index b9299defb431..e416456b2b8a 100644
@@ -643,14 +643,26 @@ static void ccp_dma_release(struct ccp_device *ccp)
 		chan = ccp->ccp_dma_chan + i;
 		dma_chan = &chan->dma_chan;
 
-		if (dma_chan->client_count)
-			dma_release_channel(dma_chan);
-
 		tasklet_kill(&chan->cleanup_tasklet);
 		list_del_rcu(&dma_chan->device_node);
 	}
 }
 
+static void ccp_dma_release_channels(struct ccp_device *ccp)
+{
+	struct ccp_dma_chan *chan;
+	struct dma_chan *dma_chan;
+	unsigned int i;
+
+	for (i = 0; i < ccp->cmd_q_count; i++) {
+		chan = ccp->ccp_dma_chan + i;
+		dma_chan = &chan->dma_chan;
+
+		if (dma_chan->client_count)
+			dma_release_channel(dma_chan);
+	}
+}
+
 int ccp_dmaengine_register(struct ccp_device *ccp)
 {
 	struct ccp_dma_chan *chan;
@@ -771,8 +783,9 @@ void ccp_dmaengine_unregister(struct ccp_device *ccp)
 	if (!dmaengine)
 		return;
 
-	ccp_dma_release(ccp);
+	ccp_dma_release_channels(ccp);
 	dma_async_device_unregister(dma_dev);
+	ccp_dma_release(ccp);
 
 	kmem_cache_destroy(ccp->dma_desc_cache);
 	kmem_cache_destroy(ccp->dma_cmd_cache);
drivers/firmware/google/framebuffer-coreboot.c +1 -3
index 916f26adc595..922c079d13c8 100644
@@ -43,9 +43,7 @@ static int framebuffer_probe(struct coreboot_device *dev)
 		    fb->green_mask_pos     == formats[i].green.offset &&
 		    fb->green_mask_size    == formats[i].green.length &&
 		    fb->blue_mask_pos      == formats[i].blue.offset &&
-		    fb->blue_mask_size     == formats[i].blue.length &&
-		    fb->reserved_mask_pos  == formats[i].transp.offset &&
-		    fb->reserved_mask_size == formats[i].transp.length)
+		    fb->blue_mask_size     == formats[i].blue.length)
 			pdata.format = formats[i].name;
 	}
 	if (!pdata.format)
drivers/gpio/gpio-vf610.c +1 -1
index 1ae612c796ee..396a687e020f 100644
@@ -304,7 +304,7 @@ static int vf610_gpio_probe(struct platform_device *pdev)
 	gc = &port->gc;
 	gc->of_node = np;
 	gc->parent = dev;
-	gc->label = "vf610-gpio";
+	gc->label = dev_name(dev);
 	gc->ngpio = VF610_GPIO_PER_PORT;
 	gc->base = of_alias_get_id(np, "gpio") * VF610_GPIO_PER_PORT;
 
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +4 -2
index 9fd711005c1f..1e7083bc8a52 100644
@@ -1206,12 +1206,14 @@ static int dm_resume(void *handle)
 	list_for_each_entry(connector, &ddev->mode_config.connector_list, head) {
 		aconnector = to_amdgpu_dm_connector(connector);
 
+		if (!aconnector->dc_link)
+			continue;
+
 		/*
 		 * this is the case when traversing through already created
 		 * MST connectors, should be skipped
 		 */
-		if (aconnector->dc_link &&
-		    aconnector->dc_link->type == dc_connection_mst_branch)
+		if (aconnector->dc_link->type == dc_connection_mst_branch)
 			continue;
 
 		mutex_lock(&aconnector->hpd_lock);
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +5 -1
index b72f6f541d4e..14d578fce09f 100644
@@ -426,7 +426,11 @@ static int __init stdpxxxx_ge_b850v3_init(void)
 	if (ret)
 		return ret;
 
-	return i2c_add_driver(&stdp2690_ge_b850v3_fw_driver);
+	ret = i2c_add_driver(&stdp2690_ge_b850v3_fw_driver);
+	if (ret)
+		i2c_del_driver(&stdp4028_ge_b850v3_fw_driver);
+
+	return ret;
 }
 module_init(stdpxxxx_ge_b850v3_init);
 
drivers/gpu/drm/drm_atomic_helper.c +20 -9
index 5e906ea6df67..62b77f3a950b 100644
@@ -445,8 +445,9 @@ mode_fixup(struct drm_atomic_state *state)
 		encoder = new_conn_state->best_encoder;
 		funcs = encoder->helper_private;
 
-		ret = drm_bridge_mode_fixup(encoder->bridge, &new_crtc_state->mode,
-				&new_crtc_state->adjusted_mode);
+		ret = drm_bridge_chain_mode_fixup(encoder->bridge,
+					&new_crtc_state->mode,
+					&new_crtc_state->adjusted_mode);
 		if (!ret) {
 			DRM_DEBUG_ATOMIC("Bridge fixup failed\n");
 			return -EINVAL;
@@ -511,7 +512,7 @@ static enum drm_mode_status mode_valid_path(struct drm_connector *connector,
 		return ret;
 	}
 
-	ret = drm_bridge_mode_valid(encoder->bridge, mode);
+	ret = drm_bridge_chain_mode_valid(encoder->bridge, mode);
 	if (ret != MODE_OK) {
 		DRM_DEBUG_ATOMIC("[BRIDGE] mode_valid() failed\n");
 		return ret;
@@ -588,6 +589,7 @@ mode_valid(struct drm_atomic_state *state)
  * &drm_crtc_state.connectors_changed is set when a connector is added or
  * removed from the crtc.  &drm_crtc_state.active_changed is set when
  * &drm_crtc_state.active changes, which is used for DPMS.
+ * &drm_crtc_state.no_vblank is set from the result of drm_dev_has_vblank().
  * See also: drm_atomic_crtc_needs_modeset()
  *
  * IMPORTANT:
@@ -654,6 +656,11 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
 
 			return -EINVAL;
 		}
+
+		if (drm_dev_has_vblank(dev))
+			new_crtc_state->no_vblank = false;
+		else
+			new_crtc_state->no_vblank = true;
 	}
 
 	ret = handle_conflicting_encoders(state, false);
@@ -1030,7 +1037,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
 		 * Each encoder has at most one connector (since we always steal
 		 * it away), so we won't call disable hooks twice.
 		 */
-		drm_atomic_bridge_disable(encoder->bridge, old_state);
+		drm_atomic_bridge_chain_disable(encoder->bridge, old_state);
 
 		/* Right function depends upon target state. */
 		if (funcs) {
@@ -1044,7 +1051,8 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
 				funcs->dpms(encoder, DRM_MODE_DPMS_OFF);
 		}
 
-		drm_atomic_bridge_post_disable(encoder->bridge, old_state);
+		drm_atomic_bridge_chain_post_disable(encoder->bridge,
+						     old_state);
 	}
 
 	for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
@@ -1225,7 +1233,8 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
 			funcs->mode_set(encoder, mode, adjusted_mode);
 		}
 
-		drm_bridge_mode_set(encoder->bridge, mode, adjusted_mode);
+		drm_bridge_chain_mode_set(encoder->bridge, mode,
+					  adjusted_mode);
 	}
 }
 
@@ -1342,7 +1351,7 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
 		 * Each encoder has at most one connector (since we always steal
 		 * it away), so we won't call enable hooks twice.
 		 */
-		drm_atomic_bridge_pre_enable(encoder->bridge, old_state);
+		drm_atomic_bridge_chain_pre_enable(encoder->bridge, old_state);
 
 		if (funcs) {
 			if (funcs->atomic_enable)
@@ -1353,7 +1362,7 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
 				funcs->commit(encoder);
 		}
 
-		drm_atomic_bridge_enable(encoder->bridge, old_state);
+		drm_atomic_bridge_chain_enable(encoder->bridge, old_state);
 	}
 
 	drm_atomic_helper_commit_writebacks(dev, old_state);
@@ -2202,7 +2211,9 @@ EXPORT_SYMBOL(drm_atomic_helper_wait_for_dependencies);
  * when a job is queued, and any change to the pipeline that does not touch the
  * connector is leading to timeouts when calling
  * drm_atomic_helper_wait_for_vblanks() or
- * drm_atomic_helper_wait_for_flip_done().
+ * drm_atomic_helper_wait_for_flip_done(). In addition to writeback
+ * connectors, this function can also fake VBLANK events for CRTCs without
+ * VBLANK interrupt.
  *
  * This is part of the atomic helper support for nonblocking commits, see
  * drm_atomic_helper_setup_commit() for an overview.
drivers/gpu/drm/drm_bridge.c +64 -61

305 lines not on this page · raw message

drivers/gpu/drm/drm_encoder.c +1 -1
index 7fb47b7b8b44..80ce9e1040de 100644
@@ -170,7 +170,7 @@ void drm_encoder_cleanup(struct drm_encoder *encoder)
 		struct drm_bridge *next;
 
 		while (bridge) {
-			next = bridge->next;
+			next = drm_bridge_get_next_bridge(bridge);
 			drm_bridge_detach(bridge);
 			bridge = next;
 		}
drivers/gpu/drm/drm_fourcc.c +4 -0
index c630064ccf41..d88a312962b3 100644
@@ -178,6 +178,10 @@ const struct drm_format_info *__drm_format_info(u32 format)
 		{ .format = DRM_FORMAT_BGRA5551,	.depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
 		{ .format = DRM_FORMAT_RGB565,		.depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
 		{ .format = DRM_FORMAT_BGR565,		.depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
+#ifdef __BIG_ENDIAN
+		{ .format = DRM_FORMAT_XRGB1555 | DRM_FORMAT_BIG_ENDIAN, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
+		{ .format = DRM_FORMAT_RGB565 | DRM_FORMAT_BIG_ENDIAN, .depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
+#endif
 		{ .format = DRM_FORMAT_RGB888,		.depth = 24, .num_planes = 1, .cpp = { 3, 0, 0 }, .hsub = 1, .vsub = 1 },
 		{ .format = DRM_FORMAT_BGR888,		.depth = 24, .num_planes = 1, .cpp = { 3, 0, 0 }, .hsub = 1, .vsub = 1 },
 		{ .format = DRM_FORMAT_XRGB8888,	.depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
drivers/gpu/drm/drm_mipi_dsi.c +52 -0

38 lines not on this page · raw message

drivers/gpu/drm/drm_panel_orientation_quirks.c +6 -0
index ce739ba45c55..8768073794fb 100644

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

drivers/gpu/drm/drm_probe_helper.c +1 -1
index ef2c468205a2..d45f43feaf86 100644

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

drivers/gpu/drm/drm_vblank.c +28 -0
index 552ec82e9bc5..c98ed8146242 100644

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

drivers/gpu/drm/exynos/exynos_dp.c +0 -1
index e0cfae744afc..01c5fbf9083a 100644

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

drivers/gpu/drm/exynos/exynos_drm_dsi.c +4 -4
index b83acd696774..babf3db82ce3 100644

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

drivers/gpu/drm/i915/display/intel_quirks.c +2 -0
index d79314992ada..59f02f39e952 100644

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

drivers/gpu/drm/mediatek/mtk_drm_drv.c +1 -0
index f98bb2e26372..5569454ad9e4 100644

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

drivers/gpu/drm/mediatek/mtk_drm_gem.c +3 -5
index ca672f1d140d..2fa432287d69 100644

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

drivers/gpu/drm/mediatek/mtk_hdmi.c +5 -3
index 6b22fd63c3f5..74a54a9e3533 100644

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

drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +6 -1
index 4aed5e9a84a4..2e28db60f4d2 100644

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

drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c +4 -1
index 03d60eb09257..cc60842b47e9 100644

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

drivers/gpu/drm/msm/dsi/dsi_host.c +3 -0
index 743142e15b4c..c59764f156f9 100644

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

drivers/gpu/drm/msm/hdmi/hdmi.c +4 -0
index 74759bcc68ff..74b806b3e65f 100644

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

drivers/gpu/drm/msm/msm_fence.c +1 -1
index cd59a5918038..50a25c119f4d 100644

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

drivers/gpu/drm/mxsfb/Kconfig +1 -0
index 33916b7b2c50..e8cb02803d9b 100644

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

drivers/gpu/drm/omapdrm/dss/dsi.c +16 -10
index b30fcaa2d0f5..993d48fb8064 100644

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

drivers/gpu/drm/omapdrm/omap_drv.c +2 -2
index 2983c003698e..a4645b78f737 100644

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

drivers/gpu/drm/omapdrm/omap_encoder.c +2 -1
index 6fe14111cd95..b626b543a992 100644

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

drivers/gpu/drm/radeon/atombios_encoders.c +3 -2
index 92ffed5c1d69..857fdf7b314e 100644

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

drivers/gpu/drm/radeon/radeon_device.c +1 -0
index e892582e847b..0d0ae89a8568 100644

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

drivers/gpu/drm/vc4/vc4_dpi.c +38 -28

66 lines not on this page · raw message

drivers/gpu/drm/vc4/vc4_dsi.c +4 -4
index e249ab378700..67bfbffdb65c 100644

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

drivers/gpu/host1x/hw/syncpt_hw.c +0 -3
index dd39d67ccec3..8cf35b2eff3d 100644

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

drivers/gpu/ipu-v3/ipu-common.c +1 -0
index b3dae9ec1a38..528812bf84da 100644

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

drivers/hid/hid-asus.c +125 -11

136 lines not on this page · raw message

drivers/hid/hid-bigbenff.c +63 -12

75 lines not on this page · raw message

drivers/hid/hid-debug.c +1 -0
index 419d8dec7e49..0066eab60576 100644

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

drivers/hid/hid-ids.h +1 -0
index 1c034c397e3e..b883423a89c5 100644

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

drivers/hid/hid-input.c +8 -0
index d1ba6fafe960..004aa3cdeacc 100644

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

drivers/hwmon/coretemp.c +58 -70

128 lines not on this page · raw message

drivers/hwmon/ltc2945.c +2 -0
index 2818276ed3d6..a1dd1ef40b56 100644

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

drivers/hwmon/mlxreg-fan.c +6 -0
index bd8f5a3aaad9..052c897a635d 100644

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

drivers/iio/accel/mma9551_core.c +8 -2
index 666e7a04a7d7..9bb5c2fea08c 100644

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

drivers/input/keyboard/omap-keypad.c +1 -1
index 5fe7a5633e33..dbe836c7ff47 100644

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

drivers/input/serio/hil_mlc.c +1 -1
index 4c039e4125d9..d36e89d6fc54 100644

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

drivers/input/touchscreen/ads7846.c +4 -9
index d247d0ae82d2..0506115211dd 100644

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

drivers/irqchip/irq-alpine-msi.c +1 -0
index ede02dc2bcd0..1819bb1d2723 100644

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

drivers/irqchip/irq-bcm7120-l2.c +2 -1
index 586df3587be0..d308bbe6f528 100644

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

drivers/irqchip/irq-brcmstb-l2.c +5 -1
index 0298ede67e51..f803ecb6a0fa 100644

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

drivers/irqchip/irq-mvebu-gicp.c +1 -0
index 3be5c5dba1da..5caec411059f 100644

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

drivers/irqchip/irq-ti-sci-intr.c +1 -0
index 59d51a20bbd8..7d0163d85fb9 100644

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

drivers/md/dm-cache-target.c +4 -0
index 10b2a4e10a46..08b5e44df324 100644

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

drivers/md/dm-flakey.c +18 -12
index 2900fbde89b3..bed263267323 100644

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

drivers/md/dm-thin.c +2 -0
index 4f161725dda0..999447bde820 100644

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

drivers/md/dm.c +0 -1
index d4cebb38709b..b58ff1a0fda7 100644

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

drivers/media/i2c/ov5675.c +3 -1
index 1ae252378799..477f61b8559c 100644

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

drivers/media/i2c/ov7670.c +1 -1
index 154776d0069e..e47800cb6c0f 100644

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

drivers/media/i2c/ov772x.c +1 -2
index 2cc6a678069a..5033950a48ab 100644

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

drivers/media/pci/intel/ipu3/ipu3-cio2.c +3 -0
index 7808ec1052bf..3457f0f545c4 100644

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

drivers/media/platform/omap3isp/isp.c +9 -0
index dce6b3685e13..88d491a8e326 100644

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

drivers/media/rc/ene_ir.c +2 -1
index 82867a2a60b0..20cadff242cf 100644

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

drivers/media/usb/siano/smsusb.c +1 -0
index 9ba3a2ae36e5..1db232a1063b 100644

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

drivers/media/usb/uvc/uvc_ctrl.c +20 -10
index 36abe47997b0..e0d894c61f4b 100644

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

drivers/media/usb/uvc/uvc_driver.c +37 -29

66 lines not on this page · raw message

drivers/media/usb/uvc/uvc_entity.c +1 -1
index ca3a9c2eec27..7c9895377118 100644

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

drivers/media/usb/uvc/uvc_status.c +39 -1
index 2bdb0ff203f8..73725051cc16 100644

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

drivers/media/usb/uvc/uvc_video.c +14 -1
index fe58723fc5ac..e676a9ef6f0d 100644

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

drivers/media/usb/uvc/uvcvideo.h +5 -1
index 5f137400bebd..9f5b9601eadc 100644

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

drivers/mfd/arizona-core.c +1 -1
index 3ff872c205ee..07d256e6875c 100644

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

drivers/mfd/pcf50633-adc.c +6 -1
index 5cd653e61512..191b1bc6141c 100644

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

drivers/misc/mei/bus-fixup.c +4 -4
index 0a2b99e1af45..27262e701f30 100644

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

drivers/mtd/nand/raw/sunxi_nand.c +1 -1
index 45c376fc571a..0f3bce3fb00b 100644

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

drivers/mtd/ubi/build.c +7 -0
index df521ff0b328..13f8292ceea5 100644

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

drivers/mtd/ubi/vmt.c +10 -8
index 6ea95ade4ca6..d79323e8ea29 100644

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

drivers/mtd/ubi/wl.c +22 -3
index 7def041bbe48..4f88433d4adc 100644

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

drivers/net/can/usb/esd_usb2.c +3 -1
index 73c5343e609b..c9ccce6c60b4 100644

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

drivers/net/ethernet/broadcom/genet/bcmgenet.c +8 -0
index e03e2bfcc6a1..1b725a021455 100644

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

drivers/net/ethernet/intel/ice/ice_main.c +8 -9
index ae1d30567225..209ae9687584 100644

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

drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +1 -1
index db9ecc3a8c67..fcf5fef7c195 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c +1 -0
index 23361a9ae4fa..6dc83e871cd7 100644

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

drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c +2 -1
index db76c92b75e2..7f7693b709d7 100644

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

drivers/net/tap.c +1 -1
index f870d08bb1f8..a522d1673fa8 100644

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

drivers/net/tun.c +1 -1
index 957e6051c535..5d94ac0250ec 100644

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

drivers/net/wan/farsync.c +2 -2
index a2527351f8a7..6ac6a649d4c2 100644

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

drivers/net/wireless/ath/ath10k/wmi.c +1 -3
index 796bd93c599b..4adbe3ab9c87 100644

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

drivers/net/wireless/ath/ath9k/hif_usb.c +36 -24

60 lines not on this page · raw message

drivers/net/wireless/ath/ath9k/htc.h +18 -14
index 81107100e368..232e93dfbc83 100644

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

drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +5 -5
index eeaf63de71bf..ee021738bef0 100644

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

drivers/net/wireless/ath/ath9k/htc_hst.c +3 -1
index ca05b07a45e6..fe62ff668f75 100644

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

drivers/net/wireless/ath/ath9k/wmi.c +1 -0
index e7a3127395be..deb22b8c2065 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c +5 -2
index dec25e415619..e7c97dfd6928 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +1 -0
index 5b7c1b99273d..4907a667f963 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c +4 -1
index c2705d7a4247..fd54acb85924 100644

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

drivers/net/wireless/intel/ipw2x00/ipw2100.c +59 -62

121 lines not on this page · raw message

drivers/net/wireless/intel/ipw2x00/ipw2200.c +37 -30

67 lines not on this page · raw message

drivers/net/wireless/intel/iwlegacy/3945-mac.c +14 -10
index e2e9c3e8fff5..a1bd61d5e024 100644

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

drivers/net/wireless/intel/iwlegacy/4965-mac.c +10 -2
index 5fe17039a337..feeb57cadc1c 100644

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

drivers/net/wireless/intel/iwlegacy/common.c +2 -6
index 1107b96a8a88..7cfd80d40a65 100644

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

drivers/net/wireless/intersil/orinoco/hw.c +2 -0
index 61af5a28f269..af49aa421e47 100644

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

drivers/net/wireless/marvell/libertas/cmdresp.c +1 -1
index b73d08381398..5908f07d62ed 100644

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

drivers/net/wireless/marvell/libertas/if_usb.c +1 -1
index 32fdc4150b60..2240b4db8c03 100644

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

drivers/net/wireless/marvell/libertas/main.c +2 -1
index 2233b59cdf44..ff0b3a0e9dcd 100644

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

drivers/net/wireless/marvell/libertas_tf/if_usb.c +1 -1
index b30bcb28503a..f47db95299f3 100644

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

drivers/net/wireless/marvell/mwifiex/11n.c +3 -3
index acbef9f1a83b..b397a7e85e6b 100644

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

drivers/net/wireless/mediatek/mt76/dma.c +7 -6
index d3efcbd48ee1..50a92aaa221f 100644

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

drivers/net/wireless/mediatek/mt76/mt76x02_beacon.c +1 -4
index 92305bd31aa1..4209209ac940 100644

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

drivers/net/wireless/mediatek/mt7601u/dma.c +2 -1
index 6f2172be7b66..072888072b0d 100644

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

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c +5 -0
index 02ca80501c3a..edd2960c109a 100644

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

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +1 -10
index 0bc747489c55..bdccc84278d8 100644

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

drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c +40 -51

91 lines not on this page · raw message

drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.c +2 -2
index ed72a2aeb6c8..fcaaf664cbec 100644

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

drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.h +2 -2
index 540159c25078..76c62b7c0fb2 100644

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

drivers/net/wireless/rsi/rsi_91x_coex.c +1 -0
index c8ba148f8c6c..acf4d8cb4b47 100644

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

drivers/net/wireless/st/cw1200/scan.c +1 -2
index c46b044b7f7b..988581cc134b 100644

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

drivers/net/wireless/wl3501_cs.c +1 -1
index 122d36439319..8638c7c72bc3 100644

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

drivers/nfc/st-nci/se.c +6 -0
index 0cd70cd680dc..17793f6888e1 100644

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

drivers/nfc/st21nfca/se.c +6 -0
index d41636504246..6a1d3b2752fb 100644

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

drivers/opp/debugfs.c +1 -1
index 609665e339b6..c7647410316e 100644

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

drivers/pci/pci.c +1 -1
index b7ca261f5e75..365b9ed6d815 100644

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

drivers/pci/pci.h +13 -30

43 lines not on this page · raw message

drivers/pci/quirks.c +23 -0
index 8b98b7f3eb24..449d4ed611a6 100644

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

drivers/phy/rockchip/phy-rockchip-typec.c +1 -2
index 24563160197f..ba805f1d4f6a 100644

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

drivers/pinctrl/pinctrl-at91-pio4.c +2 -2
index d6de4d360cd4..4ee3fcc6c91f 100644

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

drivers/pinctrl/pinctrl-at91.c +1 -1
index d6e7e9f0ddec..39a55fd85b19 100644

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

drivers/pinctrl/stm32/pinctrl-stm32.c +1 -0
index e8149ff1d401..10595b43360b 100644

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

drivers/powercap/powercap_sys.c +9 -5
index 3f0b8e2ef3d4..7a3109a53881 100644

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

drivers/pwm/pwm-sifive.c +12 -4
index 538297ef8255..16c70147ec40 100644

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

drivers/pwm/pwm-stm32-lp.c +1 -1
index 05bb1f95a773..20657c649c65 100644

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

drivers/regulator/max77802-regulator.c +24 -10
index 7b8ec8c0bd15..660e179a82a2 100644

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

drivers/regulator/s5m8767.c +5 -1
index 1e9f03a2ea1c..7ff480810cfa 100644

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

drivers/remoteproc/qcom_q6v5_mss.c +53 -6

59 lines not on this page · raw message

drivers/rpmsg/qcom_glink_native.c +1 -0
index b240830a0aab..11ba44dc551e 100644

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

drivers/rtc/rtc-pm8xxx.c +10 -14
index f5a30e0f16c2..c22a79550071 100644

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

drivers/rtc/rtc-sun6i.c +12 -20
index c41bc8084d7c..5bef4148c623 100644

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

drivers/s390/block/dasd.c +2 -2
index e0570cd0e520..3362f235e891 100644

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

drivers/s390/block/dasd_eckd.c +47 -35

82 lines not on this page · raw message

drivers/s390/block/dasd_int.h +1 -0
index 9d9685c25253..e8a06d85d6f7 100644

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

drivers/s390/crypto/ap_bus.c +1 -1
index 5256e3ce84e5..fb1de363fb28 100644

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

drivers/scsi/aic94xx/aic94xx_task.c +3 -0
index f923ed019d4a..593b167ceefe 100644

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

drivers/scsi/ipr.c +21 -20

41 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_nvme.c +1 -18
index f0de7089e9ae..ab9dcbd2006c 100644

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

drivers/scsi/qla2xxx/qla_os.c +6 -3
index a5dbaa3491f8..636571d3e820 100644

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

drivers/scsi/scsi_lib.c +1 -6
index 98e363d0025b..490d6c72d8bd 100644

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

drivers/scsi/ses.c +47 -17

64 lines not on this page · raw message

drivers/spi/spi-bcm63xx-hsspi.c +16 -4
index 509476a2d79b..2ddace15c0f8 100644

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

drivers/spi/spi-synquacer.c +3 -4
index 1e10af6e10a9..5d6e4a59ce29 100644

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

drivers/staging/emxx_udc/emxx_udc.c +6 -1
index cc4c18c3fb36..7d18ad68be26 100644

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

drivers/staging/most/dim2/dim2.c +1 -1
index 64c979155a49..774abedad987 100644

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

drivers/staging/octeon/ethernet-tx.c +1 -1
index fe6e1ae73460..100b235b5688 100644

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

drivers/staging/wilc1000/wilc_netdev.c +4 -3
index 508acb8bb089..f34b1f0d3a80 100644

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

drivers/thermal/hisi_thermal.c +0 -4
index 2d26ae80e202..bee6d3524e52 100644

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

drivers/thermal/intel/Kconfig +2 -1
index 8025b21f43fa..b5427579fae5 100644

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

drivers/thermal/intel/intel_powerclamp.c +16 -4
index a717cce4aca4..d24f637a6a1e 100644

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

drivers/thermal/intel/intel_quark_dts_thermal.c +2 -10
index 5d33b350da1c..ad92d8f0add1 100644

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

drivers/thermal/intel/intel_soc_dts_iosf.c +1 -1
index 5716b62e0f73..410f13f6cba4 100644

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

drivers/tty/serial/fsl_lpuart.c +22 -2
index e84cef42f4b7..790e48262579 100644

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

drivers/tty/tty_io.c +5 -3
index ddfe873b5fcc..37c46c65a65f 100644

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

drivers/tty/vt/keyboard.c +1 -1
index 68643f61f6f9..0da9e0ab045b 100644

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

drivers/tty/vt/vc_screen.c +1 -3
index eb7208f07345..90de3331e4a5 100644

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

drivers/usb/gadget/udc/snps_udc_core.c +2 -4
index 3fcded31405a..e76f1a50b0fc 100644

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

drivers/usb/host/fhci-sched.c +1 -1
index 3235d5307403..5c423f240a1f 100644

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

drivers/usb/host/xhci-mvebu.c +1 -1
index f27d5c2c42f3..bb70dcc2f84f 100644

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

drivers/usb/storage/ene_ub6250.c +1 -1
index 9c984f3c7248..b076260a2ca4 100644

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

drivers/watchdog/at91sam9_wdt.c +3 -4
index 292b5a1ca831..fed7be246442 100644

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

drivers/watchdog/pcwd_usb.c +4 -2
index 6727f8ab2d18..ce94b6f35488 100644

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

drivers/watchdog/watchdog_dev.c +1 -1
index 8494846ccdc5..c670d13ab3d9 100644

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

fs/cifs/smbdirect.c +3 -1
index 2cea6c25d1b0..2f2a1d980cdf 100644

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

fs/coda/upcall.c +1 -1
index eb3b1898da46..610484c90260 100644

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

fs/ext4/xattr.c +24 -11
index 78df2d65998e..cf794afbd52f 100644

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

fs/f2fs/data.c +3 -3
index 773028921c48..03dffb126d5c 100644

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

fs/f2fs/inline.c +10 -18
index c6bd669f4b4e..a700df05cd18 100644

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

fs/f2fs/super.c +2 -9
index 3f2fe6034640..401bc0e7f6eb 100644

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

fs/f2fs/verity.c +3 -9
index 7944a08a3977..c4bd5a154252 100644

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

fs/gfs2/aops.c +1 -2
index b9fe975d7625..c21383fab33b 100644

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

fs/hfs/bnode.c +1 -0
index c0a73a6ffb28..397e02a56697 100644

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

fs/hfsplus/super.c +2 -2
index 2b9e5743105e..29a39afe2653 100644

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

fs/jfs/jfs_dmap.c +2 -1
index aa4643854f94..cc1fed285b2d 100644

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

fs/nfsd/nfs4layouts.c +2 -2
index e12409eca7cc..215362144aec 100644

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

fs/nfsd/nfs4proc.c +2 -0
index 452ed633a2c7..bd7846758947 100644

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

fs/ocfs2/move_extents.c +13 -21
index 758d9661ef1e..98e77ea957ff 100644

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

fs/ubifs/budget.c +4 -5
index c0b84e960b20..9cb05ef9b9dd 100644

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

fs/ubifs/dir.c +8 -1
index 83a173feb698..332c0b02a0ad 100644

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

fs/ubifs/file.c +9 -3
index 6069c63d833a..177cd4a751eb 100644

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

fs/ubifs/super.c +13 -4
index b37c6b1e3325..29526040ad77 100644

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

fs/ubifs/tnc.c +23 -1
index 33742ee3945b..6461f61449b1 100644

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

fs/ubifs/ubifs.h +5 -0
index b3b7e3576e98..85e84138649b 100644

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

fs/udf/file.c +12 -14
index 628941a6b79a..3b3729771915 100644

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

fs/udf/inode.c +37 -37

74 lines not on this page · raw message

fs/udf/super.c +1 -0
index 5193b94c0683..0f8b3cb35585 100644

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

fs/udf/udf_i.h +2 -1
index 4245d1f63258..0372d0d14f72 100644

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

fs/udf/udf_sb.h +2 -0
index 8eace7a633d3..d91cbfb08983 100644

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

include/drm/drm_bridge.h +47 -30

77 lines not on this page · raw message

include/drm/drm_crtc.h +27 -7
index 408b6f4e63c0..ebcce95f9da6 100644

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

include/drm/drm_mipi_dsi.h +4 -0
index 13cf2ae59f6c..3057511c88e6 100644

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

include/drm/drm_simple_kms_helper.h +5 -2
index 4d89cd0a60db..df615eb92b09 100644

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

include/drm/drm_vblank.h +1 -0
index 9fe4ba8bc622..2559fb921869 100644

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

include/linux/ima.h +4 -2
index 1c37f17f7203..5d52478c22c4 100644

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

include/linux/interrupt.h +10 -5
index 89fc59dab57d..30e92536c78c 100644

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

include/linux/kernel_stat.h +1 -1
index 7ee2bb43b251..f7f20cf1bd3b 100644

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

include/linux/kprobes.h +2 -0
index c7764d9e6f39..0be024dffa0c 100644

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

include/linux/pci_ids.h +2 -0
index 526d423740eb..a31aa3ac4219 100644

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

include/linux/uaccess.h +4 -0
index 38555435a64a..70941f49d66e 100644

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

include/net/sctp/structs.h +1 -0
index cb05e503c9cd..48cbf3352042 100644

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

include/net/sock.h +8 -1
index 976433438c6f..26dd07e47a7c 100644

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

include/sound/soc-dapm.h +3 -0
index 6e8a31225383..659400d40873 100644

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

include/uapi/linux/usb/video.h +30 -0
index bfdae12cdacf..c58854fb7d94 100644

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

include/uapi/linux/uvcvideo.h +1 -1
index f80f05b3c423..214092366193 100644

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

kernel/backtracetest.c +1 -1
index a2a97fa3071b..370217dd7e39 100644

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

kernel/debug/debug_core.c +1 -1
index 565987557ad8..f88611fadb19 100644

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

kernel/fail_function.c +1 -4
index b0b1ad93fa95..8f3795d8ac5b 100644

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

kernel/irq/irqdomain.c +20 -11
index 5e03cbee70d6..3d1b570a1dad 100644

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

kernel/irq/resend.c +1 -1
index 98c04ca5fa43..b7af39e36341 100644

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

kernel/kprobes.c +3 -3
index 3de56ca28017..aecf4342f67c 100644

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

kernel/rcu/tree_exp.h +2 -0
index 173e3ce60790..eca3df7f041c 100644

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

kernel/sched/deadline.c +2 -3
index d8052c2d87e4..ba3d7c223999 100644

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

kernel/sched/rt.c +6 -4
index c11d3d79d4c3..186e7d78ded5 100644

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

kernel/time/hrtimer.c +2 -0
index e1e8d5dab0c5..8e3c9228aec9 100644

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

kernel/time/posix-stubs.c +2 -0
index 67df65f887ac..8ddb35d9779c 100644

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

kernel/time/posix-timers.c +2 -0
index 97d4a9dcf339..efe3873021a3 100644

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

kernel/trace/ring_buffer.c +6 -1
index 11e8189dd8ae..58809fffc817 100644

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

lib/mpi/mpicoder.c +2 -1
index eead4b339466..4f73db248009 100644

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

mm/huge_memory.c +3 -0
index e50799d7002e..03b57323c53b 100644

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

mm/memcontrol.c +4 -0
index 62861daf3589..16beae167d8c 100644

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

net/9p/trans_rdma.c +12 -3
index b21c3c209815..c00e965c082b 100644

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

net/9p/trans_xen.c +31 -17

48 lines not on this page · raw message

net/atm/pppoatm.c +1 -1
index 45d8e1d5d033..579b66da1d95 100644

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

net/bluetooth/hci_sock.c +7 -4
index befab857a39b..a5205dc95e8f 100644

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

net/bluetooth/l2cap_core.c +0 -24
index 0e51ed3412ef..4f286c76a50d 100644

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

net/bluetooth/l2cap_sock.c +8 -0
index 08e9f332adad..0fa5ced767a2 100644

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

net/core/dev.c +3 -1
index 615cdaac3e72..1a4e20c4ba05 100644

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

net/core/sock.c +19 -3
index a2b12a5cf42b..7f6f1a0bf8a1 100644

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

net/ipv4/inet_connection_sock.c +1 -0
index 9ef69c975b15..04593893e0c6 100644

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

net/ipv4/inet_hashtables.c +1 -11
index 33292983b8cf..9d14b3289f00 100644

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

net/ipv4/tcp_minisocks.c +5 -2
index 324f43fadb37..e5dc08579cf5 100644

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

net/ipv6/route.c +6 -5
index badfe6939638..209d52ebbd19 100644

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

net/iucv/iucv.c +1 -1
index 9a2d023842fe..a4d1b5b7a154 100644

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

net/mac80211/sta_info.c +1 -1
index 7b2e8c890381..4d6890250337 100644

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

net/netfilter/nf_conntrack_netlink.c +4 -1
index bc6f0c8874f8..4747daf901e7 100644

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

net/nfc/netlink.c +4 -0
index b53d5eb86864..c4c57830e963 100644

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

net/rds/message.c +1 -1
index be6a0a073b12..75043742d243 100644

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

net/sched/Kconfig +0 -11
index 2985509147a2..2e4604cdaf23 100644

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

net/sched/Makefile +0 -1
index 415d1e1f237e..9e1f904d0c18 100644

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

net/sched/act_sample.c +9 -2
index 214f4efdd992..909a685b9162 100644

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

net/sched/cls_tcindex.c deleted +0 -730

730 lines not on this page · raw message

net/sctp/stream_sched_prio.c +21 -31

52 lines not on this page · raw message

net/tls/tls_sw.c +19 -7
index af3be9a29d6d..7614dec1e60c 100644

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

net/wireless/sme.c +26 -5
index 63f89687a018..89b81d4c1095 100644

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

security/integrity/ima/ima_main.c +5 -2
index ce9d594ddbcd..6a2377eee03d 100644

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

security/security.c +4 -3
index f633717311a3..460c3826f640 100644

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

sound/drivers/pcsp/pcsp_lib.c +1 -1
index 8f0f05bbc081..ce5bab7425d5 100644

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

sound/pci/hda/patch_ca0132.c +1 -1
index 3ef1084b6688..574c39120df8 100644

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

sound/pci/hda/patch_realtek.c +1 -0
index 75c1645dd5c1..13238cf7aa52 100644

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

sound/pci/ice1712/aureon.c +1 -1
index 4556ba76b791..71752618a7af 100644

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

sound/soc/fsl/fsl_sai.c +1 -0
index 027259695551..f8445231ad78 100644

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

sound/soc/kirkwood/kirkwood-dma.c +1 -1
index d2d5c25bf550..0215d187bdff 100644

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

sound/soc/soc-compress.c +1 -1
index da6e40aef7b6..1e37bb7436ec 100644

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

tools/iio/iio_utils.c +6 -17
index d66b18c54606..48360994c2a1 100644

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

tools/lib/bpf/nlattr.c +1 -1
index 1e69c0c8d413..e610becd03e8 100644

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

tools/perf/perf-completion.sh +8 -3
index fdf75d45efff..978249d7868c 100644

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

tools/perf/util/llvm-utils.c +24 -1
index e7c7e3232fc5..b275a1b297c3 100644

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

tools/testing/ktest/ktest.pl +21 -5
index 49dd029ec80b..698b99e25f98 100755

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

tools/testing/ktest/sample.conf +5 -0
index c3bc933d437b..a7b24fda22c1 100644

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

tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc +1 -1
index f261eeccfaf6..020fbdaa3fba 100644

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

tools/testing/selftests/net/fib_tests.sh +2 -0
index 6986086035d6..24d67fa66d03 100644

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

tools/testing/selftests/net/udpgso_bench_rx.c +2 -4
index 4058c7451e70..f35a924d4a30 100644

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

virt/kvm/coalesced_mmio.c +5 -3
index 8d606997c299..c94e97b351ee 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.