Skip to contentSkip to conversation

Linux 5.4.174

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jan 27, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.4.174 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/hw-vuln/spectre.rst                        |    2 
 Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml |    5 
 Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml     |    6 
 Documentation/driver-api/dmaengine/dmatest.rst                       |    7 
 Documentation/driver-api/firewire.rst                                |    4 
 Documentation/firmware-guide/acpi/dsd/data-node-references.rst       |   10 
 Makefile                                                             |    2 
 arch/arm/boot/compressed/efi-header.S                                |   22 
 arch/arm/boot/compressed/head.S                                      |    3 
 arch/arm/boot/dts/armada-38x.dtsi                                    |    4 
 arch/arm/boot/dts/gemini-nas4220b.dts                                |    2 
 arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c                   |    5 
 arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi                    |    3 
 arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts                    |   14 
 arch/arm64/boot/dts/nvidia/tegra186.dtsi                             |    2 
 arch/arm64/boot/dts/qcom/msm8916.dtsi                                |    4 
 arch/arm64/boot/dts/qcom/msm8996.dtsi                                |    3 
 arch/arm64/boot/dts/ti/k3-j721e.dtsi                                 |    6 
 arch/ia64/kernel/kprobes.c                                           |   78 ++
 arch/mips/bcm63xx/clk.c                                              |    6 
 arch/mips/cavium-octeon/octeon-platform.c                            |    2 
 arch/mips/cavium-octeon/octeon-usb.c                                 |    1 
 arch/mips/include/asm/octeon/cvmx-bootinfo.h                         |    4 
 arch/mips/lantiq/clk.c                                               |    6 
 arch/parisc/kernel/traps.c                                           |    2 
 arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi                        |    2 
 arch/powerpc/kernel/btext.c                                          |    4 
 arch/powerpc/kernel/prom_init.c                                      |    2 
 arch/powerpc/kernel/smp.c                                            |   32 
 arch/powerpc/kernel/watchdog.c                                       |   41 +
 arch/powerpc/kvm/book3s_hv_nested.c                                  |    2 
 arch/powerpc/platforms/cell/iommu.c                                  |    1 
 arch/powerpc/platforms/cell/pervasive.c                              |    1 
 arch/powerpc/platforms/embedded6xx/hlwd-pic.c                        |    1 
 arch/powerpc/platforms/powermac/low_i2c.c                            |    3 
 arch/powerpc/platforms/powernv/opal-lpc.c                            |    1 
 arch/s390/mm/pgalloc.c                                               |    4 
 arch/um/include/shared/registers.h                                   |    4 
 arch/um/os-Linux/registers.c                                         |    4 
 arch/um/os-Linux/start_up.c                                          |    2 
 arch/x86/include/asm/realmode.h                                      |    1 
 arch/x86/kernel/cpu/mce/core.c                                       |   31 
 arch/x86/kernel/cpu/mce/inject.c                                     |    2 
 arch/x86/kernel/early-quirks.c                                       |   10 
 arch/x86/kernel/reboot.c                                             |   12 
 arch/x86/realmode/init.c                                             |   26 
 arch/x86/um/syscalls_64.c                                            |    3 
 drivers/acpi/acpica/exfield.c                                        |    7 
 drivers/acpi/acpica/exoparg1.c                                       |    3 
 drivers/acpi/acpica/hwesleep.c                                       |    4 
 drivers/acpi/acpica/hwsleep.c                                        |    4 
 drivers/acpi/acpica/hwxfsleep.c                                      |    2 
 drivers/acpi/acpica/utdelete.c                                       |    1 
 drivers/acpi/battery.c                                               |   22 
 drivers/acpi/ec.c                                                    |   57 +
 drivers/acpi/internal.h                                              |    2 
 drivers/acpi/scan.c                                                  |   13 
 drivers/android/binder.c                                             |    4 
 drivers/block/floppy.c                                               |    6 
 drivers/bluetooth/btmtksdio.c                                        |    2 
 drivers/bluetooth/hci_bcm.c                                          |    7 
 drivers/char/mwave/3780i.h                                           |    2 
 drivers/char/random.c                                                |   19 
 drivers/char/tpm/tpm_tis_core.c                                      |    8 
 drivers/clk/bcm/clk-bcm2835.c                                        |   13 
 drivers/clk/clk-si5341.c                                             |    2 
 drivers/clk/clk-stm32f4.c                                            |    4 
 drivers/clk/imx/clk-imx8mn.c                                         |    6 
 drivers/clk/meson/gxbb.c                                             |   44 +
 drivers/cpufreq/cpufreq.c                                            |    4 
 drivers/crypto/caam/caamalg_qi2.c                                    |    2 
 drivers/crypto/omap-aes.c                                            |    2 
 drivers/crypto/qce/sha.c                                             |    2 
 drivers/crypto/stm32/stm32-crc32.c                                   |    4 
 drivers/crypto/stm32/stm32-cryp.c                                    |    6 
 drivers/dma-buf/dma-fence-array.c                                    |    6 
 drivers/dma/at_xdmac.c                                               |   49 -
 drivers/dma/mmp_pdma.c                                               |    6 
 drivers/dma/pxa_dma.c                                                |    7 
 drivers/dma/stm32-mdma.c                                             |    2 
 drivers/edac/synopsys_edac.c                                         |    3 
 drivers/firmware/google/Kconfig                                      |    6 
 drivers/gpio/gpio-aspeed.c                                           |   52 -
 drivers/gpio/gpiolib-acpi.c                                          |   15 
 drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c                       |    6 
 drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c                                |   13 
 drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c                    |   14 
 drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c             |   40 -
 drivers/gpu/drm/bridge/ti-sn65dsi86.c                                |    1 
 drivers/gpu/drm/drm_panel_orientation_quirks.c                       |    6 
 drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c                         |    6 
 drivers/gpu/drm/lima/lima_device.c                                   |    1 
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c                              |    4 
 drivers/gpu/drm/nouveau/dispnv04/disp.c                              |    4 
 drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c                       |   37 -
 drivers/gpu/drm/panel/panel-innolux-p079zca.c                        |   10 
 drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c                   |    8 
 drivers/gpu/drm/radeon/radeon_kms.c                                  |   42 -
 drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c                      |   80 +-
 drivers/hid/hid-apple.c                                              |    2 
 drivers/hid/hid-input.c                                              |    6 
 drivers/hid/hid-uclogic-params.c                                     |   31 
 drivers/hid/uhid.c                                                   |   29 
 drivers/hid/wacom_wac.c                                              |   39 +
 drivers/hsi/hsi_core.c                                               |    1 
 drivers/i2c/busses/i2c-designware-pcidrv.c                           |    8 
 drivers/i2c/busses/i2c-i801.c                                        |   15 
 drivers/i2c/busses/i2c-mpc.c                                         |   23 
 drivers/infiniband/core/cma.c                                        |   12 
 drivers/infiniband/core/device.c                                     |    3 
 drivers/infiniband/hw/cxgb4/qp.c                                     |    1 
 drivers/infiniband/hw/hns/hns_roce_main.c                            |    5 
 drivers/infiniband/sw/rxe/rxe_opcode.c                               |    2 
 drivers/iommu/io-pgtable-arm-v7s.c                                   |    6 
 drivers/iommu/io-pgtable-arm.c                                       |    9 
 drivers/iommu/iova.c                                                 |    3 
 drivers/md/persistent-data/dm-btree.c                                |    8 
 drivers/md/persistent-data/dm-space-map-common.c                     |    5 
 drivers/media/common/saa7146/saa7146_fops.c                          |    2 
 drivers/media/common/videobuf2/videobuf2-dma-contig.c                |    8 
 drivers/media/dvb-core/dmxdev.c                                      |   18 
 drivers/media/dvb-frontends/dib8000.c                                |    4 
 drivers/media/pci/b2c2/flexcop-pci.c                                 |    3 
 drivers/media/pci/saa7146/hexium_gemini.c                            |    7 
 drivers/media/pci/saa7146/hexium_orion.c                             |    8 
 drivers/media/pci/saa7146/mxb.c                                      |    8 
 drivers/media/platform/aspeed-video.c                                |   14 
 drivers/media/platform/coda/imx-vdoa.c                               |    6 
 drivers/media/platform/imx-pxp.c                                     |    4 
 drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c               |    2 
 drivers/media/platform/qcom/venus/core.c                             |    8 
 drivers/media/platform/rcar-vin/rcar-csi2.c                          |   18 
 drivers/media/radio/si470x/radio-si470x-i2c.c                        |    3 
 drivers/media/rc/igorplugusb.c                                       |    4 
 drivers/media/rc/mceusb.c                                            |    8 
 drivers/media/rc/redrat3.c                                           |   22 
 drivers/media/tuners/msi001.c                                        |    7 
 drivers/media/tuners/si2157.c                                        |    2 
 drivers/media/usb/b2c2/flexcop-usb.c                                 |   10 
 drivers/media/usb/b2c2/flexcop-usb.h                                 |   12 
 drivers/media/usb/cpia2/cpia2_usb.c                                  |    4 
 drivers/media/usb/dvb-usb/dib0700_core.c                             |    2 
 drivers/media/usb/dvb-usb/dw2102.c                                   |  338 ++++++----
 drivers/media/usb/dvb-usb/m920x.c                                    |   12 
 drivers/media/usb/em28xx/em28xx-cards.c                              |   18 
 drivers/media/usb/em28xx/em28xx-core.c                               |    4 
 drivers/media/usb/pvrusb2/pvrusb2-hdw.c                              |    8 
 drivers/media/usb/s2255/s2255drv.c                                   |    4 
 drivers/media/usb/stk1160/stk1160-core.c                             |    4 
 drivers/media/usb/uvc/uvcvideo.h                                     |    2 
 drivers/media/v4l2-core/v4l2-ioctl.c                                 |    4 
 drivers/misc/lattice-ecp3-config.c                                   |   12 
 drivers/misc/lkdtm/Makefile                                          |    2 
 drivers/mmc/core/sdio.c                                              |    4 
 drivers/mmc/host/meson-mx-sdio.c                                     |    5 
 drivers/mtd/nand/bbt.c                                               |    2 
 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c                           |   37 -
 drivers/net/bonding/bond_main.c                                      |    6 
 drivers/net/can/softing/softing_cs.c                                 |    2 
 drivers/net/can/softing/softing_fw.c                                 |   11 
 drivers/net/can/xilinx_can.c                                         |    7 
 drivers/net/ethernet/broadcom/genet/bcmgenet.c                       |   10 
 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c                    |    3 
 drivers/net/ethernet/cortina/gemini.c                                |    9 
 drivers/net/ethernet/freescale/fman/mac.c                            |   21 
 drivers/net/ethernet/freescale/xgmac_mdio.c                          |    3 
 drivers/net/ethernet/i825xx/sni_82596.c                              |    3 
 drivers/net/ethernet/mediatek/mtk_eth_soc.c                          |    2 
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c                        |   36 -
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                    |   10 
 drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c                     |    6 
 drivers/net/ethernet/mellanox/mlxsw/pci.c                            |    1 
 drivers/net/ethernet/rocker/rocker_ofdpa.c                           |    3 
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c                    |   10 
 drivers/net/phy/marvell.c                                            |    6 
 drivers/net/phy/mdio_bus.c                                           |    2 
 drivers/net/phy/phy-core.c                                           |    2 
 drivers/net/ppp/ppp_generic.c                                        |    7 
 drivers/net/usb/mcs7830.c                                            |   12 
 drivers/net/wireless/ath/ar5523/ar5523.c                             |    4 
 drivers/net/wireless/ath/ath10k/htt_tx.c                             |    3 
 drivers/net/wireless/ath/ath10k/txrx.c                               |    2 
 drivers/net/wireless/ath/ath9k/hif_usb.c                             |    7 
 drivers/net/wireless/ath/wcn36xx/dxe.c                               |    5 
 drivers/net/wireless/ath/wcn36xx/smd.c                               |    4 
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c                         |   17 
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c                    |   17 
 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c                        |   27 
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c                        |    2 
 drivers/net/wireless/marvell/mwifiex/sta_event.c                     |    8 
 drivers/net/wireless/marvell/mwifiex/usb.c                           |    3 
 drivers/net/wireless/rsi/rsi_91x_main.c                              |    4 
 drivers/net/wireless/rsi/rsi_91x_usb.c                               |    9 
 drivers/net/wireless/rsi/rsi_usb.h                                   |    2 
 drivers/of/base.c                                                    |   11 
 drivers/parisc/pdc_stable.c                                          |    4 
 drivers/pci/controller/pci-aardvark.c                                |    4 
 drivers/pci/controller/pci-mvebu.c                                   |    8 
 drivers/pci/msi.c                                                    |   26 
 drivers/pci/pci-bridge-emul.c                                        |   27 
 drivers/pci/quirks.c                                                 |    3 
 drivers/pcmcia/cs.c                                                  |    8 
 drivers/pcmcia/rsrc_nonstatic.c                                      |    6 
 drivers/phy/socionext/phy-uniphier-usb3ss.c                          |   10 
 drivers/power/supply/bq25890_charger.c                               |    4 
 drivers/regulator/qcom_smd-regulator.c                               |  100 ++
 drivers/rpmsg/rpmsg_core.c                                           |   20 
 drivers/rtc/rtc-cmos.c                                               |    3 
 drivers/rtc/rtc-pxa.c                                                |    4 
 drivers/scsi/lpfc/lpfc.h                                             |    2 
 drivers/scsi/lpfc/lpfc_attr.c                                        |   62 +
 drivers/scsi/lpfc/lpfc_hbadisc.c                                     |    8 
 drivers/scsi/lpfc/lpfc_sli.c                                         |    6 
 drivers/scsi/scsi_debugfs.c                                          |    1 
 drivers/scsi/sr.c                                                    |    2 
 drivers/scsi/sr_vendor.c                                             |    4 
 drivers/scsi/ufs/tc-dwc-g210-pci.c                                   |    1 
 drivers/scsi/ufs/ufshcd-pltfrm.c                                     |    2 
 drivers/scsi/ufs/ufshcd.c                                            |    7 
 drivers/soc/mediatek/mtk-scpsys.c                                    |   15 
 drivers/spi/spi-meson-spifc.c                                        |    1 
 drivers/staging/greybus/audio_topology.c                             |   15 
 drivers/staging/media/hantro/hantro_drv.c                            |    3 
 drivers/staging/rtl8192e/rtllib.h                                    |    2 
 drivers/staging/rtl8192e/rtllib_module.c                             |   16 
 drivers/staging/rtl8192e/rtllib_softmac.c                            |    6 
 drivers/tee/tee_core.c                                               |    4 
 drivers/tty/serial/amba-pl010.c                                      |    3 
 drivers/tty/serial/amba-pl011.c                                      |   27 
 drivers/tty/serial/atmel_serial.c                                    |   14 
 drivers/tty/serial/serial_core.c                                     |    7 
 drivers/tty/serial/uartlite.c                                        |    2 
 drivers/usb/core/hub.c                                               |    5 
 drivers/usb/gadget/function/f_fs.c                                   |    4 
 drivers/usb/host/uhci-platform.c                                     |    3 
 drivers/usb/misc/ftdi-elan.c                                         |    1 
 drivers/w1/slaves/w1_ds28e04.c                                       |   26 
 fs/btrfs/backref.c                                                   |   21 
 fs/btrfs/ctree.c                                                     |   19 
 fs/btrfs/inode.c                                                     |   11 
 fs/btrfs/qgroup.c                                                    |   19 
 fs/debugfs/file.c                                                    |    2 
 fs/dlm/lock.c                                                        |    9 
 fs/ext4/ioctl.c                                                      |    2 
 fs/ext4/mballoc.c                                                    |    8 
 fs/ext4/migrate.c                                                    |   23 
 fs/ext4/super.c                                                      |   25 
 fs/f2fs/f2fs.h                                                       |   11 
 fs/f2fs/gc.c                                                         |    3 
 fs/f2fs/segment.h                                                    |    3 
 fs/f2fs/super.c                                                      |   44 +
 fs/f2fs/sysfs.c                                                      |    4 
 fs/fuse/file.c                                                       |    2 
 fs/jffs2/file.c                                                      |   40 -
 fs/ubifs/super.c                                                     |    1 
 include/acpi/actypes.h                                               |   10 
 include/linux/hid.h                                                  |    2 
 include/linux/mmzone.h                                               |    9 
 include/net/inet_frag.h                                              |   11 
 include/net/ipv6_frag.h                                              |    3 
 include/net/sch_generic.h                                            |    5 
 kernel/audit.c                                                       |   18 
 kernel/rcu/tree_exp.h                                                |    1 
 kernel/sched/cputime.c                                               |    4 
 kernel/sched/rt.c                                                    |   23 
 kernel/trace/trace_kprobe.c                                          |    5 
 lib/test_meminit.c                                                   |    1 
 mm/page_alloc.c                                                      |   19 
 mm/shmem.c                                                           |   37 -
 net/batman-adv/netlink.c                                             |   30 
 net/bluetooth/cmtp/core.c                                            |    4 
 net/bluetooth/hci_core.c                                             |    1 
 net/bluetooth/hci_event.c                                            |    8 
 net/bridge/br_netfilter_hooks.c                                      |    7 
 net/core/filter.c                                                    |    8 
 net/core/net-sysfs.c                                                 |    3 
 net/core/net_namespace.c                                             |    4 
 net/ipv4/fib_semantics.c                                             |   36 -
 net/ipv4/inet_fragment.c                                             |    8 
 net/ipv4/ip_fragment.c                                               |    3 
 net/ipv4/ip_gre.c                                                    |    5 
 net/ipv4/netfilter/ipt_CLUSTERIP.c                                   |    5 
 net/ipv6/ip6_gre.c                                                   |    5 
 net/mac80211/rx.c                                                    |    2 
 net/nfc/llcp_sock.c                                                  |    5 
 net/sched/sch_generic.c                                              |    1 
 net/unix/garbage.c                                                   |   14 
 net/unix/scm.c                                                       |    6 
 net/xfrm/xfrm_interface.c                                            |   14 
 net/xfrm/xfrm_policy.c                                               |   24 
 net/xfrm/xfrm_user.c                                                 |   23 
 scripts/dtc/dtx_diff                                                 |    8 
 security/selinux/hooks.c                                             |   12 
 sound/core/jack.c                                                    |    3 
 sound/core/oss/pcm_oss.c                                             |    2 
 sound/core/pcm.c                                                     |    6 
 sound/core/seq/seq_queue.c                                           |   14 
 sound/pci/hda/hda_codec.c                                            |    3 
 sound/soc/codecs/rt5663.c                                            |   12 
 sound/soc/mediatek/mt8173/mt8173-max98090.c                          |    3 
 sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c                     |    2 
 sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c                     |    2 
 sound/soc/mediatek/mt8173/mt8173-rt5650.c                            |    2 
 sound/soc/samsung/idma.c                                             |    2 
 sound/soc/uniphier/Kconfig                                           |    2 
 tools/bpf/bpftool/Documentation/Makefile                             |    1 
 tools/bpf/bpftool/Makefile                                           |    1 
 tools/bpf/bpftool/main.c                                             |    2 
 tools/include/nolibc/nolibc.h                                        |   33 
 tools/perf/util/debug.c                                              |    2 
 310 files changed, 2394 insertions(+), 1012 deletions(-)

Adam Ford (1):
clk: imx8mn: Fix imx8mn_clko1_sels

Adrian Hunter (1):
perf script: Fix hex dump character output

Alexander Aring (1):
fs: dlm: filter user dlm messages for kernel locks

Alexander Gordeev (1):
s390/mm: fix 2KB pgtable release race

Alexander Stein (2):
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property

Alexey Kardashevskiy (1):
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST

Alistair Francis (1):
HID: quirks: Allow inverting the absolute X/Y values

Amelie Delaunay (1):
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK

Ammar Faizi (1):
tools/nolibc: x86-64: Fix startup code bug

Anders Roxell (1):
powerpc/cell: Fix clang -Wimplicit-fallthrough warning

Andre Przywara (1):
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding

Andrey Konovalov (1):
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test

