Linux 5.4.211
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.211 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/pm/cpuidle.rst | 15 - Documentation/atomic_bitops.txt | 2 Documentation/devicetree/bindings/arm/qcom.yaml | 2 Documentation/firmware-guide/acpi/apei/einj.rst | 2 Makefile | 5 arch/arm/boot/dts/aspeed-ast2500-evb.dts | 2 arch/arm/boot/dts/aspeed-ast2600-evb.dts | 2 arch/arm/boot/dts/imx6ul.dtsi | 31 +-- arch/arm/boot/dts/qcom-mdm9615.dtsi | 1 arch/arm/boot/dts/qcom-pm8841.dtsi | 1 arch/arm/boot/dts/uniphier-pxs2.dtsi | 8 arch/arm/lib/findbit.S | 16 - arch/arm/mach-bcm/bcm_kona_smc.c | 1 arch/arm/mach-omap2/display.c | 3 arch/arm/mach-omap2/prm3xxx.c | 1 arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 arch/arm/mach-zynq/common.c | 1 arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts | 2 arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 2 arch/arm64/boot/dts/qcom/ipq8074.dtsi | 2 arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi | 8 arch/arm64/crypto/Kconfig | 1 arch/arm64/include/asm/processor.h | 3 arch/arm64/kernel/armv8_deprecated.c | 9 arch/ia64/include/asm/processor.h | 2 arch/mips/cavium-octeon/octeon-platform.c | 3 arch/mips/kernel/proc.c | 2 arch/mips/mm/tlbex.c | 4 arch/nios2/include/asm/entry.h | 3 arch/nios2/include/asm/ptrace.h | 2 arch/nios2/kernel/entry.S | 22 +- arch/nios2/kernel/signal.c | 3 arch/nios2/kernel/syscall_table.c | 1 arch/parisc/kernel/drivers.c | 9 arch/parisc/kernel/syscalls/syscall.tbl | 2 arch/powerpc/Makefile | 26 -- arch/powerpc/kernel/pci-common.c | 45 +++- arch/powerpc/kernel/prom.c | 7 arch/powerpc/mm/ptdump/shared.c | 6 arch/powerpc/platforms/Kconfig.cputype | 25 ++ arch/powerpc/platforms/cell/axon_msi.c | 1 arch/powerpc/platforms/cell/spufs/inode.c | 1 arch/powerpc/platforms/powernv/rng.c | 2 arch/powerpc/sysdev/fsl_pci.c | 8 arch/powerpc/sysdev/fsl_pci.h | 1 arch/powerpc/sysdev/xive/spapr.c | 1 arch/riscv/kernel/sys_riscv.c | 5 arch/riscv/kernel/traps.c | 4 arch/s390/kernel/machine_kexec_file.c | 18 + arch/um/os-Linux/skas/process.c | 17 + arch/x86/boot/Makefile | 2 arch/x86/boot/compressed/Makefile | 4 arch/x86/entry/vdso/Makefile | 2 arch/x86/kernel/pmem.c | 7 arch/x86/kernel/process.c | 9 arch/x86/kvm/emulate.c | 23 +- arch/x86/kvm/hyperv.c | 3 arch/x86/kvm/lapic.c | 4 arch/x86/kvm/svm.c | 2 arch/x86/kvm/vmx/nested.c | 76 ++++---- arch/x86/mm/numa.c | 4 arch/x86/platform/olpc/olpc-xo1-sci.c | 2 block/blk-mq-debugfs.c | 3 drivers/acpi/acpi_lpss.c | 3 drivers/acpi/cppc_acpi.c | 54 ++--- drivers/acpi/ec.c | 7 drivers/acpi/pci_mcfg.c | 3 drivers/acpi/property.c | 8 drivers/acpi/sleep.c | 8 drivers/ata/libata-eh.c | 1 drivers/atm/idt77252.c | 1 drivers/base/dd.c | 5 drivers/block/null_blk_main.c | 14 + drivers/bluetooth/hci_intel.c | 6 drivers/bus/hisi_lpc.c | 10 - drivers/clk/mediatek/reset.c | 4 drivers/clk/qcom/camcc-sdm845.c | 4 drivers/clk/qcom/clk-krait.c | 7 drivers/clk/qcom/gcc-ipq8074.c | 19 ++ drivers/clk/renesas/r9a06g032-clocks.c | 8 drivers/clk/rockchip/clk-rk3188.c | 1 drivers/crypto/hisilicon/sec/sec_algs.c | 14 - drivers/crypto/hisilicon/sec/sec_drv.h | 2 drivers/crypto/inside-secure/safexcel.c | 2 drivers/dma/sprd-dma.c | 5 drivers/firmware/arm_scpi.c | 61 +++--- drivers/fpga/altera-pr-ip-core.c | 2 drivers/gpio/gpiolib-of.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 24 +- drivers/gpu/drm/bridge/sil-sii8620.c | 4 drivers/gpu/drm/drm_gem.c | 4 drivers/gpu/drm/drm_mipi_dbi.c | 7 drivers/gpu/drm/exynos/exynos7_drm_decon.c | 17 + drivers/gpu/drm/mcde/mcde_dsi.c | 1 drivers/gpu/drm/mediatek/mtk_dpi.c | 33 --- drivers/gpu/drm/mediatek/mtk_dsi.c | 2 drivers/gpu/drm/meson/meson_drv.c | 5 drivers/gpu/drm/meson/meson_viu.c | 22 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c | 3 drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c | 2 drivers/gpu/drm/radeon/ni_dpm.c | 6 drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 10 - drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 drivers/gpu/drm/vc4/vc4_dsi.c | 6 drivers/gpu/drm/vc4/vc4_plane.c | 30 +-- drivers/hid/hid-alps.c | 2 drivers/hid/hid-cp2112.c | 5 drivers/hid/wacom_sys.c | 2 drivers/hid/wacom_wac.c | 72 ++++--- drivers/hwtracing/coresight/coresight.c | 1 drivers/hwtracing/intel_th/msu-sink.c | 3 drivers/hwtracing/intel_th/msu.c | 14 + drivers/hwtracing/intel_th/pci.c | 25 ++ drivers/i2c/busses/i2c-cadence.c | 10 - drivers/i2c/i2c-core-base.c | 3 drivers/i2c/muxes/i2c-mux-gpmux.c | 1 drivers/iio/light/isl29028.c | 2 drivers/infiniband/hw/hfi1/file_ops.c | 4 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 4 drivers/infiniband/sw/rxe/rxe_qp.c | 12 - drivers/infiniband/sw/siw/siw_cm.c | 7 drivers/iommu/dmar.c | 2 drivers/iommu/exynos-iommu.c | 6 drivers/iommu/qcom_iommu.c | 7 drivers/irqchip/irq-tegra.c | 10 - drivers/md/dm-raid.c | 4 drivers/md/dm-thin-metadata.c | 7 drivers/md/dm-thin.c | 4 drivers/md/dm-writecache.c | 2 drivers/md/dm.c | 5 drivers/md/raid10.c | 5 drivers/md/raid5.c | 2 drivers/media/pci/tw686x/tw686x-core.c | 18 - drivers/media/platform/mtk-mdp/mtk_mdp_ipi.h | 2 drivers/media/usb/hdpvr/hdpvr-video.c | 2 drivers/memstick/core/ms_block.c | 11 - drivers/mfd/max77620.c | 2 drivers/mfd/t7l66xb.c | 6 drivers/misc/cardreader/rtsx_pcr.c | 6 drivers/misc/cxl/irq.c | 1 drivers/mmc/host/cavium-octeon.c | 1 drivers/mmc/host/cavium-thunderx.c | 4 drivers/mmc/host/pxamci.c | 4 drivers/mmc/host/sdhci-of-at91.c | 9 drivers/mmc/host/sdhci-of-esdhc.c | 1 drivers/mtd/devices/st_spi_fsm.c | 8 drivers/mtd/maps/physmap-versatile.c | 2 drivers/mtd/nand/raw/meson_nand.c | 1 drivers/mtd/parsers/redboot.c | 1 drivers/mtd/sm_ftl.c | 2 drivers/net/can/pch_can.c | 8 drivers/net/can/rcar/rcar_can.c | 8 drivers/net/can/sja1000/sja1000.c | 7 drivers/net/can/spi/hi311x.c | 5 drivers/net/can/spi/mcp251x.c | 18 + drivers/net/can/sun4i_can.c | 9 drivers/net/can/usb/ems_usb.c | 2 drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 12 - drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 6 drivers/net/can/usb/usb_8dev.c | 7 drivers/net/dsa/microchip/ksz9477.c | 3 drivers/net/dsa/mv88e6060.c | 3 drivers/net/ethernet/broadcom/bgmac.c | 2 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 4 drivers/net/ethernet/freescale/fec_ptp.c | 6 drivers/net/ethernet/intel/i40e/i40e_main.c | 4 drivers/net/ethernet/intel/iavf/iavf.h | 1 drivers/net/ethernet/intel/iavf/iavf_adminq.c | 15 + drivers/net/ethernet/intel/iavf/iavf_main.c | 25 ++ drivers/net/ethernet/intel/ice/ice_switch.c | 2 drivers/net/ethernet/intel/igb/igb.h | 2 drivers/net/ethernet/intel/igb/igb_main.c | 12 + drivers/net/ethernet/intel/igc/igc_base.c | 10 - drivers/net/ethernet/intel/igc/igc_main.c | 3 drivers/net/ethernet/intel/igc/igc_phy.c | 6 drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 drivers/net/ethernet/moxa/moxart_ether.c | 20 +- drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c | 2 drivers/net/geneve.c | 3 drivers/net/netdevsim/bpf.c | 8 drivers/net/plip/plip.c | 2 drivers/net/usb/ax88179_178a.c | 16 - drivers/net/usb/usbnet.c | 8 drivers/net/wireless/ath/ath10k/snoc.c | 5 drivers/net/wireless/ath/ath9k/htc.h | 10 - drivers/net/wireless/ath/ath9k/htc_drv_init.c | 3 drivers/net/wireless/ath/wil6210/debugfs.c | 18 - drivers/net/wireless/intel/iwlegacy/4965-rs.c | 5 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 1 drivers/net/wireless/intersil/p54/main.c | 2 drivers/net/wireless/intersil/p54/p54spi.c | 3 drivers/net/wireless/mac80211_hwsim.c | 14 - drivers/net/wireless/marvell/libertas/if_usb.c | 1 drivers/net/wireless/mediatek/mt76/mac80211.c | 1 drivers/net/wireless/realtek/rtlwifi/debug.c | 8 drivers/ntb/test/ntb_tool.c | 8 drivers/nvme/target/tcp.c | 3 drivers/opp/core.c | 4 drivers/pci/controller/dwc/pcie-tegra194.c | 48 ++--- drivers/pci/quirks.c | 3 drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 drivers/pinctrl/qcom/pinctrl-msm8916.c | 4 drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c | 1 drivers/pinctrl/sunxi/pinctrl-sunxi.c | 7 drivers/platform/olpc/olpc-ec.c | 2 drivers/regulator/of_regulator.c | 6 drivers/remoteproc/qcom_wcnss.c | 10 - drivers/rpmsg/qcom_smd.c | 1 drivers/s390/char/zcore.c | 11 + drivers/s390/cio/vfio_ccw_drv.c | 14 - drivers/s390/scsi/zfcp_fc.c | 29 ++- drivers/s390/scsi/zfcp_fc.h | 6 drivers/s390/scsi/zfcp_fsf.c | 4 drivers/scsi/lpfc/lpfc_debugfs.c | 20 +- drivers/scsi/qla2xxx/qla_def.h | 4 drivers/scsi/qla2xxx/qla_gbl.h | 3 drivers/scsi/qla2xxx/qla_init.c | 34 +++ drivers/scsi/qla2xxx/qla_isr.c | 16 - drivers/scsi/qla2xxx/qla_mbx.c | 17 + drivers/scsi/qla2xxx/qla_nvme.c | 5 drivers/scsi/sg.c | 57 +++--- drivers/scsi/smartpqi/smartpqi_init.c | 4 drivers/soc/amlogic/meson-mx-socinfo.c | 1 drivers/soc/fsl/guts.c | 2 drivers/soc/qcom/qcom_aoss.c | 4 drivers/soundwire/bus_type.c | 8 drivers/spi/spi-rspi.c | 4 drivers/spi/spi-synquacer.c | 1 drivers/staging/rtl8192u/r8192U.h | 2 drivers/staging/rtl8192u/r8192U_dm.c | 38 +--- drivers/staging/rtl8192u/r8192U_dm.h | 2 drivers/tee/tee_core.c | 3 drivers/thermal/thermal_sysfs.c | 10 - drivers/tty/n_gsm.c | 90 ++++++++- drivers/tty/serial/8250/8250_dw.c | 3 drivers/tty/serial/mvebu-uart.c | 11 + drivers/tty/serial/ucc_uart.c | 2 drivers/tty/vt/vt.c | 2 drivers/usb/cdns3/gadget.c | 2 drivers/usb/core/hcd.c | 26 +- drivers/usb/gadget/function/uvc_video.c | 2 drivers/usb/gadget/legacy/inode.c | 1 drivers/usb/gadget/udc/Kconfig | 2 drivers/usb/host/ehci-ppc-of.c | 1 drivers/usb/host/ohci-nxp.c | 1 drivers/usb/host/ohci-ppc-of.c | 1 drivers/usb/host/xhci-tegra.c | 8 drivers/usb/host/xhci.h | 2 drivers/usb/renesas_usbhs/rza.c | 4 drivers/usb/serial/sierra.c | 3 drivers/usb/serial/usb-serial.c | 2 drivers/usb/serial/usb_wwan.c | 3 drivers/vfio/vfio.c | 1 drivers/video/fbdev/amba-clcd.c | 24 +- drivers/video/fbdev/arkfb.c | 9 drivers/video/fbdev/core/fbcon.c | 8 drivers/video/fbdev/i740fb.c | 9 drivers/video/fbdev/s3fb.c | 2 drivers/video/fbdev/sis/init.c | 4 drivers/video/fbdev/vt8623fb.c | 2 drivers/virt/vboxguest/vboxguest_linux.c | 9 drivers/watchdog/armada_37xx_wdt.c | 2 drivers/xen/xenbus/xenbus_dev_frontend.c | 4 fs/attr.c | 2 fs/btrfs/block-group.c | 1 fs/btrfs/disk-io.c | 14 + fs/btrfs/raid56.c | 74 ++++++- fs/btrfs/tree-log.c | 4 fs/cifs/smb2ops.c | 5 fs/erofs/decompressor.c | 16 + fs/eventpoll.c | 22 ++ fs/ext2/super.c | 12 + fs/ext4/inline.c | 3 fs/ext4/inode.c | 10 - fs/ext4/migrate.c | 4 fs/ext4/namei.c | 23 +- fs/ext4/resize.c | 11 + fs/ext4/xattr.c | 6 fs/ext4/xattr.h | 13 + fs/f2fs/node.c | 6 fs/fuse/control.c | 4 fs/fuse/inode.c | 6 fs/jbd2/commit.c | 2 fs/jbd2/transaction.c | 14 + fs/namei.c | 2 fs/nfs/nfs4idmap.c | 46 ++-- fs/nfs/nfs4proc.c | 20 +- fs/overlayfs/export.c | 2 fs/splice.c | 10 - include/acpi/cppc_acpi.h | 2 include/asm-generic/bitops/atomic.h | 6 include/linux/buffer_head.h | 25 ++ include/linux/kfifo.h | 2 include/linux/kvm_host.h | 28 ++ include/linux/mfd/t7l66xb.h | 1 include/linux/nmi.h | 2 include/linux/pci_ids.h | 2 include/linux/tpm_eventlog.h | 2 include/linux/usb/hcd.h | 1 include/linux/wait.h | 9 include/sound/core.h | 8 include/trace/events/spmi.h | 12 - include/uapi/linux/can/error.h | 5 kernel/irq/chip.c | 3 kernel/kprobes.c | 3 kernel/power/user.c | 13 + kernel/profile.c | 7 kernel/sched/rt.c | 15 - kernel/time/timekeeping.c | 7 kernel/trace/trace_events.c | 1 kernel/trace/trace_probe.c | 5 kernel/watchdog.c | 21 +- lib/list_debug.c | 12 + mm/mmap.c | 1 mm/mremap.c | 6 net/9p/client.c | 5 net/bluetooth/l2cap_core.c | 13 - net/can/j1939/socket.c | 5 net/can/j1939/transport.c | 8 net/core/devlink.c | 4 net/dccp/proto.c | 10 - net/ipv4/tcp_output.c | 30 ++- net/netfilter/nf_tables_api.c | 14 + net/rds/ib_recv.c | 1 net/rose/af_rose.c | 11 - net/rose/rose_route.c | 2 net/sched/cls_route.c | 12 + net/sunrpc/auth.c | 2 net/sunrpc/backchannel_rqst.c | 14 + net/vmw_vsock/af_vsock.c | 10 - scripts/Makefile.gcc-plugins | 2 scripts/faddr2line | 4 security/apparmor/apparmorfs.c | 2 security/apparmor/audit.c | 2 security/apparmor/domain.c | 2 security/apparmor/include/lib.h | 5 security/apparmor/include/policy.h | 2 security/apparmor/label.c | 13 - security/apparmor/mount.c | 8 security/selinux/ss/policydb.h | 2 sound/core/info.c | 6 sound/core/misc.c | 94 ++++++++++ sound/core/timer.c | 11 - sound/pci/hda/patch_cirrus.c | 1 sound/pci/hda/patch_conexant.c | 11 + sound/pci/hda/patch_realtek.c | 11 + sound/soc/codecs/da7210.c | 2 sound/soc/codecs/msm8916-wcd-digital.c | 46 ++-- sound/soc/codecs/wcd9335.c | 81 +++----- sound/soc/generic/audio-graph-card.c | 4 sound/soc/mediatek/mt6797/mt6797-mt6351.c | 6 sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 10 - sound/soc/mediatek/mt8173/mt8173-rt5650.c | 9 sound/soc/qcom/qdsp6/q6adm.c | 2 sound/usb/bcd2000/bcd2000.c | 3 tools/build/feature/test-libcrypto.c | 15 + tools/lib/bpf/libbpf.c | 9 tools/perf/util/genelf.c | 6 tools/perf/util/symbol-elf.c | 27 ++ tools/testing/selftests/bpf/test_btf.c | 2 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc | 1 tools/testing/selftests/timers/clocksource-switch.c | 6 tools/testing/selftests/timers/valid-adjtimex.c | 2 tools/thermal/tmon/sysfs.c | 24 +- tools/thermal/tmon/tmon.h | 3 tools/vm/slabinfo.c | 32 ++- virt/kvm/kvm_main.c | 10 - 368 files changed, 2211 insertions(+), 1113 deletions(-)
Al Viro (6):
nios2: page fault et.al. are *not* restartable syscalls...
nios2: don't leave NULLs in sys_call_table[]
nios2: traced syscall does need to check the syscall number
nios2: fix syscall restart checks
nios2: restarts apply only to the first sigframe we build...
nios2: add force_successful_syscall_return()
Alan Brady (1):
i40e: Fix to stop tx_timeout recovery if GLOBR fails
Alex Bee (1):
clk: rockchip: add sclk_mac_lbtest to rk3188_critical_clocks
Alexander Gordeev (1):
s390/zcore: fix race when reading from hardware system area
Alexander Lobakin (3):
ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() x86/olpc: fix 'logical not is only applied to the left hand side' iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
Alexander Shishkin (4):
intel_th: msu: Fix vmalloced buffers
intel_th: pci: Add Raptor Lake-S CPU support
intel_th: pci: Add Raptor Lake-S PCH support
intel_th: pci: Add Meteor Lake-P support
Alexander Stein (5):
ARM: dts: imx6ul: add missing properties for sram
ARM: dts: imx6ul: change operating-points to uint32-matrix
ARM: dts: imx6ul: fix csi node compatible
ARM: dts: imx6ul: fix lcdif node compatible
ARM: dts: imx6ul: fix qspi node compatible
Alexey Kodanev (2):
drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd()
Allen Ballway (1):
ALSA: hda/cirrus - support for iMac 12,1 model
Amadeusz Sławiński (1):
ALSA: info: Fix llseek return value when using callback
Ammar Faizi (1):
wifi: wil6210: debugfs: fix uninitialized variable use in wil_write_file_wmi()
Andrew Donnellan (1):
gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file
Aneesh Kumar K.V (1):
mm/mremap: hold the rmap lock in write mode when moving page table entries.
AngeloGioacchino Del Regno (1):
media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment
Anquan Wu (1):
libbpf: Fix the name of a reused map
Ansuel Smith (1):
clk: qcom: clk-krait: unlock spin after mux completion
Antonio Borneo (2):
genirq: Don't return error on missing optional irq_request_resources()
drm: adv7511: override i2c address of cec before accessing it
Arnaldo Carvalho de Melo (1):
genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
Artem Borisov (1):
HID: alps: Declare U1_UNICORN_LEGACY support
Arun Easi (1):
scsi: qla2xxx: Fix discovery issues in FC-AL topology
Arun Ramadoss (1):
net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry
Baokun Li (4):
ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
ext4: fix use-after-free in ext4_xattr_set_entry
ext4: correct max_inline_xattr_value_size computing
ext4: correct the misjudgment in ext4_iget_extra_inode
Benjamin Segall (1):
epoll: autoremove wakers even more aggressively
Biju Das (1):
spi: spi-rspi: Fix PIO fallback on RZ platforms
Bo-Chen Chen (1):
drm/mediatek: dpi: Remove output format of YUV
Brian Norris (1):
drm/rockchip: vop: Don't crash for invalid duplicate_state()
Celeste Liu (1):
riscv: mmap with PROT_WRITE but no PROT_READ is invalid
Chao Yu (1):
f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()
Chen Lin (1):
dpaa2-eth: trace the allocated address instead of page struct
Chen Zhongjin (2):
profiling: fix shift too large makes kernel panic
kprobes: Forbid probing on trampoline and BPF code areas
Cheng Xu (1):
RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event
Christophe JAILLET (11):
drm/rockchip: Fix an error handling path rockchip_dp_probe()
wifi: p54: Fix an error handling path in p54spi_probe()
mtd: rawnand: meson: Fix a potential double free issue
misc: rtsx: Fix an error handling path in rtsx_pci_probe()
intel_th: Fix a resource leak in an error handling path memstick/ms_block: Fix some incorrect memory allocation memstick/ms_block: Fix a memory leak
ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
mmc: pxamci: Fix another error handling path in pxamci_probe()
mmc: pxamci: Fix an error handling path in pxamci_probe()
cxl: Fix a memory leak in an error handling path
Christophe Leroy (3):
powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32 powerpc/32: Don't always pass -mcpu=powerpc to the compiler
Csókás Bence (1):
fec: Fix timer capture timing in fec_ptp_enable_pps()
Damien Le Moal (1):
ata: libata-eh: Add missing command name
Dan Aloni (1):
sunrpc: fix expiry of auth creds
Dan Carpenter (8):
wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi() selftests/bpf: fix a test for snprintf() overflow platform/olpc: Fix uninitialized data in debugfs write
null_blk: fix ida error handling in null_add_dev()
kfifo: fix kfifo_to_user() return type
NTB: ntb_tool: uninitialized heap data in tool_fn_write() xen/xenbus: fix return type in xenbus_file_read()
Daniel Starke (6):
tty: n_gsm: fix non flow control frames during mux flow off
tty: n_gsm: fix packet re-transmission without open control channel
tty: n_gsm: fix race condition in gsmld_write()
tty: n_gsm: fix wrong T1 retry count handling
tty: n_gsm: fix DM command
tty: n_gsm: fix missing corner cases in gsmld_poll()
Dave Stevenson (2):
drm/vc4: plane: Fix margin calculations for the right/bottom edges drm/vc4: dsi: Correct DSI divider calculations
David Collins (1):
spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
David Howells (1):
vfs: Check the truncate maximum size in inode_newsize_ok()
Dmitry Osipenko (1):
drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
Dom Cobley (1):
drm/vc4: plane: Remove subpixel positioning check
Duoming Zhou (3):
mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
staging: rtl8192u: Fix sleep in atomic context bug in dm_fsync_timer_callback
atm: idt77252: fix use-after-free bugs caused by tst_timer
Eric Dumazet (2):
net: rose: fix netdev reference changes
tcp: fix over estimation in sk_forced_mem_schedule()
Eric Farman (1):
vfio/ccw: Do not change FSM state in subchannel event
Eric Whitney (1):
ext4: fix extent status tree race in writeback error recovery path
Eugen Hristev (1):
mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
Fedor Pchelkin (2):
can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with netdev_warn_once()
can: j1939: j1939_session_destroy(): fix memory leak of skbs
Filipe Manana (1):
btrfs: fix lost error handling when looking up extended ref on log replay
Florian Fainelli (1):
tools/thermal: Fix possible path truncations
Florian Westphal (2):
netfilter: nf_tables: fix null deref due to zeroed list head
plip: avoid rcu debug splat
Francis Laniel (1):
arm64: Do not forget syscall when starting a new thread.
Frank Li (1):
usb: cdns3 fix use-after-free at workaround 2
Gao Xiang (1):
erofs: avoid consecutive detection for Highmem memory
Greg Kroah-Hartman (1):
Linux 5.4.211
Grzegorz Siwik (1):
ice: Ignore EEXIST when setting promisc mode
Guenter Roeck (1):
lib/list_debug.c: Detect uninitialized lists
Guillaume Ranquet (1):
drm/mediatek: dpi: Only enable dpi after the bridge is enabled
Guo Mengqi (1):
spi: synquacer: Add missing clk_disable_unprepare()
Hangyu Hua (3):
drm: bridge: sii8620: fix possible off-by-one
wifi: libertas: Fix possible refcount leak in if_usb_probe()
dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock
Hans de Goede (1):
ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks
Haoyue Xu (1):
RDMA/hns: Fix incorrect clearing of interrupt status register
Harshit Mogalapalli (1):
HID: cp2112: prevent a buffer overflow in cp2112_xfer()
Hector Martin (1):
locking/atomic: Make test_and_*_bit() ordered on failure
Helge Deller (3):
fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
parisc: Fix device names in /proc/iomem
parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
Huacai Chen (3):
MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH PCI/ACPI: Guard ARM64-specific mcfg_quirks
Ian Rogers (1):
perf symbol: Fail to read phdr workaround
Ido Schimmel (1):
devlink: Fix use-after-free after a failed reload
Ilpo Järvinen (1):
serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()
Jakub Kicinski (1):
netdevsim: Avoid allocation warnings triggered from user space
Jamal Hadi Salim (1):
net_sched: cls_route: disallow handle of 0
James Smart (1):
scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user input
Jan Kara (1):
ext2: Add more validity checks for inode counts
Jason A. Donenfeld (3):
fs: check FMODE_LSEEK to control internal pipe splicing
timekeeping: contribute wall clock to rng on time change
um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
Jens Wiklander (1):
tee: add overflow check in register_shm_helper()
Jeongik Cha (1):
wifi: mac80211_hwsim: fix race condition in pending packet
Jiachen Zhang (1):
ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()
Jian Zhang (1):
drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
Jianglei Nie (1):
RDMA/hfi1: fix potential memory leak in setup_base_ctxt()
Jiasheng Jiang (4):
drm: bridge: adv7511: Add check for mipi_dsi_driver_register
Bluetooth: hci_intel: Add check for platform_driver_register
intel_th: msu-sink: Potential dereference of null pointer
ASoC: codecs: da7210: add check for i2c_add_driver
Johan Hovold (2):
x86/pmem: Fix platform-device leak in error path
USB: serial: fix tty-port initialized comments
Johannes Berg (2):
wifi: mac80211_hwsim: add back erroneously removed cast
wifi: mac80211_hwsim: use 32-bit skb cookie
John Johansen (4):
apparmor: fix quiet_denied for file rules
apparmor: fix absroot causing audited secids to begin with =
apparmor: Fix failed mount permission check error message
apparmor: fix overlapping attachment computation
Jose Alonso (1):
Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP"
Jose Ignacio Tornos Martinez (1):
wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue
Josef Bacik (1):
btrfs: reset block group chunk force if we have to wait
Josh Poimboeuf (1):
scripts/faddr2line: Fix vmlinux detection on arm64
Jozef Martiniak (1):
gadgetfs: ep_io - wait until IRQ finishes
Juri Lelli (1):
wait: Fix __wait_event_hrtimeout for RT/DL tasks
Kiselev, Oleg (1):
ext4: avoid resizing to a partial cluster size
Krzysztof Kozlowski (6):
ARM: dts: ast2500-evb: fix board compatible
ARM: dts: ast2600-evb: fix board compatible
ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg
ARM: dts: qcom: pm8841: add required thermal-sensor-cells
ath10k: do not enforce interrupt trigger type
dt-bindings: arm: qcom: fix MSM8916 MTP compatibles
Kunihiko Hayashi (2):
ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
Lars-Peter Clausen (1):
i2c: cadence: Support PEC for SMBus block read
Laurent Dufour (1):
watchdog: export lockup_detector_reconfigure
Leo Li (1):
drm/amdgpu: Check BO's requested pinning domains against its preferred_domains
Li Lingfeng (1):
ext4: recover csum seed of tmp_inode after migrating to extents
Liang He (16):
ARM: OMAP2+: display: Fix refcount leak bug
ARM: shmobile: rcar-gen2: Increase refcount for new reference
regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
i2c: mux-gpmux: Add of_node_put() when breaking out of loop
gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
mmc: cavium-octeon: Add of_node_put() when breaking out of loop
mmc: cavium-thunderx: Add of_node_put() when breaking out of loop iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
ASoC: audio-graph-card: Add of_node_put() in fail path
video: fbdev: amba-clcd: Fix refcount leak bugs
drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors()
usb: host: ohci-ppc-of: Fix refcount leak bug
usb: renesas: Fix refcount leak bug
tty: serial: Fix refcount leak bug in ucc_uart.c
mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start
Lin Ma (1):
igb: Add lock to avoid data race
Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
Lukas Czerner (1):
ext4: make sure ext4_append() always allocates new block
Lukas Wunner (1):
usbnet: Fix linkwatch use-after-free on disconnect
Luo Meng (1):
dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
Maciej S. Szmigiero (1):
KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
Mahesh Rajashekhara (1):
scsi: smartpqi: Fix DMA direction for RAID requests
Manyi Li (1):
ACPI: PM: save NVS memory for Lenovo G40-45
Marc Kleine-Budde (1):
can: ems_usb: fix clang's -Wunaligned-access warning
Marco Pagani (1):
fpga: altera-pr-ip: fix unsigned comparison with less than zero
Markus Mayer (1):
thermal/tools/tmon: Include pthread and time headers in tmon.h
Matthias May (1):
geneve: do not use RT_TOS for IPv6 flowlabel
Maxim Mikityanskiy (1):
net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS
Meng Tang (2):
ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model
ALSA: hda/realtek: Add quirk for another Asus K42JZ model
Miaohe Lin (1):
mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
Miaoqian Lin (22):
meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
ARM: bcm: Fix refcount leak in bcm_kona_smc_init
ARM: OMAP2+: Fix refcount leak in omapdss_init_of
ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
cpufreq: zynq: Fix refcount leak in zynq_get_revision
soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register drm/mcde: Fix refcount leak in mcde_dsi_bind
mtd: maps: Fix refcount leak in of_flash_probe_versatile
mtd: maps: Fix refcount leak in ap_flash_init
mtd: partitions: Fix refcount leak in parse_redboot_of
usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
mfd: max77620: Fix refcount leak in max77620_initialise_fps powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader powerpc/xive: Fix refcount leak in xive_get_max_prio powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map
Michael Ellerman (3):
powerpc/powernv: Avoid crashing if rng is NULL powerpc/pci: Fix PHB numbering when using opal-phbid powerpc/pci: Fix get_phb_number() locking
Michael Grzeschik (1):
usb: gadget: uvc: call uvc uvcg_warn on completed status instead of uvcg_info
Michael Walle (1):
soc: fsl: guts: machine variable might be unset
Michal Suchanek (1):
kexec, KEYS, s390: Make use of built-in and secondary keyring for signature verification
Mike Snitzer (1):
dm: return early from dm_pr_call() if DM device is suspended
Miklos Szeredi (1):
fuse: limit nsec
Mikulas Patocka (6):
add barriers to buffer_uptodate and set_buffer_uptodate
md-raid10: fix KASAN warning
dm raid: fix address sanitizer warning in raid_resume dm raid: fix address sanitizer warning in raid_status dm writecache: set a default MAX_WRITEBACK_JOBS
rds: add missing barrier to release_refill
Ming Lei (1):
blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created
Narendra Hadke (1):
serial: mvebu-uart: uart2 error bits clearing
Nathan Chancellor (1):
MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0
Nick Desaulniers (2):
Makefile: link with -z noexecstack --no-warn-rwx-segments
x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments
Nick Hainke (1):
arm64: dts: mt7622: fix BPI-R64 WPS button
Nicolas Saenz Julienne (1):
nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
Niels Dossche (1):
media: hdpvr: fix error value returns in hdpvr_read
Nikita Travkin (1):
pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed
Nilesh Javali (1):
scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover"
Pablo Neira Ayuso (1):
netfilter: nf_tables: really skip inactive sets when allocating name
Pali Rohár (4):
PCI: Add defines for normal and subtractive PCI bridges powerpc/fsl-pci: Fix Class Code of PCIe Root Port
crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias
Pascal Terjan (1):
vboxguest: Do not use devm for irq
Pavan Chebbi (1):
PCI: Add ACS quirk for Broadcom BCM5750x NICs
Pavel Skripkin (1):
ath9k: fix use-after-free in ath9k_hif_usb_rx_cb
Peilin Ye (2):
vsock: Fix memory leak in vsock_connect()
vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout()
Pierre-Louis Bossart (1):
soundwire: bus_type: fix remove and shutdown support
Ping Cheng (2):
HID: wacom: Only report rotation for art pen
HID: wacom: Don't register pad_input for touch switch
Przemyslaw Patynowski (2):
iavf: Fix max_rate limiting
iavf: Fix adminq error handling
Qian Cai (1):
crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE
Qifu Zhang (1):
Documentation: ACPI: EINJ: Fix obsolete example
Qu Wenruo (3):
btrfs: reject log replay if there is unsupported RO compat flag
btrfs: only write the sectors in the vertical stripe which has data stripes
btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()
Quinn Tran (2):
scsi: qla2xxx: Turn off multi-queue for 8G adapters
scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection
Rafael J. Wysocki (2):
thermal: sysfs: Fix cooling_device_stats_setup() error code path
ACPI: CPPC: Do not prevent CPPC from working in the future
Ralph Siemsen (1):
clk: renesas: r9a06g032: Fix UART clkgrp bitsel
Randy Dunlap (1):
usb: gadget: udc: amd5536 depends on HAS_DMA
Rex-BC Chen (1):
clk: mediatek: reset: Fix written reset bit offset
Rob Clark (1):
drm/msm/mdp5: Fix global state lock backoff
Robert Marko (4):
arm64: dts: qcom: ipq8074: fix NAND node name
clk: qcom: ipq8074: fix NSS port frequency tables
clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
clk: qcom: ipq8074: dont disable gcc_sleep_clk_src
Roberto Sassu (1):
tools build: Switch to new openssl API for test-libcrypto
Russell King (Oracle) (1):
ARM: findbit: fix overflowing offset
Rustam Subkhankulov (2):
wifi: p54: add missing parentheses in p54_flush()
video: fbdev: sis: fix typos in SiS_GetModeID()
Sagi Grimberg (1):
nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown
Sai Prakash Ranjan (2):
irqchip/tegra: Fix overflow implicit truncation warnings drm/meson: Fix overflow implicit truncation warnings
Sakari Ailus (1):
ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool
Sam Protsenko (1):
iommu/exynos: Handle failed IOMMU device registration properly
Samuel Holland (2):
arm64: dts: allwinner: a64: orangepi-win: Fix LED node name
pinctrl: sunxi: Add I/O bias setting for H6 R-PIO
Sandor Bodo-Merle (1):
net: bgmac: Fix a BUG triggered by wrong bytes_compl
Sasha Neftin (1):
igc: Remove _I_PHY_ID checking
Schspa Shi (1):
vfio: Clear the caps->buf to NULL after free
Sean Christopherson (6):
KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case
KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case
KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value
KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
KVM: Add infrastructure and macro to mark VM as bugged
Sebastian Würl (1):
can: mcp251x: Fix race condition on receive interrupt
Sergei Antonov (2):
net: dsa: mv88e6060: prevent crash on an unused port
net: moxa: pass pdev instead of ndev to DMA functions
Sergey Shtylyov (1):
usb: host: xhci: use snprintf() in xhci_decode_trb()
Siddh Raman Pant (1):
x86/numa: Use cpumask_available instead of hardcoded NULL check
Sireesh Kodali (1):
remoteproc: qcom: wcnss: Fix handling of IRQs
Srinivas Kandagatla (2):
ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV
Steffen Maier (1):
scsi: zfcp: Fix missing auto port scan and thus missing target ports
Steve French (1):
smb3: check xattr value length earlier
Steven Rostedt (Google) (3):
tracing: Have filter accept "common_cpu" to be consistent selftests/kprobe: Do not test for GRP/ without event failures tracing/probes: Have kprobes and uprobes use $COMM too
Sudeep Holla (1):
firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails
Suzuki K Poulose (1):
coresight: Clear the connection field properly
Takashi Iwai (2):
ALSA: core: Add async signal helpers
ALSA: timer: Use deferred fasync helper
Tang Bin (2):
usb: xhci: tegra: Fix error check
opp: Fix error check in dev_pm_opp_attach_genpd()
Tetsuo Handa (2):
tty: vt: initialize unicode screen buffer
PM: hibernate: defer device probing when resuming from hibernation
Thadeu Lima de Souza Cascardo (3):
netfilter: nf_tables: do not allow SET_ID to refer to another table
netfilter: nf_tables: do not allow RULE_ID to refer to another chain
net_sched: cls_route: remove from list when handle is 0
Theodore Ts'o (1):
ext4: update s_overhead_clusters in the superblock during an on-line resize
Timur Tabi (1):
drm/nouveau: fix another off-by-one in nvbios_addr
Tom Rix (1):
apparmor: fix aa_label_asxprint return check
Tony Battersby (1):
scsi: sg: Allow waiting for commands to complete on removed device
Trond Myklebust (5):
NFSv4.1: Don't decrease the value of seq_nr_highest_sent NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly
NFSv4: Fix races in the legacy idmapper upcall NFSv4/pnfs: Fix a use-after-free bug in open
SUNRPC: Reinitialise the backchannel request buffers before reuse
Tyler Hicks (1):
net/9p: Initialize the iounit field during fid creation
Uwe Kleine-König (3):
mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
mfd: t7l66xb: Drop platform disable callback
dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed
Vidya Sagar (2):
PCI: tegra194: Fix Root Port interrupt handling
PCI: tegra194: Fix link up retry sequence
Vincent Mailhol (10):
can: pch_can: do not report txerr and rxerr during bus-off
can: rcar_can: do not report txerr and rxerr during bus-off
can: sja1000: do not report txerr and rxerr during bus-off
can: hi311x: do not report txerr and rxerr during bus-off
can: sun4i_can: do not report txerr and rxerr during bus-off
can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
can: usb_8dev: do not report txerr and rxerr during bus-off
can: error: specify the values of data[5..7] of CAN error frames
can: pch_can: pch_can_error(): initialize errc before using it
Vitaly Kuznetsov (2):
KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq
KVM: x86: Avoid theoretical NULL pointer dereference in kvm_irq_delivery_to_apic_fast()
Vladimir Zapolskiy (1):
clk: qcom: camcc-sdm845: Fix topology around titan_top power domain
Weitao Wang (1):
USB: HCD: Fix URB giveback issue in tasklet function
Wentao_Liang (1):
drivers:md:fix a potential use-after-free bug
William Dean (1):
watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe()
Wolfram Sang (2):
selftests: timers: valid-adjtimex: build fix for newer toolchains
selftests: timers: clocksource-switch: fix passing errors from child
Wyes Karny (1):
x86: Handle idle=nomwait cmdline properly for x86_idle
Xianting Tian (1):
RISC-V: Add fast call path of crash_kexec()
Xie Yongji (1):
fuse: Remove the control interface for virtio-fs
Xin Xiong (1):
apparmor: fix reference count leak in aa_pivotroot()
Xinlei Lee (1):
drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function
Xiu Jianfeng (2):
selinux: Add boundary check in put_entry()
apparmor: Fix memleak in aa_simple_write_to_buffer()
Xu Wang (1):
i2c: Fix a potential use after free
Yang Xu (1):
fs: Add missing umask strip in vfs_tmpfile
Yang Yingliang (1):
bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
Ye Bin (1):
ext4: avoid remove directory when directory is corrupted
Yonglong Li (1):
tcp: make retransmitted SKB fit into the send window
Yu Xiao (1):
nfp: ethtool: fix the display error of ethtool -m DEVNAME
Yuanzheng Song (1):
tools/vm/slabinfo: use alphabetic order when two values are equal
Yunhao Tian (1):
drm/mipi-dbi: align max_chunk to 2 in spi_transfer
Zhang Wensheng (1):
driver core: fix potential deadlock in __driver_attach
Zhang Xianwei (1):
NFSv4.1: RECLAIM_COMPLETE must handle EACCES
Zhang Yi (1):
jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction()
Zhengchao Shao (1):
crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq
Zheyu Ma (8):
ALSA: bcd2000: Fix a UAF bug on the error path of probing
iio: light: isl29028: Fix the warning in isl29028_remove()
media: tw686x: Register the irq at the end of probe
video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
video: fbdev: vt8623fb: Check the size of screen before memset_io()
video: fbdev: arkfb: Check the size of screen before memset_io()
video: fbdev: s3fb: Check the size of screen before memset_io()
video: fbdev: i740fb: Check the argument of i740_calc_vclk()
Zhihao Cheng (1):
jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
Zhouyi Zhou (1):
powerpc/64: Init jump labels before parse_early_param()
Zhu Yanjun (1):
RDMA/rxe: Fix error unwind in rxe_create_qp()
haibinzhang (张海斌) (1):
arm64: fix oops in concurrently setting insn_emulation sysctls
huhai (1):
ACPI: LPSS: Fix missing check in register_device_clock()
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/pm/cpuidle.rst +9 -6
@@ -676,8 +676,8 @@ the ``menu`` governor to be used on the systems that use the ``ladder`` governor by default this way, for example. The other kernel command line parameters controlling CPU idle time management -described below are only relevant for the *x86* architecture and some of -them affect Intel processors only. +described below are only relevant for the *x86* architecture and references +to ``intel_idle`` affect Intel processors only. The *x86* architecture support code recognizes three kernel command line options related to CPU idle time management: ``idle=poll``, ``idle=halt``,
@@ -699,10 +699,13 @@ idle, so it very well may hurt single-thread computations performance as well as energy-efficiency. Thus using it for performance reasons may not be a good idea at all.] -The ``idle=nomwait`` option disables the ``intel_idle`` driver and causes -``acpi_idle`` to be used (as long as all of the information needed by it is -there in the system's ACPI tables), but it is not allowed to use the -``MWAIT`` instruction of the CPUs to ask the hardware to enter idle states. +The ``idle=nomwait`` option prevents the use of ``MWAIT`` instruction of +the CPU to enter idle states. When this option is used, the ``acpi_idle`` +driver will use the ``HLT`` instruction instead of ``MWAIT``. On systems +running Intel processors, this option disables the ``intel_idle`` driver +and forces the use of the ``acpi_idle`` driver instead. Note that in either +case, ``acpi_idle`` driver will function only if all the information needed +by it is in the system's ACPI tables. In addition to the architecture-level kernel command line options affecting CPU idle time management, there are parameters affecting individual ``CPUIdle``
Documentation/atomic_bitops.txt +1 -1
@@ -59,7 +59,7 @@ Like with atomic_t, the rule of thumb is: - RMW operations that have a return value are fully ordered. - RMW operations that are conditional are unordered on FAILURE, - otherwise the above rules apply. In the case of test_and_{}_bit() operations, + otherwise the above rules apply. In the case of test_and_set_bit_lock(), if the bit in memory is unchanged by the operation then it is deemed to have failed.
Documentation/devicetree/bindings/arm/qcom.yaml +1 -1
@@ -112,8 +112,8 @@ properties: - const: qcom,msm8974 - items: - - const: qcom,msm8916-mtp/1 - const: qcom,msm8916-mtp + - const: qcom,msm8916-mtp/1 - const: qcom,msm8916 - items:
Documentation/firmware-guide/acpi/apei/einj.rst +1 -1
@@ -168,7 +168,7 @@ An error injection example:: 0x00000008 Memory Correctable 0x00000010 Memory Uncorrectable non-fatal # echo 0x12345000 > param1 # Set memory address for injection - # echo $((-1 << 12)) > param2 # Mask 0xfffffffffffff000 - anywhere in this page + # echo 0xfffffffffffff000 > param2 # Mask - anywhere in this page # echo 0x8 > error_type # Choose correctable memory error # echo 1 > error_inject # Inject now
Makefile +4 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 210 +SUBLEVEL = 211 EXTRAVERSION = NAME = Kleptomaniac Octopus
@@ -932,6 +932,9 @@ KBUILD_CFLAGS += $(KCFLAGS) KBUILD_LDFLAGS_MODULE += --build-id LDFLAGS_vmlinux += --build-id +KBUILD_LDFLAGS += -z noexecstack +KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments) + ifeq ($(CONFIG_STRIP_ASM_SYMS),y) LDFLAGS_vmlinux += $(call ld-option, -X,) endif
arch/arm/boot/dts/aspeed-ast2500-evb.dts +1 -1
@@ -5,7 +5,7 @@ / { model = "AST2500 EVB"; - compatible = "aspeed,ast2500"; + compatible = "aspeed,ast2500-evb", "aspeed,ast2500"; aliases { serial4 = &uart5;
arch/arm/boot/dts/aspeed-ast2600-evb.dts +1 -1
@@ -7,7 +7,7 @@ / { model = "AST2600 EVB"; - compatible = "aspeed,ast2600"; + compatible = "aspeed,ast2600-evb-a1", "aspeed,ast2600"; aliases { serial4 = &uart5;
arch/arm/boot/dts/imx6ul.dtsi +16 -15
@@ -62,20 +62,18 @@ clock-frequency = <696000000>; clock-latency = <61036>; /* two CLK32 periods */ #cooling-cells = <2>; - operating-points = < + operating-points = /* kHz uV */ - 696000 1275000 - 528000 1175000 - 396000 1025000 - 198000 950000 - >; - fsl,soc-operating-points = < + <696000 1275000>, + <528000 1175000>, + <396000 1025000>, + <198000 950000>; + fsl,soc-operating-points = /* KHz uV */ - 696000 1275000 - 528000 1175000 - 396000 1175000 - 198000 1175000 - >; + <696000 1275000>, + <528000 1175000>, + <396000 1175000>, + <198000 1175000>; clocks = <&clks IMX6UL_CLK_ARM>, <&clks IMX6UL_CLK_PLL2_BUS>, <&clks IMX6UL_CLK_PLL2_PFD2>,
@@ -157,6 +155,9 @@ ocram: sram@900000 { compatible = "mmio-sram"; reg = <0x00900000 0x20000>; + ranges = <0 0x00900000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; }; intc: interrupt-controller@a01000 {
@@ -966,7 +967,7 @@ }; csi: csi@21c4000 { - compatible = "fsl,imx6ul-csi", "fsl,imx7-csi"; + compatible = "fsl,imx6ul-csi"; reg = <0x021c4000 0x4000>; interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6UL_CLK_CSI>;
@@ -975,7 +976,7 @@ }; lcdif: lcdif@21c8000 { - compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; + compatible = "fsl,imx6ul-lcdif", "fsl,imx6sx-lcdif"; reg = <0x021c8000 0x4000>; interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6UL_CLK_LCDIF_PIX>,
@@ -996,7 +997,7 @@ qspi: spi@21e0000 { #address-cells = <1>; #size-cells = <0>; - compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi"; + compatible = "fsl,imx6ul-qspi"; reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>; reg-names = "QuadSPI", "QuadSPI-memory"; interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/qcom-mdm9615.dtsi +1 -0
@@ -323,6 +323,7 @@ pmicgpio: gpio@150 { compatible = "qcom,pm8018-gpio", "qcom,ssbi-gpio"; + reg = <0x150>; interrupt-controller; #interrupt-cells = <2>; gpio-controller;
arch/arm/boot/dts/qcom-pm8841.dtsi +1 -0
@@ -25,6 +25,7 @@ compatible = "qcom,spmi-temp-alarm"; reg = <0x2400>; interrupts = <4 0x24 0 IRQ_TYPE_EDGE_RISING>; + #thermal-sensor-cells = <0>; }; };
arch/arm/boot/dts/uniphier-pxs2.dtsi +4 -4
@@ -585,8 +585,8 @@ compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65a00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 134 4>, <0 135 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 134 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>; clock-names = "ref", "bus_early", "suspend";
@@ -681,8 +681,8 @@ compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65c00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 137 4>, <0 138 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 137 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>; clock-names = "ref", "bus_early", "suspend";
arch/arm/lib/findbit.S +8 -8
@@ -40,8 +40,8 @@ ENDPROC(_find_first_zero_bit_le) * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset) */ ENTRY(_find_next_zero_bit_le) - teq r1, #0 - beq 3b + cmp r2, r1 + bhs 3b ands ip, r2, #7 beq 1b @ If new byte, goto old routine ARM( ldrb r3, [r0, r2, lsr #3] )
@@ -81,8 +81,8 @@ ENDPROC(_find_first_bit_le) * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset) */ ENTRY(_find_next_bit_le) - teq r1, #0 - beq 3b + cmp r2, r1 + bhs 3b ands ip, r2, #7 beq 1b @ If new byte, goto old routine ARM( ldrb r3, [r0, r2, lsr #3] )
@@ -115,8 +115,8 @@ ENTRY(_find_first_zero_bit_be) ENDPROC(_find_first_zero_bit_be) ENTRY(_find_next_zero_bit_be) - teq r1, #0 - beq 3b + cmp r2, r1 + bhs 3b ands ip, r2, #7 beq 1b @ If new byte, goto old routine eor r3, r2, #0x18 @ big endian byte ordering
@@ -149,8 +149,8 @@ ENTRY(_find_first_bit_be) ENDPROC(_find_first_bit_be) ENTRY(_find_next_bit_be) - teq r1, #0 - beq 3b + cmp r2, r1 + bhs 3b ands ip, r2, #7 beq 1b @ If new byte, goto old routine eor r3, r2, #0x18 @ big endian byte ordering
arch/arm/mach-bcm/bcm_kona_smc.c +1 -0
@@ -54,6 +54,7 @@ int __init bcm_kona_smc_init(void)return -ENODEV ; prop_val =of_get_address (node,0 , &prop_size,NULL ); +of_node_put (node);if (!prop_val)return -EINVAL ;
arch/arm/mach-omap2/display.c +3 -0
@@ -211,6 +211,7 @@ static int __init omapdss_init_fbdev(void) node =of_find_node_by_name (NULL ,"omap4_padconf_global" );if (node) omap4_dsi_mux_syscon =syscon_node_to_regmap (node); +of_node_put (node);return 0 ; }
@@ -259,11 +260,13 @@ static int __init omapdss_init_of(void)if (!pdev) {pr_err ("Unable to find DSS platform device\n" ); +of_node_put (node);return -ENODEV ; } r =of_platform_populate (node,NULL ,NULL , &pdev->dev);put_device (&pdev->dev); +of_node_put (node);if (r) {pr_err ("Unable to populate DSS submodule devices\n" );return r;
arch/arm/mach-omap2/prm3xxx.c +1 -0
@@ -708,6 +708,7 @@ static int omap3xxx_prm_late_init(void) } irq_num =of_irq_get (np,0 ); +of_node_put (np);if (irq_num == -EPROBE_DEFER )return irq_num;
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +4 -1
@@ -125,6 +125,7 @@ static int regulator_quirk_notify(struct notifier_block *nb,list_for_each_entry_safe (pos, tmp, &quirk_list, list) {list_del (&pos->list); +of_node_put (pos->np);kfree (pos); }
@@ -174,11 +175,12 @@ static int __init rcar_gen2_regulator_quirk(void)memcpy (&quirk->i2c_msg, id->data,sizeof (quirk->i2c_msg)); quirk->id = id; - quirk->np = np; + quirk->np =of_node_get (np); quirk->i2c_msg.addr = addr; ret =of_irq_parse_one (np,0 , argsa);if (ret) {/* Skip invalid entry and continue */ +of_node_put (np);kfree (quirk);continue ; }
@@ -225,6 +227,7 @@ static int __init rcar_gen2_regulator_quirk(void) err_mem:list_for_each_entry_safe (pos, tmp, &quirk_list, list) {list_del (&pos->list); +of_node_put (pos->np);kfree (pos); }
arch/arm/mach-zynq/common.c +1 -0
@@ -77,6 +77,7 @@ static int __init zynq_get_revision(void) } zynq_devcfg_base =of_iomap (np,0 ); +of_node_put (np);if (!zynq_devcfg_base) {pr_err ("%s: Unable to map I/O memory\n" , __func__);return -1 ;
arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts +1 -1
@@ -78,7 +78,7 @@ leds { compatible = "gpio-leds"; - status { + led-0 { label = "orangepi:green:status"; gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ };
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +1 -1
@@ -49,7 +49,7 @@ wps { label = "wps"; linux,code = <KEY_WPS_BUTTON>; - gpios = <&pio 102 GPIO_ACTIVE_HIGH>; + gpios = <&pio 102 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/qcom/ipq8074.dtsi +1 -1
@@ -253,7 +253,7 @@ status = "disabled"; }; - qpic_nand: nand@79b0000 { + qpic_nand: nand-controller@79b0000 { compatible = "qcom,ipq8074-nand"; reg = <0x79b0000 0x10000>; #address-cells = <1>;
arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi +4 -4
@@ -544,8 +544,8 @@ compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65a00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 134 4>, <0 135 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 134 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>; clock-names = "ref", "bus_early", "suspend";
@@ -646,8 +646,8 @@ compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65c00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 137 4>, <0 138 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 137 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>; clock-names = "ref", "bus_early", "suspend";
arch/arm64/crypto/Kconfig +1 -0
@@ -59,6 +59,7 @@ config CRYPTO_GHASH_ARM64_CE select CRYPTO_HASH select CRYPTO_GF128MUL select CRYPTO_LIB_AES + select CRYPTO_AEAD config CRYPTO_CRCT10DIF_ARM64_CE tristate "CRCT10DIF digest algorithm using PMULL instructions"
arch/arm64/include/asm/processor.h +2 -1
@@ -184,8 +184,9 @@ void tls_preserve_current_state(void);static inline void start_thread_common (struct pt_regs *regs,unsigned long pc) { +s32 previous_syscall = regs->syscallno;memset (regs,0 ,sizeof (*regs)); -forget_syscall (regs); + regs->syscallno = previous_syscall; regs->pc = pc;if (system_uses_irq_prio_masking ())
arch/arm64/kernel/armv8_deprecated.c +5 -4
@@ -59,6 +59,7 @@ struct insn_emulation {static LIST_HEAD (insn_emulation);static int nr_insn_emulated__initdata ;static DEFINE_RAW_SPINLOCK (insn_emulation_lock); +static DEFINE_MUTEX (insn_emulation_mutex);static void register_emulation_hooks (struct insn_emulation_ops *ops) {
@@ -207,10 +208,10 @@ static int emulation_proc_handler(struct ctl_table *table, int write, loff_t *ppos) {int ret =0 ; -struct insn_emulation *insn = (struct insn_emulation *) table->data; + struct insn_emulation *insn = container_of(table->data, struct insn_emulation, current_mode);enum insn_emulation_mode prev_mode = insn->current_mode; - table->data = &insn->current_mode; +mutex_lock (&insn_emulation_mutex); ret =proc_dointvec_minmax (table, write, buffer, lenp, ppos);if (ret || !write || prev_mode == insn->current_mode)
@@ -223,7 +224,7 @@ static int emulation_proc_handler(struct ctl_table *table, int write,update_insn_emulation_mode (insn,INSN_UNDEF ); } ret: - table->data = insn; +mutex_unlock (&insn_emulation_mutex);return ret; }
@@ -247,7 +248,7 @@ static void __init register_insn_emulation_sysctl(void) sysctl->maxlen =sizeof (int ); sysctl->procname = insn->ops->name; - sysctl->data = insn; + sysctl->data = &insn->current_mode; sysctl->extra1 = &insn->min; sysctl->extra2 = &insn->max; sysctl->proc_handler = emulation_proc_handler;
arch/ia64/include/asm/processor.h +1 -1
@@ -552,7 +552,7 @@ ia64_get_irr(unsigned int vector) {unsigned int reg = vector /64 ;unsigned int bit = vector %64 ; -u64 irr; +unsigned long irr;switch (reg) {case 0 : irr =ia64_getreg (_IA64_REG_CR_IRR0);break ;
arch/mips/cavium-octeon/octeon-platform.c +2 -1
@@ -86,11 +86,12 @@ static void octeon2_usb_clocks_start(struct device *dev) "refclk-frequency", &clock_rate);if (i) {dev_err (dev,"No UCTL \"refclk-frequency\"\n" ); +of_node_put (uctl_node); goto exit; } i =of_property_read_string (uctl_node,"refclk-type" , &clock_type); - +of_node_put (uctl_node);if (!i &&strcmp ("crystal" , clock_type) ==0 ) is_crystal_clock = true; }
arch/mips/kernel/proc.c +1 -1
@@ -168,7 +168,7 @@ static void *c_start(struct seq_file *m, loff_t *pos) {unsigned long i = *pos; -return i <NR_CPUS ? (void *) (i +1 ) :NULL ; +return i < nr_cpu_ids ? (void *) (i +1 ) :NULL ; }static void *c_next (struct seq_file *m,void *v,loff_t *pos)
arch/mips/mm/tlbex.c +2 -2
@@ -629,7 +629,7 @@ static __maybe_unused void build_convert_pte_to_entrylo(u32 **p,return ; } -if (cpu_has_rixi && !!_PAGE_NO_EXEC) { +if (cpu_has_rixi && _PAGE_NO_EXEC !=0 ) {if (fill_includes_sw_bits) {UASM_i_ROTR (p, reg, reg,ilog2 (_PAGE_GLOBAL)); }else {
@@ -2568,7 +2568,7 @@ static void check_pabits(void)unsigned long entry;unsigned pabits, fillbits; -if (!cpu_has_rixi || !_PAGE_NO_EXEC) { +if (!cpu_has_rixi || _PAGE_NO_EXEC ==0 ) {/* * We'll only be making use of the fact that we can rotate bits * into the fill if the CPU supports RIXI, so don't bother
arch/nios2/include/asm/entry.h +2 -1
@@ -50,7 +50,8 @@ stw r13, PT_R13(sp) stw r14, PT_R14(sp) stw r15, PT_R15(sp) - stw r2, PT_ORIG_R2(sp) + movi r24, -1 + stw r24, PT_ORIG_R2(sp) stw r7, PT_ORIG_R7(sp) stw ra, PT_RA(sp)
arch/nios2/include/asm/ptrace.h +2 -0
@@ -74,6 +74,8 @@ extern void show_regs(struct pt_regs *); ((struct pt_regs *)((unsigned long )current_thread_info () +THREAD_SIZE )\ - 1) +#define force_successful_syscall_return () (current_pt_regs()->orig_r2 = -1) +int do_syscall_trace_enter (void );void do_syscall_trace_exit (void );#endif /* __ASSEMBLY__ */
arch/nios2/kernel/entry.S +15 -7
@@ -185,6 +185,7 @@ ENTRY(handle_system_call) ldw r5, PT_R5(sp) local_restart: + stw r2, PT_ORIG_R2(sp) /* Check that the requested system call is within limits */ movui r1, __NR_syscalls bgeu r2, r1, ret_invsyscall
@@ -192,7 +193,6 @@ local_restart: movhi r11, %hiadj(sys_call_table) add r1, r1, r11 ldw r1, %lo(sys_call_table)(r1) - beq r1, r0, ret_invsyscall /* Check if we are being traced */ GET_THREAD_INFO r11
@@ -213,6 +213,9 @@ local_restart: translate_rc_and_ret: movi r1, 0 bge r2, zero, 3f + ldw r1, PT_ORIG_R2(sp) + addi r1, r1, 1 + beq r1, zero, 3f sub r2, zero, r2 movi r1, 1 3:
@@ -255,9 +258,9 @@ traced_system_call: ldw r6, PT_R6(sp) ldw r7, PT_R7(sp) - /* Fetch the syscall function, we don't need to check the boundaries - * since this is already done. - */ + /* Fetch the syscall function. */ + movui r1, __NR_syscalls + bgeu r2, r1, traced_invsyscall slli r1, r2, 2 movhi r11,%hiadj(sys_call_table) add r1, r1, r11
@@ -276,6 +279,9 @@ traced_system_call: translate_rc_and_ret2: movi r1, 0 bge r2, zero, 4f + ldw r1, PT_ORIG_R2(sp) + addi r1, r1, 1 + beq r1, zero, 4f sub r2, zero, r2 movi r1, 1 4:
@@ -287,6 +293,11 @@ end_translate_rc_and_ret2: RESTORE_SWITCH_STACK br ret_from_exception + /* If the syscall number was invalid return ENOSYS */ +traced_invsyscall: + movi r2, -ENOSYS + br translate_rc_and_ret2 + Luser_return: GET_THREAD_INFO r11 /* get thread_info pointer */ ldw r10, TI_FLAGS(r11) /* get thread_info->flags */
@@ -336,9 +347,6 @@ external_interrupt: /* skip if no interrupt is pending */ beq r12, r0, ret_from_interrupt - movi r24, -1 - stw r24, PT_ORIG_R2(sp) - /* * Process an external hardware interrupt. */
arch/nios2/kernel/signal.c +2 -1
@@ -240,7 +240,7 @@ static int do_signal(struct pt_regs *regs)/* * If we were from a system call, check for system call restarting... */ -if (regs->orig_r2 >=0 ) { +if (regs->orig_r2 >=0 && regs->r1) { continue_addr = regs->ea; restart_addr = continue_addr -4 ; retval = regs->r2;
@@ -261,6 +261,7 @@ static int do_signal(struct pt_regs *regs) regs->ea = restart_addr;break ; } + regs->orig_r2 =-1 ; }if (get_signal (&ksig)) {
arch/nios2/kernel/syscall_table.c +1 -0
@@ -13,5 +13,6 @@#define __SYSCALL (nr, call) [nr] = (call),void *sys_call_table[__NR_syscalls] = { + [0 ... __NR_syscalls-1 ] = sys_ni_syscall, #include <asm/unistd.h> };
arch/parisc/kernel/drivers.c +4 -5
@@ -520,7 +520,6 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path) dev->id.hversion_rev = iodc_data[1 ] &0x0f ; dev->id.sversion = ((iodc_data[4 ] &0x0f ) <<16 ) | (iodc_data[5 ] <<8 ) | iodc_data[6 ]; - dev->hpa.name =parisc_pathname (dev); dev->hpa.start = hpa;/* This is awkward. The STI spec says that gfx devices may occupy * 32MB or 64MB. Unfortunately, we don't know how to tell whether
@@ -534,10 +533,10 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path) dev->hpa.end = hpa +0xfff ; } dev->hpa.flags =IORESOURCE_MEM ; - name =parisc_hardware_description (&dev->id); -if (name) { -strlcpy (dev->name, name,sizeof (dev->name)); - } + dev->hpa.name = dev->name; + name =parisc_hardware_description (&dev->id) ? :"unknown" ; +snprintf (dev->name,sizeof (dev->name),"%s [%s]" , + name,parisc_pathname (dev));/* Silently fail things like mouse ports which are subsumed within * the keyboard controller
arch/parisc/kernel/syscalls/syscall.tbl +1 -1
@@ -413,7 +413,7 @@ 412 32 utimensat_time64 sys_utimensat sys_utimensat 413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 -416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents +416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64 417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive
arch/powerpc/Makefile +1 -25
@@ -17,23 +17,6 @@ HAS_BIARCH := $(call cc-option-yn, -m32) # Set default 32 bits cross compilers for vdso and boot wrapper CROSS32_COMPILE ?= -ifeq ($(HAS_BIARCH),y) -ifeq ($(CROSS32_COMPILE),) -ifdef CONFIG_PPC32 -# These options will be overridden by any -mcpu option that the CPU -# or platform code sets later on the command line, but they are needed -# to set a sane 32-bit cpu target for the 64-bit cross compiler which -# may default to the wrong ISA. -KBUILD_CFLAGS += -mcpu=powerpc -KBUILD_AFLAGS += -mcpu=powerpc -endif -endif -endif - -ifdef CONFIG_PPC_BOOK3S_32 -KBUILD_CFLAGS += -mcpu=powerpc -endif - # If we're on a ppc/ppc64/ppc64le machine use that defconfig, otherwise just use # ppc64_defconfig because we have nothing better to go on. uname := $(shell uname -m)
@@ -192,6 +175,7 @@ endif endif CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) +AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) # Altivec option not allowed with e500mc64 in GCC. ifdef CONFIG_ALTIVEC
@@ -202,14 +186,6 @@ endif CFLAGS-$(CONFIG_E5500_CPU) += $(E5500_CPU) CFLAGS-$(CONFIG_E6500_CPU) += $(call cc-option,-mcpu=e6500,$(E5500_CPU)) -ifdef CONFIG_PPC32 -ifdef CONFIG_PPC_E500MC -CFLAGS-y += $(call cc-option,-mcpu=e500mc,-mcpu=powerpc) -else -CFLAGS-$(CONFIG_E500) += $(call cc-option,-mcpu=8540 -msoft-float,-mcpu=powerpc) -endif -endif - asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1) KBUILD_CPPFLAGS += -I $(srctree)/arch/$(ARCH) $(asinstr)
arch/powerpc/kernel/pci-common.c +31 -14
82 lines not on this page · raw message
arch/powerpc/kernel/prom.c +7 -0
@@ -740,6 +740,13 @@ void __init early_init_devtree(void *params)of_scan_flat_dt (early_init_dt_scan_root,NULL );of_scan_flat_dt (early_init_dt_scan_memory_ppc,NULL ); +/* +* As generic code authors expect to be able to use static keys +* in early_param() handlers, we initialize the static keys just +* before parsing early params (it's fine to call jump_label_init() +* more than once). +*/ +jump_label_init ();parse_early_param ();/* make sure we've parsed cmdline for mem= before this */
arch/powerpc/mm/ptdump/shared.c +3 -3
@@ -17,9 +17,9 @@ static const struct flag_info flag_array[] = { .clear = " ", }, { .mask = _PAGE_RW, - .val = _PAGE_RW, - .set = "rw", - .clear = "r ", + .val = 0, + .set = "r ", + .clear = "rw", }, { .mask = _PAGE_EXEC, .val = _PAGE_EXEC,
arch/powerpc/platforms/Kconfig.cputype +20 -5
@@ -118,9 +118,9 @@ config GENERIC_CPU depends on PPC64 && CPU_LITTLE_ENDIAN select ARCH_HAS_FAST_MULTIPLIER -config GENERIC_CPU +config POWERPC_CPU bool "Generic 32 bits powerpc" - depends on PPC32 && !PPC_8xx + depends on PPC32 && !PPC_8xx && !PPC_85xx config CELL_CPU bool "Cell Broadband Engine"
@@ -151,11 +151,11 @@ config POWER9_CPU config E5500_CPU bool "Freescale e5500" - depends on E500 + depends on PPC64 && E500 config E6500_CPU bool "Freescale e6500" - depends on E500 + depends on PPC64 && E500 config 860_CPU bool "8xx family"
@@ -174,11 +174,23 @@ config G4_CPU depends on PPC_BOOK3S_32 select ALTIVEC +config E500_CPU + bool "e500 (8540)" + depends on PPC_85xx && !PPC_E500MC + +config E500MC_CPU + bool "e500mc" + depends on PPC_85xx && PPC_E500MC + +config TOOLCHAIN_DEFAULT_CPU + bool "Rely on the toolchain's implicit default CPU" + depends on PPC32 + endchoice config TARGET_CPU_BOOL bool - default !GENERIC_CPU + default !GENERIC_CPU && !TOOLCHAIN_DEFAULT_CPU config TARGET_CPU string
@@ -193,6 +205,9 @@ config TARGET_CPU default "e300c2" if E300C2_CPU default "e300c3" if E300C3_CPU default "G4" if G4_CPU + default "8540" if E500_CPU + default "e500mc" if E500MC_CPU + default "powerpc" if POWERPC_CPU config PPC_BOOK3S def_bool y
arch/powerpc/platforms/cell/axon_msi.c +1 -0
@@ -226,6 +226,7 @@ static int setup_msi_msg_address(struct pci_dev *dev, struct msi_msg *msg)if (!prop) {dev_dbg (&dev->dev,"axon_msi: no msi-address-(32|64) properties found\n" ); +of_node_put (dn);return -ENOENT ; }
arch/powerpc/platforms/cell/spufs/inode.c +1 -0
@@ -671,6 +671,7 @@ spufs_init_isolated_loader(void)return ; loader =of_get_property (dn,"loader" , &size); +of_node_put (dn);if (!loader)return ;
arch/powerpc/platforms/powernv/rng.c +2 -0
@@ -63,6 +63,8 @@ int powernv_get_random_real_mode(unsigned long *v)struct powernv_rng *rng; rng =raw_cpu_read (powernv_rng); +if (!rng) +return 0 ; *v =rng_whiten (rng,__raw_rm_readq (rng->regs_real));
arch/powerpc/sysdev/fsl_pci.c +8 -0
@@ -520,6 +520,7 @@ int fsl_add_bridge(struct platform_device *pdev, int is_primary)struct resource rsrc;const int *bus_range;u8 hdr_type, progif; +u32 class_code;struct device_node *dev;struct ccsr_pci __iomem *pci;u16 temp;
@@ -593,6 +594,13 @@ int fsl_add_bridge(struct platform_device *pdev, int is_primary)PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS ;if (fsl_pcie_check_link (hose)) hose->indirect_type |=PPC_INDIRECT_TYPE_NO_PCIE_LINK ; +/* Fix Class Code to PCI_CLASS_BRIDGE_PCI_NORMAL for pre-3.0 controller */ +if (in_be32 (&pci->block_rev1) <PCIE_IP_REV_3_0 ) { +early_read_config_dword (hose,0 ,0 ,PCIE_FSL_CSR_CLASSCODE , &class_code); + class_code &=0xff ; + class_code |=PCI_CLASS_BRIDGE_PCI_NORMAL <<8 ; +early_write_config_dword (hose,0 ,0 ,PCIE_FSL_CSR_CLASSCODE , class_code); + } }else {/* * Set PBFR(PCI Bus Function Register)[10] = 1 to
arch/powerpc/sysdev/fsl_pci.h +1 -0
@@ -18,6 +18,7 @@ struct platform_device;#define PCIE_LTSSM 0x0404/* PCIE Link Training and Status */ #define PCIE_LTSSM_L0 0x16/* L0 state */ +#define PCIE_FSL_CSR_CLASSCODE 0x474/* FSL GPEX CSR */ #define PCIE_IP_REV_2_2 0x02080202/* PCIE IP block version Rev2.2 */ #define PCIE_IP_REV_3_0 0x02080300/* PCIE IP block version Rev3.0 */ #define PIWAR_EN 0x80000000/* Enable */
arch/powerpc/sysdev/xive/spapr.c +1 -0
@@ -683,6 +683,7 @@ static bool xive_get_max_prio(u8 *max_prio) } reg =of_get_property (rootdn,"ibm,plat-res-int-priorities" , &len); +of_node_put (rootdn);if (!reg) {pr_err ("Failed to read 'ibm,plat-res-int-priorities' property\n" );return false;
arch/riscv/kernel/sys_riscv.c +2 -3
@@ -18,9 +18,8 @@ static long riscv_sys_mmap(unsigned long addr, unsigned long len,if (unlikely (offset & (~PAGE_MASK >> page_shift_offset)))return -EINVAL ; -if ((prot &PROT_WRITE ) && (prot &PROT_EXEC )) -if (unlikely (!(prot &PROT_READ ))) -return -EINVAL ; +if (unlikely ((prot &PROT_WRITE ) && !(prot &PROT_READ ))) +return -EINVAL ;return ksys_mmap_pgoff (addr, len, prot, flags, fd, offset >> (PAGE_SHIFT - page_shift_offset));
arch/riscv/kernel/traps.c +4 -0
@@ -15,6 +15,7 @@#include <linux/mm.h> #include <linux/module.h> #include <linux/irq.h> +#include <linux/kexec.h> #include <asm/processor.h> #include <asm/ptrace.h>
@@ -43,6 +44,9 @@ void die(struct pt_regs *regs, const char *str) ret =notify_die (DIE_OOPS , str, regs,0 , regs->scause,SIGSEGV ); +if (regs &&kexec_should_crash (current)) +crash_kexec (regs); +bust_spinlocks (0 );add_taint (TAINT_DIE ,LOCKDEP_NOW_UNRELIABLE );spin_unlock_irq (&die_lock);
arch/s390/kernel/machine_kexec_file.c +13 -5
@@ -29,6 +29,7 @@ int s390_verify_sig(const char *kernel, unsigned long kernel_len)const unsigned long marker_len =sizeof (MODULE_SIG_STRING ) -1 ;struct module_signature *ms;unsigned long sig_len; +int ret;/* Skip signature verification when not secure IPLed. */ if (!ipl_secure_flag)
@@ -63,11 +64,18 @@ int s390_verify_sig(const char *kernel, unsigned long kernel_len) return -EBADMSG; } -return verify_pkcs7_signature (kernel, kernel_len, - kernel + kernel_len, sig_len, -VERIFY_USE_PLATFORM_KEYRING , -VERIFYING_MODULE_SIGNATURE , -NULL ,NULL ); + ret =verify_pkcs7_signature (kernel, kernel_len, + kernel + kernel_len, sig_len, +VERIFY_USE_SECONDARY_KEYRING , +VERIFYING_MODULE_SIGNATURE , +NULL ,NULL ); +if (ret == -ENOKEY &&IS_ENABLED (CONFIG_INTEGRITY_PLATFORM_KEYRING )) + ret =verify_pkcs7_signature (kernel, kernel_len, + kernel + kernel_len, sig_len, +VERIFY_USE_PLATFORM_KEYRING , +VERIFYING_MODULE_SIGNATURE , +NULL ,NULL ); +return ret; }#endif /* CONFIG_KEXEC_SIG */
arch/um/os-Linux/skas/process.c +16 -1
@@ -5,6 +5,7 @@*/ #include <stdlib.h> +#include <stdbool.h> #include <unistd.h> #include <sched.h> #include <errno.h>
@@ -641,10 +642,24 @@ void halt_skas(void)UML_LONGJMP (&initial_jmpbuf,INIT_JMP_HALT ); } +static bool noreboot; + +static int __init noreboot_cmd_param (char *str,int *add) +{ + noreboot = true; +return 0 ; +} + +__uml_setup ("noreboot" , noreboot_cmd_param, +"noreboot\n" +" Rather than rebooting, exit always, akin to QEMU's -no-reboot option.\n" +" This is useful if you're using CONFIG_PANIC_TIMEOUT in order to catch\n" +" crashes in CI\n" ); +void reboot_skas (void ) {block_signals_trace (); -UML_LONGJMP (&initial_jmpbuf,INIT_JMP_REBOOT ); +UML_LONGJMP (&initial_jmpbuf, noreboot ?INIT_JMP_HALT :INIT_JMP_REBOOT ); }void __switch_mm (struct mm_id *mm_idp)
arch/x86/boot/Makefile +1 -1
@@ -100,7 +100,7 @@ $(obj)/zoffset.h: $(obj)/compressed/vmlinux FORCE AFLAGS_header.o += -I$(objtree)/$(obj) $(obj)/header.o: $(obj)/zoffset.h -LDFLAGS_setup.elf := -m elf_i386 -T +LDFLAGS_setup.elf := -m elf_i386 -z noexecstack -T $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE $(call if_changed,ld)
arch/x86/boot/compressed/Makefile +4 -0
@@ -57,6 +57,10 @@ else KBUILD_LDFLAGS += $(shell $(LD) --help 2>&1 | grep -q "\-z noreloc-overflow" \ && echo "-z noreloc-overflow -pie --no-dynamic-linker") endif + +KBUILD_LDFLAGS += -z noexecstack +KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments) + LDFLAGS_vmlinux := -T hostprogs-y := mkpiggy
arch/x86/entry/vdso/Makefile +1 -1
@@ -178,7 +178,7 @@ quiet_cmd_vdso = VDSO $@ sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' VDSO_LDFLAGS = -shared --hash-style=both --build-id \ - $(call ld-option, --eh-frame-hdr) -Bsymbolic + $(call ld-option, --eh-frame-hdr) -Bsymbolic -z noexecstack GCOV_PROFILE := n quiet_cmd_vdso_and_check = VDSO $@
arch/x86/kernel/pmem.c +6 -1
@@ -27,6 +27,11 @@ static __init int register_e820_pmem(void)* simply here to trigger the module to load on demand. */ pdev =platform_device_alloc ("e820_pmem" ,-1 ); -return platform_device_add (pdev); + + rc =platform_device_add (pdev); +if (rc) +platform_device_put (pdev); + +return rc; }device_initcall (register_e820_pmem);
arch/x86/kernel/process.c +6 -3
@@ -659,6 +659,10 @@ static void amd_e400_idle(void)*/ static int prefer_mwait_c1_over_halt (const struct cpuinfo_x86 *c) { +/* User has disallowed the use of MWAIT. Fallback to HALT */ +if (boot_option_idle_override ==IDLE_NOMWAIT ) +return 0 ; +if (c->x86_vendor !=X86_VENDOR_INTEL )return 0 ;
@@ -769,9 +773,8 @@ static int __init idle_setup(char *str) }else if (!strcmp (str,"nomwait" )) {/* * If the boot option of "idle=nomwait" is added, -* it means that mwait will be disabled for CPU C2/C3 -* states. In such case it won't touch the variable -* of boot_option_idle_override. +* it means that mwait will be disabled for CPU C1/C2/C3 +* states. */ boot_option_idle_override =IDLE_NOMWAIT ; }else
arch/x86/kvm/emulate.c +11 -12
@@ -1753,16 +1753,6 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,case VCPU_SREG_TR :if (seg_desc.s || (seg_desc.type !=1 && seg_desc.type !=9 )) goto exception; -if (!seg_desc.p) { - err_vec =NP_VECTOR ; - goto exception; - } - old_desc = seg_desc; - seg_desc.type |=2 ;/* busy */ - ret = ctxt->ops->cmpxchg_emulated (ctxt, desc_addr, &old_desc, &seg_desc, -sizeof (seg_desc), &ctxt->exception); -if (ret !=X86EMUL_CONTINUE ) -return ret;break ;case VCPU_SREG_LDTR :if (seg_desc.s || seg_desc.type !=2 )
@@ -1800,8 +1790,17 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,if (ret !=X86EMUL_CONTINUE )return ret;if (emul_is_noncanonical_address (get_desc_base (&seg_desc) | - ((u64 )base3 <<32 ), ctxt)) -return emulate_gp (ctxt,0 ); + ((u64 )base3 <<32 ), ctxt)) +return emulate_gp (ctxt, err_code); + } + +if (seg ==VCPU_SREG_TR ) { + old_desc = seg_desc; + seg_desc.type |=2 ;/* busy */ + ret = ctxt->ops->cmpxchg_emulated (ctxt, desc_addr, &old_desc, &seg_desc, +sizeof (seg_desc), &ctxt->exception); +if (ret !=X86EMUL_CONTINUE ) +return ret; } load: ctxt->ops->set_segment (ctxt, selector, &seg_desc, base3, seg);
arch/x86/kvm/hyperv.c +3 -0
@@ -309,6 +309,9 @@ static int synic_set_irq(struct kvm_vcpu_hv_synic *synic, u32 sint)struct kvm_lapic_irq irq;int ret, vector; +if (KVM_BUG_ON (!lapic_in_kernel (vcpu), vcpu->kvm)) +return -EINVAL ; +if (sint >=ARRAY_SIZE (synic->sint))return -EINVAL ;
arch/x86/kvm/lapic.c +4 -0
@@ -955,6 +955,10 @@ bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src, *r =-1 ;if (irq->shorthand ==APIC_DEST_SELF ) { +if (KVM_BUG_ON (!src, kvm)) { + *r =0 ; +return true; + } *r =kvm_apic_set_irq (src->vcpu, irq, dest_map);return true; }
arch/x86/kvm/svm.c +0 -2
@@ -5137,8 +5137,6 @@ static void svm_set_irq(struct kvm_vcpu *vcpu) {struct vcpu_svm *svm =to_svm (vcpu); -BUG_ON (!(gif_set (svm))); -trace_kvm_inj_virq (vcpu->arch.interrupt.nr); ++vcpu->stat.irq_injections;
arch/x86/kvm/vmx/nested.c +41 -35
154 lines not on this page · raw message
arch/x86/mm/numa.c +2 -2
@@ -822,7 +822,7 @@ void debug_cpumask_set_cpu(int cpu, int node, bool enable)return ; } mask = node_to_cpumask_map[node]; -if (!mask) { +if (!cpumask_available (mask)) {pr_err ("node_to_cpumask_map[%i] NULL\n" , node);dump_stack ();return ;
@@ -868,7 +868,7 @@ const struct cpumask *cpumask_of_node(int node)dump_stack ();return cpu_none_mask; } -if (node_to_cpumask_map[node] ==NULL ) { +if (!cpumask_available (node_to_cpumask_map[node])) {printk (KERN_WARNING "cpumask_of_node(%d): no node_to_cpumask_map!\n" , node);
arch/x86/platform/olpc/olpc-xo1-sci.c +1 -1
@@ -81,7 +81,7 @@ static void send_ebook_state(void)return ; } -if (!!test_bit (SW_TABLET_MODE , ebook_switch_idev->sw) == state) +if (test_bit (SW_TABLET_MODE , ebook_switch_idev->sw) == !!state)return ;/* Nothing new to report. */ input_report_switch (ebook_switch_idev,SW_TABLET_MODE , state);
block/blk-mq-debugfs.c +3 -0
@@ -883,6 +883,9 @@ void blk_mq_debugfs_register_hctx(struct request_queue *q,char name[20 ];int i; +if (!q->debugfs_dir) +return ; +snprintf (name,sizeof (name),"hctx%u" , hctx->queue_num); hctx->debugfs_dir =debugfs_create_dir (name, q->debugfs_dir);
drivers/acpi/acpi_lpss.c +3 -0
@@ -401,6 +401,9 @@ static int register_device_clock(struct acpi_device *adev,if (!lpss_clk_dev)lpt_register_clock_device (); +if (IS_ERR (lpss_clk_dev)) +return PTR_ERR (lpss_clk_dev); + clk_data =platform_get_drvdata (lpss_clk_dev);if (!clk_data)return -ENODEV ;
drivers/acpi/cppc_acpi.c +24 -30
74 lines not on this page · raw message
drivers/acpi/ec.c +0 -7
@@ -2118,13 +2118,6 @@ static const struct dmi_system_id acpi_ec_no_wakeup[] = { DMI_MATCH(DMI_PRODUCT_FAMILY, "Thinkpad X1 Carbon 6th"), }, }, - { - .ident = "ThinkPad X1 Carbon 6th", - .matches = { -DMI_MATCH (DMI_SYS_VENDOR ,"LENOVO" ), - DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Carbon 6th"), - }, - }, { .ident = "ThinkPad X1 Yoga 3rd", .matches = {
drivers/acpi/pci_mcfg.c +3 -0
@@ -41,6 +41,8 @@ struct mcfg_fixup { static struct mcfg_fixup mcfg_quirks[] = {/* { OEM_ID, OEM_TABLE_ID, REV, SEGMENT, BUS_RANGE, ops, cfgres }, */ +#ifdef CONFIG_ARM64 +#define AL_ECAM (table_id, rev, seg, ops) \ { "AMAZON", table_id, rev, seg, MCFG_BUS_ANY, ops }
@@ -162,6 +164,7 @@ static struct mcfg_fixup mcfg_quirks[] = {ALTRA_ECAM_QUIRK (1 ,13 ),ALTRA_ECAM_QUIRK (1 ,14 ), ALTRA_ECAM_QUIRK(1, 15), +#endif /* ARM64 */ };static char mcfg_oem_id[ACPI_OEM_ID_SIZE ];
drivers/acpi/property.c +4 -4
@@ -152,10 +152,10 @@ static bool acpi_nondev_subnode_ok(acpi_handle scope,return acpi_nondev_subnode_data_ok (handle, link, list, parent); } -static int acpi_add_nondev_subnodes (acpi_handle scope, -const union acpi_object *links, -struct list_head *list, -struct fwnode_handle *parent) +static bool acpi_add_nondev_subnodes (acpi_handle scope, +const union acpi_object *links, +struct list_head *list, +struct fwnode_handle *parent) {bool ret = false;int i;
drivers/acpi/sleep.c +8 -0
@@ -361,6 +361,14 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = { DMI_MATCH(DMI_PRODUCT_NAME, "80E3"), }, }, + { + .callback = init_nvs_save_s3, + .ident = "Lenovo G40-45", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "80E1"), + }, + },/* * ThinkPad X1 Tablet(2016) cannot do suspend-to-idle using * the Low Power S0 Idle firmware interface (see
drivers/ata/libata-eh.c +1 -0
@@ -2329,6 +2329,7 @@ const char *ata_get_cmd_descript(u8 command) { ATA_CMD_WRITE_QUEUED_FUA_EXT, "WRITE DMA QUEUED FUA EXT" }, { ATA_CMD_FPDMA_READ, "READ FPDMA QUEUED" }, { ATA_CMD_FPDMA_WRITE, "WRITE FPDMA QUEUED" }, + { ATA_CMD_NCQ_NON_DATA, "NCQ NON-DATA" }, { ATA_CMD_FPDMA_SEND, "SEND FPDMA QUEUED" }, { ATA_CMD_FPDMA_RECV, "RECEIVE FPDMA QUEUED" }, { ATA_CMD_PIO_READ, "READ SECTOR(S)" },
drivers/atm/idt77252.c +1 -0
@@ -3766,6 +3766,7 @@ static void __exit idt77252_exit(void) card = idt77252_chain; dev = card->atmdev; idt77252_chain = card->next; +del_timer_sync (&card->tst_timer);if (dev->phy->stop) dev->phy->stop (dev);
drivers/base/dd.c +4 -1
@@ -1037,6 +1037,7 @@ static void __driver_attach_async_helper(void *_dev, async_cookie_t cookie)static int __driver_attach (struct device *dev,void *data) {struct device_driver *drv = data; +bool async = false;int ret;/*
@@ -1074,9 +1075,11 @@ static int __driver_attach(struct device *dev, void *data)if (!dev->driver) {get_device (dev); dev->p->async_driver = drv; -async_schedule_dev (__driver_attach_async_helper, dev); + async = true; }device_unlock (dev); +if (async) +async_schedule_dev (__driver_attach_async_helper, dev);return 0 ; }
drivers/block/null_blk_main.c +11 -3
@@ -1711,8 +1711,13 @@ static int null_add_dev(struct nullb_device *dev)blk_queue_flag_clear (QUEUE_FLAG_ADD_RANDOM , nullb->q);mutex_lock (&lock); - nullb->index =ida_simple_get (&nullb_indexes,0 ,0 ,GFP_KERNEL ); - dev->index = nullb->index; + rv =ida_simple_get (&nullb_indexes,0 ,0 ,GFP_KERNEL ); +if (rv <0 ) { +mutex_unlock (&lock); + goto out_cleanup_zone; + } + nullb->index = rv; + dev->index = rv;mutex_unlock (&lock);blk_queue_logical_block_size (nullb->q, dev->blocksize);
@@ -1724,13 +1729,16 @@ static int null_add_dev(struct nullb_device *dev) rv =null_gendisk_register (nullb);if (rv) - goto out_cleanup_zone; + goto out_ida_free;mutex_lock (&lock);list_add_tail (&nullb->list, &nullb_list);mutex_unlock (&lock);return 0 ; + +out_ida_free: +ida_free (&nullb_indexes, nullb->index); out_cleanup_zone:if (dev->zoned)null_zone_exit (dev);
drivers/bluetooth/hci_intel.c +5 -1
@@ -1230,7 +1230,11 @@ static struct platform_driver intel_driver = {int __init intel_init (void ) { -platform_driver_register (&intel_driver); +int err; + + err =platform_driver_register (&intel_driver); +if (err) +return err;return hci_uart_register_proto (&intel_proto); }
drivers/bus/hisi_lpc.c +6 -4
@@ -504,13 +504,13 @@ static int hisi_lpc_acpi_probe(struct device *hostdev) {struct acpi_device *adev =ACPI_COMPANION (hostdev);struct acpi_device *child; +struct platform_device *pdev;int ret;/* Only consider the children of the host */ list_for_each_entry (child, &adev->children, node) {const char *hid =acpi_device_hid (child);const struct hisi_lpc_acpi_cell *cell; -struct platform_device *pdev;const struct resource *res;bool found = false;int num_res;
@@ -572,22 +572,24 @@ static int hisi_lpc_acpi_probe(struct device *hostdev) ret =platform_device_add_resources (pdev, res, num_res);if (ret) - goto fail; + goto fail_put_device; ret =platform_device_add_data (pdev, cell->pdata, cell->pdata_size);if (ret) - goto fail; + goto fail_put_device; ret =platform_device_add (pdev);if (ret) - goto fail; + goto fail_put_device;acpi_device_set_enumerated (child); }return 0 ; +fail_put_device: +platform_device_put (pdev); fail:hisi_lpc_acpi_remove (hostdev);return ret;
drivers/clk/mediatek/reset.c +2 -2
@@ -25,7 +25,7 @@ static int mtk_reset_assert_set_clr(struct reset_controller_dev *rcdev, struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);unsigned int reg = data->regofs + ((id /32 ) <<4 ); -return regmap_write (data->regmap, reg,1 ); +return regmap_write (data->regmap, reg,BIT (id %32 )); } static int mtk_reset_deassert_set_clr(struct reset_controller_dev *rcdev,
@@ -34,7 +34,7 @@ static int mtk_reset_deassert_set_clr(struct reset_controller_dev *rcdev, struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);unsigned int reg = data->regofs + ((id /32 ) <<4 ) +0x4 ; -return regmap_write (data->regmap, reg,1 ); +return regmap_write (data->regmap, reg,BIT (id %32 )); } static int mtk_reset_assert(struct reset_controller_dev *rcdev,
drivers/clk/qcom/camcc-sdm845.c +4 -0
@@ -1521,6 +1521,8 @@ static struct clk_branch cam_cc_sys_tmr_clk = { }, }; +static struct gdsc titan_top_gdsc; +static struct gdsc bps_gdsc = { .gdscr =0x6004 , .pd = {
@@ -1554,6 +1556,7 @@ static struct gdsc ife_0_gdsc = { .name = "ife_0_gdsc", }, .flags = POLL_CFG_GDSCR, + .parent = &titan_top_gdsc.pd, .pwrsts = PWRSTS_OFF_ON, };
@@ -1563,6 +1566,7 @@ static struct gdsc ife_1_gdsc = { .name = "ife_1_gdsc", }, .flags = POLL_CFG_GDSCR, + .parent = &titan_top_gdsc.pd, .pwrsts = PWRSTS_OFF_ON, };
drivers/clk/qcom/clk-krait.c +6 -1
@@ -32,11 +32,16 @@ static void __krait_mux_set_sel(struct krait_mux_clk *mux, int sel) regval |= (sel & mux->mask) << (mux->shift +LPL_SHIFT ); }krait_set_l2_indirect_reg (mux->offset, regval); -spin_unlock_irqrestore (&krait_clock_reg_lock, flags);/* Wait for switch to complete. */ mb ();udelay (1 ); + +/* +* Unlock now to make sure the mux register is not +* modified while switching to the new parent. +*/ +spin_unlock_irqrestore (&krait_clock_reg_lock, flags); }static int krait_mux_set_parent (struct clk_hw *hw,u8 index)
drivers/clk/qcom/gcc-ipq8074.c +19 -0
@@ -667,6 +667,7 @@ static struct clk_branch gcc_sleep_clk_src = { }, .num_parents = 1, .ops = &clk_branch2_ops, + .flags = CLK_IS_CRITICAL, }, }, };
@@ -1788,8 +1789,10 @@ static struct clk_regmap_div nss_port4_tx_div_clk_src = {static const struct freq_tbl ftbl_nss_port5_rx_clk_src[] = {F (19200000 ,P_XO ,1 ,0 ,0 ),F (25000000 ,P_UNIPHY1_RX ,12.5 ,0 ,0 ), +F (25000000 ,P_UNIPHY0_RX ,5 ,0 ,0 ),F (78125000 ,P_UNIPHY1_RX ,4 ,0 ,0 ),F (125000000 ,P_UNIPHY1_RX ,2.5 ,0 ,0 ), +F (125000000 ,P_UNIPHY0_RX ,1 ,0 ,0 ),F (156250000 ,P_UNIPHY1_RX ,2 ,0 ,0 ),F (312500000 ,P_UNIPHY1_RX ,1 ,0 ,0 ), { }
@@ -1828,8 +1831,10 @@ static struct clk_regmap_div nss_port5_rx_div_clk_src = {static const struct freq_tbl ftbl_nss_port5_tx_clk_src[] = {F (19200000 ,P_XO ,1 ,0 ,0 ),F (25000000 ,P_UNIPHY1_TX ,12.5 ,0 ,0 ), +F (25000000 ,P_UNIPHY0_TX ,5 ,0 ,0 ),F (78125000 ,P_UNIPHY1_TX ,4 ,0 ,0 ),F (125000000 ,P_UNIPHY1_TX ,2.5 ,0 ,0 ), +F (125000000 ,P_UNIPHY0_TX ,1 ,0 ,0 ),F (156250000 ,P_UNIPHY1_TX ,2 ,0 ,0 ),F (312500000 ,P_UNIPHY1_TX ,1 ,0 ,0 ), { }
@@ -1867,8 +1872,10 @@ static struct clk_regmap_div nss_port5_tx_div_clk_src = {static const struct freq_tbl ftbl_nss_port6_rx_clk_src[] = {F (19200000 ,P_XO ,1 ,0 ,0 ), +F (25000000 ,P_UNIPHY2_RX ,5 ,0 ,0 ),F (25000000 ,P_UNIPHY2_RX ,12.5 ,0 ,0 ),F (78125000 ,P_UNIPHY2_RX ,4 ,0 ,0 ), +F (125000000 ,P_UNIPHY2_RX ,1 ,0 ,0 ),F (125000000 ,P_UNIPHY2_RX ,2.5 ,0 ,0 ),F (156250000 ,P_UNIPHY2_RX ,2 ,0 ,0 ),F (312500000 ,P_UNIPHY2_RX ,1 ,0 ,0 ),
@@ -1907,8 +1914,10 @@ static struct clk_regmap_div nss_port6_rx_div_clk_src = {static const struct freq_tbl ftbl_nss_port6_tx_clk_src[] = {F (19200000 ,P_XO ,1 ,0 ,0 ), +F (25000000 ,P_UNIPHY2_TX ,5 ,0 ,0 ),F (25000000 ,P_UNIPHY2_TX ,12.5 ,0 ,0 ),F (78125000 ,P_UNIPHY2_TX ,4 ,0 ,0 ), +F (125000000 ,P_UNIPHY2_TX ,1 ,0 ,0 ),F (125000000 ,P_UNIPHY2_TX ,2.5 ,0 ,0 ),F (156250000 ,P_UNIPHY2_TX ,2 ,0 ,0 ),F (312500000 ,P_UNIPHY2_TX ,1 ,0 ,0 ),
@@ -3346,6 +3355,7 @@ static struct clk_branch gcc_nssnoc_ubi1_ahb_clk = {static struct clk_branch gcc_ubi0_ahb_clk = { .halt_reg =0x6820c , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x6820c , .enable_mask =BIT (0 ),
@@ -3363,6 +3373,7 @@ static struct clk_branch gcc_ubi0_ahb_clk = {static struct clk_branch gcc_ubi0_axi_clk = { .halt_reg =0x68200 , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x68200 , .enable_mask =BIT (0 ),
@@ -3380,6 +3391,7 @@ static struct clk_branch gcc_ubi0_axi_clk = {static struct clk_branch gcc_ubi0_nc_axi_clk = { .halt_reg =0x68204 , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x68204 , .enable_mask =BIT (0 ),
@@ -3397,6 +3409,7 @@ static struct clk_branch gcc_ubi0_nc_axi_clk = {static struct clk_branch gcc_ubi0_core_clk = { .halt_reg =0x68210 , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x68210 , .enable_mask =BIT (0 ),
@@ -3414,6 +3427,7 @@ static struct clk_branch gcc_ubi0_core_clk = {static struct clk_branch gcc_ubi0_mpt_clk = { .halt_reg =0x68208 , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x68208 , .enable_mask =BIT (0 ),
@@ -3431,6 +3445,7 @@ static struct clk_branch gcc_ubi0_mpt_clk = {static struct clk_branch gcc_ubi1_ahb_clk = { .halt_reg =0x6822c , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x6822c , .enable_mask =BIT (0 ),
@@ -3448,6 +3463,7 @@ static struct clk_branch gcc_ubi1_ahb_clk = {static struct clk_branch gcc_ubi1_axi_clk = { .halt_reg =0x68220 , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x68220 , .enable_mask =BIT (0 ),
@@ -3465,6 +3481,7 @@ static struct clk_branch gcc_ubi1_axi_clk = {static struct clk_branch gcc_ubi1_nc_axi_clk = { .halt_reg =0x68224 , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x68224 , .enable_mask =BIT (0 ),
@@ -3482,6 +3499,7 @@ static struct clk_branch gcc_ubi1_nc_axi_clk = {static struct clk_branch gcc_ubi1_core_clk = { .halt_reg =0x68230 , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x68230 , .enable_mask =BIT (0 ),
@@ -3499,6 +3517,7 @@ static struct clk_branch gcc_ubi1_core_clk = {static struct clk_branch gcc_ubi1_mpt_clk = { .halt_reg =0x68228 , + .halt_check =BRANCH_HALT_DELAY , .clkr = { .enable_reg =0x68228 , .enable_mask =BIT (0 ),
drivers/clk/renesas/r9a06g032-clocks.c +4 -4
@@ -286,8 +286,8 @@ static const struct r9a06g032_clkdesc r9a06g032_clocks[] = { .name = "uart_group_012", .type = K_BITSEL, .source = 1 + R9A06G032_DIV_UART, - /* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */ - .dual.sel = ((0xec / 4) << 5) | 24, + /* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */ + .dual.sel = ((0x34 / 4) << 5) | 30, .dual.group = 0, }, {
@@ -295,8 +295,8 @@ static const struct r9a06g032_clkdesc r9a06g032_clocks[] = { .name = "uart_group_34567", .type = K_BITSEL, .source = 1 + R9A06G032_DIV_P2_PG, -/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */ - .dual.sel = ((0x34 / 4) << 5) | 30, +/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */ + .dual.sel = ((0xec / 4) << 5) | 24, .dual.group =1 , }, D_UGATE(CLK_UART0, "clk_uart0", UART_GROUP_012, 0, 0, 0x1b2, 0x1b3, 0x1b4, 0x1b5),
drivers/clk/rockchip/clk-rk3188.c +1 -0
@@ -751,6 +751,7 @@ static const char *const rk3188_critical_clocks[] __initconst = {"pclk_peri" ,"hclk_cpubus" ,"hclk_vio_bus" , + "sclk_mac_lbtest", };static struct rockchip_clk_provider *__init rk3188_common_clk_init (struct device_node *np)
drivers/crypto/hisilicon/sec/sec_algs.c +7 -7
@@ -449,7 +449,7 @@ static void sec_skcipher_alg_callback(struct sec_bd_info *sec_resp,*/ } -mutex_lock (&ctx->queue->queuelock); +spin_lock_bh (&ctx->queue->queuelock);/* Put the IV in place for chained cases */ switch (ctx->cipher_alg) {case SEC_C_AES_CBC_128 :
@@ -509,7 +509,7 @@ static void sec_skcipher_alg_callback(struct sec_bd_info *sec_resp,list_del (&backlog_req->backlog_head); } } -mutex_unlock (&ctx->queue->queuelock); +spin_unlock_bh (&ctx->queue->queuelock);mutex_lock (&sec_req->lock);list_del (&sec_req_el->head);
@@ -798,7 +798,7 @@ static int sec_alg_skcipher_crypto(struct skcipher_request *skreq,*/ /* Grab a big lock for a long time to avoid concurrency issues */ -mutex_lock (&queue->queuelock); +spin_lock_bh (&queue->queuelock);/* * Can go on to queue if we have space in either:
@@ -814,15 +814,15 @@ static int sec_alg_skcipher_crypto(struct skcipher_request *skreq, ret = -EBUSY ;if ((skreq->base.flags &CRYPTO_TFM_REQ_MAY_BACKLOG )) {list_add_tail (&sec_req->backlog_head, &ctx->backlog); -mutex_unlock (&queue->queuelock); +spin_unlock_bh (&queue->queuelock); goto out; } -mutex_unlock (&queue->queuelock); +spin_unlock_bh (&queue->queuelock); goto err_free_elements; } ret =sec_send_request (sec_req, queue); -mutex_unlock (&queue->queuelock); +spin_unlock_bh (&queue->queuelock);if (ret) goto err_free_elements;
@@ -881,7 +881,7 @@ static int sec_alg_skcipher_init(struct crypto_skcipher *tfm)if (IS_ERR (ctx->queue))return PTR_ERR (ctx->queue); -mutex_init (&ctx->queue->queuelock); +spin_lock_init (&ctx->queue->queuelock); ctx->queue->havesoftqueue = false;return 0 ;
drivers/crypto/hisilicon/sec/sec_drv.h +1 -1
@@ -347,7 +347,7 @@ struct sec_queue {DECLARE_BITMAP (unprocessed,SEC_QUEUE_LEN ); DECLARE_KFIFO_PTR(softqueue, typeof(struct sec_request_el *));bool havesoftqueue; -struct mutex queuelock; +spinlock_t queuelock;void *shadow[SEC_QUEUE_LEN ]; };
drivers/crypto/inside-secure/safexcel.c +2 -0
@@ -1658,6 +1658,8 @@ static const struct of_device_id safexcel_of_match_table[] = { {}, }; +MODULE_DEVICE_TABLE (of, safexcel_of_match_table); +static struct platform_driver crypto_safexcel = { .probe = safexcel_probe, .remove = safexcel_remove,
drivers/dma/sprd-dma.c +1 -4
@@ -1201,11 +1201,8 @@ static int sprd_dma_remove(struct platform_device *pdev) {struct sprd_dma_dev *sdev =platform_get_drvdata (pdev);struct sprd_dma_chn *c, *cn; -int ret; - ret =pm_runtime_get_sync (&pdev->dev); -if (ret <0 ) -return ret; +pm_runtime_get_sync (&pdev->dev);/* explicitly free the irq */ if (sdev->irq >0 )
drivers/firmware/arm_scpi.c +35 -26
119 lines not on this page · raw message
drivers/fpga/altera-pr-ip-core.c +1 -1
@@ -108,7 +108,7 @@ static int alt_pr_fpga_write(struct fpga_manager *mgr, const char *buf,u32 *buffer_32 = (u32 *)buf;size_t i =0 ; -if (count <=0 ) +if (!count)return -EINVAL ;/* Write out the complete 32-bit chunks */
drivers/gpio/gpiolib-of.c +3 -1
@@ -734,7 +734,8 @@ int of_mm_gpiochip_add_data(struct device_node *np,if (mm_gc->save_regs) mm_gc->save_regs (mm_gc); - mm_gc->gc.of_node = np; +of_node_put (mm_gc->gc.of_node); + mm_gc->gc.of_node =of_node_get (np); ret =gpiochip_add_data (gc, data);if (ret)
@@ -742,6 +743,7 @@ int of_mm_gpiochip_add_data(struct device_node *np,return 0 ; err2: +of_node_put (np);iounmap (mm_gc->regs); err1:kfree (gc->label);
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +4 -0
@@ -892,6 +892,10 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,if (WARN_ON_ONCE (min_offset > max_offset))return -EINVAL ; +/* Check domain to be pinned to against preferred domains */ +if (bo->preferred_domains & domain) + domain = bo->preferred_domains & domain; +/* A shared bo cannot be migrated to VRAM */ if (bo->prime_shared_count) {if (domain &AMDGPU_GEM_DOMAIN_GTT )
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +18 -6
@@ -985,6 +985,10 @@ static int adv7511_init_cec_regmap(struct adv7511 *adv) ADV7511_CEC_I2C_ADDR_DEFAULT);if (IS_ERR (adv->i2c_cec))return PTR_ERR (adv->i2c_cec); + +regmap_write (adv->regmap,ADV7511_REG_CEC_I2C_ADDR , + adv->i2c_cec->addr <<1 ); +i2c_set_clientdata (adv->i2c_cec, adv); adv->regmap_cec = devm_regmap_init_i2c(adv->i2c_cec,
@@ -1189,9 +1193,6 @@ static int adv7511_probe(struct i2c_client *i2c, const struct i2c_device_id *id)if (ret) goto err_i2c_unregister_packet; -regmap_write (adv7511->regmap,ADV7511_REG_CEC_I2C_ADDR , - adv7511->i2c_cec->addr <<1 ); -INIT_WORK (&adv7511->hpd_work, adv7511_hpd_work);if (i2c->irq) {
@@ -1301,10 +1302,21 @@ static struct i2c_driver adv7511_driver = {static int __init adv7511_init (void ) { -if (IS_ENABLED (CONFIG_DRM_MIPI_DSI )) -mipi_dsi_driver_register (&adv7533_dsi_driver); +int ret; -return i2c_add_driver (&adv7511_driver); +if (IS_ENABLED (CONFIG_DRM_MIPI_DSI )) { + ret =mipi_dsi_driver_register (&adv7533_dsi_driver); +if (ret) +return ret; + } + + ret =i2c_add_driver (&adv7511_driver); +if (ret) { +if (IS_ENABLED (CONFIG_DRM_MIPI_DSI )) +mipi_dsi_driver_unregister (&adv7533_dsi_driver); + } + +return ret; }module_init (adv7511_init);
drivers/gpu/drm/bridge/sil-sii8620.c +2 -2
@@ -604,7 +604,7 @@ static void *sii8620_burst_get_tx_buf(struct sii8620 *ctx, int len)u8 *buf = &ctx->burst.tx_buf[ctx->burst.tx_count];int size = len +2 ; -if (ctx->burst.tx_count + size >ARRAY_SIZE (ctx->burst.tx_buf)) { +if (ctx->burst.tx_count + size >=ARRAY_SIZE (ctx->burst.tx_buf)) {dev_err (ctx->dev,"TX-BLK buffer exhausted\n" ); ctx->error = -EINVAL ;return NULL ;
@@ -621,7 +621,7 @@ static u8 *sii8620_burst_get_rx_buf(struct sii8620 *ctx, int len)u8 *buf = &ctx->burst.rx_buf[ctx->burst.rx_count];int size = len +1 ; -if (ctx->burst.tx_count + size >ARRAY_SIZE (ctx->burst.tx_buf)) { +if (ctx->burst.rx_count + size >=ARRAY_SIZE (ctx->burst.rx_buf)) {dev_err (ctx->dev,"RX-BLK buffer exhausted\n" ); ctx->error = -EINVAL ;return NULL ;
drivers/gpu/drm/drm_gem.c +2 -2
@@ -1292,7 +1292,7 @@ drm_gem_lock_reservations(struct drm_gem_object **objs, int count, ret =dma_resv_lock_slow_interruptible (obj->resv, acquire_ctx);if (ret) { -ww_acquire_done (acquire_ctx); +ww_acquire_fini (acquire_ctx);return ret; } }
@@ -1317,7 +1317,7 @@ drm_gem_lock_reservations(struct drm_gem_object **objs, int count, goto retry; } -ww_acquire_done (acquire_ctx); +ww_acquire_fini (acquire_ctx);return ret; } }
drivers/gpu/drm/drm_mipi_dbi.c +7 -0
@@ -1156,6 +1156,13 @@ int mipi_dbi_spi_transfer(struct spi_device *spi, u32 speed_hz,size_t chunk;int ret; +/* In __spi_validate, there's a validation that no partial transfers +* are accepted (xfer->len % w_size must be zero). +* Here we align max_chunk to multiple of 2 (16bits), +* to prevent transfers from being rejected. +*/ + max_chunk =ALIGN_DOWN (max_chunk,2 ); +spi_message_init_with_transfers (&m, &tr,1 );while (len) {
drivers/gpu/drm/exynos/exynos7_drm_decon.c +13 -4
@@ -800,31 +800,40 @@ static int exynos7_decon_resume(struct device *dev)if (ret <0 ) {DRM_DEV_ERROR (dev,"Failed to prepare_enable the pclk [%d]\n" , ret); -return ret; + goto err_pclk_enable; } ret =clk_prepare_enable (ctx->aclk);if (ret <0 ) {DRM_DEV_ERROR (dev,"Failed to prepare_enable the aclk [%d]\n" , ret); -return ret; + goto err_aclk_enable; } ret =clk_prepare_enable (ctx->eclk);if (ret <0 ) {DRM_DEV_ERROR (dev,"Failed to prepare_enable the eclk [%d]\n" , ret); -return ret; + goto err_eclk_enable; } ret =clk_prepare_enable (ctx->vclk);if (ret <0 ) {DRM_DEV_ERROR (dev,"Failed to prepare_enable the vclk [%d]\n" , ret); -return ret; + goto err_vclk_enable; }return 0 ; + +err_vclk_enable: +clk_disable_unprepare (ctx->eclk); +err_eclk_enable: +clk_disable_unprepare (ctx->aclk); +err_aclk_enable: +clk_disable_unprepare (ctx->pclk); +err_pclk_enable: + return ret; }#endif
drivers/gpu/drm/mcde/mcde_dsi.c +1 -0
@@ -942,6 +942,7 @@ static int mcde_dsi_bind(struct device *dev, struct device *master, bridge =of_drm_find_bridge (child);if (!bridge) {dev_err (dev,"failed to find bridge\n" ); +of_node_put (child);return -EINVAL ; } }
drivers/gpu/drm/mediatek/mtk_dpi.c +7 -26
@@ -50,13 +50,7 @@ enum mtk_dpi_out_channel_swap { };enum mtk_dpi_out_color_format { -MTK_DPI_COLOR_FORMAT_RGB , -MTK_DPI_COLOR_FORMAT_RGB_FULL , -MTK_DPI_COLOR_FORMAT_YCBCR_444 , -MTK_DPI_COLOR_FORMAT_YCBCR_422 , -MTK_DPI_COLOR_FORMAT_XV_YCC , -MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL , -MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL +MTK_DPI_COLOR_FORMAT_RGB };struct mtk_dpi {
@@ -355,24 +349,11 @@ static void mtk_dpi_config_disable_edge(struct mtk_dpi *dpi)static void mtk_dpi_config_color_format (struct mtk_dpi *dpi,enum mtk_dpi_out_color_format format) { -if ((format ==MTK_DPI_COLOR_FORMAT_YCBCR_444 ) || - (format ==MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL )) { -mtk_dpi_config_yuv422_enable (dpi, false); -mtk_dpi_config_csc_enable (dpi, true); -mtk_dpi_config_swap_input (dpi, false); -mtk_dpi_config_channel_swap (dpi,MTK_DPI_OUT_CHANNEL_SWAP_BGR ); - }else if ((format ==MTK_DPI_COLOR_FORMAT_YCBCR_422 ) || - (format ==MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL )) { -mtk_dpi_config_yuv422_enable (dpi, true); -mtk_dpi_config_csc_enable (dpi, true); -mtk_dpi_config_swap_input (dpi, true); -mtk_dpi_config_channel_swap (dpi,MTK_DPI_OUT_CHANNEL_SWAP_RGB ); - }else { -mtk_dpi_config_yuv422_enable (dpi, false); -mtk_dpi_config_csc_enable (dpi, false); -mtk_dpi_config_swap_input (dpi, false); -mtk_dpi_config_channel_swap (dpi,MTK_DPI_OUT_CHANNEL_SWAP_RGB ); - } +/* only support RGB888 */ +mtk_dpi_config_yuv422_enable (dpi, false); +mtk_dpi_config_csc_enable (dpi, false); +mtk_dpi_config_swap_input (dpi, false); +mtk_dpi_config_channel_swap (dpi,MTK_DPI_OUT_CHANNEL_SWAP_RGB ); }static void mtk_dpi_power_off (struct mtk_dpi *dpi)
@@ -413,7 +394,6 @@ static int mtk_dpi_power_on(struct mtk_dpi *dpi)if (dpi->pinctrl && dpi->pins_dpi)pinctrl_select_state (dpi->pinctrl, dpi->pins_dpi); -mtk_dpi_enable (dpi);return 0 ; err_pixel:
@@ -557,6 +537,7 @@ static void mtk_dpi_encoder_enable(struct drm_encoder *encoder)mtk_dpi_power_on (dpi);mtk_dpi_set_display_mode (dpi, &dpi->mode); +mtk_dpi_enable (dpi); } static int mtk_dpi_atomic_check(struct drm_encoder *encoder,
drivers/gpu/drm/mediatek/mtk_dsi.c +2 -0
@@ -645,6 +645,8 @@ static void mtk_dsi_poweroff(struct mtk_dsi *dsi)mtk_dsi_reset_engine (dsi);mtk_dsi_lane0_ulp_mode_enter (dsi);mtk_dsi_clk_ulp_mode_enter (dsi); +/* set the lane number as 0 to pull down mipi */ +writel (0 , dsi->regs +DSI_TXRX_CTRL );mtk_dsi_disable (dsi);
drivers/gpu/drm/meson/meson_drv.c +4 -1
@@ -124,8 +124,11 @@ static bool meson_vpu_has_available_connectors(struct device *dev)for_each_endpoint_of_node (dev->of_node, ep) {/* If the endpoint node exists, consider it enabled */ remote =of_graph_get_remote_port (ep); -if (remote) +if (remote) { +of_node_put (remote); +of_node_put (ep);return true; + } }return false;
drivers/gpu/drm/meson/meson_viu.c +11 -11
@@ -400,17 +400,17 @@ void meson_viu_init(struct meson_drm *priv) priv->io_base + _REG(VD2_IF0_LUMA_FIFO_SIZE));if (meson_vpu_is_compatible (priv,VPU_COMPATIBLE_G12A )) { -writel_relaxed (VIU_OSD_BLEND_REORDER (0 ,1 ) | -VIU_OSD_BLEND_REORDER (1 ,0 ) | -VIU_OSD_BLEND_REORDER (2 ,0 ) | -VIU_OSD_BLEND_REORDER (3 ,0 ) | -VIU_OSD_BLEND_DIN_EN (1 ) | -VIU_OSD_BLEND1_DIN3_BYPASS_TO_DOUT1 | -VIU_OSD_BLEND1_DOUT_BYPASS_TO_BLEND2 | -VIU_OSD_BLEND_DIN0_BYPASS_TO_DOUT0 | -VIU_OSD_BLEND_BLEN2_PREMULT_EN (1 ) | -VIU_OSD_BLEND_HOLD_LINES (4 ), - priv->io_base +_REG (VIU_OSD_BLEND_CTRL )); +u32 val = (u32 )VIU_OSD_BLEND_REORDER (0 ,1 ) | + (u32 )VIU_OSD_BLEND_REORDER (1 ,0 ) | + (u32 )VIU_OSD_BLEND_REORDER (2 ,0 ) | + (u32 )VIU_OSD_BLEND_REORDER (3 ,0 ) | + (u32 )VIU_OSD_BLEND_DIN_EN (1 ) | + (u32 )VIU_OSD_BLEND1_DIN3_BYPASS_TO_DOUT1 | + (u32 )VIU_OSD_BLEND1_DOUT_BYPASS_TO_BLEND2 | + (u32 )VIU_OSD_BLEND_DIN0_BYPASS_TO_DOUT0 | + (u32 )VIU_OSD_BLEND_BLEN2_PREMULT_EN (1 ) | + (u32 )VIU_OSD_BLEND_HOLD_LINES (4 ); +writel_relaxed (val, priv->io_base +_REG (VIU_OSD_BLEND_CTRL ));writel_relaxed (OSD_BLEND_PATH_SEL_ENABLE , priv->io_base +_REG (OSD1_BLEND_SRC_CTRL ));
drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c +2 -1
@@ -123,12 +123,13 @@ int mdp5_pipe_release(struct drm_atomic_state *s, struct mdp5_hw_pipe *hwpipe) {struct msm_drm_private *priv = s->dev->dev_private;struct mdp5_kms *mdp5_kms =to_mdp5_kms (to_mdp_kms (priv->kms)); -struct mdp5_global_state *state =mdp5_get_global_state (s); +struct mdp5_global_state *state;struct mdp5_hw_pipe_state *new_state;if (!hwpipe)return 0 ; + state =mdp5_get_global_state (s);if (IS_ERR (state))return PTR_ERR (state);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c +1 -1
@@ -33,7 +33,7 @@ nvbios_addr(struct nvkm_bios *bios, u32 *addr, u8 size) {u32 p = *addr; -if (*addr > bios->image0_size && bios->imaged_addr) { +if (*addr >= bios->image0_size && bios->imaged_addr) { *addr -= bios->image0_size; *addr += bios->imaged_addr; }
drivers/gpu/drm/radeon/ni_dpm.c +2 -4
@@ -2740,10 +2740,10 @@ static int ni_set_mc_special_registers(struct radeon_device *rdev, table->mc_reg_table_entry[k].mc_data[j] |=0x100 ; } j++; -if (j >SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE ) -return -EINVAL ;break ;case MC_SEQ_RESERVE_M >>2 : +if (j >=SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE ) +return -EINVAL ; temp_reg =RREG32 (MC_PMG_CMD_MRS1 ); table->mc_reg_address[j].s1 =MC_PMG_CMD_MRS1 >>2 ; table->mc_reg_address[j].s0 =MC_SEQ_PMG_CMD_MRS1_LP >>2 ;
@@ -2752,8 +2752,6 @@ static int ni_set_mc_special_registers(struct radeon_device *rdev, (temp_reg &0xffff0000 ) | (table->mc_reg_table_entry[k].mc_data[i] &0x0000ffff ); j++; -if (j >SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE ) -return -EINVAL ;break ;default :break ;
drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +9 -1
@@ -401,7 +401,15 @@ static int rockchip_dp_probe(struct platform_device *pdev)if (IS_ERR (dp->adp))return PTR_ERR (dp->adp); -return component_add (dev, &rockchip_dp_component_ops); + ret =component_add (dev, &rockchip_dp_component_ops); +if (ret) + goto err_dp_remove; + +return 0 ; + +err_dp_remove: +analogix_dp_remove (dp->adp); +return ret; }static int rockchip_dp_remove (struct platform_device *pdev)
drivers/gpu/drm/rockchip/rockchip_drm_vop.c +3 -0
@@ -1288,6 +1288,9 @@ static struct drm_crtc_state *vop_crtc_duplicate_state(struct drm_crtc *crtc) {struct rockchip_crtc_state *rockchip_state; +if (WARN_ON (!crtc->state)) +return NULL ; + rockchip_state =kzalloc (sizeof (*rockchip_state),GFP_KERNEL );if (!rockchip_state)return NULL ;
drivers/gpu/drm/vc4/vc4_dsi.c +2 -4
@@ -791,11 +791,9 @@ static bool vc4_dsi_encoder_mode_fixup(struct drm_encoder *encoder,/* Find what divider gets us a faster clock than the requested * pixel clock. */ -for (divider =1 ; divider <8 ; divider++) { -if (parent_rate / divider < pll_clock) { - divider--; +for (divider =1 ; divider <255 ; divider++) { +if (parent_rate / (divider +1 ) < pll_clock)break ; - } }/* Now that we've picked a PLL divider, calculate back to its
drivers/gpu/drm/vc4/vc4_plane.c +13 -17
@@ -288,16 +288,16 @@ static int vc4_plane_margins_adj(struct drm_plane_state *pstate) adjhdisplay, crtc_state->mode.hdisplay); vc4_pstate->crtc_x += left; -if (vc4_pstate->crtc_x > crtc_state->mode.hdisplay - left) - vc4_pstate->crtc_x = crtc_state->mode.hdisplay - left; +if (vc4_pstate->crtc_x > crtc_state->mode.hdisplay - right) + vc4_pstate->crtc_x = crtc_state->mode.hdisplay - right; adjvdisplay = crtc_state->mode.vdisplay - (top + bottom); vc4_pstate->crtc_y =DIV_ROUND_CLOSEST (vc4_pstate->crtc_y * adjvdisplay, crtc_state->mode.vdisplay); vc4_pstate->crtc_y += top; -if (vc4_pstate->crtc_y > crtc_state->mode.vdisplay - top) - vc4_pstate->crtc_y = crtc_state->mode.vdisplay - top; +if (vc4_pstate->crtc_y > crtc_state->mode.vdisplay - bottom) + vc4_pstate->crtc_y = crtc_state->mode.vdisplay - bottom; vc4_pstate->crtc_w = DIV_ROUND_CLOSEST(vc4_pstate->crtc_w * adjhdisplay,
@@ -317,7 +317,6 @@ static int vc4_plane_setup_clipping_and_scaling(struct drm_plane_state *state)struct vc4_plane_state *vc4_state =to_vc4_plane_state (state);struct drm_framebuffer *fb = state->fb;struct drm_gem_cma_object *bo =drm_fb_cma_get_gem_obj (fb,0 ); -u32 subpixel_src_mask = (1 <<16 ) -1 ;int num_planes = fb->format->num_planes;struct drm_crtc_state *crtc_state;u32 h_subsample = fb->format->hsub;
@@ -339,18 +338,15 @@ static int vc4_plane_setup_clipping_and_scaling(struct drm_plane_state *state)for (i =0 ; i < num_planes; i++) vc4_state->offsets[i] = bo->paddr + fb->offsets[i]; -/* We don't support subpixel source positioning for scaling. */ -if ((state->src.x1 & subpixel_src_mask) || - (state->src.x2 & subpixel_src_mask) || - (state->src.y1 & subpixel_src_mask) || - (state->src.y2 & subpixel_src_mask)) { -return -EINVAL ; - } - - vc4_state->src_x = state->src.x1 >>16 ; - vc4_state->src_y = state->src.y1 >>16 ; - vc4_state->src_w[0 ] = (state->src.x2 - state->src.x1) >>16 ; - vc4_state->src_h[0 ] = (state->src.y2 - state->src.y1) >>16 ; +/* +* We don't support subpixel source positioning for scaling, +* but fractional coordinates can be generated by clipping +* so just round for now +*/ + vc4_state->src_x =DIV_ROUND_CLOSEST (state->src.x1,1 <<16 ); + vc4_state->src_y =DIV_ROUND_CLOSEST (state->src.y1,1 <<16 ); + vc4_state->src_w[0 ] =DIV_ROUND_CLOSEST (state->src.x2,1 <<16 ) - vc4_state->src_x; + vc4_state->src_h[0 ] =DIV_ROUND_CLOSEST (state->src.y2,1 <<16 ) - vc4_state->src_y; vc4_state->crtc_x = state->dst.x1; vc4_state->crtc_y = state->dst.y1;
drivers/hid/hid-alps.c +2 -0
@@ -831,6 +831,8 @@ static const struct hid_device_id alps_id[] = { USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1_DUAL) }, { HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1) }, + { HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, + USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1_UNICORN_LEGACY) }, { HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_T4_BTNLESS) }, { }
drivers/hid/hid-cp2112.c +5 -0
@@ -787,6 +787,11 @@ static int cp2112_xfer(struct i2c_adapter *adap, u16 addr, data->word =le16_to_cpup ((__le16 *)buf);break ;case I2C_SMBUS_I2C_BLOCK_DATA : +if (read_length >I2C_SMBUS_BLOCK_MAX ) { + ret = -EINVAL ; + goto power_normal; + } +memcpy (data->block +1 , buf, read_length);break ;case I2C_SMBUS_BLOCK_DATA :
drivers/hid/wacom_sys.c +1 -1
@@ -2124,7 +2124,7 @@ static int wacom_register_inputs(struct wacom *wacom) error =wacom_setup_pad_input_capabilities (pad_input_dev, wacom_wac);if (error) { -/* no pad in use on this interface */ +/* no pad events using this interface */ input_free_device (pad_input_dev); wacom_wac->pad_input =NULL ; pad_input_dev =NULL ;
drivers/hid/wacom_wac.c +46 -26
125 lines not on this page · raw message
drivers/hwtracing/coresight/coresight.c +1 -0
@@ -1073,6 +1073,7 @@ static int coresight_remove_match(struct device *dev, void *data)* platform data. */ fwnode_handle_put (conn->child_fwnode); + conn->child_fwnode =NULL ;/* No need to continue */ break ; }
drivers/hwtracing/intel_th/msu-sink.c +3 -0
@@ -71,6 +71,9 @@ static int msu_sink_alloc_window(void *data, struct sg_table **sgt, size_t size) block =dma_alloc_coherent (priv->dev->parent->parent,PAGE_SIZE , &sg_dma_address (sg_ptr),GFP_KERNEL ); +if (!block) +return -ENOMEM ; +sg_set_buf (sg_ptr, block,PAGE_SIZE ); }
drivers/hwtracing/intel_th/msu.c +12 -2
@@ -1050,6 +1050,16 @@ msc_buffer_set_uc(struct msc_window *win, unsigned int nr_segs) {}static inline void msc_buffer_set_wb (struct msc_window *win) {}#endif /* CONFIG_X86 */ +static struct page *msc_sg_page (struct scatterlist *sg) +{ +void *addr =sg_virt (sg); + +if (is_vmalloc_addr (addr)) +return vmalloc_to_page (addr); + +return sg_page (sg); +} +/** * msc_buffer_win_alloc() - alloc a window for a multiblock mode * @msc: MSC device
@@ -1122,7 +1132,7 @@ static void __msc_buffer_win_free(struct msc *msc, struct msc_window *win)int i;for_each_sg (win->sgt->sgl, sg, win->nr_segs, i) { -struct page *page =sg_page (sg); +struct page *page =msc_sg_page (sg); page->mapping =NULL ; dma_free_coherent(msc_dev(win->msc)->parent->parent, PAGE_SIZE,
@@ -1384,7 +1394,7 @@ static struct page *msc_buffer_get_page(struct msc *msc, unsigned long pgoff) pgoff -= win->pgoff;for_each_sg (win->sgt->sgl, sg, win->nr_segs, blk) { -struct page *page =sg_page (sg); +struct page *page =msc_sg_page (sg);size_t pgsz =PFN_DOWN (sg->length);if (pgoff < pgsz)
drivers/hwtracing/intel_th/pci.c +23 -2
@@ -100,8 +100,10 @@ static int intel_th_pci_probe(struct pci_dev *pdev, } th =intel_th_alloc (&pdev->dev, drvdata, resource, r); -if (IS_ERR (th)) -return PTR_ERR (th); +if (IS_ERR (th)) { + err =PTR_ERR (th); + goto err_free_irq; + } th->activate = intel_th_pci_activate; th->deactivate = intel_th_pci_deactivate;
@@ -109,6 +111,10 @@ static int intel_th_pci_probe(struct pci_dev *pdev,pci_set_master (pdev);return 0 ; + +err_free_irq: +pci_free_irq_vectors (pdev); +return err; }static void intel_th_pci_remove (struct pci_dev *pdev)
@@ -273,6 +279,21 @@ static const struct pci_device_id intel_th_pci_id_table[] = { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x54a6), .driver_data = (kernel_ulong_t)&intel_th_2x, }, + { +/* Raptor Lake-S CPU */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,0xa76f ), + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { +/* Meteor Lake-P */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,0x7e24 ), + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { +/* Raptor Lake-S */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,0x7a26 ), + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, {/* Rocket Lake CPU */ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4c19),
drivers/i2c/busses/i2c-cadence.c +9 -1
@@ -348,8 +348,13 @@ static void cdns_i2c_mrecv(struct cdns_i2c *id) ctrl_reg =cdns_i2c_readreg (CDNS_I2C_CR_OFFSET ); ctrl_reg |=CDNS_I2C_CR_RW |CDNS_I2C_CR_CLR_FIFO ; +/* +* Receive up to I2C_SMBUS_BLOCK_MAX data bytes, plus one message length +* byte, plus one checksum byte if PEC is enabled. p_msg->len will be 2 if +* PEC is enabled, otherwise 1. +*/ if (id->p_msg->flags &I2C_M_RECV_LEN ) - id->recv_count =I2C_SMBUS_BLOCK_MAX +1 ; + id->recv_count =I2C_SMBUS_BLOCK_MAX + id->p_msg->len; id->curr_recv_count = id->recv_count;
@@ -535,6 +540,9 @@ static int cdns_i2c_process_msg(struct cdns_i2c *id, struct i2c_msg *msg,if (id->err_status &CDNS_I2C_IXR_ARB_LOST )return -EAGAIN ; +if (msg->flags &I2C_M_RECV_LEN ) + msg->len += min_t(unsigned int, msg->buf[0], I2C_SMBUS_BLOCK_MAX); +return 0 ; }
drivers/i2c/i2c-core-base.c +2 -1
@@ -2358,8 +2358,9 @@ void i2c_put_adapter(struct i2c_adapter *adap)if (!adap)return ; -put_device (&adap->dev);module_put (adap->owner); +/* Should be last, otherwise we risk use-after-free with 'adap' */ +put_device (&adap->dev); }EXPORT_SYMBOL (i2c_put_adapter);
drivers/i2c/muxes/i2c-mux-gpmux.c +1 -0
@@ -138,6 +138,7 @@ static int i2c_mux_probe(struct platform_device *pdev)return 0 ; err_children: +of_node_put (child);i2c_mux_del_adapters (muxc); err_parent:i2c_put_adapter (parent);
drivers/iio/light/isl29028.c +1 -1
@@ -628,7 +628,7 @@ static int isl29028_probe(struct i2c_client *client, ISL29028_POWER_OFF_DELAY_MS);pm_runtime_use_autosuspend (&client->dev); - ret =devm_iio_device_register (indio_dev->dev.parent, indio_dev); + ret =iio_device_register (indio_dev);if (ret <0 ) { dev_err(&client->dev, "%s(): iio registration failed with error %d\n",
drivers/infiniband/hw/hfi1/file_ops.c +3 -1
@@ -1224,8 +1224,10 @@ static int setup_base_ctxt(struct hfi1_filedata *fd, goto done; ret =init_user_ctxt (fd, uctxt); -if (ret) +if (ret) { +hfi1_free_ctxt_rcv_groups (uctxt); goto done; + }user_init (uctxt);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +2 -2
@@ -5216,8 +5216,8 @@ static irqreturn_t hns_roce_v2_msix_interrupt_abn(int irq, void *dev_id)dev_err (dev,"AEQ overflow!\n" ); - int_st |=1 <<HNS_ROCE_V2_VF_INT_ST_AEQ_OVERFLOW_S ; -roce_write (hr_dev,ROCEE_VF_ABN_INT_ST_REG , int_st); +roce_write (hr_dev,ROCEE_VF_ABN_INT_ST_REG , +1 <<HNS_ROCE_V2_VF_INT_ST_AEQ_OVERFLOW_S );/* Set reset level for reset_event() */ if (ops->set_default_reset_request)
drivers/infiniband/sw/rxe/rxe_qp.c +8 -4
@@ -211,6 +211,14 @@ static void rxe_qp_init_misc(struct rxe_dev *rxe, struct rxe_qp *qp,spin_lock_init (&qp->grp_lock);spin_lock_init (&qp->state_lock); +spin_lock_init (&qp->req.task.state_lock); +spin_lock_init (&qp->resp.task.state_lock); +spin_lock_init (&qp->comp.task.state_lock); + +spin_lock_init (&qp->sq.sq_lock); +spin_lock_init (&qp->rq.producer_lock); +spin_lock_init (&qp->rq.consumer_lock); +atomic_set (&qp->ssn,0 );atomic_set (&qp->skb_out,0 ); }
@@ -268,7 +276,6 @@ static int rxe_qp_init_req(struct rxe_dev *rxe, struct rxe_qp *qp, qp->req.opcode =-1 ; qp->comp.opcode =-1 ; -spin_lock_init (&qp->sq.sq_lock);skb_queue_head_init (&qp->req_pkts); rxe_init_task(rxe, &qp->req.task, qp,
@@ -318,9 +325,6 @@ static int rxe_qp_init_resp(struct rxe_dev *rxe, struct rxe_qp *qp, } } -spin_lock_init (&qp->rq.producer_lock); -spin_lock_init (&qp->rq.consumer_lock); -skb_queue_head_init (&qp->resp_pkts); rxe_init_task(rxe, &qp->resp.task, qp,
drivers/infiniband/sw/siw/siw_cm.c +4 -3
@@ -725,11 +725,11 @@ static int siw_proc_mpareply(struct siw_cep *cep)enum mpa_v2_ctrl mpa_p2p_mode =MPA_V2_RDMA_NO_RTR ; rv =siw_recv_mpa_rr (cep); -if (rv != -EAGAIN ) -siw_cancel_mpatimer (cep);if (rv) goto out_err; +siw_cancel_mpatimer (cep); + rep = &cep->mpa.hdr;if (__mpa_rr_revision (rep->params.bits) >MPA_REVISION_2 ) {
@@ -895,7 +895,8 @@ static int siw_proc_mpareply(struct siw_cep *cep) } out_err: -siw_cm_upcall (cep,IW_CM_EVENT_CONNECT_REPLY , -EINVAL ); +if (rv != -EAGAIN ) +siw_cm_upcall (cep,IW_CM_EVENT_CONNECT_REPLY , -EINVAL );return rv; }
drivers/iommu/dmar.c +1 -1
@@ -475,7 +475,7 @@ static int dmar_parse_one_rhsa(struct acpi_dmar_header *header, void *arg)if (drhd->reg_base_addr == rhsa->base_address) {int node =acpi_map_pxm_to_node (rhsa->proximity_domain); -if (!node_online (node)) +if (node !=NUMA_NO_NODE && !node_online (node)) node =NUMA_NO_NODE ; drhd->iommu->node = node;return 0 ;
drivers/iommu/exynos-iommu.c +5 -1
@@ -635,7 +635,7 @@ static int exynos_sysmmu_probe(struct platform_device *pdev) ret =iommu_device_register (&data->iommu);if (ret) -return ret; + goto err_iommu_register;platform_set_drvdata (pdev, data);
@@ -662,6 +662,10 @@ static int exynos_sysmmu_probe(struct platform_device *pdev)pm_runtime_enable (dev);return 0 ; + +err_iommu_register: +iommu_device_sysfs_remove (&data->iommu); +return ret; }static int __maybe_unused exynos_sysmmu_suspend (struct device *dev)
drivers/iommu/qcom_iommu.c +5 -2
@@ -785,9 +785,12 @@ static bool qcom_iommu_has_secure_context(struct qcom_iommu_dev *qcom_iommu) {struct device_node *child; -for_each_child_of_node (qcom_iommu->dev->of_node, child) -if (of_device_is_compatible (child,"qcom,msm-iommu-v1-sec" )) +for_each_child_of_node (qcom_iommu->dev->of_node, child) { +if (of_device_is_compatible (child,"qcom,msm-iommu-v1-sec" )) { +of_node_put (child);return true; + } + }return false; }
drivers/irqchip/irq-tegra.c +5 -5
@@ -148,10 +148,10 @@ static int tegra_ictlr_suspend(void) lic->cop_iep[i] =readl_relaxed (ictlr +ICTLR_COP_IEP_CLASS );/* Disable COP interrupts */ -writel_relaxed (~0ul , ictlr +ICTLR_COP_IER_CLR ); +writel_relaxed (GENMASK (31 ,0 ), ictlr +ICTLR_COP_IER_CLR );/* Disable CPU interrupts */ -writel_relaxed (~0ul , ictlr +ICTLR_CPU_IER_CLR ); +writel_relaxed (GENMASK (31 ,0 ), ictlr +ICTLR_CPU_IER_CLR );/* Enable the wakeup sources of ictlr */ writel_relaxed (lic->ictlr_wake_mask[i], ictlr +ICTLR_CPU_IER_SET );
@@ -172,12 +172,12 @@ static void tegra_ictlr_resume(void)writel_relaxed (lic->cpu_iep[i], ictlr +ICTLR_CPU_IEP_CLASS ); -writel_relaxed (~0ul , ictlr +ICTLR_CPU_IER_CLR ); +writel_relaxed (GENMASK (31 ,0 ), ictlr +ICTLR_CPU_IER_CLR );writel_relaxed (lic->cpu_ier[i], ictlr +ICTLR_CPU_IER_SET );writel_relaxed (lic->cop_iep[i], ictlr +ICTLR_COP_IEP_CLASS ); -writel_relaxed (~0ul , ictlr +ICTLR_COP_IER_CLR ); +writel_relaxed (GENMASK (31 ,0 ), ictlr +ICTLR_COP_IER_CLR );writel_relaxed (lic->cop_ier[i], ictlr +ICTLR_COP_IER_SET ); }
@@ -312,7 +312,7 @@ static int __init tegra_ictlr_init(struct device_node *node, lic->base[i] = base;/* Disable all interrupts */ -writel_relaxed (~0UL , base +ICTLR_CPU_IER_CLR ); +writel_relaxed (GENMASK (31 ,0 ), base +ICTLR_CPU_IER_CLR );/* All interrupts target IRQ */ writel_relaxed (0 , base +ICTLR_CPU_IEP_CLASS );
drivers/md/dm-raid.c +2 -2
@@ -3528,7 +3528,7 @@ static void raid_status(struct dm_target *ti, status_type_t type, {struct raid_set *rs = ti->private;struct mddev *mddev = &rs->md; -struct r5conf *conf = mddev->private; +struct r5conf *conf =rs_is_raid456 (rs) ? mddev->private :NULL ;int i, max_nr_stripes = conf ? conf->max_nr_stripes :0 ;unsigned long recovery;unsigned int raid_param_cnt =1 ;/* at least 1 for chunksize */
@@ -3808,7 +3808,7 @@ static void attempt_restore_of_faulty_devices(struct raid_set *rs)memset (cleared_failed_devices,0 ,sizeof (cleared_failed_devices)); -for (i =0 ; i < mddev->raid_disks; i++) { +for (i =0 ; i < rs->raid_disks; i++) { r = &rs->dev[i].rdev;/* HM FIXME: enhance journal device recovery processing */ if (test_bit (Journal, &r->flags))
drivers/md/dm-thin-metadata.c +5 -2
@@ -2060,10 +2060,13 @@ int dm_pool_register_metadata_threshold(struct dm_pool_metadata *pmd,dm_sm_threshold_fn fn, void *context) { - int r; + int r = -EINVAL;pmd_write_lock_in_core (pmd); - r =dm_sm_register_threshold_callback (pmd->metadata_sm, threshold, fn, context); +if (!pmd->fail_io) { + r =dm_sm_register_threshold_callback (pmd->metadata_sm, + threshold, fn, context); + }pmd_write_unlock (pmd);return r;
drivers/md/dm-thin.c +3 -1
@@ -3425,8 +3425,10 @@ static int pool_ctr(struct dm_target *ti, unsigned argc, char **argv)calc_metadata_threshold (pt), metadata_low_callback, pool); -if (r) +if (r) { + ti->error ="Error registering metadata threshold" ; goto out_flags_changed; + } pt->callbacks.congested_fn = pool_is_congested;dm_table_add_target_callbacks (ti->table, &pt->callbacks);
drivers/md/dm-writecache.c +1 -1
@@ -20,7 +20,7 @@#define HIGH_WATERMARK 50#define LOW_WATERMARK 45 -#define MAX_WRITEBACK_JOBS 0 +#define MAX_WRITEBACK_JOBS min(0x10000000 / PAGE_SIZE, totalram_pages() / 16)#define ENDIO_LATENCY 16#define WRITEBACK_LATENCY 64#define AUTOCOMMIT_BLOCKS_SSD 65536
drivers/md/dm.c +5 -0
@@ -3080,6 +3080,11 @@ static int dm_call_pr(struct block_device *bdev, iterate_devices_callout_fn fn, goto out; ti =dm_table_get_target (table,0 ); +if (dm_suspended_md (md)) { + ret = -EAGAIN ; + goto out; + } + ret = -EINVAL ;if (!ti->type->iterate_devices) goto out;
drivers/md/raid10.c +4 -1
@@ -1826,9 +1826,12 @@ static int raid10_remove_disk(struct mddev *mddev, struct md_rdev *rdev)int err =0 ;int number = rdev->raid_disk;struct md_rdev **rdevp; -struct raid10_info *p = conf->mirrors + number; +struct raid10_info *p;print_conf (conf); +if (unlikely (number >= mddev->raid_disks)) +return 0 ; + p = conf->mirrors + number;if (rdev == p->rdev) rdevp = &p->rdev;else if (rdev == p->replacement)
drivers/md/raid5.c +1 -1
@@ -2666,10 +2666,10 @@ static void raid5_end_write_request(struct bio *bi)if (!test_and_clear_bit (R5_DOUBLE_LOCKED , &sh->dev[i].flags))clear_bit (R5_LOCKED , &sh->dev[i].flags);set_bit (STRIPE_HANDLE , &sh->state); -raid5_release_stripe (sh);if (sh->batch_head && sh != sh->batch_head)raid5_release_stripe (sh->batch_head); +raid5_release_stripe (sh); }static void raid5_error (struct mddev *mddev,struct md_rdev *rdev)
drivers/media/pci/tw686x/tw686x-core.c +8 -10
@@ -315,13 +315,6 @@ static int tw686x_probe(struct pci_dev *pci_dev,spin_lock_init (&dev->lock); - err =request_irq (pci_dev->irq, tw686x_irq,IRQF_SHARED , - dev->name, dev); -if (err <0 ) { -dev_err (&pci_dev->dev,"unable to request interrupt\n" ); - goto iounmap; - } -timer_setup (&dev->dma_delay_timer, tw686x_dma_delay,0 );/*
@@ -333,18 +326,23 @@ static int tw686x_probe(struct pci_dev *pci_dev, err =tw686x_video_init (dev);if (err) {dev_err (&pci_dev->dev,"can't register video\n" ); - goto free_irq; + goto iounmap; } err =tw686x_audio_init (dev);if (err)dev_warn (&pci_dev->dev,"can't register audio\n" ); + err =request_irq (pci_dev->irq, tw686x_irq,IRQF_SHARED , + dev->name, dev); +if (err <0 ) { +dev_err (&pci_dev->dev,"unable to request interrupt\n" ); + goto iounmap; + } +pci_set_drvdata (pci_dev, dev);return 0 ; -free_irq: -free_irq (pci_dev->irq, dev); iounmap:pci_iounmap (pci_dev, dev->mmio); free_region:
drivers/media/platform/mtk-mdp/mtk_mdp_ipi.h +2 -0
@@ -40,12 +40,14 @@ struct mdp_ipi_init {* @ipi_id : IPI_MDP * @ap_inst : AP mtk_mdp_vpu address * @vpu_inst_addr : VPU MDP instance address +* @padding : Alignment padding */ struct mdp_ipi_comm {uint32_t msg_id;uint32_t ipi_id;uint64_t ap_inst;uint32_t vpu_inst_addr; +uint32_t padding; };/**
drivers/media/usb/hdpvr/hdpvr-video.c +1 -1
@@ -409,7 +409,7 @@ static ssize_t hdpvr_read(struct file *file, char __user *buffer, size_t count,struct hdpvr_device *dev =video_drvdata (file);struct hdpvr_buffer *buf =NULL ;struct urb *urb; -unsigned int ret =0 ; +int ret =0 ;int rem, cnt;if (*pos)
drivers/memstick/core/ms_block.c +6 -5
@@ -1335,17 +1335,17 @@ static int msb_ftl_initialize(struct msb_data *msb) msb->zone_count = msb->block_count /MS_BLOCKS_IN_ZONE ; msb->logical_block_count = msb->zone_count *496 -2 ; - msb->used_blocks_bitmap =kzalloc (msb->block_count /8 ,GFP_KERNEL ); - msb->erased_blocks_bitmap =kzalloc (msb->block_count /8 ,GFP_KERNEL ); + msb->used_blocks_bitmap =bitmap_zalloc (msb->block_count,GFP_KERNEL ); + msb->erased_blocks_bitmap =bitmap_zalloc (msb->block_count,GFP_KERNEL ); msb->lba_to_pba_table =kmalloc_array (msb->logical_block_count,sizeof (u16),GFP_KERNEL );if (!msb->used_blocks_bitmap || !msb->lba_to_pba_table || !msb->erased_blocks_bitmap) { -kfree (msb->used_blocks_bitmap); +bitmap_free (msb->used_blocks_bitmap); +bitmap_free (msb->erased_blocks_bitmap);kfree (msb->lba_to_pba_table); -kfree (msb->erased_blocks_bitmap);return -ENOMEM ; }
@@ -1953,7 +1953,8 @@ static int msb_bd_open(struct block_device *bdev, fmode_t mode)static void msb_data_clear (struct msb_data *msb) {kfree (msb->boot_page); -kfree (msb->used_blocks_bitmap); +bitmap_free (msb->used_blocks_bitmap); +bitmap_free (msb->erased_blocks_bitmap);kfree (msb->lba_to_pba_table);kfree (msb->cache); msb->card =NULL ;
drivers/mfd/max77620.c +2 -0
@@ -418,9 +418,11 @@ static int max77620_initialise_fps(struct max77620_chip *chip) ret =max77620_config_fps (chip, fps_child);if (ret <0 ) {of_node_put (fps_child); +of_node_put (fps_np);return ret; } } +of_node_put (fps_np); config = chip->enable_global_lpm ?MAX77620_ONOFFCNFG2_SLP_LPM_MSK :0 ; ret = regmap_update_bits(chip->rmap, MAX77620_REG_ONOFFCNFG2,
drivers/mfd/t7l66xb.c +1 -5
@@ -405,11 +405,8 @@ static int t7l66xb_probe(struct platform_device *dev)static int t7l66xb_remove (struct platform_device *dev) { -struct t7l66xb_platform_data *pdata =dev_get_platdata (&dev->dev);struct t7l66xb *t7l66xb =platform_get_drvdata (dev); -int ret; - ret = pdata->disable (dev);clk_disable_unprepare (t7l66xb->clk48m);clk_put (t7l66xb->clk48m);clk_disable_unprepare (t7l66xb->clk32k);
@@ -420,8 +417,7 @@ static int t7l66xb_remove(struct platform_device *dev)mfd_remove_devices (&dev->dev);kfree (t7l66xb); -return ret; - +return 0 ; }static struct platform_driver t7l66xb_platform_driver = {
drivers/misc/cardreader/rtsx_pcr.c +5 -1
@@ -1485,7 +1485,7 @@ static int rtsx_pci_probe(struct pci_dev *pcidev, pcr->remap_addr =ioremap_nocache (base, len);if (!pcr->remap_addr) { ret = -ENOMEM ; - goto free_handle; + goto free_idr; } pcr->rtsx_resv_buf = dma_alloc_coherent(&(pcidev->dev),
@@ -1547,6 +1547,10 @@ static int rtsx_pci_probe(struct pci_dev *pcidev, pcr->rtsx_resv_buf, pcr->rtsx_resv_buf_addr); unmap:iounmap (pcr->remap_addr); +free_idr: +spin_lock (&rtsx_pci_lock); +idr_remove (&rtsx_pci_idr, pcr->id); +spin_unlock (&rtsx_pci_lock); free_handle:kfree (handle); free_pcr:
drivers/misc/cxl/irq.c +1 -0
@@ -349,6 +349,7 @@ int afu_allocate_irqs(struct cxl_context *ctx, u32 count) out: cxl_ops->release_irq_ranges (&ctx->irqs, ctx->afu->adapter); +bitmap_free (ctx->irq_bitmap);afu_irq_name_free (ctx);return -ENOMEM ; }
drivers/mmc/host/cavium-octeon.c +1 -0
@@ -288,6 +288,7 @@ static int octeon_mmc_probe(struct platform_device *pdev)if (ret) {dev_err (&pdev->dev,"Error populating slots\n" );octeon_mmc_set_shared_power (host,0 ); +of_node_put (cn); goto error; } i++;
drivers/mmc/host/cavium-thunderx.c +3 -1
@@ -138,8 +138,10 @@ static int thunder_mmc_probe(struct pci_dev *pdev,continue ; ret =cvm_mmc_of_slot_probe (&host->slot_pdev[i]->dev, host); -if (ret) +if (ret) { +of_node_put (child_node); goto error; + } } i++; }
drivers/mmc/host/pxamci.c +2 -2
@@ -648,7 +648,7 @@ static int pxamci_probe(struct platform_device *pdev) ret =pxamci_of_init (pdev, mmc);if (ret) -return ret; + goto out; host =mmc_priv (mmc); host->mmc = mmc;
@@ -672,7 +672,7 @@ static int pxamci_probe(struct platform_device *pdev) ret =pxamci_init_ocr (host);if (ret <0 ) -return ret; + goto out; mmc->caps =0 ; host->cmdat =0 ;
drivers/mmc/host/sdhci-of-at91.c +7 -2
@@ -109,8 +109,13 @@ static void sdhci_at91_set_power(struct sdhci_host *host, unsigned char mode,static void sdhci_at91_set_uhs_signaling (struct sdhci_host *host,unsigned int timing) { -if (timing ==MMC_TIMING_MMC_DDR52 ) -sdhci_writeb (host,SDMMC_MC1R_DDR ,SDMMC_MC1R ); +u8 mc1r; + +if (timing ==MMC_TIMING_MMC_DDR52 ) {
Lines of this file are not shown. View the raw message.
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c +8 -4
Lines of this file are not shown. View the raw message.
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fec_ptp.c +1 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_adminq.c +13 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_main.c +23 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_switch.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igb/igb_main.c +11 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_base.c +1 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_main.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_phy.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/moxa/moxart_ether.c +10 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/htc_drv_init.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wil6210/debugfs.c +6 -12
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlegacy/4965-rs.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/sta.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intersil/p54/main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intersil/p54/p54spi.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas/if_usb.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mac80211.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/debug.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-tegra194.c +23 -25
48 lines not on this page · raw message
drivers/pinctrl/nomadik/pinctrl-nomadik.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/scsi/sg.c +34 -23
57 lines not on this page · raw message
drivers/tty/n_gsm.c +79 -11
90 lines not on this page · raw message
drivers/usb/gadget/function/uvc_video.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/virt/vboxguest/vboxguest_linux.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/xen/xenbus/xenbus_dev_frontend.c +2 -2
Lines of this file are not shown. View the raw message.
fs/btrfs/raid56.c +57 -17
74 lines not on this page · raw message
fs/nfs/nfs4idmap.c +24 -22
46 lines not on this page · raw message
sound/core/misc.c +94 -0
94 lines not on this page · raw message
sound/soc/codecs/msm8916-wcd-digital.c +23 -23
46 lines not on this page · raw message
sound/soc/codecs/wcd9335.c +36 -45
81 lines not on this page · raw message
sound/soc/mediatek/mt6797/mt6797-mt6351.c +5 -1
Lines of this file are not shown. View the raw message.
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c +7 -3
Lines of this file are not shown. View the raw message.
sound/soc/mediatek/mt8173/mt8173-rt5650.c +6 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc +0 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/timers/clocksource-switch.c +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/timers/valid-adjtimex.c +1 -1
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.