Andrey Ryabinin (1):
cputime, cpuacct: Include guest time in user time in cpuacct.stat

Antoine Tenart (1):
net-sysfs: update the queue counts in the unregistration path

Anton Vasilyev (1):
media: dw2102: Fix use after free

Antony Antony (2):
xfrm: interface with if_id 0 should return error
xfrm: state and policy should fail if XFRMA_IF_ID 0

Arnaud Pouliquen (1):
rpmsg: core: Clean up resources on announce_create failure.

Arnd Bergmann (1):

      dmaengine: pxa/mmp: stop referencing config->slave_id

Avihai Horon (2):
RDMA/core: Let ib_find_gid() continue search even after empty entry RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry

Aya Levin (1):
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"

Baoquan He (2):
mm_zone: add function to check if managed dma zone exists mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages

Bart Van Assche (2):
scsi: ufs: Fix race conditions related to driver data
scsi: core: Show SCMD_LAST in text form

Baruch Siach (2):
of: base: Fix phandle argument length mismatch error message
of: base: Improve argument length mismatch error

Ben Hutchings (1):
firmware: Update Kconfig help text for Google firmware

Ben Skeggs (1):
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR

Bernard Zhao (1):
selinux: fix potential memleak in selinux_add_opt()

Biwen Li (1):
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus

Bixuan Cui (1):
ALSA: oss: fix compile error when OSS_DEBUG is enabled

Borislav Petkov (3):
x86/mce: Mark mce_panic() noinstr
x86/mce: Mark mce_end() noinstr
x86/mce: Mark mce_read_aux() noinstr

Brian Norris (7):
drm/rockchip: dsi: Hold pm-runtime across bind/unbind drm/rockchip: dsi: Reconfigure hardware on resume() drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure drm/panel: innolux-p079zca: Delete panel on attach() failure drm/rockchip: dsi: Fix unbalanced clock on probe error
mwifiex: Fix possible ABBA deadlock
drm/bridge: analogix_dp: Make PSR-exit block less

Bryan O'Donoghue (2):
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
wcn36xx: Release DMA channel descriptor allocations

Chao Yu (2):
f2fs: fix to do sanity check in is_alive()
f2fs: fix to reserve space for IO align feature

Chen Jun (1):
tpm: add request_locality before write TPM_INT_ENABLE

Chengfeng Ye (2):
crypto: qce - fix uaf on qce_ahash_register_one
HSI: core: Fix return freed object in hsi_new_client

Chengguang Xu (1):
RDMA/rxe: Fix a typo in opcode name

Christian Eggers (1):
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings

Christian Hewitt (2):
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding

Christian König (1):
drm/radeon: fix error handling in radeon_driver_open_kms

Christian Lamparter (1):
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors

Christoph Hellwig (1):
scsi: sr: Don't use GFP_DMA

Christophe JAILLET (1):
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'

Christophe Leroy (4):
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing() powerpc/powermac: Add additional missing lockdep_register_key() powerpc/powermac: Add missing lockdep_register_key()
w1: Misuse of get_user()/put_user() reported by sparse

Dafna Hirschfeld (1):
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released

Dan Carpenter (1):
rocker: fix a sleeping in atomic bug

Daniel Thompson (1):
Documentation: dmaengine: Correctly describe dmatest with channel unset

Danielle Ratson (1):
mlxsw: pci: Add shutdown method in PCI driver

David Heidelberg (1):
arm64: dts: qcom: msm8996: drop not documented adreno properties

Dillon Min (2):
media: videobuf2: Fix the size printk format
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell

Dinh Nguyen (1):
EDAC/synopsys: Use the quirk for version instead of ddr version

Dmitry Baryshkov (2):
arm64: dts: qcom: msm8916: fix MMC controller aliases drm/msm/dpu: fix safe status debugfs file

Dominik Brodowski (1):
pcmcia: fix setting of kthread task states

Dongliang Mu (1):
media: em28xx: fix memory leak in em28xx_init_dev

Doyle, Patrick (1):
mtd: nand: bbt: Fix corner case in bad block table handling

Eric Dumazet (6):
xfrm: fix a small bug in xfrm_sa_len()
ppp: ensure minimum packet size in ppp_write()
ipv4: avoid quadratic behavior in netns dismantle
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
netns: add schedule point in ops_exit_list()

Fabio Estevam (1):
media: imx-pxp: Initialize the spinlock prior to using it

Filipe Manana (2):
btrfs: fix deadlock between quota enable and other quota operations
btrfs: respect the max size in the header when activating swap file

Florian Fainelli (1):
net: mdio: Demote probed message to debug print

Florian Westphal (1):
netfilter: bridge: add support for pppoe filtering

Frederic Weisbecker (1):
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass

Gang Li (1):
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode

Ghalem Boudour (1):
xfrm: fix policy lookup for ipv6 gre packets

Greg Kroah-Hartman (1):

      Linux 5.4.174

Guillaume Nault (3):
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()

Hans Verkuil (1):
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE

Hans de Goede (3):
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use

Hari Bathini (1):
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option

Hector Martin (1):
iommu/io-pgtable-arm: Fix table descriptor paddr formatting

Heiner Kallweit (2):
i2c: i801: Don't silently correct invalid transfer size
crypto: omap-aes - Fix broken pm_runtime_and_get() usage

Ilan Peer (2):
iwlwifi: mvm: Fix calculation of frame length
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds

Ilia Mirkin (1):
drm/nouveau/kms/nv04: use vzalloc for nv04_display

Iwona Winiarska (1):
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock

James Hilliard (1):
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.

James Smart (1):
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup

Jammy Huang (2):
media: aspeed: fix mode-detect always time out at 2nd run
media: aspeed: Update signal status immediately to ensure sane hw state

Jan Kara (3):
ext4: avoid trim error on fs with small groups
ext4: make sure to reset inode lockdep class when quota enabling fails
ext4: make sure quota gets properly shutdown on error

Jann Horn (1):
HID: uhid: Fix worker destroying device without any protection

Jason A. Donenfeld (1):
random: do not throw away excess input to crng_fast_load

Jason Gerecke (3):
HID: wacom: Reset expected and received contact counts at the same time
HID: wacom: Ignore the confidence flag when a touch is removed
HID: wacom: Avoid using stale array indicies to read contact count

Jens Wiklander (1):
tee: fix put order in teedev_close_context()

Jernej Skrabec (1):
media: hantro: Fix probe func error path

Jiasheng Jiang (8):
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
staging: greybus: audio: Check null pointer fsl/fman: Check for null pointer after calling devm_ioremap
Bluetooth: hci_bcm: Check for error irq
can: xilinx_can: xcan_probe(): check for error irq
ASoC: rt5663: Handle device_property_read_u32_array error codes
ASoC: mediatek: Check for error clk pointer
ASoC: samsung: idma: Check of ioremap return value

Joakim Tjernlund (1):
i2c: mpc: Correct I2C reset procedure

Joe Thornber (2):
dm btree: add a defensive bounds check to insert_at() dm space map common: add bounds check to sm_ll_lookup_bitmap()

Joerg Roedel (1):
x86/mm: Flush global TLB when switching to trampoline page-table

Johan Hovold (9):
media: flexcop-usb: fix control-message timeouts
media: mceusb: fix control-message timeouts
media: em28xx: fix control-message timeouts
media: cpia2: fix control-message timeouts
media: s2255: fix control-message timeouts
media: redrat3: fix control-message timeouts
media: pvrusb2: fix control-message timeouts
media: stk1160: fix control-message timeouts
can: softing_cs: softingcs_probe(): fix memleak on registration failure

Johannes Berg (3):
iwlwifi: mvm: synchronize with FW after multicast commands
iwlwifi: fix leaks/bad data after failed firmware load
iwlwifi: remove module loading failure message

John David Anglin (1):
parisc: Avoid calling faulthandler_disabled() twice

Josef Bacik (3):
btrfs: remove BUG_ON() in find_parent_nodes()
btrfs: remove BUG_ON(!eie) in find_parent_nodes
btrfs: check the root node for uptodate before returning it

José Expósito (5):
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
HID: apple: Do not reset quirks when the Fn key is not found

Julia Lawall (4):
powerpc/6xx: add missing of_node_put
powerpc/powernv: add missing of_node_put
powerpc/cell: add missing of_node_put
powerpc/btext: add missing of_node_put

Kai-Heng Feng (1):
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0

Kamal Heib (2):
RDMA/hns: Validate the pkey index RDMA/cxgb4: Set queue pair state when being queried

Kees Cook (1):
char/mwave: Adjust io port register size

Kevin Bracey (1):
net_sched: restore "mpu xxx" handling

Kirill A. Shutemov (1):
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5

Konrad Dybcio (1):
regulator: qcom_smd: Align probe function with rpmh-regulator

Krzysztof Kozlowski (1):
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()

Kuniyuki Iwashima (1):
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().

Kyeong Yoo (1):
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()

Lakshmi Sowjanya D (1):
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters

Laurence de Bruxelles (1):
rtc: pxa: fix null pointer dereference

Li Hua (1):
sched/rt: Try to restart rt period timer when rt runtime exceeded

Lino Sanfilippo (1):
serial: amba-pl011: do not request memory region twice

Linus Lüssing (1):
batman-adv: allow netlink usage in unprivileged containers

Lizhi Hou (1):
tty: serial: uartlite: allow 64 bit address

Lucas De Marchi (1):
x86/gpu: Reserve stolen memory for first integrated Intel GPU

Lucas Stach (1):
drm/etnaviv: limit submit sizes

Lukas Bulwahn (2):
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization

Lukas Wunner (3):
serial: pl010: Drop CR register reset on set_termios
serial: core: Keep mctrl register state and cached copy in sync
serial: Fix incorrect rs485 polarity on uart open

Luís Henriques (1):
ext4: set csum seed in tmp inode while migrating to extents

Maor Dickman (1):
net/mlx5e: Don't block routes with nexthop objects in SW

Marc Kleine-Budde (1):
can: softing: softing_startstop(): fix set but not used variable warning

Marek Behún (1):
ARM: dts: armada-38x: Add generic compatible to UART nodes

Marek Vasut (1):
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()

Mark Langsdorf (1):
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions

Martin Blumenstingl (1):
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB

Martyn Welch (1):
drm/bridge: megachips: Ensure both bridges are probed before registration

Masami Hiramatsu (1):
Revert "ia64: kprobes: Use generic kretprobe trampoline handler"

Mateusz Jończyk (1):
rtc: cmos: take rtc_lock while reading from CMOS

Matthias Schiffer (1):
scripts/dtc: dtx_diff: remove broken example from help text

Mauro Carvalho Chehab (1):

      media: m920x: don't use stack on USB reads

Maxime Ripard (2):
clk: bcm-2835: Pick the closest clock rate
clk: bcm-2835: Remove rounding up the dividers

Meng Li (1):
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr

Miaoqian Lin (3):
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
lib82596: Fix IRQ check in sni_82596_probe

Michael Ellerman (1):
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING

Michael Kuron (1):
media: dib0700: fix undefined behavior in tuner shutdown

Michal Suchanek (1):
debugfs: lockdown: Allow reading debugfs files that are not world readable

Moshe Shemesh (2):
net/mlx5: Set command entry semaphore up once got index free Revert "net/mlx5: Add retry mechanism to the command entry index allocation"

Neal Liu (1):
usb: uhci: add aspeed ast2600 uhci support

Nicholas Piggin (1):
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race

Nicolas Toromanoff (3):
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
crypto: stm32/cryp - fix double pm exit
crypto: stm32/cryp - fix lrw chaining mode

Nishanth Menon (1):

      arm64: dts: ti: k3-j721e: Fix the L2 cache sets

Pali Rohár (3):
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
PCI: pci-bridge-emul: Correctly set PCIe capabilities
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device

Paolo Abeni (1):
bpf: Do not WARN in bpf_warn_invalid_xdp_action()

Paul Chaignon (1):
bpftool: Enable line buffering for stdout

Paul Moore (1):
audit: ensure userspace is penalized the same as the kernel when under pressure

Pavankumar Kondeti (1):
usb: gadget: f_fs: Use stream_open() for endpoint files

Pavel Skripkin (2):
Bluetooth: stop proccessing malicious adv data
net: mcs7830: handle usb read errors properly

Peiwei Hu (1):
powerpc/prom_init: Fix improper check of prom_getprop()

Peng Fan (1):
arm64: dts: ti: k3-j721e: correct cache-sets info

Petr Cvachoucek (1):
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers

Ping-Ke Shih (1):

      mac80211: allow non-standard VHT MCS-10/11

Qiang Yu (1):
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y

Quentin Monnet (1):
bpftool: Remove inclusion of utilities.mak from Makefiles

Rafael J. Wysocki (4):
ACPI: EC: Rework flushing of EC work while suspended to idle
cpufreq: Fix initialization of min and max frequency QoS requests
ACPICA: Utilities: Avoid deleting the same object twice in a row
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()

Randy Dunlap (4):
mips: lantiq: add support for clk_set_parent()
mips: bcm63xx: add support for clk_set_parent()
um: registers: Rename function names to avoid conflicts and build problems
Documentation: fix firewire.rst ABI file path error

Robert Hancock (4):
clk: si5341: Fix clock HW provider cleanup
net: axienet: limit minimum TX ring size
net: axienet: fix number of TX ring slots for available check
net: axienet: increase default TX ring size to 128

Robert Schlabbach (1):
media: si2157: Fix "warm" tuner state detection

Russell King (Oracle) (3):
net: phy: prefer 1000baseT over 1000baseKX
net: phy: marvell: configure RGMII delays for 88E1118
net: gemini: allow any RGMII interface mode

Ryuta NAKANISHI (1):
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register

Sakari Ailus (1):
Documentation: ACPI: Fix data node reference documentation

Sean Wang (1):
Bluetooth: btmtksdio: fix resume failure

Sean Young (1):
media: igorplugusb: receiver overflow should be reported

Sebastian Gottschall (1):
ath10k: Fix tx hanging

Sergey Shtylyov (2):
mmc: meson-mx-sdio: add IRQ check
bcmgenet: add WOL IRQ check

Stefan Riedmueller (1):
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6

Stephen Boyd (1):
drm/bridge: ti-sn65dsi86: Set max register for regmap

Sudeep Holla (1):
ACPICA: Fix wrong interpretation of PCC address

Suresh Kumar (1):
net: bonding: debug: avoid printing debug logs when bond is not notifying peers

Suresh Udipi (2):
media: rcar-csi2: Correct the selection of hsfreqrange
media: rcar-csi2: Optimize the selection PHTW register

Takashi Iwai (4):
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
ALSA: seq: Set upper limit of processed events

Tasos Sahanidis (1):
floppy: Fix hang in watchdog when disk is ejected

Theodore Ts'o (1):
ext4: don't use the orphan list when migrating an inode

Thierry Reding (1):
arm64: tegra: Adjust length of CCPLEX cluster MMIO region

Thomas Gleixner (1):
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()

Thomas Hellström (1):
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()

Thomas Weißschuh (1):
ACPI: battery: Add the ThinkPad "Not Charging" quirk

Tianjia Zhang (1):
MIPS: Octeon: Fix build errors using clang

Tobias Waldekranz (2):
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module

Todd Kjos (1):
binder: fix handling of error during copy

Tom Rix (1):
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()

Tudor Ambarus (7):
tty: serial: atmel: Check return code of dmaengine_submit()
tty: serial: atmel: Call dma_async_issue_pending()
dmaengine: at_xdmac: Don't start transactions at tx_submit level
dmaengine: at_xdmac: Print debug message after realeasing the lock
dmaengine: at_xdmac: Fix concurrency over xfers_list
dmaengine: at_xdmac: Fix lld view setting
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition

Tzung-Bi Shih (1):
ASoC: mediatek: mt8173: fix device_node leak

Ulf Hansson (1):
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO

Wan Jiabing (1):
ARM: shmobile: rcar-gen2: Add missing of_node_put()

Wang Hai (3):
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
media: dmxdev: fix UAF when dvb_register_device() fails
media: msi001: fix possible null-ptr-deref in msi001_probe()

Wei Yongjun (3):
usb: ftdi-elan: fix memory leak on device disconnect
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Bluetooth: Fix debugfs entry leak in hci_register_dev()

Willy Tarreau (2):
tools/nolibc: i386: fix initial stack alignment tools/nolibc: fix incorrect truncation of exit code

Xiangyang Zhang (1):
tracing/kprobes: 'nmissed' not showed correctly for kretprobe

Xie Yongji (1):
fuse: Pass correct lend value to filemap_write_and_wait_range()

Xin Xiong (1):
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()

Xiongfeng Wang (1):
iommu/iova: Fix race between FQ timeout and teardown

Xiongwei Song (1):
floppy: Add max size check for user space request

Yang Yingliang (3):
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
staging: rtl8192e: return error code from rtllib_softmac_init()
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()

Yauhen Kharuzhy (1):
power: bq25890: Enable continuous conversion for ADC at charging

Ye Bin (1):
ext4: Fix BUG_ON in ext4_bread when write quota data

Ye Guojin (1):
MIPS: OCTEON: add put_device() after of_find_device_by_node()

Yifeng Li (1):
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller

Yixing Liu (1):
RDMA/hns: Modify the mapping attribute of doorbell to device

Yunfei Wang (1):
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure

Zekun Shen (5):
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
rsi: Fix use-after-free in rsi_rx_done_handler()
rsi: Fix out-of-bounds read in rsi_read_pkt()
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream

Zhang Zixun (1):
x86/mce/inject: Avoid out-of-bounds write when setting flags

Zheyu Ma (1):
media: b2c2: Add missing check in flexcop_pci_isr:

Zhou Qingyang (8):
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode() drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
media: dib8000: Fix a memleak in dib8000_init()
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()

Zongmin Zhou (1):
drm/amdgpu: fixup bad vram size on gmc v8

author maintainer
#1 lore raw
Documentation/admin-guide/hw-vuln/spectre.rst +1 -1
index e05e581af5cf..985181dba0ba 100644
@@ -468,7 +468,7 @@ Spectre variant 2
    before invoking any firmware code to prevent Spectre variant 2 exploits
    using the firmware.
 
-   Using kernel address space randomization (CONFIG_RANDOMIZE_SLAB=y
+   Using kernel address space randomization (CONFIG_RANDOMIZE_BASE=y
    and CONFIG_SLAB_FREELIST_RANDOM=y in the kernel configuration) makes
    attacks on the kernel generally more difficult.
 
Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml +5 -0
index fb747682006d..92dc08b78a17 100644
@@ -10,6 +10,9 @@ title: Amlogic specific extensions to the Synopsys Designware HDMI Controller
 maintainers:
   - Neil Armstrong <[email protected]>
 
+allOf:
+  - $ref: /schemas/sound/name-prefix.yaml#
+
 description: |
   The Amlogic Meson Synopsys Designware Integration is composed of
   - A Synopsys DesignWare HDMI Controller IP
@@ -101,6 +104,8 @@ properties:
   "#sound-dai-cells":
     const: 0
 
+  sound-name-prefix: true
+
 required:
   - compatible
   - reg
Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml +6 -0
index d1205a6697a0..766b04501cb9 100644
@@ -78,6 +78,10 @@ properties:
   interrupts:
     maxItems: 1
 
+  amlogic,canvas:
+    description: should point to a canvas provider node
+    $ref: /schemas/types.yaml#/definitions/phandle
+
   power-domains:
     maxItems: 1
     description: phandle to the associated power domain
@@ -106,6 +110,7 @@ required:
   - port@1
   - "#address-cells"
   - "#size-cells"
+  - amlogic,canvas
 
 examples:
   - |
@@ -116,6 +121,7 @@ examples:
         interrupts = <3>;
         #address-cells = <1>;
         #size-cells = <0>;
+        amlogic,canvas = <&canvas>;
 
         /* CVBS VDAC output port */
         port@0 {
Documentation/driver-api/dmaengine/dmatest.rst +4 -3
index ee268d445d38..d2e1d8b58e7d 100644
@@ -143,13 +143,14 @@ Part 5 - Handling channel allocation
 Allocating Channels
 -------------------
 
-Channels are required to be configured prior to starting the test run.
-Attempting to run the test without configuring the channels will fail.
+Channels do not need to be configured prior to starting a test run. Attempting
+to run the test without configuring the channels will result in testing any
+channels that are available.
 
 Example::
 
     % echo 1 > /sys/module/dmatest/parameters/run
-    dmatest: Could not start test, no channels configured
+    dmatest: No channels configured, continue with any
 
 Channels are registered using the "channel" parameter. Channels can be requested by their
 name, once requested, the channel is registered and a pending thread is added to the test list.
Documentation/driver-api/firewire.rst +2 -2
index 94a2d7f01d99..d3cfa73cbb2b 100644
@@ -19,7 +19,7 @@ of kernel interfaces is available via exported symbols in `firewire-core` module
 Firewire char device data structures
 ====================================
 
-.. include:: /ABI/stable/firewire-cdev
+.. include:: ../ABI/stable/firewire-cdev
     :literal:
 
 .. kernel-doc:: include/uapi/linux/firewire-cdev.h
@@ -28,7 +28,7 @@ Firewire char device data structures
 Firewire device probing and sysfs interfaces
 ============================================
 
-.. include:: /ABI/stable/sysfs-bus-firewire
+.. include:: ../ABI/stable/sysfs-bus-firewire
     :literal:
 
 .. kernel-doc:: drivers/firewire/core-device.c
Documentation/firmware-guide/acpi/dsd/data-node-references.rst +8 -2
index febccbc5689d..1b05e8d0ddff 100644
@@ -5,7 +5,7 @@
 Referencing hierarchical data nodes
 ===================================
 
-:Copyright: |copy| 2018 Intel Corporation
+:Copyright: |copy| 2018, 2021 Intel Corporation
 :Author: Sakari Ailus <[email protected]>
 
 ACPI in general allows referring to device objects in the tree only.
@@ -52,12 +52,14 @@ the ANOD object which is also the final target node of the reference.
 	    Name (NOD0, Package() {
 		ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
 		Package () {
+		    Package () { "reg", 0 },
 		    Package () { "random-property", 3 },
 		}
 	    })
 	    Name (NOD1, Package() {
 		ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
 		Package () {
+		    Package () { "reg", 1 },
 		    Package () { "anothernode", "ANOD" },
 		}
 	    })
@@ -74,7 +76,11 @@ the ANOD object which is also the final target node of the reference.
 	    Name (_DSD, Package () {
 		ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
 		Package () {
-		    Package () { "reference", ^DEV0, "node@1", "anothernode" },
+		    Package () {
+			"reference", Package () {
+			    ^DEV0, "node@1", "anothernode"
+			}
+		    },
 		}
 	    })
 	}
Makefile +1 -1
index cb9e6cd0d024..3075f06f7713 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 173
+SUBLEVEL = 174
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/boot/compressed/efi-header.S +14 -8
index a5983588f96b..dd53d6eb53ad 100644
@@ -9,16 +9,22 @@
 #include <linux/sizes.h>
 
 		.macro	__nop
-#ifdef CONFIG_EFI_STUB
-		@ This is almost but not quite a NOP, since it does clobber the
-		@ condition flags. But it is the best we can do for EFI, since
-		@ PE/COFF expects the magic string "MZ" at offset 0, while the
-		@ ARM/Linux boot protocol expects an executable instruction
-		@ there.
-		.inst	MZ_MAGIC | (0x1310 << 16)	@ tstne r0, #0x4d000
-#else
  AR_CLASS(	mov	r0, r0		)
   M_CLASS(	nop.w			)
+		.endm
+
+		.macro __initial_nops
+#ifdef CONFIG_EFI_STUB
+		@ This is a two-instruction NOP, which happens to bear the
+		@ PE/COFF signature "MZ" in the first two bytes, so the kernel
+		@ is accepted as an EFI binary. Booting via the UEFI stub
+		@ will not execute those instructions, but the ARM/Linux
+		@ boot protocol does, so we need some NOPs here.
+		.inst	MZ_MAGIC | (0xe225 << 16)	@ eor r5, r5, 0x4d000
+		eor	r5, r5, 0x4d000			@ undo previous insn
+#else
+		__nop
+		__nop
 #endif
 		.endm
 
arch/arm/boot/compressed/head.S +2 -1
index cbe126297f54..0a2410adc25b 100644
@@ -165,7 +165,8 @@ start:
 		 * were patching the initial instructions of the kernel, i.e
 		 * had started to exploit this "patch area".
 		 */
-		.rept	7
+		__initial_nops
+		.rept	5
 		__nop
 		.endr
 #ifndef CONFIG_THUMB2_KERNEL
arch/arm/boot/dts/armada-38x.dtsi +2 -2
index 669da3a33d82..5b82e58a1cf0 100644
@@ -165,7 +165,7 @@
 			};
 
 			uart0: serial@12000 {
-				compatible = "marvell,armada-38x-uart";
+				compatible = "marvell,armada-38x-uart", "ns16550a";
 				reg = <0x12000 0x100>;
 				reg-shift = <2>;
 				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
@@ -175,7 +175,7 @@
 			};
 
 			uart1: serial@12100 {
-				compatible = "marvell,armada-38x-uart";
+				compatible = "marvell,armada-38x-uart", "ns16550a";
 				reg = <0x12100 0x100>;
 				reg-shift = <2>;
 				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/gemini-nas4220b.dts +1 -1
index e1020e07e136..60cec653ac7c 100644
@@ -84,7 +84,7 @@
 			partitions {
 				compatible = "redboot-fis";
 				/* Eraseblock at 0xfe0000 */
-				fis-index-block = <0x1fc>;
+				fis-index-block = <0x7f>;
 			};
 		};
 
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +4 -1
index ee949255ced3..09ef73b99dd8 100644
@@ -154,8 +154,10 @@ static int __init rcar_gen2_regulator_quirk(void)
 		return -ENODEV;
 
 	for_each_matching_node_and_match(np, rcar_gen2_quirk_match, &id) {
-		if (!of_device_is_available(np))
+		if (!of_device_is_available(np)) {
+			of_node_put(np);
 			break;
+		}
 
 		ret = of_property_read_u32(np, "reg", &addr);
 		if (ret)	/* Skip invalid entry and continue */
@@ -164,6 +166,7 @@ static int __init rcar_gen2_regulator_quirk(void)
 		quirk = kzalloc(sizeof(*quirk), GFP_KERNEL);
 		if (!quirk) {
 			ret = -ENOMEM;
+			of_node_put(np);
 			goto err_mem;
 		}
 
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi +3 -0
index e3d17569d98a..e94f09c2d4e3 100644
@@ -6,6 +6,7 @@
  */
 
 #include "meson-gxbb.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
 	aliases {
@@ -64,6 +65,7 @@
 		regulator-name = "VDDIO_AO18";
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <1800000>;
+		regulator-always-on;
 	};
 
 	vcc_3v3: regulator-vcc_3v3 {
@@ -157,6 +159,7 @@
 	status = "okay";
 	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
 	pinctrl-names = "default";
+	hdmi-supply = <&vddio_ao18>;
 };
 
 &hdmi_tx_tmds_port {
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts +9 -5
index 078a5010228c..0b3a93c4155d 100644
@@ -161,11 +161,6 @@
 				vcc-supply = <&sb_3v3>;
 			};
 
-			rtc@51 {
-				compatible = "nxp,pcf2129";
-				reg = <0x51>;
-			};
-
 			eeprom@56 {
 				compatible = "atmel,24c512";
 				reg = <0x56>;
@@ -209,6 +204,15 @@
 
 };
 
+&i2c1 {
+	status = "okay";
+
+	rtc@51 {
+		compatible = "nxp,pcf2129";
+		reg = <0x51>;
+	};
+};
+
 &enetc_port1 {
 	phy-handle = <&qds_phy1>;
 	phy-connection-type = "rgmii-id";
arch/arm64/boot/dts/nvidia/tegra186.dtsi +1 -1
index 9abf0cb1dd67..445726275073 100644
@@ -709,7 +709,7 @@
 
 	ccplex@e000000 {
 		compatible = "nvidia,tegra186-ccplex-cluster";
-		reg = <0x0 0x0e000000 0x0 0x3fffff>;
+		reg = <0x0 0x0e000000 0x0 0x400000>;
 
 		nvidia,bpmp = <&bpmp>;
 	};
arch/arm64/boot/dts/qcom/msm8916.dtsi +2 -2
index 449843f2184d..301c1c467c0b 100644
@@ -16,8 +16,8 @@
 	#size-cells = <2>;
 
 	aliases {
-		sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
-		sdhc2 = &sdhc_2; /* SDC2 SD card slot */
+		mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+		mmc1 = &sdhc_2; /* SDC2 SD card slot */
 	};
 
 	chosen { };
arch/arm64/boot/dts/qcom/msm8996.dtsi +0 -3
index d303df3887d9..f1d3c51ea8d0 100644
@@ -2098,9 +2098,6 @@
 			nvmem-cells = <&gpu_speed_bin>;
 			nvmem-cell-names = "speed_bin";
 
-			qcom,gpu-quirk-two-pass-use-wfi;
-			qcom,gpu-quirk-fault-detect-mask;
-
 			operating-points-v2 = <&gpu_opp_table>;
 
 			gpu_opp_table: opp-table {
arch/arm64/boot/dts/ti/k3-j721e.dtsi +3 -3
index 43ea1ba97922..5a6e74636d6f 100644
@@ -60,7 +60,7 @@
 			i-cache-sets = <256>;
 			d-cache-size = <0x8000>;
 			d-cache-line-size = <64>;
-			d-cache-sets = <128>;
+			d-cache-sets = <256>;
 			next-level-cache = <&L2_0>;
 		};
 
@@ -74,7 +74,7 @@
 			i-cache-sets = <256>;
 			d-cache-size = <0x8000>;
 			d-cache-line-size = <64>;
-			d-cache-sets = <128>;
+			d-cache-sets = <256>;
 			next-level-cache = <&L2_0>;
 		};
 	};
@@ -84,7 +84,7 @@
 		cache-level = <2>;
 		cache-size = <0x100000>;
 		cache-line-size = <64>;
-		cache-sets = <2048>;
+		cache-sets = <1024>;
 		next-level-cache = <&msmc_l3>;
 	};
 
arch/ia64/kernel/kprobes.c +75 -3

92 lines not on this page · raw message

arch/mips/bcm63xx/clk.c +6 -0
index aba6e2d6a736..dcfa0ea912fe 100644
@@ -387,6 +387,12 @@ struct clk *clk_get_parent(struct clk *clk)
 }
 EXPORT_SYMBOL(clk_get_parent);
 
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+	return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
 unsigned long clk_get_rate(struct clk *clk)
 {
 	if (!clk)
arch/mips/cavium-octeon/octeon-platform.c +2 -0
index 51685f893eab..c214fe4e678b 100644
@@ -328,6 +328,7 @@ static int __init octeon_ehci_device_init(void)
 
 	pd->dev.platform_data = &octeon_ehci_pdata;
 	octeon_ehci_hw_start(&pd->dev);
+	put_device(&pd->dev);
 
 	return ret;
 }
@@ -391,6 +392,7 @@ static int __init octeon_ohci_device_init(void)
 
 	pd->dev.platform_data = &octeon_ohci_pdata;
 	octeon_ohci_hw_start(&pd->dev);
+	put_device(&pd->dev);
 
 	return ret;
 }
arch/mips/cavium-octeon/octeon-usb.c +1 -0
index 4017398519cf..e092d86e6358 100644
@@ -544,6 +544,7 @@ static int __init dwc3_octeon_device_init(void)
 			devm_iounmap(&pdev->dev, base);
 			devm_release_mem_region(&pdev->dev, res->start,
 						resource_size(res));
+			put_device(&pdev->dev);
 		}
 	} while (node != NULL);
 
arch/mips/include/asm/octeon/cvmx-bootinfo.h +2 -2
index 62787765575e..ce6e5fddce0b 100644
@@ -315,7 +315,7 @@ enum cvmx_chip_types_enum {
 
 /* Functions to return string based on type */
 #define ENUM_BRD_TYPE_CASE(x) \
-	case x: return(#x + 16);	/* Skip CVMX_BOARD_TYPE_ */
+	case x: return (&#x[16]);	/* Skip CVMX_BOARD_TYPE_ */
 static inline const char *cvmx_board_type_to_string(enum
 						    cvmx_board_types_enum type)
 {
@@ -404,7 +404,7 @@ static inline const char *cvmx_board_type_to_string(enum
 }
 
 #define ENUM_CHIP_TYPE_CASE(x) \
-	case x: return(#x + 15);	/* Skip CVMX_CHIP_TYPE */
+	case x: return (&#x[15]);	/* Skip CVMX_CHIP_TYPE */
 static inline const char *cvmx_chip_type_to_string(enum
 						   cvmx_chip_types_enum type)
 {
arch/mips/lantiq/clk.c +6 -0
index 4916cccf378f..7a623684d9b5 100644
@@ -164,6 +164,12 @@ struct clk *clk_get_parent(struct clk *clk)
 }
 EXPORT_SYMBOL(clk_get_parent);
 
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+	return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
 static inline u32 get_counter_resolution(void)
 {
 	u32 res;
arch/parisc/kernel/traps.c +1 -1
index 82fc01189488..2a1060d747a5 100644
@@ -783,7 +783,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
 	     * unless pagefault_disable() was called before.
 	     */
 
-	    if (fault_space == 0 && !faulthandler_disabled())
+	    if (faulthandler_disabled() || fault_space == 0)
 	    {
 		/* Clean up and return if in exception table. */
 		if (fixup_exception(regs))
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi +2 -0
index c90702b04a53..48e5cd61599c 100644
@@ -79,6 +79,7 @@ fman0: fman@400000 {
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xfc000 0x1000>;
+		fsl,erratum-a009885;
 	};
 
 	xmdio0: mdio@fd000 {
@@ -86,6 +87,7 @@ fman0: fman@400000 {
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xfd000 0x1000>;
+		fsl,erratum-a009885;
 	};
 };
 
arch/powerpc/kernel/btext.c +3 -1
index 6dfceaa820e4..b0e0b3cd91ee 100644
@@ -250,8 +250,10 @@ int __init btext_find_display(int allow_nonstdout)
 			rc = btext_initialize(np);
 			printk("result: %d\n", rc);
 		}
-		if (rc == 0)
+		if (rc == 0) {
+			of_node_put(np);
 			break;
+		}
 	}
 	return rc;
 }
arch/powerpc/kernel/prom_init.c +1 -1
index 1b65fb7c0bda..7f4e2c031a9a 100644
@@ -2919,7 +2919,7 @@ static void __init fixup_device_tree_efika_add_phy(void)
 
 	/* Check if the phy-handle property exists - bail if it does */
 	rv = prom_getprop(node, "phy-handle", prop, sizeof(prop));
-	if (!rv)
+	if (rv <= 0)
 		return;
 
 	/*
arch/powerpc/kernel/smp.c +32 -0
index c06cac543f18..4de63ec2e155 100644
@@ -582,6 +582,36 @@ void crash_send_ipi(void (*crash_ipi_callback)(struct pt_regs *))
 }
 #endif
 
+#ifdef CONFIG_NMI_IPI
+static void crash_stop_this_cpu(struct pt_regs *regs)
+#else
+static void crash_stop_this_cpu(void *dummy)
+#endif
+{
+	/*
+	 * Just busy wait here and avoid marking CPU as offline to ensure
+	 * register data is captured appropriately.
+	 */
+	while (1)
+		cpu_relax();
+}
+
+void crash_smp_send_stop(void)
+{
+	static bool stopped = false;
+
+	if (stopped)
+		return;
+
+	stopped = true;
+
+#ifdef CONFIG_NMI_IPI
+	smp_send_nmi_ipi(NMI_IPI_ALL_OTHERS, crash_stop_this_cpu, 1000000);
+#else
+	smp_call_function(crash_stop_this_cpu, NULL, 0);
+#endif /* CONFIG_NMI_IPI */
+}
+
 #ifdef CONFIG_NMI_IPI
 static void nmi_stop_this_cpu(struct pt_regs *regs)
 {
@@ -1296,10 +1326,12 @@ void start_secondary(void *unused)
 	BUG();
 }
 
+#ifdef CONFIG_PROFILING
 int setup_profiling_timer(unsigned int multiplier)
 {
 	return 0;
 }
+#endif
 
 #ifdef CONFIG_SCHED_SMT
 /* cpumask of CPUs with asymetric SMT dependancy */
arch/powerpc/kernel/watchdog.c +40 -1

67 lines not on this page · raw message

arch/powerpc/kvm/book3s_hv_nested.c +1 -1
index 9906d203d9d3..613d24b707ab 100644
@@ -510,7 +510,7 @@ long kvmhv_copy_tofrom_guest_nested(struct kvm_vcpu *vcpu)
 	if (eaddr & (0xFFFUL << 52))
 		return H_PARAMETER;
 
-	buf = kzalloc(n, GFP_KERNEL);
+	buf = kzalloc(n, GFP_KERNEL | __GFP_NOWARN);
 	if (!buf)
 		return H_NO_MEM;
 
arch/powerpc/platforms/cell/iommu.c +1 -0
index ca9ffc1c8685..a6a60e2b8f45 100644
@@ -976,6 +976,7 @@ static int __init cell_iommu_fixed_mapping_init(void)
 			if (hbase < dbase || (hend > (dbase + dsize))) {
 				pr_debug("iommu: hash window doesn't fit in"
 					 "real DMA window\n");
+				of_node_put(np);
 				return -1;
 			}
 		}
arch/powerpc/platforms/cell/pervasive.c +1 -0
index 6af3a6e600a7..80c9c4d71550 100644
@@ -77,6 +77,7 @@ static int cbe_system_reset_exception(struct pt_regs *regs)
 	switch (regs->msr & SRR1_WAKEMASK) {
 	case SRR1_WAKEDEC:
 		set_dec(1);
+		break;
 	case SRR1_WAKEEE:
 		/*
 		 * Handle these when interrupts get re-enabled and we take
arch/powerpc/platforms/embedded6xx/hlwd-pic.c +1 -0
index a1b7f79a8a15..de10c13de15c 100644
@@ -215,6 +215,7 @@ void hlwd_pic_probe(void)
 			irq_set_chained_handler(cascade_virq,
 						hlwd_pic_irq_cascade);
 			hlwd_irq_host = host;
+			of_node_put(np);
 			break;
 		}
 	}
arch/powerpc/platforms/powermac/low_i2c.c +3 -0
index bf4be4b53b44..210435a43bf9 100644
@@ -582,6 +582,7 @@ static void __init kw_i2c_add(struct pmac_i2c_host_kw *host,
 	bus->close = kw_i2c_close;
 	bus->xfer = kw_i2c_xfer;
 	mutex_init(&bus->mutex);
+	lockdep_register_key(&bus->lock_key);
 	lockdep_set_class(&bus->mutex, &bus->lock_key);
 	if (controller == busnode)
 		bus->flags = pmac_i2c_multibus;
@@ -811,6 +812,7 @@ static void __init pmu_i2c_probe(void)
 		bus->hostdata = bus + 1;
 		bus->xfer = pmu_i2c_xfer;
 		mutex_init(&bus->mutex);
+		lockdep_register_key(&bus->lock_key);
 		lockdep_set_class(&bus->mutex, &bus->lock_key);
 		bus->flags = pmac_i2c_multibus;
 		list_add(&bus->link, &pmac_i2c_busses);
@@ -934,6 +936,7 @@ static void __init smu_i2c_probe(void)
 		bus->hostdata = bus + 1;
 		bus->xfer = smu_i2c_xfer;
 		mutex_init(&bus->mutex);
+		lockdep_register_key(&bus->lock_key);
 		lockdep_set_class(&bus->mutex, &bus->lock_key);
 		bus->flags = 0;
 		list_add(&bus->link, &pmac_i2c_busses);
arch/powerpc/platforms/powernv/opal-lpc.c +1 -0
index 608569082ba0..123a0e799b7b 100644
@@ -396,6 +396,7 @@ void __init opal_lpc_init(void)
 		if (!of_get_property(np, "primary", NULL))
 			continue;
 		opal_lpc_chip_id = of_get_ibm_chip_id(np);
+		of_node_put(np);
 		break;
 	}
 	if (opal_lpc_chip_id < 0)
arch/s390/mm/pgalloc.c +3 -1
index 46071be897ab..90943bf3e5ee 100644
@@ -255,13 +255,15 @@ void page_table_free(struct mm_struct *mm, unsigned long *table)
 		/* Free 2K page table fragment of a 4K page */
 		bit = (__pa(table) & ~PAGE_MASK)/(PTRS_PER_PTE*sizeof(pte_t));
 		spin_lock_bh(&mm->context.lock);
-		mask = atomic_xor_bits(&page->_refcount, 1U << (bit + 24));
+		mask = atomic_xor_bits(&page->_refcount, 0x11U << (bit + 24));
 		mask >>= 24;
 		if (mask & 3)
 			list_add(&page->lru, &mm->context.pgtable_list);
 		else
 			list_del(&page->lru);
 		spin_unlock_bh(&mm->context.lock);
+		mask = atomic_xor_bits(&page->_refcount, 0x10U << (bit + 24));
+		mask >>= 24;
 		if (mask != 0)
 			return;
 	} else {
arch/um/include/shared/registers.h +2 -2
index 0c50fa6e8a55..fbb709a22283 100644
@@ -16,8 +16,8 @@ extern int restore_fp_registers(int pid, unsigned long *fp_regs);
 extern int save_fpx_registers(int pid, unsigned long *fp_regs);
 extern int restore_fpx_registers(int pid, unsigned long *fp_regs);
 extern int save_registers(int pid, struct uml_pt_regs *regs);
-extern int restore_registers(int pid, struct uml_pt_regs *regs);
-extern int init_registers(int pid);
+extern int restore_pid_registers(int pid, struct uml_pt_regs *regs);
+extern int init_pid_registers(int pid);
 extern void get_safe_registers(unsigned long *regs, unsigned long *fp_regs);
 extern unsigned long get_thread_reg(int reg, jmp_buf *buf);
 extern int get_fp_registers(int pid, unsigned long *regs);
arch/um/os-Linux/registers.c +2 -2
index 2d9270508e15..b123955be7ac 100644
@@ -21,7 +21,7 @@ int save_registers(int pid, struct uml_pt_regs *regs)
 	return 0;
 }
 
-int restore_registers(int pid, struct uml_pt_regs *regs)
+int restore_pid_registers(int pid, struct uml_pt_regs *regs)
 {
 	int err;
 
@@ -36,7 +36,7 @@ int restore_registers(int pid, struct uml_pt_regs *regs)
 static unsigned long exec_regs[MAX_REG_NR];
 static unsigned long exec_fp_regs[FP_SIZE];
 
-int init_registers(int pid)
+int init_pid_registers(int pid)
 {
 	int err;
 
arch/um/os-Linux/start_up.c +1 -1
index f79dc338279e..b28373a2b8d2 100644
@@ -336,7 +336,7 @@ void __init os_early_checks(void)
 	check_tmpexec();
 
 	pid = start_ptraced_child();
-	if (init_registers(pid))
+	if (init_pid_registers(pid))
 		fatal("Failed to initialize default registers");
 	stop_ptraced_child(pid, 1, 1);
 }
arch/x86/include/asm/realmode.h +1 -0
index 09ecc32f6524..52d7512ea91a 100644
@@ -82,6 +82,7 @@ static inline void set_real_mode_mem(phys_addr_t mem)
 }
 
 void reserve_real_mode(void);
+void load_trampoline_pgtable(void);
 
 #endif /* __ASSEMBLY__ */
 
arch/x86/kernel/cpu/mce/core.c +24 -7
index c2a9762d278d..8a2b8e791314 100644
@@ -310,11 +310,17 @@ static void wait_for_panic(void)
 	panic("Panicing machine check CPU died");
 }
 
-static void mce_panic(const char *msg, struct mce *final, char *exp)
+static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)
 {
-	int apei_err = 0;
 	struct llist_node *pending;
 	struct mce_evt_llist *l;
+	int apei_err = 0;
+
+	/*
+	 * Allow instrumentation around external facilities usage. Not that it
+	 * matters a whole lot since the machine is going to panic anyway.
+	 */
+	instrumentation_begin();
 
 	if (!fake_panic) {
 		/*
@@ -329,7 +335,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
 	} else {
 		/* Don't log too much for fake panic */
 		if (atomic_inc_return(&mce_fake_panicked) > 1)
-			return;
+			goto out;
 	}
 	pending = mce_gen_pool_prepare_records();
 	/* First print corrected ones that are still unlogged */
@@ -367,6 +373,9 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
 		panic(msg);
 	} else
 		pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
+
+out:
+	instrumentation_end();
 }
 
 /* Support code for software error injection */
@@ -691,7 +700,7 @@ static struct notifier_block mce_default_nb = {
 /*
  * Read ADDR and MISC registers.
  */
-static void mce_read_aux(struct mce *m, int i)
+static noinstr void mce_read_aux(struct mce *m, int i)
 {
 	if (m->status & MCI_STATUS_MISCV)
 		m->misc = mce_rdmsrl(msr_ops.misc(i));
@@ -1071,10 +1080,13 @@ static int mce_start(int *no_way_out)
  * Synchronize between CPUs after main scanning loop.
  * This invokes the bulk of the Monarch processing.
  */
-static int mce_end(int order)
+static noinstr int mce_end(int order)
 {
-	int ret = -1;
 	u64 timeout = (u64)mca_cfg.monarch_timeout * NSEC_PER_USEC;
+	int ret = -1;
+
+	/* Allow instrumentation around external facilities. */
+	instrumentation_begin();
 
 	if (!timeout)
 		goto reset;
@@ -1118,7 +1130,8 @@ static int mce_end(int order)
 		/*
 		 * Don't reset anything. That's done by the Monarch.
 		 */
-		return 0;
+		ret = 0;
+		goto out;
 	}
 
 	/*
@@ -1133,6 +1146,10 @@ static int mce_end(int order)
 	 * Let others run again.
 	 */
 	atomic_set(&mce_executing, 0);
+
+out:
+	instrumentation_end();
+
 	return ret;
 }
 
arch/x86/kernel/cpu/mce/inject.c +1 -1
index eb2d41c1816d..e1fda5b19b6f 100644
@@ -347,7 +347,7 @@ static ssize_t flags_write(struct file *filp, const char __user *ubuf,
 	char buf[MAX_FLAG_OPT_SIZE], *__buf;
 	int err;
 
-	if (cnt > MAX_FLAG_OPT_SIZE)
+	if (!cnt || cnt > MAX_FLAG_OPT_SIZE)
 		return -EINVAL;
 
 	if (copy_from_user(&buf, ubuf, cnt))
arch/x86/kernel/early-quirks.c +9 -1
index 6f6b1d04dadf..50225bc0383b 100644
@@ -515,6 +515,7 @@ static const struct intel_early_ops gen11_early_ops __initconst = {
 	.stolen_size = gen9_stolen_size,
 };
 
+/* Intel integrated GPUs for which we need to reserve "stolen memory" */
 static const struct pci_device_id intel_early_ids[] __initconst = {
 	INTEL_I830_IDS(&i830_early_ops),
 	INTEL_I845G_IDS(&i845_early_ops),
@@ -587,6 +588,13 @@ static void __init intel_graphics_quirks(int num, int slot, int func)
 	u16 device;
 	int i;
 
+	/*
+	 * Reserve "stolen memory" for an integrated GPU.  If we've already
+	 * found one, there's nothing to do for other (discrete) GPUs.
+	 */
+	if (resource_size(&intel_graphics_stolen_res))
+		return;
+
 	device = read_pci_config_16(num, slot, func, PCI_DEVICE_ID);
 
 	for (i = 0; i < ARRAY_SIZE(intel_early_ids); i++) {
@@ -699,7 +707,7 @@ static struct chipset early_qrk[] __initdata = {
 	{ PCI_VENDOR_ID_INTEL, 0x3406, PCI_CLASS_BRIDGE_HOST,
 	  PCI_BASE_CLASS_BRIDGE, 0, intel_remapping_check },
 	{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA, PCI_ANY_ID,
-	  QFLAG_APPLY_ONCE, intel_graphics_quirks },
+	  0, intel_graphics_quirks },
 	/*
 	 * HPET on the current version of the Baytrail platform has accuracy
 	 * problems: it will halt in deep idle state - so we disable it.
arch/x86/kernel/reboot.c +2 -10
index d65d1afb2716..fdef27a84d71 100644
@@ -113,17 +113,9 @@ void __noreturn machine_real_restart(unsigned int type)
 	spin_unlock(&rtc_lock);
 
 	/*
-	 * Switch back to the initial page table.
+	 * Switch to the trampoline page table.
 	 */
-#ifdef CONFIG_X86_32
-	load_cr3(initial_page_table);
-#else
-	write_cr3(real_mode_header->trampoline_pgd);
-
-	/* Exiting long mode will fail if CR4.PCIDE is set. */
-	if (boot_cpu_has(X86_FEATURE_PCID))
-		cr4_clear_bits(X86_CR4_PCIDE);
-#endif
+	load_trampoline_pgtable();
 
 	/* Jump to the identity-mapped low memory code */
 #ifdef CONFIG_X86_32
arch/x86/realmode/init.c +26 -0
index de371e52cfa8..fac50ebb122b 100644
@@ -16,6 +16,32 @@ u32 *trampoline_cr4_features;
 /* Hold the pgd entry used on booting additional CPUs */
 pgd_t trampoline_pgd_entry;
 
+void load_trampoline_pgtable(void)
+{
+#ifdef CONFIG_X86_32
+	load_cr3(initial_page_table);
+#else
+	/*
+	 * This function is called before exiting to real-mode and that will
+	 * fail with CR4.PCIDE still set.
+	 */
+	if (boot_cpu_has(X86_FEATURE_PCID))
+		cr4_clear_bits(X86_CR4_PCIDE);
+
+	write_cr3(real_mode_header->trampoline_pgd);
+#endif
+
+	/*
+	 * The CR3 write above will not flush global TLB entries.
+	 * Stale, global entries from previous page tables may still be
+	 * present.  Flush those stale entries.
+	 *
+	 * This ensures that memory accessed while running with
+	 * trampoline_pgd is *actually* mapped into trampoline_pgd.
+	 */
+	__flush_tlb_all();
+}
+
 void __init reserve_real_mode(void)
 {
 	phys_addr_t mem;
arch/x86/um/syscalls_64.c +2 -1
index 58f51667e2e4..8249685b4096 100644
@@ -11,6 +11,7 @@
 #include <linux/uaccess.h>
 #include <asm/prctl.h> /* XXX This should get the constants from libc */
 #include <os.h>
+#include <registers.h>
 
 long arch_prctl(struct task_struct *task, int option,
 		unsigned long __user *arg2)
@@ -35,7 +36,7 @@ long arch_prctl(struct task_struct *task, int option,
 	switch (option) {
 	case ARCH_SET_FS:
 	case ARCH_SET_GS:
-		ret = restore_registers(pid, &current->thread.regs.regs);
+		ret = restore_pid_registers(pid, &current->thread.regs.regs);
 		if (ret)
 			return ret;
 		break;
drivers/acpi/acpica/exfield.c +1 -6
index d3d2dbfba680..cd3debefe990 100644
@@ -320,12 +320,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
 		       obj_desc->field.base_byte_offset,
 		       source_desc->buffer.pointer, data_length);
 
-		if ((obj_desc->field.region_obj->region.address ==
-		     PCC_MASTER_SUBSPACE
-		     && MASTER_SUBSPACE_COMMAND(obj_desc->field.
-						base_byte_offset))
-		    || GENERIC_SUBSPACE_COMMAND(obj_desc->field.
-						base_byte_offset)) {
+		if (MASTER_SUBSPACE_COMMAND(obj_desc->field.base_byte_offset)) {
 
 			/* Perform the write */
 
drivers/acpi/acpica/exoparg1.c +2 -1
index 06e35ea09823..6d84618ba387 100644
@@ -1007,7 +1007,8 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
 						    (walk_state, return_desc,
 						     &temp_desc);
 						if (ACPI_FAILURE(status)) {
-							goto cleanup;
+							return_ACPI_STATUS
+							    (status);
 						}
 
 						return_desc = temp_desc;
drivers/acpi/acpica/hwesleep.c +3 -1
index aa502ae3b6b3..de0a59878e52 100644
@@ -104,7 +104,9 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state)
 
 	/* Flush caches, as per ACPI specification */
 
-	ACPI_FLUSH_CPU_CACHE();
+	if (sleep_state < ACPI_STATE_S4) {
+		ACPI_FLUSH_CPU_CACHE();
+	}
 
 	status = acpi_os_enter_sleep(sleep_state, sleep_control, 0);
 	if (status == AE_CTRL_TERMINATE) {
drivers/acpi/acpica/hwsleep.c +3 -1
index 5f7d63badbe9..321aaad97e2f 100644
@@ -110,7 +110,9 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state)
 
 	/* Flush caches, as per ACPI specification */
 
-	ACPI_FLUSH_CPU_CACHE();
+	if (sleep_state < ACPI_STATE_S4) {
+		ACPI_FLUSH_CPU_CACHE();
+	}
 
 	status = acpi_os_enter_sleep(sleep_state, pm1a_control, pm1b_control);
 	if (status == AE_CTRL_TERMINATE) {
drivers/acpi/acpica/hwxfsleep.c +0 -2
index 79731efbe8fe..4e3398819718 100644
@@ -162,8 +162,6 @@ acpi_status acpi_enter_sleep_state_s4bios(void)
 		return_ACPI_STATUS(status);
 	}
 
-	ACPI_FLUSH_CPU_CACHE();
-
 	status = acpi_hw_write_port(acpi_gbl_FADT.smi_command,
 				    (u32)acpi_gbl_FADT.s4_bios_request, 8);
 
drivers/acpi/acpica/utdelete.c +1 -0
index 72d2c0b65633..cb1750e7a628 100644
@@ -422,6 +422,7 @@ acpi_ut_update_ref_count(union acpi_operand_object *object, u32 action)
 			ACPI_WARNING((AE_INFO,
 				      "Obj %p, Reference Count is already zero, cannot decrement\n",
 				      object));
+			return;
 		}
 
 		ACPI_DEBUG_PRINT_RAW((ACPI_DB_ALLOCATIONS,
drivers/acpi/battery.c +22 -0
index 6e96ed68b337..4e0aea5f008e 100644
@@ -65,6 +65,7 @@ static int battery_bix_broken_package;
 static int battery_notification_delay_ms;
 static int battery_ac_is_broken;
 static int battery_check_pmic = 1;
+static int battery_quirk_notcharging;
 static unsigned int cache_time = 1000;
 module_param(cache_time, uint, 0644);
 MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
@@ -233,6 +234,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
 			val->intval = POWER_SUPPLY_STATUS_CHARGING;
 		else if (acpi_battery_is_charged(battery))
 			val->intval = POWER_SUPPLY_STATUS_FULL;
+		else if (battery_quirk_notcharging)
+			val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
 		else
 			val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
 		break;
@@ -1337,6 +1340,12 @@ battery_do_not_check_pmic_quirk(const struct dmi_system_id *d)
 	return 0;
 }
 
+static int __init battery_quirk_not_charging(const struct dmi_system_id *d)
+{
+	battery_quirk_notcharging = 1;
+	return 0;
+}
+
 static const struct dmi_system_id bat_dmi_table[] __initconst = {
 	{
 		/* NEC LZ750/LS */
@@ -1381,6 +1390,19 @@ static const struct dmi_system_id bat_dmi_table[] __initconst = {
 		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo MIIX 320-10ICR"),
 		},
 	},
+	{
+		/*
+		 * On Lenovo ThinkPads the BIOS specification defines
+		 * a state when the bits for charging and discharging
+		 * are both set to 0. That state is "Not Charging".
+		 */
+		.callback = battery_quirk_not_charging,
+		.ident = "Lenovo ThinkPad",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad"),
+		},
+	},
 	{},
 };
 
drivers/acpi/ec.c +43 -14

139 lines not on this page · raw message

drivers/acpi/internal.h +2 -0
index 159c422601bc..62b6b36f3a37 100644
@@ -183,6 +183,8 @@ struct acpi_ec {
 	struct work_struct work;
 	unsigned long timestamp;
 	unsigned long nr_pending_queries;
+	unsigned int events_in_progress;
+	unsigned int queries_in_progress;
 	bool busy_polling;
 	unsigned int polling_guard;
 };
drivers/acpi/scan.c +10 -3
index 95d119ff76b6..5d4be80ee6cb 100644
@@ -1577,6 +1577,7 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
 {
 	struct list_head resource_list;
 	bool is_serial_bus_slave = false;
+	static const struct acpi_device_id ignore_serial_bus_ids[] = {
 	/*
 	 * These devices have multiple I2cSerialBus resources and an i2c-client
 	 * must be instantiated for each, each with its own i2c_device_id.
@@ -1585,11 +1586,18 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
 	 * drivers/platform/x86/i2c-multi-instantiate.c driver, which knows
 	 * which i2c_device_id to use for each resource.
 	 */
-	static const struct acpi_device_id i2c_multi_instantiate_ids[] = {
 		{"BSG1160", },
 		{"BSG2150", },
 		{"INT33FE", },
 		{"INT3515", },
+	/*
+	 * HIDs of device with an UartSerialBusV2 resource for which userspace
+	 * expects a regular tty cdev to be created (instead of the in kernel
+	 * serdev) and which have a kernel driver which expects a platform_dev
+	 * such as the rfkill-gpio driver.
+	 */
+		{"BCM4752", },
+		{"LNV4752", },
 		{}
 	};
 
@@ -1603,8 +1611,7 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
 	     fwnode_property_present(&device->fwnode, "baud")))
 		return true;
 
-	/* Instantiate a pdev for the i2c-multi-instantiate drv to bind to */
-	if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids))
+	if (!acpi_match_device_ids(device, ignore_serial_bus_ids))
 		return false;
 
 	INIT_LIST_HEAD(&resource_list);
drivers/android/binder.c +2 -2
index 0512af0f0464..b9fb2a926944 100644
@@ -2660,8 +2660,8 @@ static int binder_translate_fd_array(struct binder_fd_array_object *fda,
 		if (!ret)
 			ret = binder_translate_fd(fd, offset, t, thread,
 						  in_reply_to);
-		if (ret < 0)
-			return ret;
+		if (ret)
+			return ret > 0 ? -EINVAL : ret;
 	}
 	return 0;
 }
drivers/block/floppy.c +4 -2
index ac97a1e2e5dd..02af4f109e59 100644
@@ -1003,7 +1003,7 @@ static DECLARE_DELAYED_WORK(fd_timer, fd_timer_workfn);
 static void cancel_activity(void)
 {
 	do_floppy = NULL;
-	cancel_delayed_work_sync(&fd_timer);
+	cancel_delayed_work(&fd_timer);
 	cancel_work_sync(&floppy_work);
 }
 
@@ -3112,6 +3112,8 @@ static void raw_cmd_free(struct floppy_raw_cmd **ptr)
 	}
 }
 
+#define MAX_LEN (1UL << MAX_ORDER << PAGE_SHIFT)
+
 static int raw_cmd_copyin(int cmd, void __user *param,
 				 struct floppy_raw_cmd **rcmd)
 {
@@ -3149,7 +3151,7 @@ static int raw_cmd_copyin(int cmd, void __user *param,
 	ptr->resultcode = 0;
 
 	if (ptr->flags & (FD_RAW_READ | FD_RAW_WRITE)) {
-		if (ptr->length <= 0)
+		if (ptr->length <= 0 || ptr->length >= MAX_LEN)
 			return -EINVAL;
 		ptr->kernel_data = (char *)fd_dma_mem_alloc(ptr->length);
 		fallback_on_nodma_alloc(&ptr->kernel_data, ptr->length);
drivers/bluetooth/btmtksdio.c +2 -0
index 304178be1ef4..c2eb64bcd5d5 100644
@@ -1041,6 +1041,8 @@ static int btmtksdio_runtime_suspend(struct device *dev)
 	if (!bdev)
 		return 0;
 
+	sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
+
 	sdio_claim_host(bdev->func);
 
 	sdio_writel(bdev->func, C_FW_OWN_REQ_SET, MTK_REG_CHLPCR, &err);
drivers/bluetooth/hci_bcm.c +6 -1
index 94ed734c1d7e..c6bb380806f9 100644
@@ -1127,7 +1127,12 @@ static int bcm_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	dev->dev = &pdev->dev;
-	dev->irq = platform_get_irq(pdev, 0);
+
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		return ret;
+
+	dev->irq = ret;
 
 	if (has_acpi_companion(&pdev->dev)) {
 		ret = bcm_acpi_probe(dev);
drivers/char/mwave/3780i.h +1 -1
index 9ccb6b270b07..95164246afd1 100644
@@ -68,7 +68,7 @@ typedef struct {
 	unsigned char ClockControl:1;	/* RW: Clock control: 0=normal, 1=stop 3780i clocks */
 	unsigned char SoftReset:1;	/* RW: Soft reset 0=normal, 1=soft reset active */
 	unsigned char ConfigMode:1;	/* RW: Configuration mode, 0=normal, 1=config mode */
-	unsigned char Reserved:5;	/* 0: Reserved */
+	unsigned short Reserved:13;	/* 0: Reserved */
 } DSP_ISA_SLAVE_CONTROL;
 
 
drivers/char/random.c +12 -7
index 60b39af1279a..19bfbaf13598 100644
@@ -975,12 +975,14 @@ static struct crng_state *select_crng(void)
 
 /*
  * crng_fast_load() can be called by code in the interrupt service
- * path.  So we can't afford to dilly-dally.
+ * path.  So we can't afford to dilly-dally. Returns the number of
+ * bytes processed from cp.
  */
-static int crng_fast_load(const char *cp, size_t len)
+static size_t crng_fast_load(const char *cp, size_t len)
 {
 	unsigned long flags;
 	char *p;
+	size_t ret = 0;
 
 	if (!spin_trylock_irqsave(&primary_crng.lock, flags))
 		return 0;
@@ -991,7 +993,7 @@ static int crng_fast_load(const char *cp, size_t len)
 	p = (unsigned char *) &primary_crng.state[4];
 	while (len > 0 && crng_init_cnt < CRNG_INIT_CNT_THRESH) {
 		p[crng_init_cnt % CHACHA_KEY_SIZE] ^= *cp;
-		cp++; crng_init_cnt++; len--;
+		cp++; crng_init_cnt++; len--; ret++;
 	}
 	spin_unlock_irqrestore(&primary_crng.lock, flags);
 	if (crng_init_cnt >= CRNG_INIT_CNT_THRESH) {
@@ -1000,7 +1002,7 @@ static int crng_fast_load(const char *cp, size_t len)
 		wake_up_interruptible(&crng_init_wait);
 		pr_notice("random: fast init done\n");
 	}
-	return 1;
+	return ret;
 }
 
 /*
@@ -1353,7 +1355,7 @@ void add_interrupt_randomness(int irq, int irq_flags)
 	if (unlikely(crng_init == 0)) {
 		if ((fast_pool->count >= 64) &&
 		    crng_fast_load((char *) fast_pool->pool,
-				   sizeof(fast_pool->pool))) {
+				   sizeof(fast_pool->pool)) > 0) {
 			fast_pool->count = 0;
 			fast_pool->last = now;
 		}
@@ -2501,8 +2503,11 @@ void add_hwgenerator_randomness(const char *buffer, size_t count,
 	struct entropy_store *poolp = &input_pool;
 
 	if (unlikely(crng_init == 0)) {
-		crng_fast_load(buffer, count);
-		return;
+		size_t ret = crng_fast_load(buffer, count);
+		count -= ret;
+		buffer += ret;
+		if (!count || crng_init == 0)
+			return;
 	}
 
 	/* Suspend writing if we're above the trickle threshold.
drivers/char/tpm/tpm_tis_core.c +8 -0
index 2fe26ec03552..70f785994228 100644
@@ -877,7 +877,15 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
 	intmask |= TPM_INTF_CMD_READY_INT | TPM_INTF_LOCALITY_CHANGE_INT |
 		   TPM_INTF_DATA_AVAIL_INT | TPM_INTF_STS_VALID_INT;
 	intmask &= ~TPM_GLOBAL_INT_ENABLE;
+
+	rc = request_locality(chip, 0);
+	if (rc < 0) {
+		rc = -ENODEV;
+		goto out_err;
+	}
+
 	tpm_tis_write32(priv, TPM_INT_ENABLE(priv->locality), intmask);
+	release_locality(chip, 0);
 
 	rc = tpm_chip_start(chip);
 	if (rc)
drivers/clk/bcm/clk-bcm2835.c +4 -9
index c5486537b928..e637bd6b295b 100644
@@ -932,8 +932,7 @@ static int bcm2835_clock_is_on(struct clk_hw *hw)
 
 static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
 				    unsigned long rate,
-				    unsigned long parent_rate,
-				    bool round_up)
+				    unsigned long parent_rate)
 {
 	struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
 	const struct bcm2835_clock_data *data = clock->data;
@@ -945,10 +944,6 @@ static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
 
 	rem = do_div(temp, rate);
 	div = temp;
-
-	/* Round up and mask off the unused bits */
-	if (round_up && ((div & unused_frac_mask) != 0 || rem != 0))
-		div += unused_frac_mask + 1;
 	div &= ~unused_frac_mask;
 
 	/* different clamping limits apply for a mash clock */
@@ -1079,7 +1074,7 @@ static int bcm2835_clock_set_rate(struct clk_hw *hw,
 	struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
 	struct bcm2835_cprman *cprman = clock->cprman;
 	const struct bcm2835_clock_data *data = clock->data;
-	u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate, false);
+	u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate);
 	u32 ctl;
 
 	spin_lock(&cprman->regs_lock);
@@ -1130,7 +1125,7 @@ static unsigned long bcm2835_clock_choose_div_and_prate(struct clk_hw *hw,
 
 	if (!(BIT(parent_idx) & data->set_rate_parent)) {
 		*prate = clk_hw_get_rate(parent);
-		*div = bcm2835_clock_choose_div(hw, rate, *prate, true);
+		*div = bcm2835_clock_choose_div(hw, rate, *prate);
 
 		*avgrate = bcm2835_clock_rate_from_divisor(clock, *prate, *div);
 
@@ -1216,7 +1211,7 @@ static int bcm2835_clock_determine_rate(struct clk_hw *hw,
 		rate = bcm2835_clock_choose_div_and_prate(hw, i, req->rate,
 							  &div, &prate,
 							  &avgrate);
-		if (rate > best_rate && rate <= req->rate) {
+		if (abs(req->rate - rate) < abs(req->rate - best_rate)) {
 			best_parent = parent;
 			best_prate = prate;
 			best_rate = rate;
drivers/clk/clk-si5341.c +1 -1
index 8f9f3d4a54fd..20ed0955416a 100644
@@ -1303,7 +1303,7 @@ static int si5341_probe(struct i2c_client *client,
 			clk_prepare(data->clk[i].hw.clk);
 	}
 
-	err = of_clk_add_hw_provider(client->dev.of_node, of_clk_si5341_get,
+	err = devm_of_clk_add_hw_provider(&client->dev, of_clk_si5341_get,
 			data);
 	if (err) {
 		dev_err(&client->dev, "unable to add clk provider\n");
drivers/clk/clk-stm32f4.c +0 -4
index 5c75e3d906c2..682a18b392f0 100644
@@ -129,7 +129,6 @@ static const struct stm32f4_gate_data stm32f429_gates[] __initconst = {
 	{ STM32F4_RCC_APB2ENR, 20,	"spi5",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 21,	"spi6",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 22,	"sai1",		"apb2_div" },
-	{ STM32F4_RCC_APB2ENR, 26,	"ltdc",		"apb2_div" },
 };
 
 static const struct stm32f4_gate_data stm32f469_gates[] __initconst = {
@@ -211,7 +210,6 @@ static const struct stm32f4_gate_data stm32f469_gates[] __initconst = {
 	{ STM32F4_RCC_APB2ENR, 20,	"spi5",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 21,	"spi6",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 22,	"sai1",		"apb2_div" },
-	{ STM32F4_RCC_APB2ENR, 26,	"ltdc",		"apb2_div" },
 };
 
 static const struct stm32f4_gate_data stm32f746_gates[] __initconst = {
@@ -286,7 +284,6 @@ static const struct stm32f4_gate_data stm32f746_gates[] __initconst = {
 	{ STM32F4_RCC_APB2ENR, 21,	"spi6",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 22,	"sai1",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 23,	"sai2",		"apb2_div" },
-	{ STM32F4_RCC_APB2ENR, 26,	"ltdc",		"apb2_div" },
 };
 
 static const struct stm32f4_gate_data stm32f769_gates[] __initconst = {
@@ -364,7 +361,6 @@ static const struct stm32f4_gate_data stm32f769_gates[] __initconst = {
 	{ STM32F4_RCC_APB2ENR, 21,	"spi6",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 22,	"sai1",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 23,	"sai2",		"apb2_div" },
-	{ STM32F4_RCC_APB2ENR, 26,	"ltdc",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 30,	"mdio",		"apb2_div" },
 };
 
drivers/clk/imx/clk-imx8mn.c +3 -3
index 58b5acee3830..882b42efd258 100644
@@ -358,9 +358,9 @@ static const char * const imx8mn_pdm_sels[] = {"osc_24m", "sys_pll2_100m", "audi
 
 static const char * const imx8mn_dram_core_sels[] = {"dram_pll_out", "dram_alt_root", };
 
-static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "osc_27m",
-						 "sys_pll1_200m", "audio_pll2_out", "vpu_pll",
-						 "sys_pll1_80m", };
+static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "dummy",
+						 "sys_pll1_200m", "audio_pll2_out", "sys_pll2_500m",
+						 "dummy", "sys_pll1_80m", };
 static const char * const imx8mn_clko2_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_400m",
 						 "sys_pll2_166m", "sys_pll3_out", "audio_pll1_out",
 						 "video_pll1_out", "osc_32k", };
drivers/clk/meson/gxbb.c +41 -3

68 lines not on this page · raw message

drivers/cpufreq/cpufreq.c +2 -2
index cb7949a2ac0c..af9f34804862 100644
@@ -1393,7 +1393,7 @@ static int cpufreq_online(unsigned int cpu)
 
 		ret = freq_qos_add_request(&policy->constraints,
 					   policy->min_freq_req, FREQ_QOS_MIN,
-					   policy->min);
+					   FREQ_QOS_MIN_DEFAULT_VALUE);
 		if (ret < 0) {
 			/*
 			 * So we don't call freq_qos_remove_request() for an
@@ -1413,7 +1413,7 @@ static int cpufreq_online(unsigned int cpu)
 
 		ret = freq_qos_add_request(&policy->constraints,
 					   policy->max_freq_req, FREQ_QOS_MAX,
-					   policy->max);
+					   FREQ_QOS_MAX_DEFAULT_VALUE);
 		if (ret < 0) {
 			policy->max_freq_req = NULL;
 			goto out_destroy_policy;
drivers/crypto/caam/caamalg_qi2.c +1 -1
index 6863d7097674..28692d068176 100644
@@ -5421,7 +5421,7 @@ int dpaa2_caam_enqueue(struct device *dev, struct caam_request *req)
 	dpaa2_fd_set_len(&fd, dpaa2_fl_get_len(&req->fd_flt[1]));
 	dpaa2_fd_set_flc(&fd, req->flc_dma);
 
-	ppriv = this_cpu_ptr(priv->ppriv);
+	ppriv = raw_cpu_ptr(priv->ppriv);
 	for (i = 0; i < (priv->dpseci_attr.num_tx_queues << 1); i++) {
 		err = dpaa2_io_service_enqueue_fq(ppriv->dpio, ppriv->req_fqid,
 						  &fd);
drivers/crypto/omap-aes.c +1 -1
index 72edb10181b8..41ffb088831d 100644
@@ -1318,7 +1318,7 @@ static int omap_aes_suspend(struct device *dev)
 
 static int omap_aes_resume(struct device *dev)
 {
-	pm_runtime_resume_and_get(dev);
+	pm_runtime_get_sync(dev);
 	return 0;
 }
 #endif
drivers/crypto/qce/sha.c +1 -1
index 0853e74583ad..29b0bad2507b 100644
@@ -512,8 +512,8 @@ static int qce_ahash_register_one(const struct qce_ahash_def *def,
 
 	ret = crypto_register_ahash(alg);
 	if (ret) {
-		kfree(tmpl);
 		dev_err(qce->dev, "%s registration failed\n", base->cra_name);
+		kfree(tmpl);
 		return ret;
 	}
 
drivers/crypto/stm32/stm32-crc32.c +2 -2
index e68b856d03b6..fb640e0ea614 100644
@@ -230,7 +230,7 @@ static struct shash_alg algs[] = {
 		.digestsize     = CHKSUM_DIGEST_SIZE,
 		.base           = {
 			.cra_name               = "crc32",
-			.cra_driver_name        = DRIVER_NAME,
+			.cra_driver_name        = "stm32-crc32-crc32",
 			.cra_priority           = 200,
 			.cra_flags		= CRYPTO_ALG_OPTIONAL_KEY,
 			.cra_blocksize          = CHKSUM_BLOCK_SIZE,
@@ -252,7 +252,7 @@ static struct shash_alg algs[] = {
 		.digestsize     = CHKSUM_DIGEST_SIZE,
 		.base           = {
 			.cra_name               = "crc32c",
-			.cra_driver_name        = DRIVER_NAME,
+			.cra_driver_name        = "stm32-crc32-crc32c",
 			.cra_priority           = 200,
 			.cra_flags		= CRYPTO_ALG_OPTIONAL_KEY,
 			.cra_blocksize          = CHKSUM_BLOCK_SIZE,
drivers/crypto/stm32/stm32-cryp.c +1 -5
index 9b3511236ba2..69c2468f1053 100644
@@ -639,7 +639,7 @@ static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err)
 		/* Phase 4 : output tag */
 		err = stm32_cryp_read_auth_tag(cryp);
 
-	if (!err && (!(is_gcm(cryp) || is_ccm(cryp))))
+	if (!err && (!(is_gcm(cryp) || is_ccm(cryp) || is_ecb(cryp))))
 		stm32_cryp_get_iv(cryp);
 
 	if (cryp->sgs_copied) {
@@ -669,8 +669,6 @@ static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err)
 	else
 		crypto_finalize_ablkcipher_request(cryp->engine, cryp->req,
 						   err);
-
-	memset(cryp->ctx->key, 0, cryp->ctx->keylen);
 }
 
 static int stm32_cryp_cpu_start(struct stm32_cryp *cryp)
@@ -2036,8 +2034,6 @@ static int stm32_cryp_probe(struct platform_device *pdev)
 	list_del(&cryp->list);
 	spin_unlock(&cryp_list.lock);
 
-	pm_runtime_disable(dev);
-	pm_runtime_put_noidle(dev);
 	pm_runtime_disable(dev);
 	pm_runtime_put_noidle(dev);
 
drivers/dma-buf/dma-fence-array.c +5 -1
index d3fbd950be94..3e07f961e2f3 100644
@@ -104,7 +104,11 @@ static bool dma_fence_array_signaled(struct dma_fence *fence)
 {
 	struct dma_fence_array *array = to_dma_fence_array(fence);
 
-	return atomic_read(&array->num_pending) <= 0;
+	if (atomic_read(&array->num_pending) > 0)
+		return false;
+
+	dma_fence_array_clear_pending_error(array);
+	return true;
 }
 
 static void dma_fence_array_release(struct dma_fence *fence)
drivers/dma/at_xdmac.c +25 -24

89 lines not on this page · raw message

drivers/dma/mmp_pdma.c +0 -6
index 7fe494fc50d4..ec186cf8b8af 100644
@@ -728,12 +728,6 @@ static int mmp_pdma_config_write(struct dma_chan *dchan,
 
 	chan->dir = direction;
 	chan->dev_addr = addr;
-	/* FIXME: drivers should be ported over to use the filter
-	 * function. Once that's done, the following two lines can
-	 * be removed.
-	 */
-	if (cfg->slave_id)
-		chan->drcmr = cfg->slave_id;
 
 	return 0;
 }
drivers/dma/pxa_dma.c +0 -7
index 349fb312c872..b4ef4f19f7de 100644
@@ -911,13 +911,6 @@ static void pxad_get_config(struct pxad_chan *chan,
 		*dcmd |= PXA_DCMD_BURST16;
 	else if (maxburst == 32)
 		*dcmd |= PXA_DCMD_BURST32;
-
-	/* FIXME: drivers should be ported over to use the filter
-	 * function. Once that's done, the following two lines can
-	 * be removed.
-	 */
-	if (chan->cfg.slave_id)
-		chan->drcmr = chan->cfg.slave_id;
 }
 
 static struct dma_async_tx_descriptor *
drivers/dma/stm32-mdma.c +1 -1
index ee1cbf3be75d..a05355d1292e 100644
@@ -184,7 +184,7 @@
 #define STM32_MDMA_CTBR(x)		(0x68 + 0x40 * (x))
 #define STM32_MDMA_CTBR_DBUS		BIT(17)
 #define STM32_MDMA_CTBR_SBUS		BIT(16)
-#define STM32_MDMA_CTBR_TSEL_MASK	GENMASK(7, 0)
+#define STM32_MDMA_CTBR_TSEL_MASK	GENMASK(5, 0)
 #define STM32_MDMA_CTBR_TSEL(n)		STM32_MDMA_SET(n, \
 						      STM32_MDMA_CTBR_TSEL_MASK)
 
drivers/edac/synopsys_edac.c +1 -2
index 6becf3363ad5..d23a0782fb49 100644
@@ -1351,8 +1351,7 @@ static int mc_probe(struct platform_device *pdev)
 		}
 	}
 
-	if (of_device_is_compatible(pdev->dev.of_node,
-				    "xlnx,zynqmp-ddrc-2.40a"))
+	if (priv->p_data->quirks & DDR_ECC_INTR_SUPPORT)
 		setup_address_map(priv);
 #endif
 
drivers/firmware/google/Kconfig +3 -3
index a3a6ca659ffa..2fba0aa7fc54 100644
@@ -3,9 +3,9 @@ menuconfig GOOGLE_FIRMWARE
 	bool "Google Firmware Drivers"
 	default n
 	help
-	  These firmware drivers are used by Google's servers.  They are
-	  only useful if you are working directly on one of their
-	  proprietary servers.  If in doubt, say "N".
+	  These firmware drivers are used by Google servers,
+	  Chromebooks and other devices using coreboot firmware.
+	  If in doubt, say "N".
 
 if GOOGLE_FIRMWARE
 
drivers/gpio/gpio-aspeed.c +26 -26

204 lines not on this page · raw message

drivers/gpio/gpiolib-acpi.c +11 -4
index e3ddc99c105d..13c6eee481da 100644
@@ -953,10 +953,17 @@ int acpi_dev_gpio_irq_get(struct acpi_device *adev, int index)
 			irq_flags = acpi_dev_get_irq_type(info.triggering,
 							  info.polarity);
 
-			/* Set type if specified and different than the current one */
-			if (irq_flags != IRQ_TYPE_NONE &&
-			    irq_flags != irq_get_trigger_type(irq))
-				irq_set_irq_type(irq, irq_flags);
+			/*
+			 * If the IRQ is not already in use then set type
+			 * if specified and different than the current one.
+			 */
+			if (can_request_irq(irq, irq_flags)) {
+				if (irq_flags != IRQ_TYPE_NONE &&
+				    irq_flags != irq_get_trigger_type(irq))
+					irq_set_irq_type(irq, irq_flags);
+			} else {
+				dev_dbg(&adev->dev, "IRQ %d already in use\n", irq);
+			}
 
 			return irq;
 		}
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +6 -0
index 0d39e386f6e9..0e1cacf73169 100644
@@ -389,6 +389,9 @@ amdgpu_connector_lcd_native_mode(struct drm_encoder *encoder)
 	    native_mode->vdisplay != 0 &&
 	    native_mode->clock != 0) {
 		mode = drm_mode_duplicate(dev, native_mode);
+		if (!mode)
+			return NULL;
+
 		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
 		drm_mode_set_name(mode);
 
@@ -403,6 +406,9 @@ amdgpu_connector_lcd_native_mode(struct drm_encoder *encoder)
 		 * simpler.
 		 */
 		mode = drm_cvt_mode(dev, native_mode->hdisplay, native_mode->vdisplay, 60, true, false, false);
+		if (!mode)
+			return NULL;
+
 		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
 		DRM_DEBUG_KMS("Adding cvt approximation of native panel mode %s\n", mode->name);
 	}
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c +10 -3
index ea764dd9245d..2975331a7b86 100644
@@ -524,10 +524,10 @@ static void gmc_v8_0_mc_program(struct amdgpu_device *adev)
 static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
 {
 	int r;
+	u32 tmp;
 
 	adev->gmc.vram_width = amdgpu_atombios_get_vram_width(adev);
 	if (!adev->gmc.vram_width) {
-		u32 tmp;
 		int chansize, numchan;
 
 		/* Get VRAM informations */
@@ -571,8 +571,15 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
 		adev->gmc.vram_width = numchan * chansize;
 	}
 	/* size in MB on si */
-	adev->gmc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
-	adev->gmc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+	tmp = RREG32(mmCONFIG_MEMSIZE);
+	/* some boards may have garbage in the upper 16 bits */
+	if (tmp & 0xffff0000) {
+		DRM_INFO("Probable bad vram size: 0x%08x\n", tmp);
+		if (tmp & 0xffff)
+			tmp &= 0xffff;
+	}
+	adev->gmc.mc_vram_size = tmp * 1024ULL * 1024ULL;
+	adev->gmc.real_vram_size = adev->gmc.mc_vram_size;
 
 	if (!(adev->flags & AMD_IS_APU)) {
 		r = amdgpu_device_resize_fb_bar(adev);
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c +12 -2
index 914c569ab8c1..cab3f5c4e2fc 100644
@@ -1086,11 +1086,21 @@ int analogix_dp_send_psr_spd(struct analogix_dp_device *dp,
 	if (!blocking)
 		return 0;
 
+	/*
+	 * db[1]!=0: entering PSR, wait for fully active remote frame buffer.
+	 * db[1]==0: exiting PSR, wait for either
+	 *  (a) ACTIVE_RESYNC - the sink "must display the
+	 *      incoming active frames from the Source device with no visible
+	 *      glitches and/or artifacts", even though timings may still be
+	 *      re-synchronizing; or
+	 *  (b) INACTIVE - the transition is fully complete.
+	 */
 	ret = readx_poll_timeout(analogix_dp_get_psr_status, dp, psr_status,
 		psr_status >= 0 &&
 		((vsc->db[1] && psr_status == DP_PSR_SINK_ACTIVE_RFB) ||
-		(!vsc->db[1] && psr_status == DP_PSR_SINK_INACTIVE)), 1500,
-		DP_TIMEOUT_PSR_LOOP_MS * 1000);
+		(!vsc->db[1] && (psr_status == DP_PSR_SINK_ACTIVE_RESYNC ||
+				 psr_status == DP_PSR_SINK_INACTIVE))),
+		1500, DP_TIMEOUT_PSR_LOOP_MS * 1000);
 	if (ret) {
 		dev_warn(dp->dev, "Failed to apply PSR %d\n", ret);
 		return ret;
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +28 -12
index b050fd1f3d20..5302dd90a7a5 100644
@@ -291,19 +291,10 @@ static void ge_b850v3_lvds_remove(void)
 	mutex_unlock(&ge_b850v3_lvds_dev_mutex);
 }
 
-static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
-				       const struct i2c_device_id *id)
+static int ge_b850v3_register(void)
 {
+	struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c;
 	struct device *dev = &stdp4028_i2c->dev;
-	int ret;
-
-	ret = ge_b850v3_lvds_init(dev);
-
-	if (ret)
-		return ret;
-
-	ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
-	i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
 
 	/* drm bridge initialization */
 	ge_b850v3_lvds_ptr->bridge.funcs = &ge_b850v3_lvds_funcs;
@@ -325,6 +316,27 @@ static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
 			"ge-b850v3-lvds-dp", ge_b850v3_lvds_ptr);
 }
 
+static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
+				       const struct i2c_device_id *id)
+{
+	struct device *dev = &stdp4028_i2c->dev;
+	int ret;
+
+	ret = ge_b850v3_lvds_init(dev);
+
+	if (ret)
+		return ret;
+
+	ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
+	i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
+
+	/* Only register after both bridges are probed */
+	if (!ge_b850v3_lvds_ptr->stdp2690_i2c)
+		return 0;
+
+	return ge_b850v3_register();
+}
+
 static int stdp4028_ge_b850v3_fw_remove(struct i2c_client *stdp4028_i2c)
 {
 	ge_b850v3_lvds_remove();
@@ -368,7 +380,11 @@ static int stdp2690_ge_b850v3_fw_probe(struct i2c_client *stdp2690_i2c,
 	ge_b850v3_lvds_ptr->stdp2690_i2c = stdp2690_i2c;
 	i2c_set_clientdata(stdp2690_i2c, ge_b850v3_lvds_ptr);
 
-	return 0;
+	/* Only register after both bridges are probed */
+	if (!ge_b850v3_lvds_ptr->stdp4028_i2c)
+		return 0;
+
+	return ge_b850v3_register();
 }
 
 static int stdp2690_ge_b850v3_fw_remove(struct i2c_client *stdp2690_i2c)
drivers/gpu/drm/bridge/ti-sn65dsi86.c +1 -0
index f1de4bb6558c..dbb4a374cb64 100644
@@ -115,6 +115,7 @@ static const struct regmap_config ti_sn_bridge_regmap_config = {
 	.val_bits = 8,
 	.volatile_table = &ti_sn_bridge_volatile_table,
 	.cache_type = REGCACHE_NONE,
+	.max_register = 0xFF,
 };
 
 static void ti_sn_bridge_write_u16(struct ti_sn_bridge *pdata,
drivers/gpu/drm/drm_panel_orientation_quirks.c +6 -0
index a950d5db211c..9d1bd8f491ad 100644
@@ -248,6 +248,12 @@ static const struct dmi_system_id orientation_data[] = {
 		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGM"),
 		},
 		.driver_data = (void *)&lcd1200x1920_rightside_up,
+	}, {	/* Lenovo Yoga Book X90F / X91F / X91L */
+		.matches = {
+		  /* Non exact match to match all versions */
+		  DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9"),
+		},
+		.driver_data = (void *)&lcd1200x1920_rightside_up,
 	}, {	/* OneGX1 Pro */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SYSTEM_MANUFACTURER"),
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c +6 -0
index 7085b08b1db4..7d155938e291 100644
@@ -471,6 +471,12 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
 		return -EINVAL;
 	}
 
+	if (args->stream_size > SZ_64K || args->nr_relocs > SZ_64K ||
+	    args->nr_bos > SZ_64K || args->nr_pmrs > 128) {
+		DRM_ERROR("submit arguments out of size limits\n");
+		return -EINVAL;
+	}
+
 	/*
 	 * Copy the command submission and bo array to kernel space in
 	 * one go, and do this outside of any locks.
drivers/gpu/drm/lima/lima_device.c +1 -0
index d86b8d81a483..155971c57b2d 100644
@@ -293,6 +293,7 @@ int lima_device_init(struct lima_device *ldev)
 	struct resource *res;
 
 	dma_set_coherent_mask(ldev->dev, DMA_BIT_MASK(32));
+	dma_set_max_seg_size(ldev->dev, UINT_MAX);
 
 	err = lima_clk_init(ldev);
 	if (err)
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +2 -2
index 58b0485dc375..72f487692adb 100644
@@ -88,8 +88,8 @@ static int _dpu_danger_signal_status(struct seq_file *s,
 					&status);
 	} else {
 		seq_puts(s, "\nSafe signal status:\n");
-		if (kms->hw_mdp->ops.get_danger_status)
-			kms->hw_mdp->ops.get_danger_status(kms->hw_mdp,
+		if (kms->hw_mdp->ops.get_safe_status)
+			kms->hw_mdp->ops.get_safe_status(kms->hw_mdp,
 					&status);
 	}
 	pm_runtime_put_sync(&kms->pdev->dev);
drivers/gpu/drm/nouveau/dispnv04/disp.c +2 -2
index dc64863b5fd8..f517b39aba56 100644
@@ -179,7 +179,7 @@ nv04_display_destroy(struct drm_device *dev)
 	nvif_notify_fini(&disp->flip);
 
 	nouveau_display(dev)->priv = NULL;
-	kfree(disp);
+	vfree(disp);
 
 	nvif_object_unmap(&drm->client.device.object);
 }
@@ -197,7 +197,7 @@ nv04_display_create(struct drm_device *dev)
 	struct nv04_display *disp;
 	int i, ret;
 
-	disp = kzalloc(sizeof(*disp), GFP_KERNEL);
+	disp = vzalloc(sizeof(*disp));
 	if (!disp)
 		return -ENOMEM;
 
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c +21 -16
index ea2e11771bca..105b4be467a3 100644
@@ -88,20 +88,13 @@ nvkm_pmu_fini(struct nvkm_subdev *subdev, bool suspend)
 	return 0;
 }
 
-static int
+static void
 nvkm_pmu_reset(struct nvkm_pmu *pmu)
 {
 	struct nvkm_device *device = pmu->subdev.device;
 
 	if (!pmu->func->enabled(pmu))
-		return 0;
-
-	/* Inhibit interrupts, and wait for idle. */
-	nvkm_wr32(device, 0x10a014, 0x0000ffff);
-	nvkm_msec(device, 2000,
-		if (!nvkm_rd32(device, 0x10a04c))
-			break;
-	);
+		return;
 
 	/* Reset. */
 	if (pmu->func->reset)
@@ -112,25 +105,37 @@ nvkm_pmu_reset(struct nvkm_pmu *pmu)
 		if (!(nvkm_rd32(device, 0x10a10c) & 0x00000006))
 			break;
 	);
-
-	return 0;
 }
 
 static int
 nvkm_pmu_preinit(struct nvkm_subdev *subdev)
 {
 	struct nvkm_pmu *pmu = nvkm_pmu(subdev);
-	return nvkm_pmu_reset(pmu);
+	nvkm_pmu_reset(pmu);
+	return 0;
 }
 
 static int
 nvkm_pmu_init(struct nvkm_subdev *subdev)
 {
 	struct nvkm_pmu *pmu = nvkm_pmu(subdev);
-	int ret = nvkm_pmu_reset(pmu);
-	if (ret == 0 && pmu->func->init)
-		ret = pmu->func->init(pmu);
-	return ret;
+	struct nvkm_device *device = pmu->subdev.device;
+
+	if (!pmu->func->init)
+		return 0;
+
+	if (pmu->func->enabled(pmu)) {
+		/* Inhibit interrupts, and wait for idle. */
+		nvkm_wr32(device, 0x10a014, 0x0000ffff);
+		nvkm_msec(device, 2000,
+			if (!nvkm_rd32(device, 0x10a04c))
+				break;
+		);
+
+		nvkm_pmu_reset(pmu);
+	}
+
+	return pmu->func->init(pmu);
 }
 
 static int
drivers/gpu/drm/panel/panel-innolux-p079zca.c +9 -1
index d92d1c98878c..df90b6607981 100644
@@ -509,6 +509,7 @@ static void innolux_panel_del(struct innolux_panel *innolux)
 static int innolux_panel_probe(struct mipi_dsi_device *dsi)
 {
 	const struct panel_desc *desc;
+	struct innolux_panel *innolux;
 	int err;
 
 	desc = of_device_get_match_data(&dsi->dev);
@@ -520,7 +521,14 @@ static int innolux_panel_probe(struct mipi_dsi_device *dsi)
 	if (err < 0)
 		return err;
 
-	return mipi_dsi_attach(dsi);
+	err = mipi_dsi_attach(dsi);
+	if (err < 0) {
+		innolux = mipi_dsi_get_drvdata(dsi);
+		innolux_panel_del(innolux);
+		return err;
+	}
+
+	return 0;
 }
 
 static int innolux_panel_remove(struct mipi_dsi_device *dsi)
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c +7 -1
index 3ac04eb8d0fe..1e7fecab72a9 100644
@@ -424,7 +424,13 @@ static int kingdisplay_panel_probe(struct mipi_dsi_device *dsi)
 	if (err < 0)
 		return err;
 
-	return mipi_dsi_attach(dsi);
+	err = mipi_dsi_attach(dsi);
+	if (err < 0) {
+		kingdisplay_panel_del(kingdisplay);
+		return err;
+	}
+
+	return 0;
 }
 
 static int kingdisplay_panel_remove(struct mipi_dsi_device *dsi)
drivers/gpu/drm/radeon/radeon_kms.c +24 -18

78 lines not on this page · raw message

drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c +57 -23

161 lines not on this page · raw message

drivers/hid/hid-apple.c +1 -1
index 07df64daf7da..efce31d035ef 100644
@@ -389,7 +389,7 @@ static int apple_input_configured(struct hid_device *hdev,
 
 	if ((asc->quirks & APPLE_HAS_FN) && !asc->fn_found) {
 		hid_info(hdev, "Fn key not found (Apple Wireless Keyboard clone?), disabling Fn key handling\n");
-		asc->quirks = 0;
+		asc->quirks &= ~APPLE_HAS_FN;
 	}
 
 	return 0;
drivers/hid/hid-input.c +6 -0
index ea4c97f5b073..749558aa27e7 100644
@@ -1288,6 +1288,12 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
 
 	input = field->hidinput->input;
 
+	if (usage->type == EV_ABS &&
+	    (((*quirks & HID_QUIRK_X_INVERT) && usage->code == ABS_X) ||
+	     ((*quirks & HID_QUIRK_Y_INVERT) && usage->code == ABS_Y))) {
+		value = field->logical_maximum - value;
+	}
+
 	if (usage->hat_min < usage->hat_max || usage->hat_dir) {
 		int hat_dir = usage->hat_dir;
 		if (!hat_dir)
drivers/hid/hid-uclogic-params.c +22 -9
index ed4ede52b017..191aba9f6b49 100644
@@ -65,7 +65,7 @@ static int uclogic_params_get_str_desc(__u8 **pbuf, struct hid_device *hdev,
 					__u8 idx, size_t len)
 {
 	int rc;
-	struct usb_device *udev = hid_to_usb_dev(hdev);
+	struct usb_device *udev;
 	__u8 *buf = NULL;
 
 	/* Check arguments */
@@ -74,6 +74,8 @@ static int uclogic_params_get_str_desc(__u8 **pbuf, struct hid_device *hdev,
 		goto cleanup;
 	}
 
+	udev = hid_to_usb_dev(hdev);
+
 	buf = kmalloc(len, GFP_KERNEL);
 	if (buf == NULL) {
 		rc = -ENOMEM;
@@ -449,7 +451,7 @@ static int uclogic_params_frame_init_v1_buttonpad(
 {
 	int rc;
 	bool found = false;
-	struct usb_device *usb_dev = hid_to_usb_dev(hdev);
+	struct usb_device *usb_dev;
 	char *str_buf = NULL;
 	const size_t str_len = 16;
 
@@ -459,6 +461,8 @@ static int uclogic_params_frame_init_v1_buttonpad(
 		goto cleanup;
 	}
 
+	usb_dev = hid_to_usb_dev(hdev);
+
 	/*
 	 * Enable generic button mode
 	 */
@@ -705,9 +709,9 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
 				     struct hid_device *hdev)
 {
 	int rc;
-	struct usb_device *udev = hid_to_usb_dev(hdev);
-	struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
-	__u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+	struct usb_device *udev;
+	struct usb_interface *iface;
+	__u8 bInterfaceNumber;
 	bool found;
 	/* The resulting parameters (noop) */
 	struct uclogic_params p = {0, };
@@ -721,6 +725,10 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
 		goto cleanup;
 	}
 
+	udev = hid_to_usb_dev(hdev);
+	iface = to_usb_interface(hdev->dev.parent);
+	bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
 	/* If it's not a pen interface */
 	if (bInterfaceNumber != 0) {
 		/* TODO: Consider marking the interface invalid */
@@ -832,10 +840,10 @@ int uclogic_params_init(struct uclogic_params *params,
 			struct hid_device *hdev)
 {
 	int rc;
-	struct usb_device *udev = hid_to_usb_dev(hdev);
-	__u8  bNumInterfaces = udev->config->desc.bNumInterfaces;
-	struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
-	__u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+	struct usb_device *udev;
+	__u8  bNumInterfaces;
+	struct usb_interface *iface;
+	__u8 bInterfaceNumber;
 	bool found;
 	/* The resulting parameters (noop) */
 	struct uclogic_params p = {0, };
@@ -846,6 +854,11 @@ int uclogic_params_init(struct uclogic_params *params,
 		goto cleanup;
 	}
 
+	udev = hid_to_usb_dev(hdev);
+	bNumInterfaces = udev->config->desc.bNumInterfaces;
+	iface = to_usb_interface(hdev->dev.parent);
+	bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
 	/*
 	 * Set replacement report descriptor if the original matches the
 	 * specified size. Otherwise keep interface unchanged.
drivers/hid/uhid.c +25 -4
index 8fe3efcb8327..fc06d8bb42e0 100644
@@ -28,11 +28,22 @@
 
 struct uhid_device {
 	struct mutex devlock;
+
+	/* This flag tracks whether the HID device is usable for commands from
+	 * userspace. The flag is already set before hid_add_device(), which
+	 * runs in workqueue context, to allow hid_add_device() to communicate
+	 * with userspace.
+	 * However, if hid_add_device() fails, the flag is cleared without
+	 * holding devlock.
+	 * We guarantee that if @running changes from true to false while you're
+	 * holding @devlock, it's still fine to access @hid.
+	 */
 	bool running;
 
 	__u8 *rd_data;
 	uint rd_size;
 
+	/* When this is NULL, userspace may use UHID_CREATE/UHID_CREATE2. */
 	struct hid_device *hid;
 	struct uhid_event input_buf;
 
@@ -63,9 +74,18 @@ static void uhid_device_add_worker(struct work_struct *work)
 	if (ret) {
 		hid_err(uhid->hid, "Cannot register HID device: error %d\n", ret);
 
-		hid_destroy_device(uhid->hid);
-		uhid->hid = NULL;
+		/* We used to call hid_destroy_device() here, but that's really
+		 * messy to get right because we have to coordinate with
+		 * concurrent writes from userspace that might be in the middle
+		 * of using uhid->hid.
+		 * Just leave uhid->hid as-is for now, and clean it up when
+		 * userspace tries to close or reinitialize the uhid instance.
+		 *
+		 * However, we do have to clear the ->running flag and do a
+		 * wakeup to make sure userspace knows that the device is gone.
+		 */
 		uhid->running = false;
+		wake_up_interruptible(&uhid->report_wait);
 	}
 }
 
@@ -474,7 +494,7 @@ static int uhid_dev_create2(struct uhid_device *uhid,
 	void *rd_data;
 	int ret;
 
-	if (uhid->running)
+	if (uhid->hid)
 		return -EALREADY;
 
 	rd_size = ev->u.create2.rd_size;
@@ -556,7 +576,7 @@ static int uhid_dev_create(struct uhid_device *uhid,
 
 static int uhid_dev_destroy(struct uhid_device *uhid)
 {
-	if (!uhid->running)
+	if (!uhid->hid)
 		return -EINVAL;
 
 	uhid->running = false;
@@ -565,6 +585,7 @@ static int uhid_dev_destroy(struct uhid_device *uhid)
 	cancel_work_sync(&uhid->worker);
 
 	hid_destroy_device(uhid->hid);
+	uhid->hid = NULL;
 	kfree(uhid->rd_data);
 
 	return 0;
drivers/hid/wacom_wac.c +35 -4
index e011839f19f8..de69ea5f5a4b 100644
@@ -2566,6 +2566,24 @@ static void wacom_wac_finger_slot(struct wacom_wac *wacom_wac,
 	}
 }
 
+static bool wacom_wac_slot_is_active(struct input_dev *dev, int key)
+{
+	struct input_mt *mt = dev->mt;
+	struct input_mt_slot *s;
+
+	if (!mt)
+		return false;
+
+	for (s = mt->slots; s != mt->slots + mt->num_slots; s++) {
+		if (s->key == key &&
+			input_mt_get_value(s, ABS_MT_TRACKING_ID) >= 0) {
+			return true;
+		}
+	}
+
+	return false;
+}
+
 static void wacom_wac_finger_event(struct hid_device *hdev,
 		struct hid_field *field, struct hid_usage *usage, __s32 value)
 {
@@ -2613,9 +2631,14 @@ static void wacom_wac_finger_event(struct hid_device *hdev,
 	}
 
 	if (usage->usage_index + 1 == field->report_count) {
-		if (equivalent_usage == wacom_wac->hid_data.last_slot_field &&
-		    wacom_wac->hid_data.confidence)
-			wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+		if (equivalent_usage == wacom_wac->hid_data.last_slot_field) {
+			bool touch_removed = wacom_wac_slot_is_active(wacom_wac->touch_input,
+				wacom_wac->hid_data.id) && !wacom_wac->hid_data.tipswitch;
+
+			if (wacom_wac->hid_data.confidence || touch_removed) {
+				wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+			}
+		}
 	}
 }
 
@@ -2631,6 +2654,10 @@ static void wacom_wac_finger_pre_report(struct hid_device *hdev,
 
 	hid_data->confidence = true;
 
+	hid_data->cc_report = 0;
+	hid_data->cc_index = -1;
+	hid_data->cc_value_index = -1;
+
 	for (i = 0; i < report->maxfield; i++) {
 		struct hid_field *field = report->field[i];
 		int j;
@@ -2664,11 +2691,14 @@ static void wacom_wac_finger_pre_report(struct hid_device *hdev,
 	    hid_data->cc_index >= 0) {
 		struct hid_field *field = report->field[hid_data->cc_index];
 		int value = field->value[hid_data->cc_value_index];
-		if (value)
+		if (value) {
 			hid_data->num_expected = value;
+			hid_data->num_received = 0;
+		}
 	}
 	else {
 		hid_data->num_expected = wacom_wac->features.touch_max;
+		hid_data->num_received = 0;
 	}
 }
 
@@ -2692,6 +2722,7 @@ static void wacom_wac_finger_report(struct hid_device *hdev,
 
 	input_sync(input);
 	wacom_wac->hid_data.num_received = 0;
+	wacom_wac->hid_data.num_expected = 0;
 
 	/* keep touch state for pen event */
 	wacom_wac->shared->touch_down = wacom_wac_finger_count_touches(wacom_wac);
drivers/hsi/hsi_core.c +1 -0
index a5f92e2889cb..a330f58d45fc 100644
@@ -102,6 +102,7 @@ struct hsi_client *hsi_new_client(struct hsi_port *port,
 	if (device_register(&cl->device) < 0) {
 		pr_err("hsi: failed to register client: %s\n", info->name);
 		put_device(&cl->device);
+		goto err;
 	}
 
 	return cl;
drivers/i2c/busses/i2c-designware-pcidrv.c +4 -4
index 05b35ac33ce3..735326e5eb8c 100644
@@ -37,10 +37,10 @@ enum dw_pci_ctl_id_t {
 };
 
 struct dw_scl_sda_cfg {
-	u32 ss_hcnt;
-	u32 fs_hcnt;
-	u32 ss_lcnt;
-	u32 fs_lcnt;
+	u16 ss_hcnt;
+	u16 fs_hcnt;
+	u16 ss_lcnt;
+	u16 fs_lcnt;
 	u32 sda_hold;
 };
 
drivers/i2c/busses/i2c-i801.c +5 -10
index a959062ded4f..4e6d0b722ddc 100644
@@ -785,6 +785,11 @@ static int i801_block_transaction(struct i801_priv *priv,
 	int result = 0;
 	unsigned char hostc;
 
+	if (read_write == I2C_SMBUS_READ && command == I2C_SMBUS_BLOCK_DATA)
+		data->block[0] = I2C_SMBUS_BLOCK_MAX;
+	else if (data->block[0] < 1 || data->block[0] > I2C_SMBUS_BLOCK_MAX)
+		return -EPROTO;
+
 	if (command == I2C_SMBUS_I2C_BLOCK_DATA) {
 		if (read_write == I2C_SMBUS_WRITE) {
 			/* set I2C_EN bit in configuration register */
@@ -798,16 +803,6 @@ static int i801_block_transaction(struct i801_priv *priv,
 		}
 	}
 
-	if (read_write == I2C_SMBUS_WRITE
-	 || command == I2C_SMBUS_I2C_BLOCK_DATA) {
-		if (data->block[0] < 1)
-			data->block[0] = 1;
-		if (data->block[0] > I2C_SMBUS_BLOCK_MAX)
-			data->block[0] = I2C_SMBUS_BLOCK_MAX;
-	} else {
-		data->block[0] = 32;	/* max for SMBus block reads */
-	}
-
 	/* Experience has shown that the block buffer can only be used for
 	   SMBus (not I2C) block transactions, even though the datasheet
 	   doesn't mention this limitation. */
drivers/i2c/busses/i2c-mpc.c +15 -8
index af349661fd76..8de8296d2583 100644
@@ -105,23 +105,30 @@ static irqreturn_t mpc_i2c_isr(int irq, void *dev_id)
 /* Sometimes 9th clock pulse isn't generated, and slave doesn't release
  * the bus, because it wants to send ACK.
  * Following sequence of enabling/disabling and sending start/stop generates
- * the 9 pulses, so it's all OK.
+ * the 9 pulses, each with a START then ending with STOP, so it's all OK.
  */
 static void mpc_i2c_fixup(struct mpc_i2c *i2c)
 {
 	int k;
-	u32 delay_val = 1000000 / i2c->real_clk + 1;
-
-	if (delay_val < 2)
-		delay_val = 2;
+	unsigned long flags;
 
 	for (k = 9; k; k--) {
 		writeccr(i2c, 0);
-		writeccr(i2c, CCR_MSTA | CCR_MTX | CCR_MEN);
+		writeb(0, i2c->base + MPC_I2C_SR); /* clear any status bits */
+		writeccr(i2c, CCR_MEN | CCR_MSTA); /* START */
+		readb(i2c->base + MPC_I2C_DR); /* init xfer */
+		udelay(15); /* let it hit the bus */
+		local_irq_save(flags); /* should not be delayed further */
+		writeccr(i2c, CCR_MEN | CCR_MSTA | CCR_RSTA); /* delay SDA */
 		readb(i2c->base + MPC_I2C_DR);
-		writeccr(i2c, CCR_MEN);
-		udelay(delay_val << 1);
+		if (k != 1)
+			udelay(5);
+		local_irq_restore(flags);
 	}
+	writeccr(i2c, CCR_MEN); /* Initiate STOP */
+	readb(i2c->base + MPC_I2C_DR);
+	udelay(15); /* Let STOP propagate */
+	writeccr(i2c, 0);
 }
 
 static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing)
drivers/infiniband/core/cma.c +9 -3
index ec9e9598894f..5e2b688e36fc 100644
@@ -820,6 +820,7 @@ static int cma_resolve_ib_dev(struct rdma_id_private *id_priv)
 	u16 pkey, index;
 	u8 p;
 	enum ib_port_state port_state;
+	int ret;
 	int i;
 
 	cma_dev = NULL;
@@ -838,9 +839,14 @@ static int cma_resolve_ib_dev(struct rdma_id_private *id_priv)
 
 			if (ib_get_cached_port_state(cur_dev->device, p, &port_state))
 				continue;
-			for (i = 0; !rdma_query_gid(cur_dev->device,
-						    p, i, &gid);
-			     i++) {
+
+			for (i = 0; i < cur_dev->device->port_data[p].immutable.gid_tbl_len;
+			     ++i) {
+				ret = rdma_query_gid(cur_dev->device, p, i,
+						     &gid);
+				if (ret)
+					continue;
+
 				if (!memcmp(&gid, dgid, sizeof(gid))) {
 					cma_dev = cur_dev;
 					sgid = gid;
drivers/infiniband/core/device.c +2 -1
index 256d379bba67..de66d7da1bf6 100644
@@ -2438,7 +2438,8 @@ int ib_find_gid(struct ib_device *device, union ib_gid *gid,
 		     ++i) {
 			ret = rdma_query_gid(device, port, i, &tmp_gid);
 			if (ret)
-				return ret;
+				continue;
+
 			if (!memcmp(&tmp_gid, gid, sizeof *gid)) {
 				*port_num = port;
 				if (index)
drivers/infiniband/hw/cxgb4/qp.c +1 -0
index 3ac08f47a8ce..b3fbafbf6655 100644
@@ -2469,6 +2469,7 @@ int c4iw_ib_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
 	memset(attr, 0, sizeof(*attr));
 	memset(init_attr, 0, sizeof(*init_attr));
 	attr->qp_state = to_ib_qp_state(qhp->attr.state);
+	attr->cur_qp_state = to_ib_qp_state(qhp->attr.state);
 	init_attr->cap.max_send_wr = qhp->attr.sq_num_entries;
 	init_attr->cap.max_recv_wr = qhp->attr.rq_num_entries;
 	init_attr->cap.max_send_sge = qhp->attr.sq_max_sges;
drivers/infiniband/hw/hns/hns_roce_main.c +4 -1
index f23a341400c0..70991649dc69 100644
@@ -279,6 +279,9 @@ static enum rdma_link_layer hns_roce_get_link_layer(struct ib_device *device,
 static int hns_roce_query_pkey(struct ib_device *ib_dev, u8 port, u16 index,
 			       u16 *pkey)
 {
+	if (index > 0)
+		return -EINVAL;
+
 	*pkey = PKEY_ID;
 
 	return 0;
@@ -359,7 +362,7 @@ static int hns_roce_mmap(struct ib_ucontext *context,
 		return rdma_user_mmap_io(context, vma,
 					 to_hr_ucontext(context)->uar.pfn,
 					 PAGE_SIZE,
-					 pgprot_noncached(vma->vm_page_prot));
+					 pgprot_device(vma->vm_page_prot));
 
 	/* vm_pgoff: 1 -- TPTR */
 	case 1:
drivers/infiniband/sw/rxe/rxe_opcode.c +1 -1
index 4cf11063e0b5..0f166d6d0ccb 100644
@@ -137,7 +137,7 @@ struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = {
 		}
 	},
 	[IB_OPCODE_RC_SEND_MIDDLE]		= {
-		.name	= "IB_OPCODE_RC_SEND_MIDDLE]",
+		.name	= "IB_OPCODE_RC_SEND_MIDDLE",
 		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK
 				| RXE_MIDDLE_MASK,
 		.length = RXE_BTH_BYTES,
drivers/iommu/io-pgtable-arm-v7s.c +5 -1
index 4cb394937700..909be90d2666 100644
@@ -244,13 +244,17 @@ static void *__arm_v7s_alloc_table(int lvl, gfp_t gfp,
 			__GFP_ZERO | ARM_V7S_TABLE_GFP_DMA, get_order(size));
 	else if (lvl == 2)
 		table = kmem_cache_zalloc(data->l2_tables, gfp);
+
+	if (!table)
+		return NULL;
+
 	phys = virt_to_phys(table);
 	if (phys != (arm_v7s_iopte)phys) {
 		/* Doesn't fit in PTE */
 		dev_err(dev, "Page table does not fit in PTE: %pa", &phys);
 		goto out_free;
 	}
-	if (table && !cfg->coherent_walk) {
+	if (!cfg->coherent_walk) {
 		dma = dma_map_single(dev, table, size, DMA_TO_DEVICE);
 		if (dma_mapping_error(dev, dma))
 			goto out_free;
drivers/iommu/io-pgtable-arm.c +5 -4
index ca51036aa53c..975237ca0326 100644
@@ -351,11 +351,12 @@ static int arm_lpae_init_pte(struct arm_lpae_io_pgtable *data,
 static arm_lpae_iopte arm_lpae_install_table(arm_lpae_iopte *table,
 					     arm_lpae_iopte *ptep,
 					     arm_lpae_iopte curr,
-					     struct io_pgtable_cfg *cfg)
+					     struct arm_lpae_io_pgtable *data)
 {
 	arm_lpae_iopte old, new;
+	struct io_pgtable_cfg *cfg = &data->iop.cfg;
 
-	new = __pa(table) | ARM_LPAE_PTE_TYPE_TABLE;
+	new = paddr_to_iopte(__pa(table), data) | ARM_LPAE_PTE_TYPE_TABLE;
 	if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_NS)
 		new |= ARM_LPAE_PTE_NSTABLE;
 
@@ -406,7 +407,7 @@ static int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova,
 		if (!cptep)
 			return -ENOMEM;
 
-		pte = arm_lpae_install_table(cptep, ptep, 0, cfg);
+		pte = arm_lpae_install_table(cptep, ptep, 0, data);
 		if (pte)
 			__arm_lpae_free_pages(cptep, tblsz, cfg);
 	} else if (!cfg->coherent_walk && !(pte & ARM_LPAE_PTE_SW_SYNC)) {
@@ -575,7 +576,7 @@ static size_t arm_lpae_split_blk_unmap(struct arm_lpae_io_pgtable *data,
 		__arm_lpae_init_pte(data, blk_paddr, pte, lvl, &tablep[i]);
 	}
 
-	pte = arm_lpae_install_table(tablep, ptep, blk_pte, cfg);
+	pte = arm_lpae_install_table(tablep, ptep, blk_pte, data);
 	if (pte != blk_pte) {
 		__arm_lpae_free_pages(tablep, tablesz, cfg);
 		/*
drivers/iommu/iova.c +1 -2
index 612cbf668adf..906582a21124 100644
@@ -64,8 +64,7 @@ static void free_iova_flush_queue(struct iova_domain *iovad)
 	if (!has_iova_flush_queue(iovad))
 		return;
 
-	if (timer_pending(&iovad->fq_timer))
-		del_timer(&iovad->fq_timer);
+	del_timer_sync(&iovad->fq_timer);
 
 	fq_destroy_all_entries(iovad);
 
drivers/md/persistent-data/dm-btree.c +5 -3
index 8aae0624a297..6383afb88f31 100644
@@ -83,14 +83,16 @@ void inc_children(struct dm_transaction_manager *tm, struct btree_node *n,
 }
 
 static int insert_at(size_t value_size, struct btree_node *node, unsigned index,
-		      uint64_t key, void *value)
-		      __dm_written_to_disk(value)
+		     uint64_t key, void *value)
+	__dm_written_to_disk(value)
 {
 	uint32_t nr_entries = le32_to_cpu(node->header.nr_entries);
+	uint32_t max_entries = le32_to_cpu(node->header.max_entries);
 	__le64 key_le = cpu_to_le64(key);
 
 	if (index > nr_entries ||
-	    index >= le32_to_cpu(node->header.max_entries)) {
+	    index >= max_entries ||
+	    nr_entries >= max_entries) {
 		DMERR("too many entries in btree node for insert");
 		__dm_unbless_for_disk(value);
 		return -ENOMEM;
drivers/md/persistent-data/dm-space-map-common.c +5 -0
index a213bf11738f..85853ab62971 100644
@@ -281,6 +281,11 @@ int sm_ll_lookup_bitmap(struct ll_disk *ll, dm_block_t b, uint32_t *result)
 	struct disk_index_entry ie_disk;
 	struct dm_block *blk;
 
+	if (b >= ll->nr_blocks) {
+		DMERR_LIMIT("metadata block out of bounds");
+		return -EINVAL;
+	}
+
 	b = do_div(index, ll->entries_per_block);
 	r = ll->load_ie(ll, index, &ie_disk);
 	if (r < 0)
drivers/media/common/saa7146/saa7146_fops.c +1 -1
index aabb830e7468..4b332ea98616 100644
@@ -525,7 +525,7 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
 		ERR("out of memory. aborting.\n");
 		kfree(vv);
 		v4l2_ctrl_handler_free(hdl);
-		return -1;
+		return -ENOMEM;
 	}
 
 	saa7146_video_uops.init(dev,vv);
drivers/media/common/videobuf2/videobuf2-dma-contig.c +4 -4
index 44cd0e530bbd..093ebe6f279f 100644
@@ -154,7 +154,7 @@ static void *vb2_dc_alloc(struct device *dev, unsigned long attrs,
 	buf->cookie = dma_alloc_attrs(dev, size, &buf->dma_addr,
 					GFP_KERNEL | gfp_flags, buf->attrs);
 	if (!buf->cookie) {
-		dev_err(dev, "dma_alloc_coherent of size %ld failed\n", size);
+		dev_err(dev, "dma_alloc_coherent of size %lu failed\n", size);
 		kfree(buf);
 		return ERR_PTR(-ENOMEM);
 	}
@@ -200,9 +200,9 @@ static int vb2_dc_mmap(void *buf_priv, struct vm_area_struct *vma)
 
 	vma->vm_ops->open(vma);
 
-	pr_debug("%s: mapped dma addr 0x%08lx at 0x%08lx, size %ld\n",
-		__func__, (unsigned long)buf->dma_addr, vma->vm_start,
-		buf->size);
+	pr_debug("%s: mapped dma addr 0x%08lx at 0x%08lx, size %lu\n",
+		 __func__, (unsigned long)buf->dma_addr, vma->vm_start,
+		 buf->size);
 
 	return 0;
 }
drivers/media/dvb-core/dmxdev.c +15 -3
index f14a872d1268..e58cb8434daf 100644
@@ -1413,7 +1413,7 @@ static const struct dvb_device dvbdev_dvr = {
 };
 int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *dvb_adapter)
 {
-	int i;
+	int i, ret;
 
 	if (dmxdev->demux->open(dmxdev->demux) < 0)
 		return -EUSERS;
@@ -1432,14 +1432,26 @@ int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *dvb_adapter)
 					    DMXDEV_STATE_FREE);
 	}
 
-	dvb_register_device(dvb_adapter, &dmxdev->dvbdev, &dvbdev_demux, dmxdev,
+	ret = dvb_register_device(dvb_adapter, &dmxdev->dvbdev, &dvbdev_demux, dmxdev,
 			    DVB_DEVICE_DEMUX, dmxdev->filternum);
-	dvb_register_device(dvb_adapter, &dmxdev->dvr_dvbdev, &dvbdev_dvr,
+	if (ret < 0)
+		goto err_register_dvbdev;
+
+	ret = dvb_register_device(dvb_adapter, &dmxdev->dvr_dvbdev, &dvbdev_dvr,
 			    dmxdev, DVB_DEVICE_DVR, dmxdev->filternum);
+	if (ret < 0)
[… more lines in the raw message]

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

drivers/media/dvb-frontends/dib8000.c +3 -1
index bb02354a48b8..d67f2dd997d0 100644

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

drivers/media/pci/b2c2/flexcop-pci.c +3 -0
index a9d9520a94c6..c9e6c7d66376 100644

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

drivers/media/pci/saa7146/hexium_gemini.c +6 -1
index f96226930670..86d4e2abed82 100644

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

drivers/media/pci/saa7146/hexium_orion.c +7 -1
index bf5e55348f15..31388597386a 100644

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

drivers/media/pci/saa7146/mxb.c +7 -1
index 952ea250feda..58fe4c1619ee 100644

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

drivers/media/platform/aspeed-video.c +7 -7
index 6dde49d9aa4c..1e0867016bf3 100644

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

drivers/media/platform/coda/imx-vdoa.c +5 -1
index 8bc0d8371819..dd6e2e320264 100644

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

drivers/media/platform/imx-pxp.c +2 -2
index 38d942322302..3c36cefddec7 100644

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

drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c +1 -1
index 1d82aa2b6017..dea0ee2cb724 100644

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

drivers/media/platform/qcom/venus/core.c +6 -2
index bbc430a00344..7b52d3e5d3f8 100644

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

drivers/media/platform/rcar-vin/rcar-csi2.c +16 -2
index e01f22bf826d..db3d5d463f53 100644

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

drivers/media/radio/si470x/radio-si470x-i2c.c +1 -2
index a972c0705ac7..76d39e2e8770 100644

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

drivers/media/rc/igorplugusb.c +3 -1
index b981f7290c1b..1e8276040ea5 100644

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

drivers/media/rc/mceusb.c +4 -4
index 31e56f4f3479..cfdd712e2adc 100644

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

drivers/media/rc/redrat3.c +11 -11
index aad9526f3754..c39227661047 100644

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

drivers/media/tuners/msi001.c +7 -0
index 78e6fd600d8e..44247049a319 100644

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

drivers/media/tuners/si2157.c +1 -1
index a39e1966816b..8db9f0eb98b5 100644

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

drivers/media/usb/b2c2/flexcop-usb.c +5 -5
index 198ddfb8d2b1..e51338d5eac0 100644

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

drivers/media/usb/b2c2/flexcop-usb.h +6 -6
index e86faa0e06ca..3dfd25fa4750 100644

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

drivers/media/usb/cpia2/cpia2_usb.c +2 -2
index 76aac06f9fb8..cba03b286473 100644

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

drivers/media/usb/dvb-usb/dib0700_core.c +0 -2
index ef62dd6c5ae4..07d5e9457877 100644

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

drivers/media/usb/dvb-usb/dw2102.c +215 -123

338 lines not on this page · raw message

drivers/media/usb/dvb-usb/m920x.c +11 -1
index d866a1990a7d..7282f6022655 100644

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

drivers/media/usb/em28xx/em28xx-cards.c +12 -6
index 3e96b4b711d7..bfca9d0a1fe1 100644

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

drivers/media/usb/em28xx/em28xx-core.c +2 -2
index af9216278024..308bc029099d 100644

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

drivers/media/usb/pvrusb2/pvrusb2-hdw.c +4 -4
index 4c991eae53cd..2f00679f65a0 100644

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

drivers/media/usb/s2255/s2255drv.c +2 -2
index 329ec8089592..7ed526306816 100644

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

drivers/media/usb/stk1160/stk1160-core.c +2 -2
index b4f8bc5db138..4e1698f78818 100644

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

drivers/media/usb/uvc/uvcvideo.h +1 -1
index 24e3d8c647e7..5f137400bebd 100644

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

drivers/media/v4l2-core/v4l2-ioctl.c +3 -1
index 98633fa5d46f..3012e8ecffb9 100644

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

drivers/misc/lattice-ecp3-config.c +6 -6
index 884485c3f723..3a0d2b052ed2 100644

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

drivers/misc/lkdtm/Makefile +1 -1
index 30c8ac24635d..4405fb2bc7a0 100644

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

drivers/mmc/core/sdio.c +3 -1
index 0bf33786fc5c..9e0791332ef3 100644

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

drivers/mmc/host/meson-mx-sdio.c +5 -0
index 360d523132bd..780552a86ec0 100644

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

drivers/mtd/nand/bbt.c +1 -1
index 044adf913854..64af6898131d 100644

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

drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c +25 -12
index 60f146920b9f..515094e253dc 100644

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

drivers/net/bonding/bond_main.c +3 -3
index a7eaf80f500c..ff50ccc7dceb 100644

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

drivers/net/can/softing/softing_cs.c +1 -1
index 2e93ee792373..e5c939b63fa6 100644

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

drivers/net/can/softing/softing_fw.c +6 -5
index 8f44fdd8804b..1c2afa17c26d 100644

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

drivers/net/can/xilinx_can.c +6 -1
index 0de39ebb3566..008d3d492bd1 100644

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

drivers/net/ethernet/broadcom/genet/bcmgenet.c +6 -4
index c2a1fa75b214..2affdddc12bf 100644

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

drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c +2 -1
index d04a6c163445..da8d10475a08 100644

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

drivers/net/ethernet/cortina/gemini.c +6 -3
index c9fb1ec625d8..a8a8b77c1611 100644

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

drivers/net/ethernet/freescale/fman/mac.c +16 -5
index 7ab8095db192..147126e79986 100644

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

drivers/net/ethernet/freescale/xgmac_mdio.c +2 -1
index c82c85ef5fb3..c37aea7ba850 100644

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

drivers/net/ethernet/i825xx/sni_82596.c +2 -1
index 6436a98c5953..90e237fdfbd0 100644

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

drivers/net/ethernet/mediatek/mtk_eth_soc.c +1 -1
index 48b395b9c15a..3351d4f9363a 100644

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

drivers/net/ethernet/mellanox/mlx5/core/cmd.c +7 -29
index bf091a6c0cd2..1a7aa078f351 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +7 -3
index dea884c94568..2465165cbea7 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c +2 -4
index bdc7f915d80e..101667c6b584 100644

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

drivers/net/ethernet/mellanox/mlxsw/pci.c +1 -0
index aa4fef789084..ff331251a019 100644

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

drivers/net/ethernet/rocker/rocker_ofdpa.c +2 -1
index 7072b249c8bd..815766620979 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet_main.c +6 -4
index f98318d93ce7..0ef806ea1832 100644

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

drivers/net/phy/marvell.c +6 -0
index 9dbe625ad447..a69317e94422 100644

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

drivers/net/phy/mdio_bus.c +1 -1
index bec73f0640d0..b0a439248ff6 100644

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

drivers/net/phy/phy-core.c +1 -1
index 9412669b579c..84064120918f 100644

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

drivers/net/ppp/ppp_generic.c +6 -1
index c6c41a7836c9..a085213dc2ea 100644

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

drivers/net/usb/mcs7830.c +10 -2
index 09bfa6a4dfbc..7e40e2e2f372 100644

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

drivers/net/wireless/ath/ar5523/ar5523.c +4 -0
index 4c57e79e5779..58e189ec672f 100644

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

drivers/net/wireless/ath/ath10k/htt_tx.c +3 -0
index c38e1963ebc0..f73ed1044390 100644

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

drivers/net/wireless/ath/ath10k/txrx.c +0 -2
index f46b9083bbf1..2c254f43790d 100644

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

drivers/net/wireless/ath/ath9k/hif_usb.c +7 -0
index 2ed98aaed6fb..c8c7afe0e343 100644

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

drivers/net/wireless/ath/wcn36xx/dxe.c +5 -0
index 4da25e84793b..c400261352bc 100644

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

drivers/net/wireless/ath/wcn36xx/smd.c +2 -2
index a7532028bf9d..74cf173c186f 100644

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

drivers/net/wireless/intel/iwlwifi/iwl-drv.c +9 -8
index e68366f248fe..83cb2ad03451 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +17 -0
index c942255aa1db..29ad7804d77a 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +27 -0
index a6e2a30eb310..52c6edc621ce 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/scan.c +1 -1
index 8aa567d7912c..3a58267d3d71 100644

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

drivers/net/wireless/marvell/mwifiex/sta_event.c +6 -2
index 5fdffb114913..fd1209386380 100644

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

drivers/net/wireless/marvell/mwifiex/usb.c +2 -1
index cb8a9ad40cfe..39cf713d5054 100644

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

drivers/net/wireless/rsi/rsi_91x_main.c +4 -0
index 441fda71f628..d92337169ee3 100644

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

drivers/net/wireless/rsi/rsi_91x_usb.c +7 -2
index 68ce3d2bc535..94bf2a7ca635 100644

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

drivers/net/wireless/rsi/rsi_usb.h +2 -0
index 8702f434b569..ad88f8c70a35 100644

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

drivers/of/base.c +8 -3
index 1d667eb730e1..b5c84607a74b 100644

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

drivers/parisc/pdc_stable.c +3 -1
index e090978518f1..4760f82def6e 100644

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

drivers/pci/controller/pci-aardvark.c +3 -1
index 9e208294946c..d2f8cd3a9568 100644

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

drivers/pci/controller/pci-mvebu.c +8 -0
index 5a2483e125a3..09af97083ac0 100644

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

drivers/pci/msi.c +18 -8
index 7dc10c2b4785..715c85d4e688 100644

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

drivers/pci/pci-bridge-emul.c +23 -4
index 3026346ccb18..0ca3b5eef53a 100644

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

drivers/pci/quirks.c +3 -0
index cf3986d4413f..2a4bc8df8563 100644

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

drivers/pcmcia/cs.c +3 -5
index e211e2619680..f70197154a36 100644

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

drivers/pcmcia/rsrc_nonstatic.c +6 -0
index 9e6922c08ef6..3a512513cb32 100644

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

drivers/phy/socionext/phy-uniphier-usb3ss.c +6 -4
index a7577e316baf..e63648b5c754 100644

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

drivers/power/supply/bq25890_charger.c +2 -2
index 9d1ec8d677de..5afe55119fe6 100644

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

drivers/regulator/qcom_smd-regulator.c +70 -30

100 lines not on this page · raw message

drivers/rpmsg/rpmsg_core.c +16 -4
index e330ec4dfc33..c1d4990beab0 100644

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

drivers/rtc/rtc-cmos.c +3 -0
index cb28bbdc9e17..c0dc03ffa817 100644

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

drivers/rtc/rtc-pxa.c +4 -0
index d2f1d8f754bf..cf8119b6d320 100644

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

drivers/scsi/lpfc/lpfc.h +1 -1
index 8943d42fc406..0b69f4f71377 100644

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

drivers/scsi/lpfc/lpfc_attr.c +40 -22

62 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_hbadisc.c +7 -1
index 0dc1d56ff470..0abce779fbb1 100644

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

drivers/scsi/lpfc/lpfc_sli.c +0 -6
index 51bab0979527..bd908dd27307 100644

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

drivers/scsi/scsi_debugfs.c +1 -0
index c19ea7ab54cb..d9a18124cfc9 100644

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

drivers/scsi/sr.c +1 -1
index 279dea628620..310da62cda26 100644

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

drivers/scsi/sr_vendor.c +2 -2
index b9db2ec6d036..996bccadd386 100644

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

drivers/scsi/ufs/tc-dwc-g210-pci.c +0 -1
index 67a6a61154b7..4e471484539d 100644

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

drivers/scsi/ufs/ufshcd-pltfrm.c +0 -2
index 8d40dc918f4e..10eec501f6b3 100644

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

drivers/scsi/ufs/ufshcd.c +7 -0
index 29c7a76d2c65..ebf7ae1ef70d 100644

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

drivers/soc/mediatek/mtk-scpsys.c +11 -4
index 75f25f08245f..71afa2a99b17 100644

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

drivers/spi/spi-meson-spifc.c +1 -0
index c7b039980291..cae934464f3d 100644

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

drivers/staging/greybus/audio_topology.c +15 -0
index a8cfea957868..3e2fbcd20598 100644

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

drivers/staging/media/hantro/hantro_drv.c +2 -1
index 32e5966ba5c5..58cf44045b39 100644

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

drivers/staging/rtl8192e/rtllib.h +1 -1
index 2eeb9a43734e..49bf3ad31f91 100644

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

drivers/staging/rtl8192e/rtllib_module.c +12 -4
index 64d9feee1f39..f00ac94b2639 100644

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

drivers/staging/rtl8192e/rtllib_softmac.c +4 -2
index f2f7529e7c80..4ff8fd694c60 100644

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

drivers/tee/tee_core.c +3 -1
index 0f16d9ffd8d1..85e0cef9e917 100644

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

drivers/tty/serial/amba-pl010.c +0 -3
index 2c37d11726ab..13f882e5e7b7 100644

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

drivers/tty/serial/amba-pl011.c +3 -24
index 6741d0f3daf9..0bd8c05d72d6 100644

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

drivers/tty/serial/atmel_serial.c +14 -0
index 8a909d556185..3b2c25bd2e06 100644

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

drivers/tty/serial/serial_core.c +4 -3
index aad640b9e3f4..7cc7bd8aca0f 100644

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

drivers/tty/serial/uartlite.c +1 -1
index 56066d93a65b..9a4049c894f7 100644

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

drivers/usb/core/hub.c +4 -1
index 69dd48f9507e..4cf0dc7f330d 100644

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

drivers/usb/gadget/function/f_fs.c +2 -2
index 3f5c21f7f990..2bea33b41553 100644

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

drivers/usb/host/uhci-platform.c +2 -1
index 70dbd95c3f06..be9e9db7cad1 100644

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

drivers/usb/misc/ftdi-elan.c +1 -0
index cdee3af33ad7..684800c66bb4 100644

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

drivers/w1/slaves/w1_ds28e04.c +6 -20
index 8a640f159078..06a9966f8c93 100644

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

fs/btrfs/backref.c +17 -4
index 7f644a58db51..c701a19fac53 100644

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

fs/btrfs/ctree.c +15 -4
index dac30b00d14b..822c615840e8 100644

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

fs/btrfs/inode.c +11 -0
index b859ed50cf46..7755a0362a3a 100644

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

fs/btrfs/qgroup.c +19 -0
index bb034e19a2a8..2ee61596164b 100644

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

fs/debugfs/file.c +1 -1
index a32c5c7dcfd8..da87615ad69a 100644

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

fs/dlm/lock.c +9 -0
index 18d81599522f..53500b555bfa 100644

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

fs/ext4/ioctl.c +0 -2
index ba13fbb443d5..9fa20f9ba52b 100644

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

fs/ext4/mballoc.c +8 -0
index b67ea979f0cf..0307702d114d 100644

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

fs/ext4/migrate.c +11 -12
index be4ee3dcc5cf..c5b2ea1a9372 100644

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

fs/ext4/super.c +19 -6
index f68dfef5939f..5bc7fd0240a1 100644

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

fs/f2fs/f2fs.h +11 -0
index 031a17bf52a2..5645502c156d 100644

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

fs/f2fs/gc.c +3 -0
index 4b6c36208f55..16abb017e497 100644

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

fs/f2fs/segment.h +2 -1
index 2034b9a07d63..15b343f65609 100644

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

fs/f2fs/super.c +44 -0

44 lines not on this page · raw message

fs/f2fs/sysfs.c +3 -1
index 3a5360e045cf..84bb37665093 100644

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

fs/fuse/file.c +1 -1
index 1de59998e0e7..5cf13196ce69 100644

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

fs/jffs2/file.c +25 -15
index f8fb89b10227..34880a4c2173 100644

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

fs/ubifs/super.c +0 -1
index 2cbc3c36f3a8..b37c6b1e3325 100644

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

include/acpi/actypes.h +8 -2
index 9373662cdb44..ff5fecff5116 100644

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

include/linux/hid.h +2 -0
index ad46ed41e883..d5f9bbf8afa5 100644

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

include/linux/mmzone.h +9 -0
index a90aba3d6afb..bc8a70a7c5a1 100644

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

include/net/inet_frag.h +9 -2
index bac79e817776..4cbd413e71a3 100644

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

include/net/ipv6_frag.h +2 -1
index a21e8b1381a1..e47a946bb77c 100644

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

include/net/sch_generic.h +5 -0
index 939fda8f9721..ae69059ba76d 100644

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

kernel/audit.c +17 -1
index d67fce9e3f8b..146edff0c73e 100644

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

kernel/rcu/tree_exp.h +1 -0
index 4c4d7683a4e5..173e3ce60790 100644

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

kernel/sched/cputime.c +2 -2
index 46ed4e1383e2..66188567778d 100644

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

kernel/sched/rt.c +18 -5
index 2dffb8762e16..28c82dee13ea 100644

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

kernel/trace/trace_kprobe.c +4 -1
index 5de084dab4fa..13ccf2f28987 100644

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

lib/test_meminit.c +1 -0
index 9742e5cb853a..ab00c79423a5 100644

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

mm/page_alloc.c +18 -1
index 283ac9d9f6dd..c3835915d115 100644

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

mm/shmem.c +21 -16
index b119c44435bf..aae2f408f905 100644

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

net/batman-adv/netlink.c +15 -15
index 7e052d6f759b..e59c5aa27ee0 100644

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

net/bluetooth/cmtp/core.c +1 -3
index 0a2d78e811cf..83eb84e8e688 100644

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

net/bluetooth/hci_core.c +1 -0
index c50e3e8afbd3..2edaa601df13 100644

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

net/bluetooth/hci_event.c +7 -1
index 31469ff084cd..40f1593651e8 100644

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

net/bridge/br_netfilter_hooks.c +3 -4
index 2371b833b2bc..480e4111b24c 100644

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

net/core/filter.c +5 -3
index 5ebc973ed4c5..92ce4d46f02e 100644

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

net/core/net-sysfs.c +3 -0
index 05b0c60bfba2..bcad7028bbf4 100644

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

net/core/net_namespace.c +3 -1
index cd1d40195e46..62a972f04cef 100644

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

net/ipv4/fib_semantics.c +17 -19
index ce4b28f01148..692ba6d6180f 100644

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

net/ipv4/inet_fragment.c +5 -3
index 10d31733297d..e0e8a65d561e 100644

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

net/ipv4/ip_fragment.c +2 -1
index cfeb8890f94e..fad803d2d711 100644

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

net/ipv4/ip_gre.c +3 -2
index c4989e5903e4..f67f1d27f565 100644

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

net/ipv4/netfilter/ipt_CLUSTERIP.c +4 -1
index 6bdb1ab8af61..63ebb87d8533 100644

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

net/ipv6/ip6_gre.c +4 -1
index 0cb8056d9800..5dbc280d4385 100644

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

net/mac80211/rx.c +1 -1
index 282bf336b15a..464029892478 100644

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

net/nfc/llcp_sock.c +5 -0
index a7e861eede2d..bd2174699af9 100644

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

net/sched/sch_generic.c +1 -0
index d973f8a15e11..ae5847de94c8 100644

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

net/unix/garbage.c +11 -3
index 12e2ddaf887f..d45d5366115a 100644

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

net/unix/scm.c +4 -2
index 8c40f2b32392..ce700b22ecce 100644

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

net/xfrm/xfrm_interface.c +12 -2
index 74e90d78c3b4..08343201513a 100644

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

net/xfrm/xfrm_policy.c +23 -1
index 32c816342797..404823c5eb7d 100644

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

net/xfrm/xfrm_user.c +19 -4
index 0cee2d3c6e45..42ff32700d68 100644

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

scripts/dtc/dtx_diff +2 -6
index 00fd4738a587..ae6c766a56cc 100755

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

security/selinux/hooks.c +10 -2
index 91f2ba0b225b..56418cf72069 100644

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

sound/core/jack.c +3 -0
index 8b209750c7a9..b00ae6f39f05 100644

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

sound/core/oss/pcm_oss.c +1 -1
index 9e31f4bd4382..841c0a12cc92 100644

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

sound/core/pcm.c +5 -1
index 9a72d641743d..f8ce961c28d6 100644

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

sound/core/seq/seq_queue.c +12 -2
index 71a6ea62c3be..4ff0b927230c 100644

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

sound/pci/hda/hda_codec.c +3 -0
index 326f95ce5ceb..c8847de8388f 100644

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

sound/soc/codecs/rt5663.c +9 -3
index 2943692f66ed..3610be1590fc 100644

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

sound/soc/mediatek/mt8173/mt8173-max98090.c +3 -0
index 22c00600c999..de1410c2c446 100644

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

sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c +2 -0
index 8717e87bfe26..6f8542329bab 100644

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

sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c +2 -0
index 9d4dd9721154..727ff0f7f20b 100644

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

sound/soc/mediatek/mt8173/mt8173-rt5650.c +2 -0
index ef6f23675286..21e7d4d3ded5 100644

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

sound/soc/samsung/idma.c +2 -0
index 65497cd477a5..47f6f5d70853 100644

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

sound/soc/uniphier/Kconfig +0 -2
index aa3592ee1358..ddfa6424c656 100644

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

tools/bpf/bpftool/Documentation/Makefile +0 -1
index 815ac9804aee..f79bba931cbf 100644

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

tools/bpf/bpftool/Makefile +0 -1
index 39bc6f0f4f0b..10ecd9dfeaf3 100644

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

tools/bpf/bpftool/main.c +2 -0
index 7d3cfb0ccbe6..4b03983acbef 100644

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

tools/include/nolibc/nolibc.h +22 -11
index 2551e9b71167..b8cecb66d28b 100644

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

tools/perf/util/debug.c +1 -1
index e55114f0336f..682146d04379 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.