Linux 5.4.189
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.189 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/DMA-attributes.txt | 10 Documentation/devicetree/bindings/mtd/nand-controller.yaml | 4 Documentation/devicetree/bindings/spi/spi-mxic.txt | 4 Documentation/process/stable-kernel-rules.rst | 11 Documentation/sound/hd-audio/models.rst | 4 Makefile | 2 arch/arm/boot/dts/bcm2837.dtsi | 49 ++ arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 2 arch/arm/boot/dts/exynos5250-smdk5250.dts | 3 arch/arm/boot/dts/exynos5420-smdk5420.dts | 3 arch/arm/boot/dts/imx53-m53menlo.dts | 29 + arch/arm/boot/dts/qcom-ipq4019.dtsi | 3 arch/arm/boot/dts/qcom-msm8960.dtsi | 8 arch/arm/boot/dts/sama5d2.dtsi | 2 arch/arm/boot/dts/spear1340.dtsi | 6 arch/arm/boot/dts/spear13xx.dtsi | 6 arch/arm/boot/dts/tegra20-tamonten.dtsi | 6 arch/arm/mach-iop32x/include/mach/entry-macro.S | 2 arch/arm/mach-iop32x/include/mach/irqs.h | 2 arch/arm/mach-iop32x/irq.c | 6 arch/arm/mach-iop32x/irqs.h | 60 +-- arch/arm/mach-mmp/sram.c | 22 - arch/arm/mach-s3c24xx/mach-jive.c | 6 arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts | 8 arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi | 2 arch/arm64/boot/dts/qcom/sm8150.dtsi | 6 arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 4 arch/arm64/include/asm/kvm_mmu.h | 3 arch/arm64/kernel/cpuidle.c | 6 arch/arm64/kernel/insn.c | 4 arch/arm64/kernel/module.lds | 6 arch/arm64/net/bpf_jit_comp.c | 18 arch/microblaze/include/asm/uaccess.h | 18 arch/mips/dec/int-handler.S | 6 arch/mips/dec/prom/Makefile | 2 arch/mips/dec/setup.c | 3 arch/mips/include/asm/dec/prom.h | 15 arch/mips/include/asm/setup.h | 2 arch/mips/kernel/traps.c | 22 - arch/mips/ralink/ill_acc.c | 1 arch/mips/rb532/devices.c | 6 arch/nios2/include/asm/uaccess.h | 26 - arch/parisc/kernel/patch.c | 25 - arch/powerpc/Makefile | 2 arch/powerpc/boot/dts/fsl/t104xrdb.dtsi | 4 arch/powerpc/include/asm/io.h | 40 +- arch/powerpc/include/asm/uaccess.h | 3 arch/powerpc/kernel/kvm.c | 2 arch/powerpc/kernel/machine_kexec.c | 15 arch/powerpc/kernel/rtas.c | 6 arch/powerpc/kvm/powerpc.c | 4 arch/powerpc/lib/sstep.c | 8 arch/powerpc/mm/kasan/kasan_init_32.c | 2 arch/powerpc/perf/imc-pmu.c | 6 arch/powerpc/platforms/8xx/pic.c | 1 arch/powerpc/platforms/powernv/rng.c | 6 arch/powerpc/sysdev/fsl_gtm.c | 4 arch/riscv/kernel/module.lds | 6 arch/riscv/kernel/perf_callchain.c | 2 arch/um/drivers/mconsole_kern.c | 3 arch/x86/events/intel/pt.c | 2 arch/x86/kernel/kvm.c | 2 arch/x86/kvm/emulate.c | 14 arch/x86/kvm/hyperv.c | 16 arch/x86/kvm/lapic.c | 5 arch/x86/kvm/paging_tmpl.h | 77 ++-- arch/x86/kvm/pmu_amd.c | 8 arch/x86/power/cpu.c | 21 + arch/x86/xen/pmu.c | 10 arch/x86/xen/pmu.h | 3 arch/x86/xen/smp_hvm.c | 6 arch/x86/xen/smp_pv.c | 2 arch/x86/xen/time.c | 24 + arch/xtensa/boot/dts/xtfpga-flash-128m.dtsi | 8 arch/xtensa/boot/dts/xtfpga-flash-16m.dtsi | 8 arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi | 4 arch/xtensa/include/asm/processor.h | 4 arch/xtensa/kernel/jump_label.c | 2 block/bfq-cgroup.c | 6 block/bfq-iosched.c | 31 + block/blk-merge.c | 11 block/blk-sysfs.c | 8 crypto/authenc.c | 2 crypto/rsa-pkcs1pad.c | 6 drivers/acpi/acpica/nswalk.c | 3 drivers/acpi/apei/bert.c | 10 drivers/acpi/apei/erst.c | 2 drivers/acpi/apei/hest.c | 2 drivers/acpi/cppc_acpi.c | 5 drivers/acpi/processor_idle.c | 15 drivers/acpi/property.c | 2 drivers/ata/sata_dwc_460ex.c | 6 drivers/base/dd.c | 2 drivers/base/power/main.c | 6 drivers/block/drbd/drbd_int.h | 8 drivers/block/drbd/drbd_nl.c | 41 +- drivers/block/drbd/drbd_req.c | 3 drivers/block/drbd/drbd_state.c | 18 drivers/block/drbd/drbd_state_change.h | 8 drivers/block/loop.c | 10 drivers/block/virtio_blk.c | 12 drivers/bluetooth/btmtksdio.c | 4 drivers/bluetooth/hci_serdev.c | 3 drivers/char/hw_random/atmel-rng.c | 1 drivers/char/tpm/tpm-chip.c | 46 -- drivers/char/tpm/tpm.h | 2 drivers/char/tpm/tpm2-space.c | 65 +++ drivers/char/virtio_console.c | 15 drivers/clk/actions/owl-s700.c | 1 drivers/clk/actions/owl-s900.c | 2 drivers/clk/clk-clps711x.c | 2 drivers/clk/clk-si5341.c | 16 drivers/clk/clk.c | 37 ++ drivers/clk/imx/clk-imx7d.c | 1 drivers/clk/loongson1/clk-loongson1c.c | 1 drivers/clk/qcom/clk-rcg2.c | 14 drivers/clk/qcom/gcc-ipq8074.c | 2 drivers/clk/qcom/gcc-msm8994.c | 1 drivers/clk/tegra/clk-emc.c | 1 drivers/clk/uniphier/clk-uniphier-fixed-rate.c | 1 drivers/clocksource/acpi_pm.c | 6 drivers/clocksource/timer-of.c | 6 drivers/crypto/ccp/ccp-dmaengine.c | 16 drivers/crypto/ccree/cc_buffer_mgr.c | 7 drivers/crypto/mxs-dcp.c | 2 drivers/crypto/vmx/Kconfig | 4 drivers/dax/super.c | 1 drivers/dma-buf/udmabuf.c | 4 drivers/dma/sh/shdma-base.c | 4 drivers/firmware/google/Kconfig | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 3 drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 2 drivers/gpu/drm/amd/amdkfd/kfd_module.c | 2 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c | 14 drivers/gpu/drm/bridge/cdns-dsi.c | 1 drivers/gpu/drm/bridge/sil-sii8620.c | 2 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 1 drivers/gpu/drm/drm_edid.c | 11 drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 drivers/gpu/drm/imx/parallel-display.c | 4 drivers/gpu/drm/tegra/dsi.c | 4 drivers/greybus/svc.c | 8 drivers/hid/hid-logitech-dj.c | 1 drivers/hid/i2c-hid/i2c-hid-core.c | 32 + drivers/hid/intel-ish-hid/ishtp-fw-loader.c | 29 - drivers/hv/hv_balloon.c | 2 drivers/hv/vmbus_drv.c | 9 drivers/hwmon/pmbus/pmbus.h | 1 drivers/hwmon/pmbus/pmbus_core.c | 18 drivers/hwmon/sch56xx-common.c | 2 drivers/hwtracing/coresight/coresight-etm4x-sysfs.c | 8 drivers/i2c/busses/i2c-xiic.c | 3 drivers/i2c/muxes/i2c-demux-pinctrl.c | 5 drivers/iio/adc/twl6030-gpadc.c | 2 drivers/iio/afe/iio-rescale.c | 8 drivers/iio/inkern.c | 40 +- drivers/infiniband/core/cma.c | 2 drivers/infiniband/hw/mlx5/devx.c | 4 drivers/infiniband/sw/rdmavt/qp.c | 6 drivers/input/input.c | 6 drivers/iommu/arm-smmu-v3.c | 1 drivers/iommu/iova.c | 5 drivers/iommu/ipmmu-vmsa.c | 4 drivers/irqchip/irq-gic-v3.c | 8 drivers/irqchip/irq-nvic.c | 2 drivers/irqchip/qcom-pdc.c | 5 drivers/mailbox/tegra-hsp.c | 5 drivers/md/dm-crypt.c | 2 drivers/md/dm-ioctl.c | 2 drivers/media/i2c/adv7511-v4l2.c | 2 drivers/media/i2c/adv7604.c | 2 drivers/media/i2c/adv7842.c | 2 drivers/media/pci/bt8xx/bttv-driver.c | 4 drivers/media/pci/cx88/cx88-mpeg.c | 3 drivers/media/pci/ivtv/ivtv-driver.h | 1 drivers/media/pci/ivtv/ivtv-ioctl.c | 10 drivers/media/pci/ivtv/ivtv-streams.c | 11 drivers/media/platform/aspeed-video.c | 9 drivers/media/platform/coda/coda-common.c | 1 drivers/media/platform/davinci/vpif.c | 1 drivers/media/usb/em28xx/em28xx-cards.c | 13 drivers/media/usb/go7007/s2250-board.c | 10 drivers/media/usb/hdpvr/hdpvr-video.c | 4 drivers/media/usb/stk1160/stk1160-core.c | 2 drivers/media/usb/stk1160/stk1160-v4l.c | 10 drivers/media/usb/stk1160/stk1160.h | 2 drivers/memory/emif.c | 8 drivers/mfd/asic3.c | 10 drivers/mfd/mc13xxx-core.c | 4 drivers/misc/cardreader/alcor_pci.c | 9 drivers/misc/kgdbts.c | 4 drivers/mmc/core/host.c | 15 drivers/mmc/host/davinci_mmc.c | 6 drivers/mmc/host/mmci_stm32_sdmmc.c | 6 drivers/mmc/host/renesas_sdhi_core.c | 4 drivers/mmc/host/sdhci-xenon.c | 10 drivers/mtd/nand/onenand/generic.c | 7 drivers/mtd/nand/raw/atmel/nand-controller.c | 14 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 3 drivers/mtd/ubi/build.c | 9 drivers/mtd/ubi/fastmap.c | 28 + drivers/mtd/ubi/vmt.c | 8 drivers/net/can/usb/ems_usb.c | 1 drivers/net/can/usb/mcba_usb.c | 27 - drivers/net/can/vxcan.c | 2 drivers/net/dsa/bcm_sf2_cfp.c | 6 drivers/net/dsa/microchip/ksz8795_spi.c | 11 drivers/net/dsa/microchip/ksz9477_spi.c | 12 drivers/net/dsa/mv88e6xxx/chip.c | 1 drivers/net/ethernet/8390/mcf8390.c | 10 drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 4 drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c | 4 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 6 drivers/net/ethernet/intel/i40e/i40e_xsk.c | 4 drivers/net/ethernet/qlogic/qed/qed_sriov.c | 29 + drivers/net/ethernet/qlogic/qed/qed_sriov.h | 1 drivers/net/ethernet/qlogic/qede/qede_fp.c | 3 drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h | 10 drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 3 drivers/net/ethernet/sun/sunhme.c | 6 drivers/net/hamradio/6pack.c | 4 drivers/net/macvtap.c | 6 drivers/net/phy/broadcom.c | 21 + drivers/net/tap.c | 3 drivers/net/tun.c | 3 drivers/net/wireless/ath/ath10k/wow.c | 7 drivers/net/wireless/ath/ath5k/eeprom.c | 3 drivers/net/wireless/ath/ath9k/htc_hst.c | 5 drivers/net/wireless/ath/carl9170/main.c | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 66 +-- drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 4 drivers/net/wireless/mediatek/mt76/mt7603/main.c | 3 drivers/net/wireless/mediatek/mt76/mt7615/main.c | 3 drivers/net/wireless/ray_cs.c | 6 drivers/parisc/dino.c | 41 +- drivers/parisc/gsc.c | 31 + drivers/parisc/gsc.h | 1 drivers/parisc/lasi.c | 7 drivers/parisc/wax.c | 7 drivers/pci/access.c | 9 drivers/pci/controller/pci-aardvark.c | 20 - drivers/pci/hotplug/pciehp_hpc.c | 4 drivers/perf/qcom_l2_pmu.c | 6 drivers/phy/phy-core-mipi-dphy.c | 4 drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 drivers/pinctrl/mediatek/pinctrl-paris.c | 11 drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 185 ++++------ drivers/pinctrl/pinconf-generic.c | 6 drivers/pinctrl/pinctrl-rockchip.c | 2 drivers/pinctrl/samsung/pinctrl-samsung.c | 30 + drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 4 drivers/power/reset/gemini-poweroff.c | 4 drivers/power/supply/ab8500_fg.c | 4 drivers/power/supply/axp20x_battery.c | 13 drivers/power/supply/axp288_charger.c | 14 drivers/power/supply/bq24190_charger.c | 7 drivers/power/supply/wm8350_power.c | 97 ++++- drivers/ptp/ptp_sysfs.c | 4 drivers/pwm/pwm-lpc18xx-sct.c | 20 - drivers/regulator/qcom_smd-regulator.c | 4 drivers/remoteproc/qcom_q6v5_adsp.c | 1 drivers/remoteproc/qcom_wcnss.c | 1 drivers/rtc/interface.c | 7 drivers/rtc/rtc-wm8350.c | 11 drivers/scsi/aha152x.c | 6 drivers/scsi/bfa/bfad_attr.c | 26 - drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 drivers/scsi/libfc/fc_exch.c | 1 drivers/scsi/libsas/sas_ata.c | 2 drivers/scsi/mvsas/mv_init.c | 4 drivers/scsi/pm8001/pm8001_hwi.c | 13 drivers/scsi/pm8001/pm80xx_hwi.c | 11 drivers/scsi/qla2xxx/qla_attr.c | 7 drivers/scsi/qla2xxx/qla_def.h | 10 drivers/scsi/qla2xxx/qla_gs.c | 5 drivers/scsi/qla2xxx/qla_init.c | 66 ++- drivers/scsi/qla2xxx/qla_iocb.c | 8 drivers/scsi/qla2xxx/qla_isr.c | 1 drivers/scsi/qla2xxx/qla_mbx.c | 14 drivers/scsi/qla2xxx/qla_nvme.c | 22 + drivers/scsi/qla2xxx/qla_os.c | 8 drivers/scsi/qla2xxx/qla_sup.c | 4 drivers/scsi/qla2xxx/qla_target.c | 4 drivers/scsi/zorro7xx.c | 2 drivers/soc/qcom/qcom_aoss.c | 2 drivers/soc/qcom/rpmpd.c | 3 drivers/soc/ti/wkup_m3_ipc.c | 4 drivers/spi/spi-bcm-qspi.c | 4 drivers/spi/spi-mxic.c | 28 - drivers/spi/spi-pxa2xx-pci.c | 17 drivers/spi/spi-tegra114.c | 4 drivers/spi/spi-tegra20-slink.c | 8 drivers/spi/spi.c | 4 drivers/staging/iio/adc/ad7280a.c | 4 drivers/staging/media/hantro/hantro_h1_jpeg_enc.c | 2 drivers/staging/media/hantro/hantro_h1_regs.h | 2 drivers/staging/mt7621-dts/gbpc1.dts | 40 -- drivers/thermal/intel/int340x_thermal/int3400_thermal.c | 2 drivers/tty/hvc/hvc_iucv.c | 4 drivers/tty/mxser.c | 15 drivers/tty/serial/8250/8250_mid.c | 19 - drivers/tty/serial/8250/8250_port.c | 12 drivers/tty/serial/kgdboc.c | 6 drivers/tty/serial/samsung.c | 5 drivers/usb/dwc3/dwc3-omap.c | 2 drivers/usb/host/ehci-pci.c | 9 drivers/usb/host/xhci-hub.c | 5 drivers/usb/host/xhci-mem.c | 2 drivers/usb/host/xhci.c | 20 - drivers/usb/host/xhci.h | 9 drivers/usb/serial/Kconfig | 1 drivers/usb/serial/pl2303.c | 1 drivers/usb/serial/pl2303.h | 3 drivers/usb/serial/usb-serial-simple.c | 7 drivers/usb/storage/ene_ub6250.c | 155 ++++---- drivers/usb/storage/realtek_cr.c | 2 drivers/vhost/net.c | 1 drivers/video/fbdev/atafb.c | 12 drivers/video/fbdev/atmel_lcdfb.c | 11 drivers/video/fbdev/cirrusfb.c | 16 drivers/video/fbdev/core/fbcvt.c | 53 +- drivers/video/fbdev/nvidia/nv_i2c.c | 2 drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c | 1 drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c | 8 drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c | 2 drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c | 4 drivers/video/fbdev/sm712fb.c | 46 -- drivers/video/fbdev/smscufx.c | 3 drivers/video/fbdev/udlfb.c | 8 drivers/video/fbdev/w100fb.c | 15 drivers/w1/slaves/w1_therm.c | 8 fs/btrfs/extent_io.h | 2 fs/ext2/super.c | 6 fs/ext4/inode.c | 25 + fs/f2fs/checkpoint.c | 8 fs/f2fs/data.c | 6 fs/f2fs/gc.c | 4 fs/f2fs/inode.c | 1 fs/f2fs/node.c | 6 fs/f2fs/super.c | 6 fs/gfs2/rgrp.c | 3 fs/io_uring.c | 28 - fs/jffs2/build.c | 4 fs/jffs2/fs.c | 2 fs/jffs2/scan.c | 6 fs/jfs/inode.c | 3 fs/jfs/jfs_dmap.c | 7 fs/minix/inode.c | 3 fs/nfs/callback_proc.c | 27 - fs/nfs/callback_xdr.c | 4 fs/nfs/direct.c | 48 +- fs/nfs/file.c | 4 fs/nfs/nfs2xdr.c | 2 fs/nfs/nfs3xdr.c | 21 - fs/nfs/nfs4proc.c | 1 fs/nfs/nfs4state.c | 12 fs/nfs/pnfs.c | 11 fs/nfs/pnfs.h | 2 fs/nfsd/nfsproc.c | 2 fs/nfsd/xdr.h | 2 fs/ntfs/inode.c | 4 fs/ubifs/dir.c | 44 +- fs/ubifs/io.c | 34 + fs/ubifs/ioctl.c | 2 include/linux/blk-cgroup.h | 17 include/linux/blkdev.h | 8 include/linux/dma-mapping.h | 8 include/linux/ipv6.h | 2 include/linux/mmzone.h | 11 include/linux/netdevice.h | 6 include/linux/nfs_fs.h | 8 include/linux/pci.h | 1 include/linux/sunrpc/xdr.h | 2 include/net/arp.h | 1 include/net/udp.h | 1 include/net/udp_tunnel.h | 3 include/uapi/linux/bpf.h | 7 init/main.c | 6 kernel/audit.h | 4 kernel/auditsc.c | 87 +++- kernel/cgroup/cgroup-internal.h | 19 + kernel/cgroup/cgroup-v1.c | 33 - kernel/cgroup/cgroup.c | 93 +++-- kernel/dma/debug.c | 4 kernel/dma/swiotlb.c | 3 kernel/events/core.c | 3 kernel/power/hibernate.c | 2 kernel/power/suspend_test.c | 8 kernel/printk/printk.c | 6 kernel/ptrace.c | 47 +- kernel/sched/debug.c | 10 lib/lz4/lz4_decompress.c | 8 lib/raid6/test/Makefile | 4 lib/raid6/test/test.c | 1 lib/test_kmod.c | 1 lib/test_xarray.c | 22 + lib/xarray.c | 4 mm/kmemleak.c | 9 mm/memcontrol.c | 2 mm/memory.c | 42 +- mm/mempolicy.c | 9 mm/mmap.c | 2 mm/mremap.c | 3 mm/page_alloc.c | 9 mm/rmap.c | 25 + mm/usercopy.c | 5 net/batman-adv/multicast.c | 2 net/bluetooth/hci_event.c | 3 net/core/filter.c | 27 + net/core/skmsg.c | 17 net/ipv4/arp.c | 9 net/ipv4/fib_frontend.c | 5 net/ipv4/fib_semantics.c | 7 net/ipv4/tcp_bpf.c | 14 net/ipv4/tcp_output.c | 5 net/ipv4/udp.c | 6 net/ipv6/addrconf.c | 4 net/ipv6/ip6_input.c | 2 net/ipv6/ip6mr.c | 8 net/ipv6/route.c | 2 net/ipv6/udp.c | 4 net/ipv6/xfrm6_output.c | 16 net/key/af_key.c | 2 net/netfilter/nf_conntrack_proto_tcp.c | 17 net/netlabel/netlabel_kapi.c | 2 net/netlink/af_netlink.c | 2 net/openvswitch/actions.c | 2 net/openvswitch/conntrack.c | 118 +++--- net/openvswitch/flow_netlink.c | 8 net/rxrpc/net_ns.c | 2 net/smc/smc_core.c | 2 net/sunrpc/clnt.c | 7 net/sunrpc/sched.c | 4 net/sunrpc/xprt.c | 7 net/sunrpc/xprtrdma/transport.c | 4 net/sunrpc/xprtsock.c | 54 ++ net/tipc/socket.c | 3 net/tls/tls_sw.c | 2 net/x25/af_x25.c | 11 net/xfrm/xfrm_interface.c | 5 scripts/gcc-plugins/stackleak_plugin.c | 25 + security/keys/keyctl_pkey.c | 14 security/security.c | 17 security/selinux/hooks.c | 5 security/selinux/xfrm.c | 2 security/smack/smack_lsm.c | 2 security/tomoyo/load_policy.c | 4 sound/firewire/fcp.c | 4 sound/isa/cs423x/cs4236.c | 8 sound/pci/hda/patch_realtek.c | 15 sound/soc/atmel/atmel_ssc_dai.c | 5 sound/soc/atmel/sam9g20_wm8731.c | 1 sound/soc/codecs/Kconfig | 5 sound/soc/codecs/msm8916-wcd-analog.c | 22 - sound/soc/codecs/msm8916-wcd-digital.c | 5 sound/soc/codecs/mt6358.c | 4 sound/soc/codecs/rt5663.c | 2 sound/soc/codecs/wm8350.c | 28 + sound/soc/fsl/imx-es8328.c | 1 sound/soc/mxs/mxs-saif.c | 5 sound/soc/mxs/mxs-sgtl5000.c | 3 sound/soc/sh/fsi.c | 19 - sound/soc/soc-compress.c | 5 sound/soc/soc-core.c | 2 sound/soc/soc-generic-dmaengine-pcm.c | 6 sound/soc/soc-topology.c | 3 sound/soc/sof/intel/hda-loader.c | 9 sound/soc/ti/davinci-i2s.c | 5 sound/spi/at73c213.c | 27 + tools/build/feature/Makefile | 9 tools/include/uapi/linux/bpf.h | 4 tools/lib/bpf/btf_dump.c | 5 tools/perf/Makefile.config | 3 tools/perf/perf.c | 2 tools/perf/util/session.c | 15 tools/testing/selftests/bpf/test_lirc_mode2.sh | 5 tools/testing/selftests/bpf/test_lwt_ip_encap.sh | 10 tools/testing/selftests/cgroup/cgroup_util.c | 2 tools/testing/selftests/cgroup/test_core.c | 167 +++++++++ tools/testing/selftests/net/test_vxlan_under_vrf.sh | 8 tools/testing/selftests/x86/check_cc.sh | 2 virt/kvm/kvm_main.c | 13 490 files changed, 3483 insertions(+), 1699 deletions(-)
Aaron Conole (1):
openvswitch: always update flow key after nat
Aashish Sharma (1):
dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS
Abel Vesa (1):
clk: imx7d: Remove audio_mclk_root_clk
Adam Wujek (1):
clk: si5341: fix reported clk_rate when output divider is 2
Adrian Hunter (3):
perf/core: Fix address filter parser for multiple filters perf/x86/intel/pt: Fix address filter config for 32-bit kernel perf tools: Fix perf's libperf_print callback
Alan Stern (1):
USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
Alex Deucher (1):
drm/amdkfd: make CRAT table missing message informational only
Alexander Lobakin (2):
i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
MIPS: fix fortify panic when copying asm exception handlers
Alexey Khoroshilov (1):
NFS: remove unneeded check in decode_devicenotify_args()
Alistair Popple (1):
mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node
Amadeusz Sławiński (1):
ASoC: topology: Allow TLV control to be either read or write
Ammar Faizi (1):
ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM
Anders Roxell (3):
powerpc/lib/sstep: Fix 'sthcx' instruction powerpc/lib/sstep: Fix build errors with newer binutils
powerpc: Fix build errors with newer binutils
Andreas Gruenbacher (1):
powerpc/kvm: Fix kvm_use_magic_page
Andrew Price (1):
gfs2: Make sure FITRIM minlen is rounded up to fs block size
Andy Gospodarek (1):
bnxt_en: reserve space inside receive page for skb_shared_info
Andy Shevchenko (2):
spi: pxa2xx-pci: Balance reference count for PCI DMA device
serial: 8250_mid: Balance reference count for PCI DMA device
Anisse Astier (1):
drm: Add orientation quirk for GPD Win Max
Anssi Hannula (2):
xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx()
hv_balloon: rate-limit "Unhandled message" warning
Anton Ivanov (1):
um: Fix uml_mconsole stop/go
Armin Wolf (1):
hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING
Arnaldo Carvalho de Melo (2):
tools build: Filter out options and warnings not supported by clang tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts
Arnd Bergmann (2):
uaccess: fix nios2 and microblaze get_user_8()
ARM: iop32x: offset IRQ numbers by 1
Arun Easi (2):
scsi: qla2xxx: Fix device reconnect in loop topology
scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests
Arınç ÜNAL (1):
staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree
Athira Rajeev (1):
powerpc/perf: Don't use perf_hw_context for trace IMC PMU
Bagas Sanjaya (2):
Documentation: add link to stable release candidate tree
Documentation: update stable tree link
Baokun Li (5):
jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
jffs2: fix memory leak in jffs2_do_mount_fs
jffs2: fix memory leak in jffs2_scan_medium
ubifs: rename_whiteout: correct old_dir size computing
ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl
Bharata B Rao (1):
sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
Biju Das (2):
spi: Fix invalid sgs value
spi: Fix erroneous sgs value with min_t()
Bikash Hazarika (1):
scsi: qla2xxx: Fix wrong FDMI data for 64G adapter
Brandon Wyman (1):
hwmon: (pmbus) Add Vin unit off handling
Casey Schaufler (2):
LSM: general protection fault in legacy_parse_param Fix incorrect type in assignment of ipv6 port for audit
Chaitanya Kulkarni (1):
loop: use sysfs_emit() in the sysfs xxx show()
Chao Yu (3):
f2fs: fix to unlock page correctly in error path of is_alive()
f2fs: fix to do sanity check on .cp_pack_total_block_count
f2fs: fix to avoid potential deadlock
Charles Keepax (1):
ASoC: madera: Add dependencies on MFD
Chen Jingwen (1):
powerpc/kasan: Fix early region not updated correctly
Chen-Yu Tsai (5):
media: hantro: Fix overfill bottom register field name
pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()
pinctrl: mediatek: paris: Fix pingroup pin config state readback
pinctrl: pinconf-generic: Print arguments for bias-pull-*
net: stmmac: Fix unset max_speed difference between DT and non-DT platforms
Christian Göttsche (1):
selinux: use correct type for context length
Christian Lamparter (1):
ata: sata_dwc_460ex: Fix crash due to OOB write
Christophe JAILLET (2):
misc: alcor_pci: Fix an error handling path
scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()
Claudiu Beznea (2):
net: dsa: microchip: add spi_device_id tables
hwrng: atmel - disable trng on failure path
Codrin Ciubotariu (1):
ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
Colin Ian King (2):
carl9170: fix missing bit-wise or operator for tx_params
iwlwifi: Fix -EIO error code that is never returned
Cooper Chiou (1):
drm/edid: check basic audio support on CEA extension block
Dafna Hirschfeld (1):
media: stk1160: If start stream fails, return buffers with VB2_BUF_STATE_QUEUED
Damien Le Moal (6):
scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
scsi: pm8001: Fix abort all task initialization
scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
Dan Carpenter (10):
greybus: svc: fix an error handling bug in gb_svc_hello()
NFSD: prevent underflow in nfssvc_decode_writeargs()
NFSD: prevent integer overflow on 32 bit systems
video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe()
video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
media: usb: go7007: s2250-board: fix leak in probe()
iwlwifi: mvm: Fix an error code in iwl_mvm_up()
USB: storage: ums-realtek: fix error code in rts51x_read_mem() lib/test: use after free in register_test_dev_kmod() drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire()
Daniel González Cabanelas (1):
media: cx88-mpeg: clear interrupt status register before streaming video
Daniel Thompson (1):
soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
Dario Binacchi (1):
mtd: rawnand: gpmi: fix controller timings setting
Darren Hart (1):
ACPI/APEI: Limit printable size of BERT table data
David Ahern (1):
ipv6: Fix stats accounting in ip6_pkt_drop
David Gow (1):
firmware: google: Properly state IOMEM dependency
David Heidelberg (1):
ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960
David Matlack (1):
KVM: Prevent module exit until all VMs are freed
Denis Nikitin (1):
perf session: Remap buf if there is no space for event
Dirk Buchwalder (1):
clk: qcom: ipq8074: Use floor ops for SDCC1 clock
Dirk Müller (1):
lib/raid6/test: fix multiple definition linking error
Dmitry Baryshkov (1):
PM: core: keep irq flags in device_pm_check_callbacks()
Dmitry Torokhov (1):
HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports
Dongli Zhang (1):
xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32
Dongliang Mu (3):
media: em28xx: initialize refcount before kref_get
ntfs: add sanity check on allocation size
media: hdpvr: initialize dev->worker at hdpvr_register_videodev
Duoming Zhou (2):
drivers: hamradio: 6pack: fix UAF bug caused by mod_timer() net/x25: Fix null-ptr-deref caused by x25_disconnect
Dust Li (1):
net/smc: correct settings of RMB window update limit
Dāvis Mosāns (1):
crypto: ccp - ccp_dmaengine_unregister release dma channels
Eddie James (1):
USB: serial: pl2303: add IBM device IDs
Eric Biggers (5):
KEYS: fix length validation in keyctl_pkey_params_get_2()
crypto: rsa-pkcs1pad - correctly get hash from source scatterlist
crypto: rsa-pkcs1pad - restore signature length check
crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()
block: don't delete queue kobject before its children
Eric Dumazet (2):
ipv6: make mc_forwarding atomic
rxrpc: fix a race in rxrpc_exit_net()
Ethan Lien (1):
btrfs: fix qgroup reserve overflow the qgroup limit
Evgeny Boger (1):
power: supply: axp20x_battery: properly report current when discharging
Evgeny Novikov (1):
video: fbdev: w100fb: Reset global state
Fabiano Rosas (1):
KVM: PPC: Fix vmx/vsx mixup in mmio emulation
Fangrui Song (2):
riscv module: remove (NOLOAD)
arm64: module: remove (NOLOAD) from linker script
Felix Maurer (1):
selftests/bpf: Make test_lwt_ip_encap more stable and faster
Florian Fainelli (1):
net: phy: broadcom: Fix brcm_fet_config_init()
Frank Wunderlich (1):
arm64: dts: broadcom: Fix sata nodename
Geert Uytterhoeven (1):
pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel
George Kennedy (1):
video: fbdev: cirrusfb: check pixclock to avoid divide by zero
Gilad Ben-Yossef (1):
crypto: ccree - don't attempt 0 len DMA mappings
Greg Kroah-Hartman (1):
Linux 5.4.189
Guangbin Huang (1):
net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware
Guilherme G. Piccoli (1):
Drivers: hv: vmbus: Fix potential crash on module unload
Guillaume Ranquet (1):
clocksource/drivers/timer-of: Check return value of of_iomap in timer_of_base_init()
Guo Ren (1):
arm64: patch_text: Fixup last cpu should be master
Guo Xuenan (1):
lz4: fix LZ4_decompress_safe_partial read out of bound
Gwendal Grignou (1):
HID: intel-ish-hid: Use dma_alloc_coherent for firmware update
H. Nikolaus Schaller (1):
usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm
Haimin Zhang (2):
af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_register
jfs: prevent NULL deref in diFree
Halil Pasic (1):
swiotlb: fix info leak with DMA_FROM_DEVICE
Hangbin Liu (1):
selftests/bpf/test_lirc_mode2.sh: Exit with proper code
Hangyu Hua (4):
can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
powerpc: 8xx: fix a return value error in mpc8xx_pic_init
can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path
mips: ralink: fix a refcount leak in ill_acc_of_setup()
Hans Verkuil (1):
ivtv: fix incorrect device_caps for ivtvfb
Hans de Goede (2):
power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return
power: supply: axp288-charger: Set Vhold to 4.4V
Harold Huang (1):
tuntap: add sanity checks about msg_controllen in sendmsg
Hector Martin (4):
brcmfmac: firmware: Allocate space for default boardrev in nvram
brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
brcmfmac: pcie: Fix crashes due to early IRQs
Helge Deller (2):
video: fbdev: sm712fb: Fix crash in smtcfb_read()
parisc: Fix CPU affinity for Lasi, WAX and Dino chips
Hengqi Chen (1):
bpf: Fix comment for helper bpf_current_task_under_cgroup()
Henry Lin (1):
xhci: fix runtime PM imbalance in USB2 resume
Herbert Xu (1):
crypto: authenc - Fix sleep in atomic context in decrypt_tail
Hoang Le (1):
tipc: fix the timer expires after interval 100ms
Hou Tao (2):
bpf, arm64: Call build_prologue() first in first JIT pass bpf, arm64: Feed byte-offset into bpf line info
Hou Wenlong (1):
KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()
Hugh Dickins (1):
mempolicy: mbind_range() set_policy() after vma_merge()
Håkon Bugge (1):
IB/cma: Allow XRC INI QPs to set their local ACK timeout
Ido Schimmel (2):
selftests: test_vxlan_under_vrf: Fix broken test case
ipv4: Invalidate neighbour for broadcast address upon address addition
Ilya Maximets (1):
net: openvswitch: don't send internal clone attribute to the userspace.
Jaegeuk Kim (1):
f2fs: fix missing free nid in f2fs_handle_failed_inode
Jakob Koschel (1):
powerpc/sysdev: fix incorrect use to determine if list is empty
Jakub Kicinski (1):
tcp: ensure PMTU updates are processed during fastopen
Jakub Sitnicki (1):
bpf: Make dst_port field in struct bpf_sock 16-bit wide
James Clark (1):
coresight: Fix TRCCONFIGR.QE sysfs interface
James Morse (1):
KVM: arm64: Check arm64_get_bp_hardening_data() didn't return NULL
Jamie Bainbridge (1):
qede: confirm skb is allocated before using
Jammy Huang (1):
media: aspeed: Correct value for h-total-pixels
Jann Horn (1):
ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
Jia-Ju Bai (2):
ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp()
memory: emif: check the pointer temp in get_device_details()
Jianglei Nie (1):
scsi: libfc: Fix use after free in fc_exch_abts_resp()
Jiasheng Jiang (19):
soc: qcom: rpmpd: Check for null return of devm_kcalloc
ASoC: ti: davinci-i2s: Add check for clk_enable()
ALSA: spi: Add check for clk_enable()
ASoC: mxs-saif: Handle errors for clk_enable
ASoC: atmel_ssc_dai: Handle errors for clk_enable
ASoC: soc-compress: prevent the potentially use of null pointer
memory: emif: Add check for setup_interrupts
ASoC: wm8350: Handle error for wm8350_register_irq
ASoC: fsi: Add check for clk_enable
mmc: davinci_mmc: Handle error for clk_enable
mtd: onenand: Check for error irq
ray_cs: Check ioremap return value
iommu/ipmmu-vmsa: Check for error num after setting mask
power: supply: wm8350-power: Handle error for wm8350_register_irq
power: supply: wm8350-power: Add missing free in free_charger_irq
mfd: mc13xxx: Add check for mc13xxx_irq_request
iio: adc: Add check for devm_request_threaded_irq
ASoC: soc-compress: Change the check for codec_dai
rtc: wm8350: Handle error for wm8350_register_irq
Jiaxin Yu (1):
ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs
Jim Mattson (1):
KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
Jing Yao (3):
video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()
video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of snprintf()
video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit
Jiri Slaby (2):
mxser: fix xmit_buf leak in activate when LSR == 0xff
serial: samsung_tty: do not unlock port->lock for uart_write_wakeup()Joe Carnuccio (2):
scsi: qla2xxx: Add devids and conditionals for 28xx
scsi: qla2xxx: Check for firmware dump already collected
Johan Hovold (2):
USB: serial: simple: add Nokia phone driver
media: davinci: vpif: fix unbalanced runtime PM get
John David Anglin (1):
parisc: Fix patch code locking and flushing
Jonathan Cameron (1):
staging:iio:adc:ad7280a: Fix handing of device address bit reversing.
Jonathan Neuschäfer (5):
clk: actions: Terminate clk_div_table with sentinel element
clk: loongson1: Terminate clk_div_table with sentinel element
clk: clps711x: Terminate clk_div_table with sentinel element
pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR()
pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE()
Jordy Zomer (1):
dm ioctl: prevent potential spectre v1 gadget
José Expósito (2):
Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads" drm/imx: Fix memory leak in imx_pd_connector_get_modes
Juergen Gross (1):
xen: fix is_xen_pmu()
Juhyung Park (1):
f2fs: quota: fix loop condition at f2fs_quota_sync()
Kai-Heng Feng (1):
ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020
Kamal Dasu (1):
spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op()
Kees Cook (1):
gcc-plugins/stackleak: Exactly match strings instead of prefixes
Konrad Dybcio (1):
clk: qcom: gcc-msm8994: Fix gpll4 width
Krzysztof Kozlowski (4):
pinctrl: samsung: drop pin banks references on error paths
ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
ARM: dts: exynos: add missing HDMI supplies on SMDK5250
ARM: dts: exynos: add missing HDMI supplies on SMDK5420
Kuan-Ying Lee (1):
mm/kmemleak: reset tag when compare object pointer
Kuldeep Singh (3):
arm64: dts: ns2: Fix spi-cpol and spi-cpha property
ARM: dts: spear1340: Update serial node properties
ARM: dts: spear13xx: Update SPI dma properties
Kunihiko Hayashi (1):
clk: uniphier: Fix fixed-rate initialization
Lars Ellenberg (1):
drbd: fix potential silent data corruption
Li RongQing (1):
KVM: x86: fix sending PV IPI
Liam Beguin (4):
iio: afe: rescale: use s64 for temporary scale calculations
iio: inkern: apply consumer scale on IIO_VAL_INT cases
iio: inkern: apply consumer scale when no channel scale is available
iio: inkern: make a best effort on offset calculation
Liguang Zhang (1):
PCI: pciehp: Clear cmd_busy bit in polling mode
Lina Wang (1):
xfrm: fix tunnel model fragmentation behavior
Lino Sanfilippo (1):
tpm: fix reference counting for struct tpm_chip
Liu Ying (1):
phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})
Lorenzo Bianconi (2):
mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_updateLucas Denefle (1):
w1: w1_therm: fixes w1_seq for ds28ea00 sensors
Lucas Zampieri (1):
HID: logitech-dj: add new lightspeed receiver id
Ludovic Barre (1):
mmc: mmci_sdmmc: Replace sg_dma_xxx macros
Luiz Augusto von Dentz (1):
Bluetooth: Fix use after free in hci_send_acl
Lv Yunlong (1):
drbd: Fix five use after free bugs in get_initial_state
Maciej W. Rozycki (1):
DEC: Limit PMAX memory probing to R3k systems
Manish Chopra (2):
qed: display VF trust config
qed: validate and restrict untrusted VFs vlan promisc mode
Manish Rangankar (1):
scsi: qla2xxx: Use correct feature type field during RFF_ID processing
Manivannan Sadhasivam (1):
PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
Marc Zyngier (3):
pinctrl: npcm: Fix broken references to chip->parent_device irqchip/qcom-pdc: Fix broken locking irqchip/gic-v3: Fix GICR_CTLR.RWP polling
Marek Vasut (1):
ARM: dts: imx: Add missing LVDS decoder on M53Menlo
Mario Limonciello (2):
cpuidle: PSCI: Move the has_lpi check to the beginning of the function
ACPI: processor idle: Check for architectural support for LPI
Mark Tomlinson (1):
PCI: Reduce warnings on possible RW1C corruption
Martin Varghese (1):
openvswitch: Fixed nd target mask field in the flow dump.
Mathias Nyman (1):
xhci: make xhci_handshake timeout for xhci_reset() adjustable
Matt Kramer (1):
ALSA: hda/realtek: Add alc256-samsung-headphone fixup
Matthew Wilcox (Oracle) (2):
XArray: Fix xas_create_range() when multi-order entry present
XArray: Update the LRU list in xas_split()
Maulik Shah (1):
arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc
Mauricio Faria de Oliveira (1):
mm: fix race between MADV_FREE reclaim and blkdev direct IO read
Max Filippov (3):
xtensa: fix stop_machine_cpuslocked call in patch_text
xtensa: fix xtensa_wsr always writing 0
xtensa: fix DTC warning unit_address_format
Maxim Kiselev (1):
powerpc: dts: t104xrdb: fix phy type for FMAN 4/5
Maxim Mikityanskiy (1):
bpf: Support dual-stack sockets in bpf_tcp_check_syncookie
Maxime Ripard (3):
drm/edid: Don't clear formats if using deep color
clk: Initialize orphan req_rate
clk: Enforce that disjoints limits are invalid
Maíra Canal (1):
drm/amd/display: Remove vupdate_int_entry definition
Miaohe Lin (1):
mm/mempolicy: fix mpol_new leak in shared_policy_replace
Miaoqian Lin (21):
spi: tegra114: Add missing IRQ check in tegra_spi_probe
media: coda: Fix missing put_device() call in coda_get_vdoa_data
soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in msm8916_wcd_digital_probe
ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev
drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe
power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region
remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region
clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver
pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe
Michael Chan (1):
bnxt_en: Eliminate unintended link toggle during FW reset
Michael Ellerman (1):
powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
Michael S. Tsirkin (1):
virtio_console: break out of buf poll on remove
Michael Schmitz (1):
video: fbdev: atari: Atari 2 bpp (STe) palette bugfix
Minghao Chi (1):
spi: tegra20: Use of_device_get_match_data()
Minghao Chi (CGEL ZTE) (1):
net:mcf8390: Use platform_get_irq() to get the interrupt
Miquel Raynal (4):
spi: mxic: Fix the transmit path
dt-bindings: mtd: nand-controller: Fix the reg property description
dt-bindings: mtd: nand-controller: Fix a comment in the examples
dt-bindings: spi: mxic: The interrupt property is not mandatory
Muhammad Usama Anjum (1):
selftests/x86: Add validity check and allow field splitting
Nathan Chancellor (2):
drm/amdkfd: add missing void argument to function kgd2kfd_init drm/amdkfd: Fix -Wstrict-prototypes from amdgpu_amdkfd_gfx_10_0_get_functions()
Neal Liu (1):
usb: ehci: add pci device support for Aspeed platforms
NeilBrown (4):
SUNRPC: avoid race between mod_timer() and del_timer_sync() SUNRPC/call_alloc: async tasks mustn't block waiting for memory
NFS: swap IO handling is slightly different for O_DIRECT IO
NFS: swap-out must always use STABLE writes.
Niels Dossche (1):
IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition
Nikita Shubin (1):
riscv: Fix fill_callchain return value
Nikolay Aleksandrov (1):
net: ipv4: fix route with nexthop object delete warning
Nilesh Javali (1):
scsi: qla2xxx: Fix warning for missing error code
Nishanth Menon (1):
drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt
Olga Kornievskaia (1):
NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error
Oliver Hartkopp (1):
vxcan: enable local echo for sent CAN frames
Ondrej Zary (1):
media: bttv: fix WARNING regression on tunerless devices
Pablo Neira Ayuso (1):
netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options
Pali Rohár (3):
PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge
PCI: aardvark: Fix support for MSI interrupts
Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"
Paolo Bonzini (2):
KVM: x86/mmu: do compare-and-exchange of gPTE via the user address mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0)
Paolo Valente (1):
Revert "Revert "block, bfq: honor already-setup queue merges""
Patrick Rudolph (1):
hwmon: (pmbus) Add mutex to regulator ops
Paul Menzel (1):
lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3
Pavel Begunkov (1):
io_uring: fix fs->users overflow
Pavel Kubelun (1):
ARM: dts: qcom: ipq4019: fix sleep clock
Pavel Skripkin (6):
udmabuf: validate ubuf->pagecount
Bluetooth: hci_serdev: call init_rwsem() before p->open()
ath9k_htc: fix uninit value bugs
jfs: fix divide error in dbNextAG
media: Revert "media: em28xx: add missing em28xx_close_extension"
can: mcba_usb: properly check endpoint type
Pawan Gupta (2):
x86/pm: Save the MSR validity status at context setup x86/speculation: Restore speculation related MSRs during S3 resume
Pekka Pessi (1):
mailbox: tegra-hsp: Flush whole channel
Peter Rosin (1):
i2c: mux: demux-pinctrl: do not deactivate a master that is not active
Peter Xu (1):
mm: don't skip swap entry even if zap_details specified
Petr Machata (1):
af_netlink: Fix shift out of bounds in group mask calculation
Petr Vorel (1):
crypto: vmx - add missing dependencies
Qinghua Jin (1):
minix: fix bug when opening a file with O_DIRECT
Quinn Tran (6):
scsi: qla2xxx: Fix stuck session in gpdb
scsi: qla2xxx: Fix disk failure to rediscover
scsi: qla2xxx: Fix incorrect reporting of task management failure
scsi: qla2xxx: Fix hang due to session stuck
scsi: qla2xxx: Fix N2N inconsistent PLOGI
scsi: qla2xxx: Reduce false trigger to login
Rafael J. Wysocki (2):
ACPICA: Avoid walking the ACPI Namespace if it is not there
ACPI: CPPC: Avoid out of bounds access when parsing _CPC data
Rajneesh Bhardwaj (1):
drm/amdgpu: Fix recursive locking warning
Randy Dunlap (20):
PM: hibernate: fix __setup handler error handling
PM: suspend: fix return value of __setup handler
ACPI: APEI: fix return value of __setup handlers
clocksource: acpi_pm: fix return value of __setup handler
printk: fix return value of printk.devkmsg __setup handler
TOMOYO: fix __setup handlers return values
mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
MIPS: RB532: fix return value of __setup handler
dma-debug: fix return value of __setup handlers
tty: hvc: fix return value of __setup handler
kgdboc: fix return value of __setup handler
kgdbts: fix return value of __setup handler
driver core: dd: fix return value of __setup handler mm/mmap: return 1 from stack_guard_gap __setup() handler mm/memcontrol: return 1 from cgroup.memory __setup() handler mm/usercopy: return 1 from hardened_usercopy __setup() handler
ARM: 9187/1: JIVE: fix return value of __setup handler
scsi: aha152x: Fix aha152x_setup() __setup handler return value init/main.c: return 1 from handled __setup() functions
virtio_console: eliminate anonymous module_init & module_exit
Richard Guy Briggs (1):
audit: log AUDIT_TIME_* records only from rules
Richard Leitner (1):
ARM: tegra: tamonten: Fix I2C3 pad setting
Richard Schleich (1):
ARM: dts: bcm2837: Add the missing L1/L2 cache information
Rik van Riel (2):
mm: invalidate hwpoison page cache page in fault path mm,hwpoison: unmap poisoned page before invalidation
Rob Herring (1):
arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly
Robert Hancock (1):
i2c: xiic: Make bus names unique
Robin Murphy (1):
iommu/iova: Improve 32-bit free space estimate
Roman Li (1):
drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug
Sakari Ailus (1):
ACPI: properties: Consistently return -ENOENT if there are no more references
Saurav Kashyap (1):
scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()
Shengjiu Wang (1):
ASoC: soc-core: skip zero num_dai component in searching dai name
Souptick Joarder (HPE) (1):
irqchip/nvic: Release nvic_base upon failure
Sourabh Jain (1):
powerpc: Set crashkernel offset to mid of RMA region
Srinivas Pandruvada (1):
thermal: int340x: Increase bitmap size
Sven Eckelmann (1):
macvtap: advertise link netns via netlink
Takashi Sakamoto (1):
ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction
Taniya Das (2):
clk: qcom: clk-rcg2: Update logic to calculate D value for RCG
clk: qcom: clk-rcg2: Update the frac table for pixel clock
Tejun Heo (7):
block: don't merge across cgroup boundaries if blkcg is enabled
cgroup: Use open-time credentials for process migraton perm checks
cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
cgroup: Use open-time cgroup namespace for process migration perm checks
selftests: cgroup: Make cg_create() use 0755 for permission instead of 0644
selftests: cgroup: Test open-time credential usage for migration checks
selftests: cgroup: Test open-time cgroup namespace usage for migration checks
Theodore Ts'o (1):
ext4: don't BUG if someone dirty pages without asking ext4 first
Tim Gardner (1):
video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow
Tobias Waldekranz (1):
net: dsa: mv88e6xxx: Enable port policy support on 6097
Tom Rix (3):
media: video/hdmi: handle short reads of hdmi info frame.
qlcnic: dcb: default to returning -EOPNOTSUPP
rtc: check if __rtc_read_time was successful
Tomas Paukrt (1):
crypto: mxs-dcp - Fix scatterlist processing
Tong Zhang (1):
dax: make sure inodes are flushed before destroy cache
Trond Myklebust (6):
NFS: Return valid errors from nfs2/3_decode_dirent() NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
NFSv4: Protect the state recovery thread against direct reclaim
SUNRPC: Fix socket waits for write buffer space
SUNRPC: Handle ENOMEM in call_transmit_status()
SUNRPC: Handle low memory situations in call_status()
Tudor Ambarus (1):
ARM: dts: at91: sama5d2: Fix PMERRLOC resource size
Ulf Hansson (1):
mmc: host: Return an error when ->enable_sdio_irq() ops is missing
Uwe Kleine-König (3):
pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
serial: 8250: Fix race condition in RTS-after-send handling
ARM: mmp: Fix failure to remove sram device
Vinod Koul (1):
dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error"
Vitaly Kuznetsov (1):
KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated
Waiman Long (1):
mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning
Wang Hai (1):
video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()
Wang Wensheng (1):
ASoC: imx-es8328: Fix error return code in imx_es8328_probe()
Wang Yufen (4):
bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full bpf, sockmap: Fix more uncharged while msg has more_data bpf, sockmap: Fix double uncharge the mem of sk_msg
netlabel: fix out-of-bounds memory accesses
Wen Gong (1):
ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern
Wolfram Sang (1):
mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is complete
Xiang Chen (1):
scsi: hisi_sas: Change permission of parameter prot_mask
Xiaomeng Tong (3):
ALSA: cs4236: fix an incorrect NULL check on list iterator
net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator
perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator
Xie Yongji (2):
block: Add a helper to validate the block size
virtio-blk: Use blk_validate_block_size() to validate block size
Xin Long (1):
udp: call udp_encap_enable for v6 sockets when enabling encap
Xin Xiong (2):
mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj
Xu Kuohai (1):
libbpf: Skip forward declaration when counting duplicated type names
Yajun Deng (1):
netdevice: add the case if dev is NULL
Yake Yang (1):
Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt
Yang Guang (4):
video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit
ptp: replace snprintf with sysfs_emit
scsi: mvsas: Replace snprintf() with sysfs_emit()
scsi: bfa: Replace snprintf() with sysfs_emit()
Yann Gautier (1):
mmc: mmci: stm32: correctly check all elements of sg list
Yongzhi Liu (1):
RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
Yu Kuai (1):
block, bfq: don't move oom_bfqq
Zekun Shen (1):
ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111
Zhang Wensheng (1):
bfq: fix use-after-free in bfq_dispatch_request
Zhang Yi (1):
ext2: correct max file size computing
Zhenzhong Duan (1):
KVM: x86: Fix emulation in writing cr8
Zheyu Ma (2):
ethernet: sun: Free the coherent when failing in probing
video: fbdev: sm712fb: Fix crash in smtcfb_write()
Zhihao Cheng (7):
ubifs: rename_whiteout: Fix double free for whiteout_ui->data
ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
ubi: fastmap: Return error code if memory allocation fails in add_aeb()
ubifs: Rectify space amount budget for mkdir/tmpfile operations
Zhou Guanghui (1):
iommu/arm-smmu-v3: fix event handling soft lockup
Zhou Qingyang (1):
drm/amd/display: Fix a NULL pointer dereference in amdgpu_dm_connector_add_common_modes()
Ziyang Xuan (1):
net/tls: fix slab-out-of-bounds bug in decrypt_internal
kernel test robot (1):
regulator: qcom_smd: fix for_each_child.cocci warnings
Greg Kroah-Hartman
maintainerDocumentation/DMA-attributes.txt +10 -0
@@ -156,3 +156,13 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged subsystem that the buffer is fully accessible at the elevated privilege level (and ideally inaccessible or at least read-only at the lesser-privileged levels). + +DMA_ATTR_PRIVILEGED +------------------- + +Some advanced peripherals such as remote processors and GPUs perform +accesses to DMA buffers in both privileged "supervisor" and unprivileged +"user" modes. This attribute is used to indicate to the DMA-mapping +subsystem that the buffer is fully accessible at the elevated privilege +level (and ideally inaccessible or at least read-only at the +lesser-privileged levels).
Documentation/devicetree/bindings/mtd/nand-controller.yaml +2 -2
@@ -44,7 +44,7 @@ patternProperties: properties: reg: description: - Contains the native Ready/Busy IDs. + Contains the chip-select IDs. nand-ecc-mode: allOf:
@@ -139,6 +139,6 @@ examples: nand-ecc-mode = "soft"; nand-ecc-algo = "bch"; - /* controller specific properties */ + /* NAND chip specific properties */ }; };
Documentation/devicetree/bindings/spi/spi-mxic.txt +3 -1
@@ -8,11 +8,13 @@ Required properties: - reg: should contain 2 entries, one for the registers and one for the direct mapping area - reg-names: should contain "regs" and "dirmap" -- interrupts: interrupt line connected to the SPI controller - clock-names: should contain "ps_clk", "send_clk" and "send_dly_clk" - clocks: should contain 3 entries for the "ps_clk", "send_clk" and "send_dly_clk" clocks +Optional properties: +- interrupts: interrupt line connected to the SPI controller + Example: spi@43c30000 {
Documentation/process/stable-kernel-rules.rst +10 -1
@@ -174,7 +174,16 @@ Trees - The finalized and tagged releases of all stable kernels can be found in separate branches per version at: - https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git + https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git + + - The release candidate of all stable kernel versions can be found at: + + https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/ + + .. warning:: + The -stable-rc tree is a snapshot in time of the stable-queue tree and + will change frequently, hence will be rebased often. It should only be + used for testing purposes (e.g. to be consumed by CI systems). Review committee
Documentation/sound/hd-audio/models.rst +4 -0
@@ -261,6 +261,10 @@ alc-sense-combo huawei-mbx-stereo Enable initialization verbs for Huawei MBX stereo speakers; might be risky, try this at your own risk +alc298-samsung-headphone + Samsung laptops with ALC298 +alc256-samsung-headphone + Samsung laptops with ALC256 ALC66x/67x/892 ==============
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 188 +SUBLEVEL = 189 EXTRAVERSION = NAME = Kleptomaniac Octopus
arch/arm/boot/dts/bcm2837.dtsi +49 -0
79 lines not on this page · raw message
arch/arm/boot/dts/exynos5250-pinctrl.dtsi +1 -1
@@ -260,7 +260,7 @@ }; uart3_data: uart3-data { - samsung,pins = "gpa1-4", "gpa1-4"; + samsung,pins = "gpa1-4", "gpa1-5"; samsung,pin-function = <EXYNOS_PIN_FUNC_2>; samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
arch/arm/boot/dts/exynos5250-smdk5250.dts +3 -0
@@ -117,6 +117,9 @@ status = "okay"; ddc = <&i2c_2>; hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; + vdd-supply = <&ldo8_reg>; + vdd_osc-supply = <&ldo10_reg>; + vdd_pll-supply = <&ldo8_reg>; }; &i2c_0 {
arch/arm/boot/dts/exynos5420-smdk5420.dts +3 -0
@@ -132,6 +132,9 @@ hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&hdmi_hpd_irq>; + vdd-supply = <&ldo6_reg>; + vdd_osc-supply = <&ldo7_reg>; + vdd_pll-supply = <&ldo6_reg>; }; &hsi2c_4 {
arch/arm/boot/dts/imx53-m53menlo.dts +27 -2
@@ -53,6 +53,31 @@ }; }; + lvds-decoder { + compatible = "ti,ds90cf364a", "lvds-decoder"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + lvds_decoder_in: endpoint { + remote-endpoint = <&lvds0_out>; + }; + }; + + port@1 { + reg = <1>; + + lvds_decoder_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; + }; + panel { compatible = "edt,etm0700g0dh6"; pinctrl-0 = <&pinctrl_display_gpio>;
@@ -61,7 +86,7 @@ port { panel_in: endpoint { - remote-endpoint = <&lvds0_out>; + remote-endpoint = <&lvds_decoder_out>; }; }; };
@@ -450,7 +475,7 @@ reg = <2>; lvds0_out: endpoint { - remote-endpoint = <&panel_in>; + remote-endpoint = <&lvds_decoder_in>; }; }; };
arch/arm/boot/dts/qcom-ipq4019.dtsi +2 -1
@@ -141,7 +141,8 @@ clocks { sleep_clk: sleep_clk { compatible = "fixed-clock"; - clock-frequency = <32768>; + clock-frequency = <32000>; + clock-output-names = "gcc_sleep_clk_src"; #clock-cells = <0>; };
arch/arm/boot/dts/qcom-msm8960.dtsi +5 -3
@@ -145,7 +145,9 @@ reg = <0x108000 0x1000>; qcom,ipc = <&l2cc 0x8 2>; - interrupts = <0 19 0>, <0 21 0>, <0 22 0>; + interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>; interrupt-names = "ack", "err", "wakeup"; regulators {
@@ -191,7 +193,7 @@ compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; reg = <0x16440000 0x1000>, <0x16400000 0x1000>; - interrupts = <0 154 0x0>; + interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>; clock-names = "core", "iface"; status = "disabled";
@@ -317,7 +319,7 @@ #address-cells = <1>; #size-cells = <0>; reg = <0x16080000 0x1000>; - interrupts = <0 147 0>; + interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; spi-max-frequency = <24000000>; cs-gpios = <&msmgpio 8 0>;
arch/arm/boot/dts/sama5d2.dtsi +1 -1
@@ -526,7 +526,7 @@ pmecc: ecc-engine@f8014070 { compatible = "atmel,sama5d2-pmecc"; reg = <0xf8014070 0x490>, - <0xf8014500 0x100>; + <0xf8014500 0x200>; }; };
arch/arm/boot/dts/spear1340.dtsi +3 -3
@@ -136,9 +136,9 @@ reg = <0xb4100000 0x1000>; interrupts = <0 105 0x4>; status = "disabled"; - dmas = <&dwdma0 12 0 1>, - <&dwdma0 13 1 0>; - dma-names = "tx", "rx"; + dmas = <&dwdma0 13 0 1>, + <&dwdma0 12 1 0>; + dma-names = "rx", "tx"; }; thermal@e07008c4 {
arch/arm/boot/dts/spear13xx.dtsi +3 -3
@@ -284,9 +284,9 @@ #size-cells = <0>; interrupts = <0 31 0x4>; status = "disabled"; - dmas = <&dwdma0 4 0 0>, - <&dwdma0 5 0 0>; - dma-names = "tx", "rx"; + dmas = <&dwdma0 5 0 0>, + <&dwdma0 4 0 0>; + dma-names = "rx", "tx"; }; rtc@e0580000 {
arch/arm/boot/dts/tegra20-tamonten.dtsi +3 -3
@@ -183,8 +183,8 @@ }; conf_ata { nvidia,pins = "ata", "atb", "atc", "atd", "ate", - "cdev1", "cdev2", "dap1", "dtb", "gma", - "gmb", "gmc", "gmd", "gme", "gpu7", + "cdev1", "cdev2", "dap1", "dtb", "dtf", + "gma", "gmb", "gmc", "gmd", "gme", "gpu7", "gpv", "i2cp", "irrx", "irtx", "pta", "rm", "slxa", "slxk", "spia", "spib", "uac";
@@ -203,7 +203,7 @@ }; conf_crtp { nvidia,pins = "crtp", "dap2", "dap3", "dap4", - "dtc", "dte", "dtf", "gpu", "sdio1", + "dtc", "dte", "gpu", "sdio1", "slxc", "slxd", "spdi", "spdo", "spig", "uda"; nvidia,pull = <TEGRA_PIN_PULL_NONE>;
arch/arm/mach-iop32x/include/mach/entry-macro.S +1 -1
@@ -20,7 +20,7 @@ mrc p6, 0, \irqstat, c8, c0, 0 @ Read IINTSRC cmp \irqstat, #0 clzne \irqnr, \irqstat - rsbne \irqnr, \irqnr, #31 + rsbne \irqnr, \irqnr, #32 .endm .macro arch_ret_to_user, tmp1, tmp2
arch/arm/mach-iop32x/include/mach/irqs.h +1 -1
@@ -9,6 +9,6 @@#ifndef __IRQS_H#define __IRQS_H -#define NR_IRQS 32 +#define NR_IRQS 33#endif
arch/arm/mach-iop32x/irq.c +3 -3
@@ -32,14 +32,14 @@ static void intstr_write(u32 val)static void iop32x_irq_mask (struct irq_data *d) { - iop32x_mask &= ~(1 << d->irq); + iop32x_mask &= ~(1 << (d->irq -1 ));intctl_write (iop32x_mask); }static void iop32x_irq_unmask (struct irq_data *d) { - iop32x_mask |=1 << d->irq; + iop32x_mask |=1 << (d->irq -1 );intctl_write (iop32x_mask); }
@@ -65,7 +65,7 @@ void __init iop32x_init_irq(void) machine_is_em7210()) *IOP3XX_PCIIRSR =0x0f ; -for (i =0 ; i <NR_IRQS ; i++) { +for (i =1 ; i <NR_IRQS ; i++) {irq_set_chip_and_handler (i, &ext_chip, handle_level_irq);irq_clear_status_flags (i,IRQ_NOREQUEST |IRQ_NOPROBE ); }
arch/arm/mach-iop32x/irqs.h +32 -28
68 lines not on this page · raw message
arch/arm/mach-mmp/sram.c +12 -10
@@ -72,6 +72,8 @@ static int sram_probe(struct platform_device *pdev)if (!info)return -ENOMEM ; +platform_set_drvdata (pdev, info); + res =platform_get_resource (pdev,IORESOURCE_MEM ,0 );if (res ==NULL ) {dev_err (&pdev->dev,"no memory resource defined\n" );
@@ -107,8 +109,6 @@ static int sram_probe(struct platform_device *pdev)list_add (&info->node, &sram_bank_list);mutex_unlock (&sram_lock); -platform_set_drvdata (pdev, info); -dev_info (&pdev->dev,"initialized\n" );return 0 ;
@@ -127,17 +127,19 @@ static int sram_remove(struct platform_device *pdev)struct sram_bank_info *info; info =platform_get_drvdata (pdev); -if (info ==NULL ) -return -ENODEV ; -mutex_lock (&sram_lock); -list_del (&info->node); -mutex_unlock (&sram_lock); +if (info->sram_size) { +mutex_lock (&sram_lock); +list_del (&info->node); +mutex_unlock (&sram_lock); + +gen_pool_destroy (info->gpool); +iounmap (info->sram_virt); +kfree (info->pool_name); + } -gen_pool_destroy (info->gpool); -iounmap (info->sram_virt); -kfree (info->pool_name);kfree (info); +return 0 ; }
arch/arm/mach-s3c24xx/mach-jive.c +3 -3
@@ -237,11 +237,11 @@ static int __init jive_mtdset(char *options)unsigned long set;if (options ==NULL || options[0 ] =='\0' ) -return 0 ; +return 1 ;if (kstrtoul (options,10 , &set)) {printk (KERN_ERR "failed to parse mtdset=%s\n" , options); -return 0 ; +return 1 ; }switch (set) {
@@ -256,7 +256,7 @@ static int __init jive_mtdset(char *options) "using default.", set); } -return 0 ; +return 1 ; }/* parse the mtdset= option given to the kernel command line */
arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts +4 -4
@@ -111,8 +111,8 @@ compatible = "silabs,si3226x"; reg = <0>; spi-max-frequency = <5000000>; - spi-cpha = <1>; - spi-cpol = <1>; + spi-cpha; + spi-cpol; pl022,hierarchy = <0>; pl022,interface = <0>; pl022,slave-tx-disable = <0>;
@@ -135,8 +135,8 @@ at25,byte-len = <0x8000>; at25,addr-mode = <2>; at25,page-size = <64>; - spi-cpha = <1>; - spi-cpol = <1>; + spi-cpha; + spi-cpol; pl022,hierarchy = <0>; pl022,interface = <0>; pl022,slave-tx-disable = <0>;
arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi +1 -1
@@ -687,7 +687,7 @@ }; }; - sata: ahci@663f2000 { + sata: sata@663f2000 { compatible = "brcm,iproc-ahci", "generic-ahci"; reg = <0x663f2000 0x1000>; dma-coherent;
arch/arm64/boot/dts/qcom/sm8150.dtsi +3 -3
@@ -459,9 +459,9 @@ qcom,tcs-offset = <0xd00>; qcom,drv-id = <2>; qcom,tcs-config = <ACTIVE_TCS 2>, - <SLEEP_TCS 1>, - <WAKE_TCS 1>, - <CONTROL_TCS 0>; + <SLEEP_TCS 3>, + <WAKE_TCS 3>, + <CONTROL_TCS 1>; rpmhcc: clock-controller { compatible = "qcom,sm8150-rpmh-clk";
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +2 -2
@@ -666,8 +666,8 @@ sd-uhs-sdr104; /* Power supply */ - vqmmc-supply = &vcc1v8_s3; /* IO line */ - vmmc-supply = &vcc_sdio; /* card's power */ + vqmmc-supply = <&vcc1v8_s3>; /* IO line */ + vmmc-supply = <&vcc_sdio>; /* card's power */ #address-cells = <1>; #size-cells = <0>;
arch/arm64/include/asm/kvm_mmu.h +2 -1
@@ -479,7 +479,8 @@ static inline void *kvm_get_hyp_vector(void)int slot =-1 ;if ((cpus_have_const_cap (ARM64_HARDEN_BRANCH_PREDICTOR ) || -cpus_have_const_cap (ARM64_SPECTRE_BHB )) && data->template_start) { +cpus_have_const_cap (ARM64_SPECTRE_BHB )) && + data && data->template_start) { vect =kern_hyp_va (kvm_ksym_ref (__bp_harden_hyp_vecs_start)); slot = data->hyp_vectors_slot; }
arch/arm64/kernel/cpuidle.c +3 -3
@@ -53,6 +53,9 @@ static int psci_acpi_cpu_init_idle(unsigned int cpu)struct acpi_lpi_state *lpi;struct acpi_processor *pr =per_cpu (processors, cpu); +if (unlikely (!pr || !pr->flags.has_lpi)) +return -EINVAL ; +/* * If the PSCI cpu_suspend function hook has not been initialized * idle states must not be enabled, so bail out
@@ -60,9 +63,6 @@ static int psci_acpi_cpu_init_idle(unsigned int cpu)if (!psci_ops.cpu_suspend)return -EOPNOTSUPP ; -if (unlikely (!pr || !pr->flags.has_lpi)) -return -EINVAL ; - count = pr->power.count -1 ;if (count <=0 )return -ENODEV ;
arch/arm64/kernel/insn.c +2 -2
@@ -207,8 +207,8 @@ static int __kprobes aarch64_insn_patch_text_cb(void *arg)int i, ret =0 ;struct aarch64_insn_patch *pp = arg; -/* The first CPU becomes master */ -if (atomic_inc_return (&pp->cpu_count) ==1 ) { +/* The last CPU becomes master */ +if (atomic_inc_return (&pp->cpu_count) ==num_online_cpus ()) {for (i =0 ; ret ==0 && i < pp->insn_cnt; i++) ret =aarch64_insn_patch_text_nosync (pp->text_addrs[i], pp->new_insns[i]);
arch/arm64/kernel/module.lds +3 -3
@@ -1,5 +1,5 @@ SECTIONS { - .plt 0 (NOLOAD) : { BYTE(0) } - .init.plt 0 (NOLOAD) : { BYTE(0) } - .text.ftrace_trampoline 0 (NOLOAD) : { BYTE(0) } + .plt 0 : { BYTE(0) } + .init.plt 0 : { BYTE(0) } + .text.ftrace_trampoline 0 : { BYTE(0) } }
arch/arm64/net/bpf_jit_comp.c +13 -5
@@ -909,15 +909,18 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog) goto out_off; } -/* 1. Initial fake pass to compute ctx->idx. */ - -/* Fake pass to fill in ctx->offset. */ -if (build_body (&ctx, extra_pass)) { +/* +* 1. Initial fake pass to compute ctx->idx and ctx->offset. +* +* BPF line info needs ctx->offset[i] to be the offset of +* instruction[i] in jited image, so build prologue first. +*/ +if (build_prologue (&ctx, was_classic)) { prog = orig_prog; goto out_off; } -if (build_prologue (&ctx, was_classic)) { +if (build_body (&ctx, extra_pass)) { prog = orig_prog; goto out_off; }
@@ -983,6 +986,11 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog) prog->jited_len = image_size;if (!prog->is_func || extra_pass) { +int i; + +/* offset[prog->len] is the size of program */ +for (i =0 ; i <= prog->len; i++) + ctx.offset[i] *=AARCH64_INSN_SIZE ;bpf_prog_fill_jited_linfo (prog, ctx.offset +1 ); out_off:kfree (ctx.offset);
arch/microblaze/include/asm/uaccess.h +9 -9
@@ -171,27 +171,27 @@ extern long __user_bad(void);#define __get_user (x, ptr) \ ({ \ - unsigned long __gu_val = 0; \ long __gu_err; \ switch (sizeof(*(ptr))) { \ case 1: \ - __get_user_asm("lbu", (ptr), __gu_val, __gu_err); \ + __get_user_asm("lbu", (ptr), x, __gu_err); \ break; \ case 2: \ - __get_user_asm("lhu", (ptr), __gu_val, __gu_err); \ + __get_user_asm("lhu", (ptr), x, __gu_err); \ break; \ case 4: \ - __get_user_asm("lw", (ptr), __gu_val, __gu_err); \ + __get_user_asm("lw", (ptr), x, __gu_err); \ break; \ - case 8: \ - __gu_err = __copy_from_user(&__gu_val, ptr, 8); \ - if (__gu_err) \ - __gu_err = -EFAULT; \ + case 8: { \ + __u64 __x = 0; \ + __gu_err = raw_copy_from_user(&__x, ptr, 8) ? \ + -EFAULT : 0; \ + (x) = (typeof(x))(typeof((x) - (x)))__x; \ break; \ + } \ default: \/* __gu_val = 0; __gu_err = -EINVAL;*/ __gu_err =__user_bad ();\ } \ - x = (__force __typeof__(*(ptr))) __gu_val; \ __gu_err; \ })
arch/mips/dec/int-handler.S +3 -3
@@ -131,7 +131,7 @@ */ mfc0 t0,CP0_CAUSE # get pending interrupts mfc0 t1,CP0_STATUS -#ifdef CONFIG_32BIT +#if defined(CONFIG_32BIT) && defined(CONFIG_MIPS_FP_SUPPORT) lw t2,cpu_fpu_mask #endif andi t0,ST0_IM # CAUSE.CE may be non-zero!
@@ -139,7 +139,7 @@ beqz t0,spurious -#ifdef CONFIG_32BIT +#if defined(CONFIG_32BIT) && defined(CONFIG_MIPS_FP_SUPPORT) and t2,t0 bnez t2,fpu # handle FPU immediately #endif
@@ -280,7 +280,7 @@ handle_it: j dec_irq_dispatch nop -#ifdef CONFIG_32BIT +#if defined(CONFIG_32BIT) && defined(CONFIG_MIPS_FP_SUPPORT) fpu: lw t0,fpu_kstat_irq nop
arch/mips/dec/prom/Makefile +1 -1
@@ -6,4 +6,4 @@ lib-y += init.o memory.o cmdline.o identify.o console.o -lib-$(CONFIG_32BIT) += locore.o +lib-$(CONFIG_CPU_R3000) += locore.o
arch/mips/dec/setup.c +2 -1
@@ -766,7 +766,8 @@ void __init arch_init_irq(void) dec_interrupt[DEC_IRQ_HALT ] =-1 ;/* Register board interrupts: FPU and cascade. */ -if (dec_interrupt[DEC_IRQ_FPU ] >=0 && cpu_has_fpu) { +if (IS_ENABLED (CONFIG_MIPS_FP_SUPPORT ) && + dec_interrupt[DEC_IRQ_FPU ] >=0 && cpu_has_fpu) {struct irq_desc *desc_fpu;int irq_fpu;
arch/mips/include/asm/dec/prom.h +5 -10
@@ -43,16 +43,11 @@*/ #define REX_PROM_MAGIC 0x30464354 -#ifdef CONFIG_64BIT - -#define prom_is_rex (magic) 1/* KN04 and KN05 are REX PROMs. */ - -#else /* !CONFIG_64BIT */ - -#define prom_is_rex (magic) ((magic) == REX_PROM_MAGIC) - -#endif /* !CONFIG_64BIT */ - +/* KN04 and KN05 are REX PROMs, so only do the check for R3k systems. */ +static inline bool prom_is_rex (u32 magic) +{ +return !IS_ENABLED (CONFIG_CPU_R3000 ) || magic ==REX_PROM_MAGIC ; +}/* * 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's and
arch/mips/include/asm/setup.h +1 -1
@@ -16,7 +16,7 @@ static inline void setup_8250_early_printk_port(unsigned long base, unsigned int reg_shift, unsigned int timeout) {}#endif -extern void set_handler (unsigned long offset,void *addr,unsigned long len); +void set_handler (unsigned long offset,const void *addr,unsigned long len);extern void set_uncached_handler (unsigned long offset,void *addr,unsigned long len);typedef void (*vi_handler_t )(void );
arch/mips/kernel/traps.c +11 -11
@@ -2020,19 +2020,19 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)* If no shadow set is selected then use the default handler * that does normal register saving and standard interrupt exit */ -extern char except_vec_vi, except_vec_vi_lui; -extern char except_vec_vi_ori, except_vec_vi_end; -extern char rollback_except_vec_vi; -char *vec_start =using_rollback_handler () ? - &rollback_except_vec_vi : &except_vec_vi; +extern const u8 except_vec_vi[], except_vec_vi_lui[]; +extern const u8 except_vec_vi_ori[], except_vec_vi_end[]; +extern const u8 rollback_except_vec_vi[]; +const u8 *vec_start =using_rollback_handler () ? + rollback_except_vec_vi : except_vec_vi;#if defined(CONFIG_CPU_MICROMIPS ) || defined(CONFIG_CPU_BIG_ENDIAN ) -const int lui_offset = &except_vec_vi_lui - vec_start +2 ; -const int ori_offset = &except_vec_vi_ori - vec_start +2 ; +const int lui_offset = except_vec_vi_lui - vec_start +2 ; +const int ori_offset = except_vec_vi_ori - vec_start +2 ;#else -const int lui_offset = &except_vec_vi_lui - vec_start; -const int ori_offset = &except_vec_vi_ori - vec_start; +const int lui_offset = except_vec_vi_lui - vec_start; +const int ori_offset = except_vec_vi_ori - vec_start;#endif -const int handler_len = &except_vec_vi_end - vec_start; +const int handler_len = except_vec_vi_end - vec_start;if (handler_len >VECTORSPACING ) {/*
@@ -2240,7 +2240,7 @@ void per_cpu_trap_init(bool is_boot_cpu) }/* Install CPU exception handler */ -void set_handler (unsigned long offset,void *addr,unsigned long size) +void set_handler (unsigned long offset,const void *addr,unsigned long size) {#ifdef CONFIG_CPU_MICROMIPS memcpy ((void *)(ebase + offset), ((unsigned char *)addr -1 ), size);
arch/mips/ralink/ill_acc.c +1 -0
@@ -61,6 +61,7 @@ static int __init ill_acc_of_setup(void) pdev =of_find_device_by_node (np);if (!pdev) {pr_err ("%pOFn: failed to lookup pdev\n" , np); +of_node_put (np);return -EINVAL ; }
arch/mips/rb532/devices.c +2 -4
@@ -310,11 +310,9 @@ static int __init plat_setup_devices(void)static int __init setup_kmac (char *s) {printk (KERN_INFO "korina mac = %s\n" , s); -if (!mac_pton (s, korina_dev0_data.mac)) { +if (!mac_pton (s, korina_dev0_data.mac))printk (KERN_ERR "Invalid mac\n" ); -return -EINVAL ; - } -return 0 ; +return 1 ; }__setup ("kmac=" , setup_kmac);
arch/nios2/include/asm/uaccess.h +16 -10
@@ -89,6 +89,7 @@ extern __must_check long strnlen_user(const char __user *s, long n);/* Optimized macros */ #define __get_user_asm (val, insn, addr, err) \ { \ + unsigned long __gu_val; \ __asm__ __volatile__( \ " movi %0, %3\n" \ "1: " insn " %1, 0(%2)\n" \
@@ -97,14 +98,20 @@ extern __must_check long strnlen_user(const char __user *s, long n);" .section __ex_table,\"a\"\n" \" .word 1b, 2b\n" \" .previous" \ - : "=&r" (err), "=r" (val) \ + : "=&r" (err), "=r" (__gu_val) \: " r" (addr), " i" (-EFAULT)); \ +val = (__force __typeof__(*(addr)))__gu_val; \ } -#define __get_user_unknown (val, size, ptr, err) do { \ +extern void __get_user_unknown(void); + +#define __get_user_8 (val, ptr, err) do { \ + u64 __val = 0; \ err = 0; \ - if (__copy_from_user(&(val), ptr, size)) { \ + if (raw_copy_from_user(&(__val), ptr, sizeof(val))) { \ err = -EFAULT; \ + } else { \ + val = (typeof(val))(typeof((val) - (val)))__val; \ } \ } while (0)
@@ -120,8 +127,11 @@ do { \case 4 : \__get_user_asm (val,"ldw" , ptr, err); \break ; \ +case 8 : \ +__get_user_8 (val, ptr, err); \ +break ; \default : \ -__get_user_unknown (val, size, ptr, err); \ +__get_user_unknown (); \break ; \ } \ }while (0 )
@@ -130,9 +140,7 @@ do { \ ({ \long __gu_err = -EFAULT ; \ const __typeof__(*(ptr)) __user *__gu_ptr = (ptr); \ -unsigned long __gu_val =0 ; \ -__get_user_common (__gu_val,sizeof (*(ptr)), __gu_ptr, __gu_err);\ - (x) = (__force __typeof__(x))__gu_val; \ +__get_user_common (x,sizeof (*(ptr)), __gu_ptr, __gu_err); \ __gu_err; \ })
@@ -140,11 +148,9 @@ do { \ ({ \long __gu_err = -EFAULT ; \ const __typeof__(*(ptr)) __user *__gu_ptr = (ptr); \ -unsigned long __gu_val =0 ; \if (access_ok ( __gu_ptr,sizeof (*__gu_ptr))) \ -__get_user_common (__gu_val,sizeof (*__gu_ptr), \ +__get_user_common (x,sizeof (*__gu_ptr), \ __gu_ptr, __gu_err); \ - (x) = (__force __typeof__(x))__gu_val; \ __gu_err; \ })
arch/parisc/kernel/patch.c +11 -14
@@ -40,10 +40,7 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags, *need_unmap =1 ;set_fixmap (fixmap,page_to_phys (page)); -if (flags) -raw_spin_lock_irqsave (&patch_lock, *flags); -else -__acquire (&patch_lock); +raw_spin_lock_irqsave (&patch_lock, *flags);return (void *) (__fix_to_virt (fixmap) + (uintaddr & ~PAGE_MASK )); }
@@ -52,10 +49,7 @@ static void __kprobes patch_unmap(int fixmap, unsigned long *flags) {clear_fixmap (fixmap); -if (flags) -raw_spin_unlock_irqrestore (&patch_lock, *flags); -else -__release (&patch_lock); +raw_spin_unlock_irqrestore (&patch_lock, *flags); }void __kprobes __patch_text_multiple (void *addr,u32 *insn,unsigned int len)
@@ -67,8 +61,9 @@ void __kprobes __patch_text_multiple(void *addr, u32 *insn, unsigned int len)int mapped;/* Make sure we don't have any aliases in cache */ -flush_kernel_vmap_range (addr, len); -flush_icache_range (start, end); +flush_kernel_dcache_range_asm (start, end); +flush_kernel_icache_range_asm (start, end); +flush_tlb_kernel_range (start, end); p = fixmap =patch_map (addr,FIX_TEXT_POKE0 , &flags, &mapped);
@@ -81,8 +76,10 @@ void __kprobes __patch_text_multiple(void *addr, u32 *insn, unsigned int len)* We're crossing a page boundary, so * need to remap */ -flush_kernel_vmap_range ((void *)fixmap, - (p-fixmap) *sizeof (*p)); +flush_kernel_dcache_range_asm ((unsigned long )fixmap, + (unsigned long )p); +flush_tlb_kernel_range ((unsigned long )fixmap, + (unsigned long )p);if (mapped)patch_unmap (FIX_TEXT_POKE0 , &flags); p = fixmap = patch_map(addr, FIX_TEXT_POKE0, &flags,
@@ -90,10 +87,10 @@ void __kprobes __patch_text_multiple(void *addr, u32 *insn, unsigned int len) } } -flush_kernel_vmap_range ((void *)fixmap, (p-fixmap) *sizeof (*p)); +flush_kernel_dcache_range_asm ((unsigned long )fixmap, (unsigned long )p); +flush_tlb_kernel_range ((unsigned long )fixmap, (unsigned long )p);if (mapped)patch_unmap (FIX_TEXT_POKE0 , &flags); -flush_icache_range (start, end); }void __kprobes __patch_text (void *addr,u32 insn)
arch/powerpc/Makefile +1 -1
@@ -174,7 +174,7 @@ else CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,$(call cc-option,-mtune=power5)) CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mcpu=power5,-mcpu=power4) endif -else +else ifdef CONFIG_PPC_BOOK3E_64 CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64 endif
arch/powerpc/boot/dts/fsl/t104xrdb.dtsi +2 -2
@@ -139,12 +139,12 @@ fman@400000 { ethernet@e6000 { phy-handle = <&phy_rgmii_0>; - phy-connection-type = "rgmii"; + phy-connection-type = "rgmii-id"; }; ethernet@e8000 { phy-handle = <&phy_rgmii_1>; - phy-connection-type = "rgmii"; + phy-connection-type = "rgmii-id"; }; mdio0: mdio@fc000 {
arch/powerpc/include/asm/io.h +32 -8
@@ -345,25 +345,37 @@ static inline void __raw_writeq_be(unsigned long v, volatile void __iomem *addr)*/ static inline void __raw_rm_writeb (u8 val,volatile void __iomem *paddr) { - __asm__ __volatile__("stbcix %0,0,%1" + __asm__ __volatile__(".machine push; \ +.machine power6; \ +stbcix %0,0,%1; \ +.machine pop;" : :"r" (val),"r" (paddr) :"memory" ); }static inline void __raw_rm_writew (u16 val,volatile void __iomem *paddr) { - __asm__ __volatile__("sthcix %0,0,%1" + __asm__ __volatile__(".machine push; \ +.machine power6; \ +sthcix %0,0,%1; \ +.machine pop;" : :"r" (val),"r" (paddr) :"memory" ); }static inline void __raw_rm_writel (u32 val,volatile void __iomem *paddr) { - __asm__ __volatile__("stwcix %0,0,%1" + __asm__ __volatile__(".machine push; \ +.machine power6; \ +stwcix %0,0,%1; \ +.machine pop;" : :"r" (val),"r" (paddr) :"memory" ); }static inline void __raw_rm_writeq (u64 val,volatile void __iomem *paddr) { - __asm__ __volatile__("stdcix %0,0,%1" + __asm__ __volatile__(".machine push; \ +.machine power6; \ +stdcix %0,0,%1; \ +.machine pop;" : :"r" (val),"r" (paddr) :"memory" ); }
@@ -375,7 +387,10 @@ static inline void __raw_rm_writeq_be(u64 val, volatile void __iomem *paddr)static inline u8 __raw_rm_readb (volatile void __iomem *paddr) {u8 ret; - __asm__ __volatile__("lbzcix %0,0, %1" + __asm__ __volatile__(".machine push; \ +.machine power6; \ +lbzcix %0,0, %1; \ +.machine pop;" :"=r" (ret) :"r" (paddr) :"memory" );return ret; }
@@ -383,7 +398,10 @@ static inline u8 __raw_rm_readb(volatile void __iomem *paddr)static inline u16 __raw_rm_readw (volatile void __iomem *paddr) {u16 ret; - __asm__ __volatile__("lhzcix %0,0, %1" + __asm__ __volatile__(".machine push; \ +.machine power6; \ +lhzcix %0,0, %1; \ +.machine pop;" :"=r" (ret) :"r" (paddr) :"memory" );return ret; }
@@ -391,7 +409,10 @@ static inline u16 __raw_rm_readw(volatile void __iomem *paddr)static inline u32 __raw_rm_readl (volatile void __iomem *paddr) {u32 ret; - __asm__ __volatile__("lwzcix %0,0, %1" + __asm__ __volatile__(".machine push; \ +.machine power6; \ +lwzcix %0,0, %1; \ +.machine pop;" :"=r" (ret) :"r" (paddr) :"memory" );return ret; }
@@ -399,7 +420,10 @@ static inline u32 __raw_rm_readl(volatile void __iomem *paddr)static inline u64 __raw_rm_readq (volatile void __iomem *paddr) {u64 ret; - __asm__ __volatile__("ldcix %0,0, %1" + __asm__ __volatile__(".machine push; \ +.machine power6; \ +ldcix %0,0, %1; \ +.machine pop;" :"=r" (ret) :"r" (paddr) :"memory" );return ret; }
arch/powerpc/include/asm/uaccess.h +3 -0
@@ -191,8 +191,11 @@ extern long __get_user_bad(void);*/ #define __get_user_atomic_128_aligned (kaddr, uaddr, err) \ __asm__ __volatile__( \ + ".machine push\n" \ + ".machine altivec\n" \ "1: lvx 0,0,%1 # get user\n" \ " stvx 0,0,%2 # put kernel\n" \ + ".machine pop\n" \ "2:\n" \ ".section .fixup,\"ax\"\n" \ "3: li %0,%3\n" \
arch/powerpc/kernel/kvm.c +1 -1
@@ -669,7 +669,7 @@ static void __init kvm_use_magic_page(void)on_each_cpu (kvm_map_magic_page, &features,1 );/* Quick self-test to see if the mapping works */ -if (!fault_in_pages_readable ((const char *)KVM_MAGIC_PAGE ,sizeof (u32))) { +if (fault_in_pages_readable ((const char *)KVM_MAGIC_PAGE ,sizeof (u32))) { kvm_patching_worked = false;return ; }
arch/powerpc/kernel/machine_kexec.c +11 -4
@@ -146,11 +146,18 @@ void __init reserve_crashkernel(void)if (!crashk_res.start) {#ifdef CONFIG_PPC64 /* -* On 64bit we split the RMO in half but cap it at half of -* a small SLB (128MB) since the crash kernel needs to place -* itself and some stacks to be in the first segment. +* On the LPAR platform place the crash kernel to mid of +* RMA size (512MB or more) to ensure the crash kernel +* gets enough space to place itself and some stack to be +* in the first segment. At the same time normal kernel +* also get enough space to allocate memory for essential +* system resource in the first segment. Keep the crash +* kernel starts at 128MB offset on other platforms. */ - crashk_res.start =min (0x8000000ULL , (ppc64_rma_size /2 )); +if (firmware_has_feature (FW_FEATURE_LPAR )) + crashk_res.start = ppc64_rma_size /2 ; +else + crashk_res.start =min (0x8000000ULL , (ppc64_rma_size /2 ));#else crashk_res.start =KDUMP_KERNELBASE ;#endif
arch/powerpc/kernel/rtas.c +6 -0
@@ -1244,6 +1244,12 @@ int __init early_init_dt_scan_rtas(unsigned long node, entryp =of_get_flat_dt_prop (node,"linux,rtas-entry" ,NULL ); sizep =of_get_flat_dt_prop (node,"rtas-size" ,NULL ); +#ifdef CONFIG_PPC64 +/* need this feature to decide the crashkernel offset */ +if (of_get_flat_dt_prop (node,"ibm,hypertas-functions" ,NULL )) + powerpc_firmware_features |=FW_FEATURE_LPAR ; +#endif +if (basep && entryp && sizep) { rtas.base = *basep; rtas.entry = *entryp;
arch/powerpc/kvm/powerpc.c +2 -2
@@ -1495,7 +1495,7 @@ int kvmppc_handle_vmx_load(struct kvm_run *run, struct kvm_vcpu *vcpu, {enum emulation_result emulated =EMULATE_DONE ; -if (vcpu->arch.mmio_vsx_copy_nums >2 ) +if (vcpu->arch.mmio_vmx_copy_nums >2 )return EMULATE_FAIL ;while (vcpu->arch.mmio_vmx_copy_nums) {
@@ -1592,7 +1592,7 @@ int kvmppc_handle_vmx_store(struct kvm_run *run, struct kvm_vcpu *vcpu,unsigned int index = rs &KVM_MMIO_REG_MASK ;enum emulation_result emulated =EMULATE_DONE ; -if (vcpu->arch.mmio_vsx_copy_nums >2 ) +if (vcpu->arch.mmio_vmx_copy_nums >2 )return EMULATE_FAIL ; vcpu->arch.io_gpr = rs;
arch/powerpc/lib/sstep.c +7 -1
@@ -906,7 +906,10 @@ NOKPROBE_SYMBOL(emulate_dcbz);#define __put_user_asmx (x, addr, err, op, cr) \ __asm__ __volatile__( \ + ".machine push\n" \ + ".machine power8\n" \ "1: " op " %2,0,%3\n" \ + ".machine pop\n" \ " mfcr %1\n" \ "2:\n" \ ".section .fixup,\"ax\"\n" \
@@ -919,7 +922,10 @@ NOKPROBE_SYMBOL(emulate_dcbz);#define __get_user_asmx (x, addr, err, op) \ __asm__ __volatile__( \ + ".machine push\n" \ + ".machine power8\n" \ "1: "op" %1,0,%2\n" \ + ".machine pop\n" \ "2:\n" \ ".section .fixup,\"ax\"\n" \ "3: li %0,%3\n" \
@@ -2912,7 +2918,7 @@ int emulate_loadstore(struct pt_regs *regs, struct instruction_op *op)__put_user_asmx (op->val, ea, err,"stbcx." , cr);break ;case 2 : -__put_user_asmx (op->val, ea, err,"stbcx." , cr); +__put_user_asmx (op->val, ea, err,"sthcx." , cr);break ;#endif case 4 :
arch/powerpc/mm/kasan/kasan_init_32.c +1 -1
@@ -121,7 +121,7 @@ static void __init kasan_remap_early_shadow_ro(void)pmd_t *pmd =pmd_offset (pud_offset (pgd_offset_k (k_cur), k_cur), k_cur);pte_t *ptep =pte_offset_kernel (pmd, k_cur); -if ((pte_val (*ptep) &PTE_RPN_MASK ) != pa) +if (pte_page (*ptep) !=virt_to_page (lm_alias (kasan_early_shadow_page)))continue ;__set_pte_at (&init_mm, k_cur, ptep,pfn_pte (PHYS_PFN (pa), prot),0 );
arch/powerpc/perf/imc-pmu.c +5 -1
@@ -1441,7 +1441,11 @@ static int trace_imc_event_init(struct perf_event *event) event->hw.idx =-1 ; target = event->hw.target; - event->pmu->task_ctx_nr = perf_hw_context; +/* +* There can only be a single PMU for perf_hw_context events which is assigned to +* core PMU. Hence use "perf_sw_context" for trace_imc. +*/ + event->pmu->task_ctx_nr = perf_sw_context; event->destroy = reset_global_refc;return 0 ; }
arch/powerpc/platforms/8xx/pic.c +1 -0
@@ -153,6 +153,7 @@ int mpc8xx_pic_init(void)if (mpc8xx_pic_host ==NULL ) {printk (KERN_ERR "MPC8xx PIC: failed to allocate irq host!\n" ); ret = -ENOMEM ; + goto out; } ret =0 ;
arch/powerpc/platforms/powernv/rng.c +5 -1
@@ -43,7 +43,11 @@ static unsigned long rng_whiten(struct powernv_rng *rng, unsigned long val)unsigned long parity;/* Calculate the parity of the value */ - asm ("popcntd %0,%1" :"=r" (parity) :"r" (val)); + asm (".machine push; \ +.machine power7; \ +popcntd %0,%1; \ +.machine pop;" + :"=r" (parity) :"r" (val));/* xor our value with the previous mask */ val ^= rng->mask;
arch/powerpc/sysdev/fsl_gtm.c +2 -2
@@ -86,7 +86,7 @@ static LIST_HEAD(gtms);*/ struct gtm_timer *gtm_get_timer16 (void ) { -struct gtm *gtm =NULL ; +struct gtm *gtm;int i;list_for_each_entry (gtm, >ms, list_node) {
@@ -103,7 +103,7 @@ struct gtm_timer *gtm_get_timer16(void)spin_unlock_irq (>m->lock); } -if (gtm) +if (!list_empty (>ms))return ERR_PTR (-EBUSY );return ERR_PTR (-ENODEV ); }
arch/riscv/kernel/module.lds +3 -3
@@ -2,7 +2,7 @@ /* Copyright (C) 2017 Andes Technology Corporation */ SECTIONS { - .plt (NOLOAD) : { BYTE(0) } - .got (NOLOAD) : { BYTE(0) } - .got.plt (NOLOAD) : { BYTE(0) } + .plt : { BYTE(0) } + .got : { BYTE(0) } + .got.plt : { BYTE(0) } }
arch/riscv/kernel/perf_callchain.c +1 -1
@@ -77,7 +77,7 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,bool fill_callchain (unsigned long pc,void *entry) { -return perf_callchain_store (entry, pc); +return perf_callchain_store (entry, pc) ==0 ; } void notrace walk_stackframe(struct task_struct *task,
arch/um/drivers/mconsole_kern.c +2 -1
@@ -217,7 +217,7 @@ void mconsole_go(struct mc_request *req)void mconsole_stop (struct mc_request *req) { -deactivate_fd (req->originating_fd,MCONSOLE_IRQ ); +block_signals ();os_set_fd_block (req->originating_fd,1 );mconsole_reply (req,"stopped" ,0 ,0 );for (;;) {
@@ -240,6 +240,7 @@ void mconsole_stop(struct mc_request *req) }os_set_fd_block (req->originating_fd,0 );mconsole_reply (req,"" ,0 ,0 ); +unblock_signals (); }static DEFINE_SPINLOCK (mc_devices_lock);
arch/x86/events/intel/pt.c +1 -1
@@ -460,7 +460,7 @@ static u64 pt_config_filters(struct perf_event *event) pt->filters.filter[range].msr_b = filter->msr_b; } - rtit_ctl |= filter->config << pt_address_ranges[range].reg_off; + rtit_ctl |= (u64 )filter->config << pt_address_ranges[range].reg_off; }return rtit_ctl;
arch/x86/kernel/kvm.c +1 -1
@@ -487,7 +487,7 @@ static void __send_ipi_mask(const struct cpumask *mask, int vector) }else if (apic_id < min && max - apic_id <KVM_IPI_CLUSTER_SIZE ) { ipi_bitmap <<= min - apic_id; min = apic_id; - }else if (apic_id < min +KVM_IPI_CLUSTER_SIZE ) { + }else if (apic_id > min && apic_id < min +KVM_IPI_CLUSTER_SIZE ) { max = apic_id < max ? max : apic_id; }else { ret = kvm_hypercall4(KVM_HC_SEND_IPI, (unsigned long)ipi_bitmap,
arch/x86/kvm/emulate.c +9 -5
@@ -1714,11 +1714,6 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt, goto exception; } -if (!seg_desc.p) { - err_vec = (seg ==VCPU_SREG_SS ) ?SS_VECTOR :NP_VECTOR ; - goto exception; - } - dpl = seg_desc.dpl;switch (seg) {
@@ -1758,6 +1753,10 @@ 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,
@@ -1782,6 +1781,11 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,break ; } +if (!seg_desc.p) { + err_vec = (seg ==VCPU_SREG_SS ) ?SS_VECTOR :NP_VECTOR ; + goto exception; + } +if (seg_desc.s) {/* mark segment as accessed */ if (!(seg_desc.type &1 )) {
arch/x86/kvm/hyperv.c +15 -1
@@ -205,7 +205,7 @@ static int synic_set_msr(struct kvm_vcpu_hv_synic *synic,struct kvm_vcpu *vcpu =synic_to_vcpu (synic);int ret; -if (!synic->active && !host) +if (!synic->active && (!host || data))return 1 ;trace_kvm_hv_synic_set_msr (vcpu->vcpu_id, msr, data, host);
@@ -251,6 +251,9 @@ static int synic_set_msr(struct kvm_vcpu_hv_synic *synic,case HV_X64_MSR_EOM : {int i; +if (!synic->active) +break ; +for (i =0 ; i <ARRAY_SIZE (synic->sint); i++)kvm_hv_notify_acked_sint (vcpu, i);break ;
@@ -514,6 +517,11 @@ static int stimer_set_config(struct kvm_vcpu_hv_stimer *stimer, u64 config, {union hv_stimer_config new_config = {.as_uint64 = config}, old_config = {.as_uint64 = stimer->config.as_uint64}; +struct kvm_vcpu *vcpu =stimer_to_vcpu (stimer); +struct kvm_vcpu_hv_synic *synic =vcpu_to_synic (vcpu); + +if (!synic->active && (!host || config)) +return 1 ;trace_kvm_hv_stimer_set_config (stimer_to_vcpu (stimer)->vcpu_id, stimer->index, config, host);
@@ -533,6 +541,12 @@ static int stimer_set_config(struct kvm_vcpu_hv_stimer *stimer, u64 config,static int stimer_set_count (struct kvm_vcpu_hv_stimer *stimer,u64 count,bool host) { +struct kvm_vcpu *vcpu =stimer_to_vcpu (stimer); +struct kvm_vcpu_hv_synic *synic =vcpu_to_synic (vcpu); + +if (!synic->active && (!host || count)) +return 1 ; +trace_kvm_hv_stimer_set_count (stimer_to_vcpu (stimer)->vcpu_id, stimer->index, count, host);
arch/x86/kvm/lapic.c +1 -4
@@ -2099,10 +2099,7 @@ void kvm_set_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu, u64 data)void kvm_lapic_set_tpr (struct kvm_vcpu *vcpu,unsigned long cr8) { -struct kvm_lapic *apic = vcpu->arch.apic; - -apic_set_tpr (apic, ((cr8 &0x0f ) <<4 ) - | (kvm_lapic_get_reg (apic,APIC_TASKPRI ) &4 )); +apic_set_tpr (vcpu->arch.apic, (cr8 &0x0f ) <<4 ); }u64 kvm_lapic_get_cr8 (struct kvm_vcpu *vcpu)
arch/x86/kvm/paging_tmpl.h +37 -40
104 lines not on this page · raw message
arch/x86/kvm/pmu_amd.c +3 -5
@@ -245,12 +245,10 @@ static int amd_pmu_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)/* MSR_EVNTSELn */ pmc =get_gp_pmc_amd (pmu, msr,PMU_TYPE_EVNTSEL );if (pmc) { -if (data == pmc->eventsel) -return 0 ; -if (!(data & pmu->reserved_bits)) { + data &= ~pmu->reserved_bits; +if (data != pmc->eventsel)reprogram_gp_counter (pmc, data); -return 0 ; - } +return 0 ; }return 1 ;
arch/x86/power/cpu.c +19 -2
@@ -40,7 +40,8 @@ static void msr_save_context(struct saved_context *ctxt)struct saved_msr *end = msr + ctxt->saved_msrs.num;while (msr < end) { - msr->valid = !rdmsrl_safe (msr->info.msr_no, &msr->info.reg.q); +if (msr->valid) +rdmsrl (msr->info.msr_no, msr->info.reg.q); msr++; } }
@@ -421,8 +422,10 @@ static int msr_build_context(const u32 *msr_id, const int num) }for (i = saved_msrs->num, j =0 ; i < total_num; i++, j++) { +u64 dummy; + msr_array[i].info.msr_no = msr_id[j]; - msr_array[i].valid = false; + msr_array[i].valid = !rdmsrl_safe (msr_id[j], &dummy); msr_array[i].info.reg.q =0 ; } saved_msrs->num = total_num;
@@ -509,10 +512,24 @@ static int pm_cpu_check(const struct x86_cpu_id *c)return ret; } +static void pm_save_spec_msr (void ) +{ +u32 spec_msr_id[] = { +MSR_IA32_SPEC_CTRL , +MSR_IA32_TSX_CTRL , +MSR_TSX_FORCE_ABORT , +MSR_IA32_MCU_OPT_CTRL , +MSR_AMD64_LS_CFG , + }; + +msr_build_context (spec_msr_id,ARRAY_SIZE (spec_msr_id)); +} +static int pm_check_save_msr (void ) {dmi_check_system (msr_save_dmi_table);pm_cpu_check (msr_save_cpu_table); +pm_save_spec_msr ();return 0 ; }
arch/x86/xen/pmu.c +4 -6
@@ -512,10 +512,7 @@ irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id)return ret; } -bool is_xen_pmu (int cpu) -{ -return (get_xenpmu_data () !=NULL ); -} +bool is_xen_pmu;void xen_pmu_init (int cpu) {
@@ -526,7 +523,7 @@ void xen_pmu_init(int cpu)BUILD_BUG_ON (sizeof (struct xen_pmu_data ) >PAGE_SIZE ); -if (xen_hvm_domain ()) +if (xen_hvm_domain () || (cpu !=0 && !is_xen_pmu))return ; xenpmu_data = (struct xen_pmu_data *)get_zeroed_page (GFP_KERNEL );
@@ -547,7 +544,8 @@ void xen_pmu_init(int cpu)per_cpu (xenpmu_shared, cpu).xenpmu_data = xenpmu_data;per_cpu (xenpmu_shared, cpu).flags =0 ; -if (cpu ==0 ) { +if (!is_xen_pmu) { + is_xen_pmu = true;perf_register_guest_info_callbacks (&xen_guest_cbs);xen_pmu_arch_init (); }
arch/x86/xen/pmu.h +2 -1
@@ -4,6 +4,8 @@#include <xen/interface/xenpmu.h> +extern bool is_xen_pmu; +irqreturn_t xen_pmu_irq_handler (int irq,void *dev_id);#ifdef CONFIG_XEN_HAVE_VPMU void xen_pmu_init (int cpu);
@@ -12,7 +14,6 @@ void xen_pmu_finish(int cpu);static inline void xen_pmu_init (int cpu) {}static inline void xen_pmu_finish (int cpu) {}#endif -bool is_xen_pmu (int cpu);bool pmu_msr_read (unsigned int msr,uint64_t *val,int *err);bool pmu_msr_write (unsigned int msr,uint32_t low,uint32_t high,int *err);int pmu_apic_update (uint32_t reg);
arch/x86/xen/smp_hvm.c +6 -0
@@ -18,6 +18,12 @@ static void __init xen_hvm_smp_prepare_boot_cpu(void)*/ xen_vcpu_setup (0 ); +/* +* Called again in case the kernel boots on vcpu >= MAX_VIRT_CPUS. +* Refer to comments in xen_hvm_init_time_ops(). +*/ +xen_hvm_init_time_ops (); +/* * The alternative logic (which patches the unlock/lock) runs before * the smp bootup up code is activated. Hence we need to set this up
arch/x86/xen/smp_pv.c +1 -1
@@ -129,7 +129,7 @@ int xen_smp_intr_init_pv(unsigned int cpu)per_cpu (xen_irq_work, cpu).irq = rc;per_cpu (xen_irq_work, cpu).name = callfunc_name; -if (is_xen_pmu (cpu)) { +if (is_xen_pmu) { pmu_name =kasprintf (GFP_KERNEL ,"pmu%d" , cpu); rc = bind_virq_to_irqhandler(VIRQ_XENPMU, cpu, xen_pmu_irq_handler,
arch/x86/xen/time.c +23 -1
@@ -547,6 +547,11 @@ static void xen_hvm_setup_cpu_clockevents(void)void __init xen_hvm_init_time_ops (void ) { +static bool hvm_time_initialized; + +if (hvm_time_initialized) +return ; +/* * vector callback is needed otherwise we cannot receive interrupts * on cpu > 0 and at this point we don't know how many cpus are
@@ -556,7 +561,22 @@ void __init xen_hvm_init_time_ops(void)return ;if (!xen_feature (XENFEAT_hvm_safe_pvclock)) { -pr_info ("Xen doesn't support pvclock on HVM, disable pv timer" ); +pr_info_once ("Xen doesn't support pvclock on HVM, disable pv timer" ); +return ; + } + +/* +* Only MAX_VIRT_CPUS 'vcpu_info' are embedded inside 'shared_info'. +* The __this_cpu_read(xen_vcpu) is still NULL when Xen HVM guest +* boots on vcpu >= MAX_VIRT_CPUS (e.g., kexec), To access +* __this_cpu_read(xen_vcpu) via xen_clocksource_read() will panic. +* +* The xen_hvm_init_time_ops() should be called again later after +* __this_cpu_read(xen_vcpu) is available. +*/ +if (!__this_cpu_read (xen_vcpu)) { +pr_info ("Delay xen_init_time_common() as kernel is running on vcpu=%d\n" , +xen_vcpu_nr (0 ));return ; }
@@ -568,6 +588,8 @@ void __init xen_hvm_init_time_ops(void) x86_platform.calibrate_tsc = xen_tsc_khz; x86_platform.get_wallclock = xen_get_wallclock; x86_platform.set_wallclock = xen_set_wallclock; + + hvm_time_initialized = true; }#endif
arch/xtensa/boot/dts/xtfpga-flash-128m.dtsi +4 -4
@@ -8,19 +8,19 @@ reg = <0x00000000 0x08000000>; bank-width = <2>; device-width = <2>; - partition@0x0 { + partition@0 { label = "data"; reg = <0x00000000 0x06000000>; }; - partition@0x6000000 { + partition@6000000 { label = "boot loader area"; reg = <0x06000000 0x00800000>; }; - partition@0x6800000 { + partition@6800000 { label = "kernel image"; reg = <0x06800000 0x017e0000>; }; - partition@0x7fe0000 { + partition@7fe0000 { label = "boot environment"; reg = <0x07fe0000 0x00020000>; };
arch/xtensa/boot/dts/xtfpga-flash-16m.dtsi +4 -4
@@ -8,19 +8,19 @@ reg = <0x08000000 0x01000000>; bank-width = <2>; device-width = <2>; - partition@0x0 { + partition@0 { label = "boot loader area"; reg = <0x00000000 0x00400000>; }; - partition@0x400000 { + partition@400000 { label = "kernel image"; reg = <0x00400000 0x00600000>; }; - partition@0xa00000 { + partition@a00000 { label = "data"; reg = <0x00a00000 0x005e0000>; }; - partition@0xfe0000 { + partition@fe0000 { label = "boot environment"; reg = <0x00fe0000 0x00020000>; };
arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi +2 -2
@@ -8,11 +8,11 @@ reg = <0x08000000 0x00400000>; bank-width = <2>; device-width = <2>; - partition@0x0 { + partition@0 { label = "boot loader area"; reg = <0x00000000 0x003f0000>; }; - partition@0x3f0000 { + partition@3f0000 { label = "boot environment"; reg = <0x003f0000 0x00010000>; };
arch/xtensa/include/asm/processor.h +2 -2
@@ -225,8 +225,8 @@ extern unsigned long get_wchan(struct task_struct *p);#define xtensa_set_sr (x, sr) \ ({ \ - unsigned int v = (unsigned int)(x); \ - __asm__ __volatile__ ("wsr %0, "__stringify(sr) :: "a"(v)); \ + __asm__ __volatile__ ("wsr %0, "__stringify(sr) :: \ + "a"((unsigned int)(x))); \ })#define xtensa_get_sr (sr) \
arch/xtensa/kernel/jump_label.c +1 -1
@@ -61,7 +61,7 @@ static void patch_text(unsigned long addr, const void *data, size_t sz) .data = data, };stop_machine_cpuslocked (patch_text_stop_machine, - &patch,NULL ); + &patch, cpu_online_mask); }else {unsigned long flags;
block/bfq-cgroup.c +6 -0
@@ -625,6 +625,12 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq, {struct bfq_entity *entity = &bfqq->entity; +/* +* oom_bfqq is not allowed to move, oom_bfqq will hold ref to root_group +* until elevator exit. +*/ +if (bfqq == &bfqd->oom_bfqq) +return ;/* * Get extra reference to prevent bfqq from being freed in * next possible expire or deactivate.
block/bfq-iosched.c +21 -10
@@ -2523,6 +2523,15 @@ bfq_setup_merge(struct bfq_queue *bfqq, struct bfq_queue *new_bfqq)* are likely to increase the throughput. */ bfqq->new_bfqq = new_bfqq; +/* +* The above assignment schedules the following redirections: +* each time some I/O for bfqq arrives, the process that +* generated that I/O is disassociated from bfqq and +* associated with new_bfqq. Here we increases new_bfqq->ref +* in advance, adding the number of processes that are +* expected to be associated with new_bfqq as they happen to +* issue I/O. +*/ new_bfqq->ref += process_refs;return new_bfqq; }
@@ -2582,6 +2591,10 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq, {struct bfq_queue *in_service_bfqq, *new_bfqq; +/* if a merge has already been setup, then proceed with that first */ +if (bfqq->new_bfqq) +return bfqq->new_bfqq; +/* * Do not perform queue merging if the device is non * rotational and performs internal queueing. In fact, such a
@@ -2636,9 +2649,6 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq,if (bfq_too_late_for_merging (bfqq))return NULL ; -if (bfqq->new_bfqq) -return bfqq->new_bfqq; -if (!io_struct ||unlikely (bfqq == &bfqd->oom_bfqq))return NULL ;
@@ -4793,7 +4803,7 @@ static struct request *bfq_dispatch_request(struct blk_mq_hw_ctx *hctx)struct bfq_data *bfqd = hctx->queue->elevator->elevator_data;struct request *rq;struct bfq_queue *in_serv_queue; -bool waiting_rq, idle_timer_disabled; +bool waiting_rq, idle_timer_disabled = false;spin_lock_irq (&bfqd->lock);
@@ -4801,14 +4811,15 @@ static struct request *bfq_dispatch_request(struct blk_mq_hw_ctx *hctx) waiting_rq = in_serv_queue &&bfq_bfqq_wait_request (in_serv_queue); rq =__bfq_dispatch_request (hctx); - - idle_timer_disabled = - waiting_rq && !bfq_bfqq_wait_request (in_serv_queue); +if (in_serv_queue == bfqd->in_service_queue) { + idle_timer_disabled = + waiting_rq && !bfq_bfqq_wait_request (in_serv_queue); + }spin_unlock_irq (&bfqd->lock); - -bfq_update_dispatch_stats (hctx->queue, rq, in_serv_queue, - idle_timer_disabled); +bfq_update_dispatch_stats (hctx->queue, rq, + idle_timer_disabled ? in_serv_queue :NULL , + idle_timer_disabled);return rq; }
block/blk-merge.c +11 -0
@@ -7,6 +7,7 @@#include <linux/bio.h> #include <linux/blkdev.h> #include <linux/scatterlist.h> +#include <linux/blk-cgroup.h> #include <trace/events/block.h>
@@ -571,6 +572,9 @@ static inline unsigned int blk_rq_get_max_segments(struct request *rq)static inline int ll_new_hw_segment (struct request *req,struct bio *bio,unsigned int nr_phys_segs) { +if (!blk_cgroup_mergeable (req, bio)) + goto no_merge; +if (blk_integrity_merge_bio (req->q, req, bio) == false) goto no_merge;
@@ -662,6 +666,9 @@ static int ll_merge_requests_fn(struct request_queue *q, struct request *req,if (total_phys_segments >blk_rq_get_max_segments (req))return 0 ; +if (!blk_cgroup_mergeable (req, next->bio)) +return 0 ; +if (blk_integrity_merge_rq (q, req, next) == false)return 0 ;
@@ -885,6 +892,10 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio)if (rq->rq_disk != bio->bi_disk)return false; +/* don't merge across cgroup boundaries */ +if (!blk_cgroup_mergeable (rq, bio)) +return false; +/* only merge integrity protected bio into ditto rq */ if (blk_integrity_merge_bio (rq->q, rq, bio) == false)return false;
block/blk-sysfs.c +5 -3
@@ -1060,15 +1060,17 @@ void blk_unregister_queue(struct gendisk *disk)*/ if (queue_is_mq (q))blk_mq_unregister_dev (disk_to_dev (disk), q); - -kobject_uevent (&q->kobj,KOBJ_REMOVE ); -kobject_del (&q->kobj);blk_trace_remove_sysfs (disk_to_dev (disk));mutex_lock (&q->sysfs_lock);if (q->elevator)elv_unregister_queue (q);mutex_unlock (&q->sysfs_lock); + +/* Now that we've deleted all child objects, we can delete the queue. */ +kobject_uevent (&q->kobj,KOBJ_REMOVE ); +kobject_del (&q->kobj); +mutex_unlock (&q->sysfs_dir_lock);kobject_put (&disk_to_dev (disk)->kobj);
crypto/authenc.c +1 -1
@@ -263,7 +263,7 @@ static int crypto_authenc_decrypt_tail(struct aead_request *req, dst =scatterwalk_ffwd (areq_ctx->dst, req->dst, req->assoclen);skcipher_request_set_tfm (skreq, ctx->enc); -skcipher_request_set_callback (skreq,aead_request_flags (req), +skcipher_request_set_callback (skreq, flags, req->base.complete, req->base.data);skcipher_request_set_crypt (skreq, src, dst, req->cryptlen - authsize, req->iv);
crypto/rsa-pkcs1pad.c +4 -2
@@ -475,6 +475,8 @@ static int pkcs1pad_verify_complete(struct akcipher_request *req, int err) pos++;if (digest_info) { +if (digest_info->size > dst_len - pos) + goto done;if (crypto_memneq (out_buf + pos, digest_info->data, digest_info->size)) goto done;
@@ -494,7 +496,7 @@ static int pkcs1pad_verify_complete(struct akcipher_request *req, int err)sg_nents_for_len (req->src, req->src_len + req->dst_len), req_ctx->out_buf + ctx->key_size, - req->dst_len, ctx->key_size); + req->dst_len, req->src_len);/* Do the actual verification step. */ if (memcmp (req_ctx->out_buf + ctx->key_size, out_buf + pos, req->dst_len) !=0 )
@@ -537,7 +539,7 @@ static int pkcs1pad_verify(struct akcipher_request *req)if (WARN_ON (req->dst) ||WARN_ON (!req->dst_len) || - !ctx->key_size || req->src_len < ctx->key_size) + !ctx->key_size || req->src_len != ctx->key_size)return -EINVAL ; req_ctx->out_buf =kmalloc (ctx->key_size + req->dst_len,GFP_KERNEL );
drivers/acpi/acpica/nswalk.c +3 -0
@@ -169,6 +169,9 @@ acpi_ns_walk_namespace(acpi_object_type type,if (start_node ==ACPI_ROOT_OBJECT ) { start_node = acpi_gbl_root_node; +if (!start_node) { +return_ACPI_STATUS (AE_NO_NAMESPACE ); + } }/* Null child means "get first node" */
drivers/acpi/apei/bert.c +7 -3
@@ -29,6 +29,7 @@#undef pr_fmt#define pr_fmt (fmt) "BERT: " fmt +#define ACPI_BERT_PRINT_MAX_LEN 1024static int bert_disable;
@@ -58,8 +59,11 @@ static void __init bert_print_all(struct acpi_bert_region *region, }pr_info_once ("Error records from previous boot:\n" ); - - cper_estatus_print(KERN_INFO HW_ERR, estatus); +if (region_len <ACPI_BERT_PRINT_MAX_LEN ) + cper_estatus_print(KERN_INFO HW_ERR, estatus); +else +pr_info_once ("Max print length exceeded, table data is available at:\n" +"/sys/firmware/acpi/tables/data/BERT" );/* * Because the boot error source is "one-time polled" type,
@@ -77,7 +81,7 @@ static int __init setup_bert_disable(char *str) { bert_disable =1 ; -return 0 ; +return 1 ; }__setup ("bert_disable" , setup_bert_disable);
drivers/acpi/apei/erst.c +1 -1
@@ -891,7 +891,7 @@ EXPORT_SYMBOL_GPL(erst_clear);static int __init setup_erst_disable (char *str) { erst_disable =1 ; -return 0 ; +return 1 ; }__setup ("erst_disable" , setup_erst_disable);
drivers/acpi/apei/hest.c +1 -1
@@ -219,7 +219,7 @@ static int __init hest_ghes_dev_register(unsigned int ghes_count)static int __init setup_hest_disable (char *str) { hest_disable =HEST_DISABLED ; -return 0 ; +return 1 ; }__setup ("hest_disable" , setup_hest_disable);
drivers/acpi/cppc_acpi.c +5 -0
@@ -738,6 +738,11 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr) cpc_obj = &out_obj->package.elements[0 ];if (cpc_obj->type ==ACPI_TYPE_INTEGER ) { num_ent = cpc_obj->integer.value; +if (num_ent <=1 ) { +pr_debug ("Unexpected _CPC NumEntries value (%d) for CPU:%d\n" , + num_ent, pr->id); + goto out_free; + } }else {pr_debug ("Unexpected entry type(%d) for NumEntries\n" , cpc_obj->type);
drivers/acpi/processor_idle.c +10 -5
@@ -1201,6 +1201,11 @@ static int flatten_lpi_states(struct acpi_processor *pr,return 0 ; } +int __weak acpi_processor_ffh_lpi_probe (unsigned int cpu) +{ +return -EOPNOTSUPP ; +} +static int acpi_processor_get_lpi_info (struct acpi_processor *pr) {int ret, i;
@@ -1209,6 +1214,11 @@ static int acpi_processor_get_lpi_info(struct acpi_processor *pr)struct acpi_device *d =NULL ;struct acpi_lpi_states_array info[2 ], *tmp, *prev, *curr; +/* make sure our architecture has support */ + ret =acpi_processor_ffh_lpi_probe (pr->id); +if (ret == -EOPNOTSUPP ) +return ret; +if (!osc_pc_lpi_support_confirmed)return -EOPNOTSUPP ;
@@ -1260,11 +1270,6 @@ static int acpi_processor_get_lpi_info(struct acpi_processor *pr)return 0 ; } -int __weak acpi_processor_ffh_lpi_probe (unsigned int cpu) -{ -return -ENODEV ; -} -int __weak acpi_processor_ffh_lpi_enter (struct acpi_lpi_state *lpi) {return -ENODEV ;
drivers/acpi/property.c +1 -1
@@ -692,7 +692,7 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode,*/ if (obj->type ==ACPI_TYPE_LOCAL_REFERENCE ) {if (index) -return -EINVAL ; +return -ENOENT ; ret =acpi_bus_get_device (obj->reference.handle, &device);if (ret)
drivers/ata/sata_dwc_460ex.c +5 -1
@@ -145,7 +145,11 @@ struct sata_dwc_device {#endif }; -#define SATA_DWC_QCMD_MAX 32 +/* +* Allow one extra special slot for commands and DMA management +* to account for libata internal commands. +*/ +#define SATA_DWC_QCMD_MAX (ATA_MAX_QUEUE + 1)struct sata_dwc_device_port {struct sata_dwc_device *hsdev;
drivers/base/dd.c +1 -1
@@ -747,7 +747,7 @@ static int __init save_async_options(char *buf) "Too long list of driver names for 'driver_async_probe'!\n");strlcpy (async_probe_drv_names, buf,ASYNC_DRV_NAMES_MAX_LEN ); -return 0 ; +return 1 ; }__setup ("driver_async_probe=" , save_async_options);
drivers/base/power/main.c +4 -2
@@ -2121,7 +2121,9 @@ static bool pm_ops_is_empty(const struct dev_pm_ops *ops)void device_pm_check_callbacks (struct device *dev) { -spin_lock_irq (&dev->power.lock); +unsigned long flags; + +spin_lock_irqsave (&dev->power.lock, flags); dev->power.no_pm_callbacks = (!dev->bus || (pm_ops_is_empty (dev->bus->pm) && !dev->bus->suspend && !dev->bus->resume)) &&
@@ -2130,7 +2132,7 @@ void device_pm_check_callbacks(struct device *dev) (!dev->pm_domain ||pm_ops_is_empty (&dev->pm_domain->ops)) && (!dev->driver || (pm_ops_is_empty (dev->driver->pm) && !dev->driver->suspend && !dev->driver->resume)); -spin_unlock_irq (&dev->power.lock); +spin_unlock_irqrestore (&dev->power.lock, flags); }bool dev_pm_smart_suspend_and_suspended (struct device *dev)
drivers/block/drbd/drbd_int.h +4 -4
@@ -1673,22 +1673,22 @@ struct sib_info { };void drbd_bcast_event (struct drbd_device *device,const struct sib_info *sib); -extern void notify_resource_state (struct sk_buff *, +extern int notify_resource_state (struct sk_buff *,unsigned int ,struct drbd_resource *,struct resource_info *,enum drbd_notification_type ); -extern void notify_device_state (struct sk_buff *, +extern int notify_device_state (struct sk_buff *,unsigned int ,struct drbd_device *,struct device_info *,enum drbd_notification_type ); -extern void notify_connection_state (struct sk_buff *, +extern int notify_connection_state (struct sk_buff *,unsigned int ,struct drbd_connection *,struct connection_info *,enum drbd_notification_type ); -extern void notify_peer_device_state(struct sk_buff *, +extern int notify_peer_device_state(struct sk_buff *, unsigned int, struct drbd_peer_device *, struct peer_device_info *,
drivers/block/drbd/drbd_nl.c +25 -16
156 lines not on this page · raw message
drivers/block/drbd/drbd_req.c +2 -1
@@ -195,7 +195,8 @@ void start_new_tl_epoch(struct drbd_connection *connection)void complete_master_bio (struct drbd_device *device,struct bio_and_error *m) { - m->bio->bi_status =errno_to_blk_status (m->error); +if (unlikely (m->error)) + m->bio->bi_status =errno_to_blk_status (m->error);bio_endio (m->bio);dec_ap_bio (device); }
drivers/block/drbd/drbd_state.c +9 -9
@@ -1537,7 +1537,7 @@ int drbd_bitmap_io_from_worker(struct drbd_device *device,return rv; } -void notify_resource_state_change (struct sk_buff *skb, +int notify_resource_state_change (struct sk_buff *skb,unsigned int seq,struct drbd_resource_state_change *resource_state_change,enum drbd_notification_type type)
@@ -1550,10 +1550,10 @@ void notify_resource_state_change(struct sk_buff *skb, .res_susp_fen = resource_state_change->susp_fen[NEW], }; -notify_resource_state (skb, seq, resource, &resource_info, type); +return notify_resource_state (skb, seq, resource, &resource_info, type); } -void notify_connection_state_change (struct sk_buff *skb, +int notify_connection_state_change (struct sk_buff *skb,unsigned int seq,struct drbd_connection_state_change *connection_state_change,enum drbd_notification_type type)
@@ -1564,10 +1564,10 @@ void notify_connection_state_change(struct sk_buff *skb, .conn_role = connection_state_change->peer_role[NEW], }; -notify_connection_state (skb, seq, connection, &connection_info, type); +return notify_connection_state (skb, seq, connection, &connection_info, type); } -void notify_device_state_change (struct sk_buff *skb, +int notify_device_state_change (struct sk_buff *skb,unsigned int seq,struct drbd_device_state_change *device_state_change,enum drbd_notification_type type)
@@ -1577,10 +1577,10 @@ void notify_device_state_change(struct sk_buff *skb, .dev_disk_state = device_state_change->disk_state[NEW], }; -notify_device_state (skb, seq, device, &device_info, type); +return notify_device_state (skb, seq, device, &device_info, type); } -void notify_peer_device_state_change (struct sk_buff *skb, +int notify_peer_device_state_change (struct sk_buff *skb,unsigned int seq,struct drbd_peer_device_state_change *p,enum drbd_notification_type type)
@@ -1594,7 +1594,7 @@ void notify_peer_device_state_change(struct sk_buff *skb, .peer_resync_susp_dependency = p->resync_susp_dependency[NEW], }; -notify_peer_device_state (skb, seq, peer_device, &peer_device_info, type); +return notify_peer_device_state (skb, seq, peer_device, &peer_device_info, type); }static void broadcast_state_change (struct drbd_state_change *state_change)
@@ -1602,7 +1602,7 @@ static void broadcast_state_change(struct drbd_state_change *state_change)struct drbd_resource_state_change *resource_state_change = &state_change->resource[0 ];bool resource_state_has_changed;unsigned int n_device, n_connection, n_peer_device, n_peer_devices; -void (*last_func)(struct sk_buff *,unsigned int ,void *, +int (*last_func)(struct sk_buff *,unsigned int ,void *,enum drbd_notification_type ) =NULL ;void *uninitialized_var (last_arg );
drivers/block/drbd/drbd_state_change.h +4 -4
@@ -44,19 +44,19 @@ extern struct drbd_state_change *remember_old_state(struct drbd_resource *, gfp_extern void copy_old_to_new_state_change (struct drbd_state_change *);extern void forget_state_change (struct drbd_state_change *); -extern void notify_resource_state_change (struct sk_buff *, +extern int notify_resource_state_change (struct sk_buff *,unsigned int ,struct drbd_resource_state_change *,enum drbd_notification_type type); -extern void notify_connection_state_change (struct sk_buff *, +extern int notify_connection_state_change (struct sk_buff *,unsigned int ,struct drbd_connection_state_change *,enum drbd_notification_type type); -extern void notify_device_state_change (struct sk_buff *, +extern int notify_device_state_change (struct sk_buff *,unsigned int ,struct drbd_device_state_change *,enum drbd_notification_type type); -extern void notify_peer_device_state_change (struct sk_buff *, +extern int notify_peer_device_state_change (struct sk_buff *,unsigned int ,struct drbd_peer_device_state_change *,enum drbd_notification_type type);
drivers/block/loop.c +5 -5
@@ -794,33 +794,33 @@ static ssize_t loop_attr_backing_file_show(struct loop_device *lo, char *buf)static ssize_t loop_attr_offset_show (struct loop_device *lo,char *buf) { -return sprintf (buf,"%llu\n" , (unsigned long long )lo->lo_offset); +return sysfs_emit (buf,"%llu\n" , (unsigned long long )lo->lo_offset); }static ssize_t loop_attr_sizelimit_show (struct loop_device *lo,char *buf) { -return sprintf (buf,"%llu\n" , (unsigned long long )lo->lo_sizelimit); +return sysfs_emit (buf,"%llu\n" , (unsigned long long )lo->lo_sizelimit); }static ssize_t loop_attr_autoclear_show (struct loop_device *lo,char *buf) {int autoclear = (lo->lo_flags &LO_FLAGS_AUTOCLEAR ); -return sprintf (buf,"%s\n" , autoclear ?"1" :"0" ); +return sysfs_emit (buf,"%s\n" , autoclear ?"1" :"0" ); }static ssize_t loop_attr_partscan_show (struct loop_device *lo,char *buf) {int partscan = (lo->lo_flags &LO_FLAGS_PARTSCAN ); -return sprintf (buf,"%s\n" , partscan ?"1" :"0" ); +return sysfs_emit (buf,"%s\n" , partscan ?"1" :"0" ); }static ssize_t loop_attr_dio_show (struct loop_device *lo,char *buf) {int dio = (lo->lo_flags &LO_FLAGS_DIRECT_IO ); -return sprintf (buf,"%s\n" , dio ?"1" :"0" ); +return sysfs_emit (buf,"%s\n" , dio ?"1" :"0" ); }LOOP_ATTR_RO (backing_file);
drivers/block/virtio_blk.c +10 -2
@@ -936,9 +936,17 @@ static int virtblk_probe(struct virtio_device *vdev) err =virtio_cread_feature (vdev,VIRTIO_BLK_F_BLK_SIZE , struct virtio_blk_config, blk_size, &blk_size); -if (!err) +if (!err) { + err =blk_validate_block_size (blk_size); +if (err) { +dev_err (&vdev->dev, +"virtio_blk: invalid block size: 0x%x\n" , + blk_size); + goto out_free_tags; + } +blk_queue_logical_block_size (q, blk_size); -else + }else blk_size =queue_logical_block_size (q);/* Use topology information if available */
drivers/bluetooth/btmtksdio.c +2 -2
@@ -980,6 +980,8 @@ static int btmtksdio_probe(struct sdio_func *func, hdev->manufacturer =70 ;set_bit (HCI_QUIRK_NON_PERSISTENT_SETUP , &hdev->quirks); +sdio_set_drvdata (func, bdev); + err =hci_register_dev (hdev);if (err <0 ) {dev_err (&func->dev,"Can't register HCI device\n" );
@@ -987,8 +989,6 @@ static int btmtksdio_probe(struct sdio_func *func,return err; } -sdio_set_drvdata (func, bdev); -/* pm_runtime_enable would be done after the firmware is being * downloaded because the core layer probably already enables * runtime PM for this func such as the case host->caps &
drivers/bluetooth/hci_serdev.c +2 -1
@@ -279,6 +279,8 @@ int hci_uart_register_device(struct hci_uart *hu,if (err)return err; +percpu_init_rwsem (&hu->proto_lock); + err = p->open (hu);if (err) goto err_open;
@@ -301,7 +303,6 @@ int hci_uart_register_device(struct hci_uart *hu,INIT_WORK (&hu->init_ready, hci_uart_init_work);INIT_WORK (&hu->write_work, hci_uart_write_work); -percpu_init_rwsem (&hu->proto_lock);/* Only when vendor specific setup callback is provided, consider * the manufacturer information valid. This avoids filling in the
drivers/char/hw_random/atmel-rng.c +1 -0
@@ -96,6 +96,7 @@ static int atmel_trng_probe(struct platform_device *pdev) err_register:clk_disable_unprepare (trng->clk); +atmel_trng_disable (trng);return ret; }
drivers/char/tpm/tpm-chip.c +8 -38
101 lines not on this page · raw message
drivers/char/tpm/tpm.h +2 -0
@@ -466,6 +466,8 @@ int tpm2_prepare_space(struct tpm_chip *chip, struct tpm_space *space, u8 *cmd, size_t cmdsiz);int tpm2_commit_space (struct tpm_chip *chip,struct tpm_space *space,void *buf,size_t *bufsiz); +int tpm_devs_add (struct tpm_chip *chip); +void tpm_devs_remove (struct tpm_chip *chip);void tpm_bios_log_setup (struct tpm_chip *chip);void tpm_bios_log_teardown (struct tpm_chip *chip);
drivers/char/tpm/tpm2-space.c +65 -0
68 lines not on this page · raw message
drivers/char/virtio_console.c +11 -4
@@ -1961,6 +1961,13 @@ static void virtcons_remove(struct virtio_device *vdev)list_del (&portdev->list);spin_unlock_irq (&pdrvdata_lock); +/* Device is going away, exit any polling for buffers */ +virtio_break_device (vdev); +if (use_multiport (portdev)) +flush_work (&portdev->control_work); +else +flush_work (&portdev->config_work); +/* Disable interrupts for vqs */ vdev->config->reset (vdev);/* Finish up work that's lined up */
@@ -2234,7 +2241,7 @@ static struct virtio_driver virtio_rproc_serial = { .remove = virtcons_remove, }; -static int __init init (void ) +static int __init virtio_console_init (void ) {int err;
@@ -2271,7 +2278,7 @@ static int __init init(void)return err; } -static void __exit fini(void) +static void __exit virtio_console_fini(void) {reclaim_dma_bufs ();
@@ -2281,8 +2288,8 @@ static void __exit fini(void)class_destroy (pdrvdata.class);debugfs_remove_recursive (pdrvdata.debugfs_dir); } -module_init (init); -module_exit (fini); +module_init (virtio_console_init); +module_exit (virtio_console_fini);MODULE_DESCRIPTION ("Virtio console driver" );MODULE_LICENSE ("GPL" );
drivers/clk/actions/owl-s700.c +1 -0
@@ -162,6 +162,7 @@ static struct clk_div_table hdmia_div_table[] = {static struct clk_div_table rmii_div_table[] = { {0 ,4 }, {1 ,10 }, + {0 ,0 } };/* divider clocks */
drivers/clk/actions/owl-s900.c +1 -1
@@ -140,7 +140,7 @@ static struct clk_div_table rmii_ref_div_table[] = {static struct clk_div_table usb3_mac_div_table[] = { {1 ,2 }, {2 ,3 }, {3 ,4 }, - {0 ,8 }, + {0 ,0 } };static struct clk_div_table i2s_div_table[] = {
drivers/clk/clk-clps711x.c +2 -0
@@ -28,11 +28,13 @@ static const struct clk_div_table spi_div_table[] = { { .val = 1, .div = 8, }, { .val = 2, .div = 2, }, { .val = 3, .div = 1, }, + {/* sentinel */ } };static const struct clk_div_table timer_div_table[] = { { .val =0 , .div =256 , }, { .val =1 , .div =1 , }, + {/* sentinel */ } }; struct clps711x_clk {
drivers/clk/clk-si5341.c +9 -7
@@ -638,6 +638,15 @@ static unsigned long si5341_output_clk_recalc_rate(struct clk_hw *hw,u32 r_divider;u8 r[3 ]; + err =regmap_read (output->data->regmap, +SI5341_OUT_CONFIG (output), &val); +if (err <0 ) +return err; + +/* If SI5341_OUT_CFG_RDIV_FORCE2 is set, r_divider is 2 */ +if (val &SI5341_OUT_CFG_RDIV_FORCE2 ) +return parent_rate /2 ; + err =regmap_bulk_read (output->data->regmap,SI5341_OUT_R_REG (output), r,3 );if (err <0 )
@@ -654,13 +663,6 @@ static unsigned long si5341_output_clk_recalc_rate(struct clk_hw *hw, r_divider +=1 ; r_divider <<=1 ; - err =regmap_read (output->data->regmap, -SI5341_OUT_CONFIG (output), &val); -if (err <0 ) -return err; - -if (val &SI5341_OUT_CFG_RDIV_FORCE2 ) - r_divider =2 ;return parent_rate / r_divider; }
drivers/clk/clk.c +37 -0
@@ -637,6 +637,24 @@ static void clk_core_get_boundaries(struct clk_core *core, *max_rate =min (*max_rate, clk_user->max_rate); } +static bool clk_core_check_boundaries (struct clk_core *core, +unsigned long min_rate, +unsigned long max_rate) +{ +struct clk *user; + +lockdep_assert_held (&prepare_lock); + +if (min_rate > core->max_rate || max_rate < core->min_rate) +return false; + +hlist_for_each_entry (user, &core->clks, clks_node) +if (min_rate > user->max_rate || max_rate < user->min_rate) +return false; + +return true; +} +void clk_hw_set_rate_range (struct clk_hw *hw,unsigned long min_rate,unsigned long max_rate) {
@@ -2306,6 +2324,11 @@ int clk_set_rate_range(struct clk *clk, unsigned long min, unsigned long max) clk->min_rate = min; clk->max_rate = max; +if (!clk_core_check_boundaries (clk->core, min, max)) { + ret = -EINVAL ; + goto out; + } + rate =clk_core_get_rate_nolock (clk->core);if (rate < min || rate > max) {/*
@@ -2334,6 +2357,7 @@ int clk_set_rate_range(struct clk *clk, unsigned long min, unsigned long max) } } +out:if (clk->exclusive_count)clk_core_rate_protect (clk->core);
@@ -3278,6 +3302,19 @@ static void clk_core_reparent_orphans_nolock(void)__clk_set_parent_after (orphan, parent,NULL );__clk_recalc_accuracies (orphan);__clk_recalc_rates (orphan,0 ); + +/* +* __clk_init_parent() will set the initial req_rate to +* 0 if the clock doesn't have clk_ops::recalc_rate and +* is an orphan when it's registered. +* +* 'req_rate' is used by clk_set_rate_range() and +* clk_put() to trigger a clk_set_rate() call whenever +* the boundaries are modified. Let's make sure +* 'req_rate' is set to something non-zero so that +* clk_set_rate_range() doesn't drop the frequency. +*/ + orphan->req_rate = orphan->rate; } } }
drivers/clk/imx/clk-imx7d.c +0 -1
@@ -859,7 +859,6 @@ static void __init imx7d_clocks_init(struct device_node *ccm_node) hws[IMX7D_WDOG4_ROOT_CLK ] =imx_clk_hw_gate4 ("wdog4_root_clk" ,"wdog_post_div" , base +0x49f0 ,0 ); hws[IMX7D_KPP_ROOT_CLK ] =imx_clk_hw_gate4 ("kpp_root_clk" ,"ipg_root_clk" , base +0x4aa0 ,0 ); hws[IMX7D_CSI_MCLK_ROOT_CLK ] =imx_clk_hw_gate4 ("csi_mclk_root_clk" ,"csi_mclk_post_div" , base +0x4490 ,0 ); - hws[IMX7D_AUDIO_MCLK_ROOT_CLK ] =imx_clk_hw_gate4 ("audio_mclk_root_clk" ,"audio_mclk_post_div" , base +0x4790 ,0 ); hws[IMX7D_WRCLK_ROOT_CLK ] =imx_clk_hw_gate4 ("wrclk_root_clk" ,"wrclk_post_div" , base +0x47a0 ,0 ); hws[IMX7D_USB_CTRL_CLK ] =imx_clk_hw_gate4 ("usb_ctrl_clk" ,"ahb_root_clk" , base +0x4680 ,0 ); hws[IMX7D_USB_PHY1_CLK ] =imx_clk_hw_gate4 ("usb_phy1_clk" ,"pll_usb1_main_clk" , base +0x46a0 ,0 );
drivers/clk/loongson1/clk-loongson1c.c +1 -0
@@ -37,6 +37,7 @@ static const struct clk_div_table ahb_div_table[] = { [1] = { .val = 1, .div = 4 }, [2] = { .val = 2, .div = 3 }, [3] = { .val = 3, .div = 3 }, + [4] = { /* sentinel */ } };void __init ls1x_clk_init (void )
drivers/clk/qcom/clk-rcg2.c +12 -2
@@ -263,7 +263,7 @@ static int clk_rcg2_determine_floor_rate(struct clk_hw *hw,static int __clk_rcg2_configure (struct clk_rcg2 *rcg,const struct freq_tbl *f) { -u32 cfg, mask; +u32 cfg, mask, d_val, not2d_val, n_minus_m;struct clk_hw *hw = &rcg->clkr.hw;int ret, index =qcom_find_src_index (hw, rcg->parent_map, f->src);
@@ -282,8 +282,17 @@ static int __clk_rcg2_configure(struct clk_rcg2 *rcg, const struct freq_tbl *f)if (ret)return ret; +/* Calculate 2d value */ + d_val = f->n; + + n_minus_m = f->n - f->m; + n_minus_m *=2 ; + + d_val =clamp_t (u32, d_val, f->m, n_minus_m); + not2d_val = ~d_val & mask; + ret =regmap_update_bits (rcg->clkr.regmap, -RCG_D_OFFSET (rcg), mask, ~f->n); +RCG_D_OFFSET (rcg), mask, not2d_val);if (ret)return ret; }
@@ -638,6 +647,7 @@ static const struct frac_entry frac_table_pixel[] = { { 2, 9 }, { 4, 9 }, { 1, 1 }, + { 2, 3 }, { } };
drivers/clk/qcom/gcc-ipq8074.c +1 -1
@@ -1074,7 +1074,7 @@ static struct clk_rcg2 sdcc1_apps_clk_src = { .name = "sdcc1_apps_clk_src", .parent_names = gcc_xo_gpll0_gpll2_gpll0_out_main_div2, .num_parents = 4, - .ops = &clk_rcg2_ops, + .ops = &clk_rcg2_floor_ops, }, };
drivers/clk/qcom/gcc-msm8994.c +1 -0
@@ -107,6 +107,7 @@ static struct clk_alpha_pll gpll4_early = {static struct clk_alpha_pll_postdiv gpll4 = { .offset =0x1dc0 , + .width =4 , .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT ], .clkr.hw.init = &(struct clk_init_data ) {
drivers/clk/tegra/clk-emc.c +1 -0
@@ -191,6 +191,7 @@ static struct tegra_emc *emc_ensure_emc_driver(struct tegra_clk_emc *tegra) tegra->emc =platform_get_drvdata (pdev);if (!tegra->emc) { +put_device (&pdev->dev);pr_err ("%s: cannot find EMC driver\n" , __func__);return NULL ; }
drivers/clk/uniphier/clk-uniphier-fixed-rate.c +1 -0
@@ -24,6 +24,7 @@ struct clk_hw *uniphier_clk_register_fixed_rate(struct device *dev, init.name = name; init.ops = &clk_fixed_rate_ops; + init.flags =0 ; init.parent_names =NULL ; init.num_parents =0 ;
drivers/clocksource/acpi_pm.c +4 -2
@@ -229,8 +229,10 @@ static int __init parse_pmtmr(char *arg)int ret; ret =kstrtouint (arg,16 , &base); -if (ret) -return ret; +if (ret) { +pr_warn ("PMTMR: invalid 'pmtmr=' value: '%s'\n" , arg); +return 1 ; + }pr_info ("PMTMR IOPort override: 0x%04x -> 0x%04x\n" , pmtmr_ioport, base);
drivers/clocksource/timer-of.c +3 -3
@@ -157,9 +157,9 @@ static __init int timer_of_base_init(struct device_node *np, of_base->base = of_base->name ?of_io_request_and_map (np, of_base->index, of_base->name) :of_iomap (np, of_base->index); -if (IS_ERR (of_base->base)) { -pr_err ("Failed to iomap (%s)\n" , of_base->name); -return PTR_ERR (of_base->base); +if (IS_ERR_OR_NULL (of_base->base)) { +pr_err ("Failed to iomap (%s:%s)\n" , np->name, of_base->name); +return of_base->base ?PTR_ERR (of_base->base) : -ENOMEM ; }return 0 ;
drivers/crypto/ccp/ccp-dmaengine.c +16 -0
@@ -633,6 +633,20 @@ static int ccp_terminate_all(struct dma_chan *dma_chan)return 0 ; } +static void ccp_dma_release (struct ccp_device *ccp) +{ +struct ccp_dma_chan *chan; +struct dma_chan *dma_chan; +unsigned int i; + +for (i =0 ; i < ccp->cmd_q_count; i++) { + chan = ccp->ccp_dma_chan + i; + dma_chan = &chan->dma_chan; +tasklet_kill (&chan->cleanup_tasklet); +list_del_rcu (&dma_chan->device_node); + } +} +int ccp_dmaengine_register (struct ccp_device *ccp) {struct ccp_dma_chan *chan;
@@ -737,6 +751,7 @@ int ccp_dmaengine_register(struct ccp_device *ccp)return 0 ; err_reg: +ccp_dma_release (ccp);kmem_cache_destroy (ccp->dma_desc_cache); err_cache:
@@ -753,6 +768,7 @@ void ccp_dmaengine_unregister(struct ccp_device *ccp)return ;dma_async_device_unregister (dma_dev); +ccp_dma_release (ccp);kmem_cache_destroy (ccp->dma_desc_cache);kmem_cache_destroy (ccp->dma_cmd_cache);
drivers/crypto/ccree/cc_buffer_mgr.c +7 -0
@@ -295,6 +295,13 @@ static int cc_map_sg(struct device *dev, struct scatterlist *sg, {int ret =0 ; +if (!nbytes) { + *mapped_nents =0 ; + *lbytes =0 ; + *nents =0 ; +return 0 ; + } + *nents =cc_get_sgl_nents (dev, sg, nbytes, lbytes);if (*nents > max_sg_nents) { *nents =0 ;
drivers/crypto/mxs-dcp.c +1 -1
@@ -329,7 +329,7 @@ static int mxs_dcp_aes_block_crypt(struct crypto_async_request *arq)memset (key +AES_KEYSIZE_128 ,0 ,AES_KEYSIZE_128 ); } -for_each_sg (req->src, src,sg_nents (src), i) { +for_each_sg (req->src, src,sg_nents (req->src), i) { src_buf =sg_virt (src); len =sg_dma_len (src); tlen += len;
drivers/crypto/vmx/Kconfig +4 -0
@@ -2,7 +2,11 @@ config CRYPTO_DEV_VMX_ENCRYPT tristate "Encryption acceleration support on P8 CPU" depends on CRYPTO_DEV_VMX + select CRYPTO_AES + select CRYPTO_CBC + select CRYPTO_CTR select CRYPTO_GHASH + select CRYPTO_XTS default m help Support for VMX cryptographic acceleration instructions on Power8 CPU.
drivers/dax/super.c +1 -0
@@ -691,6 +691,7 @@ static int dax_fs_init(void)static void dax_fs_exit (void ) {kern_unmount (dax_mnt); +rcu_barrier ();kmem_cache_destroy (dax_cache); }
drivers/dma-buf/udmabuf.c +4 -0
@@ -145,6 +145,10 @@ static long udmabuf_create(const struct udmabuf_create_list *head,if (ubuf->pagecount > pglimit) goto err; } + +if (!ubuf->pagecount) + goto err; + ubuf->pages =kmalloc_array (ubuf->pagecount,sizeof (*ubuf->pages),GFP_KERNEL );if (!ubuf->pages) {
drivers/dma/sh/shdma-base.c +1 -3
@@ -115,10 +115,8 @@ static dma_cookie_t shdma_tx_submit(struct dma_async_tx_descriptor *tx) ret =pm_runtime_get (schan->dev);spin_unlock_irq (&schan->chan_lock); -if (ret <0 ) { +if (ret <0 )dev_err (schan->dev,"%s(): GET = %d\n" , __func__, ret); -pm_runtime_put (schan->dev); - }pm_runtime_barrier (schan->dev);
drivers/firmware/google/Kconfig +1 -1
@@ -21,7 +21,7 @@ config GOOGLE_SMI config GOOGLE_COREBOOT_TABLE tristate "Coreboot Table Access" - depends on ACPI || OF + depends on HAS_IOMEM && (ACPI || OF) help This option enables the coreboot_table module, which provides other firmware modules access to the coreboot table. The coreboot table
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c +1 -1
@@ -165,7 +165,7 @@ static const struct kfd2kgd_calls kfd2kgd = { .get_tile_config = amdgpu_amdkfd_get_tile_config, }; -struct kfd2kgd_calls *amdgpu_amdkfd_gfx_10_0_get_functions () +struct kfd2kgd_calls *amdgpu_amdkfd_gfx_10_0_get_functions (void ) {return (struct kfd2kgd_calls *)&kfd2kgd; }
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +1 -0
@@ -1542,6 +1542,7 @@ int amdgpu_cs_fence_to_handle_ioctl(struct drm_device *dev, void *data,return 0 ;default : +dma_fence_put (fence);return -EINVAL ; } }
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +1 -1
@@ -263,7 +263,7 @@ static int amdgpu_gfx_kiq_acquire(struct amdgpu_device *adev,* adev->gfx.mec.num_pipe_per_mec * adev->gfx.mec.num_queue_per_pipe; -while (queue_bit-- >= 0) { +while (--queue_bit >= 0) { if (test_bit(queue_bit, adev->gfx.mec.queue_bitmap)) continue;
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +2 -1
@@ -1305,7 +1305,8 @@ void amdgpu_bo_release_notify(struct ttm_buffer_object *bo) !(abo->flags & AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE)) return; -dma_resv_lock (bo->base.resv,NULL ); +if (WARN_ON_ONCE (!dma_resv_trylock (bo->base.resv))) +return ; r =amdgpu_fill_buffer (abo,AMDGPU_POISON , bo->base.resv, &fence);if (!WARN_ON (r)) {
drivers/gpu/drm/amd/amdkfd/kfd_crat.c +1 -1
@@ -758,7 +758,7 @@ int kfd_create_crat_image_acpi(void **crat_image, size_t *size)/* Fetch the CRAT table from ACPI */ status =acpi_get_table (CRAT_SIGNATURE ,0 , &crat_table);if (status ==AE_NOT_FOUND ) { -pr_warn ("CRAT table not found\n" ); +pr_info ("CRAT table not found\n" );return -ENODATA ; }else if (ACPI_FAILURE (status)) {const char *err =acpi_format_exception (status);
drivers/gpu/drm/amd/amdkfd/kfd_module.c +1 -1
@@ -82,7 +82,7 @@ static void kfd_exit(void)kfd_chardev_exit (); } -int kgd2kfd_init () +int kgd2kfd_init (void ) {return kfd_init (); }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +8 -2
@@ -5013,6 +5013,9 @@ static void amdgpu_dm_connector_add_common_modes(struct drm_encoder *encoder, mode =amdgpu_dm_create_common_mode (encoder, common_modes[i].name, common_modes[i].w, common_modes[i].h); +if (!mode) +continue ; +drm_mode_probed_add (connector, mode); amdgpu_dm_connector->num_modes++; }
@@ -7265,10 +7268,13 @@ dm_determine_update_type_for_commit(struct amdgpu_display_manager *dm,static int add_affected_mst_dsc_crtcs (struct drm_atomic_state *state,struct drm_crtc *crtc) {struct drm_connector *connector; -struct drm_connector_state *conn_state; +struct drm_connector_state *conn_state, *old_conn_state;struct amdgpu_dm_connector *aconnector =NULL ;int i; -for_each_new_connector_in_state (state, connector, conn_state, i) { +for_each_oldnew_connector_in_state (state, connector, old_conn_state, conn_state, i) { +if (!conn_state->crtc) + conn_state = old_conn_state; +if (conn_state->crtc != crtc)continue ;
drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c +0 -14
@@ -227,14 +227,6 @@ static const struct irq_source_info_funcs vupdate_no_lock_irq_info_funcs = { .funcs = &pflip_irq_info_funcs\ } -#define vupdate_int_entry (reg_num)\ - [DC_IRQ_SOURCE_VUPDATE1 + reg_num] = {\ - IRQ_REG_ENTRY(OTG, reg_num,\ - OTG_GLOBAL_SYNC_STATUS, VUPDATE_INT_EN,\ - OTG_GLOBAL_SYNC_STATUS, VUPDATE_EVENT_CLEAR),\ - .funcs = &vblank_irq_info_funcs\ - } -/* vupdate_no_lock_int_entry maps to DC_IRQ_SOURCE_VUPDATEx, to match semantic * of DCE's DC_IRQ_SOURCE_VUPDATEx. */
@@ -348,12 +340,6 @@ irq_source_info_dcn21[DAL_IRQ_SOURCES_NUMBER] = { dc_underflow_int_entry(6), [DC_IRQ_SOURCE_DMCU_SCP] = dummy_irq_entry(), [DC_IRQ_SOURCE_VBIOS_SW ] =dummy_irq_entry (), -vupdate_int_entry (0 ), -vupdate_int_entry (1 ), -vupdate_int_entry (2 ), -vupdate_int_entry (3 ), -vupdate_int_entry (4 ), -vupdate_int_entry (5 ),vupdate_no_lock_int_entry (0 ),vupdate_no_lock_int_entry (1 ), vupdate_no_lock_int_entry(2),
drivers/gpu/drm/bridge/cdns-dsi.c +1 -0
@@ -1284,6 +1284,7 @@ static const struct of_device_id cdns_dsi_of_match[] = { { .compatible = "cdns,dsi" }, { }, }; +MODULE_DEVICE_TABLE (of, cdns_dsi_of_match);static struct platform_driver cdns_dsi_platform_driver = { .probe = cdns_dsi_drm_probe,
drivers/gpu/drm/bridge/sil-sii8620.c +1 -1
@@ -2118,7 +2118,7 @@ static void sii8620_init_rcp_input_dev(struct sii8620 *ctx)if (ret) {dev_err (ctx->dev,"Failed to register RC device\n" ); ctx->error = ret; -rc_free_device (ctx->rc_dev); +rc_free_device (rc_dev);return ; } ctx->rc_dev = rc_dev;
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c +1 -0
@@ -1057,6 +1057,7 @@ __dw_mipi_dsi_probe(struct platform_device *pdev, ret =mipi_dsi_host_register (&dsi->dsi_host);if (ret) {dev_err (dev,"Failed to register MIPI host: %d\n" , ret); +pm_runtime_disable (dev);dw_mipi_dsi_debugfs_remove (dsi);return ERR_PTR (ret); }
drivers/gpu/drm/drm_edid.c +2 -9
@@ -4380,7 +4380,8 @@ bool drm_detect_monitor_audio(struct edid *edid)if (!edid_ext) goto end; - has_audio = ((edid_ext[3 ] &EDID_BASIC_AUDIO ) !=0 ); + has_audio = (edid_ext[0 ] ==CEA_EXT && + (edid_ext[3 ] &EDID_BASIC_AUDIO ) !=0 );if (has_audio) {DRM_DEBUG_KMS ("Monitor has basic audio support\n" );
@@ -4533,16 +4534,8 @@ static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector, connector->name, dc_bpc); info->bpc = dc_bpc; -/* -* Deep color support mandates RGB444 support for all video -* modes and forbids YCRCB422 support for all video modes per -* HDMI 1.3 spec. -*/ - info->color_formats =DRM_COLOR_FORMAT_RGB444 ; -/* YCRCB444 is optional according to spec. */ if (hdmi[6 ] &DRM_EDID_HDMI_DC_Y444 ) { - info->color_formats |=DRM_COLOR_FORMAT_YCRCB444 ;DRM_DEBUG ("%s: HDMI sink does YCRCB444 in deep color.\n" , connector->name); }
drivers/gpu/drm/drm_panel_orientation_quirks.c +6 -0
@@ -166,6 +166,12 @@ static const struct dmi_system_id orientation_data[] = { DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "MicroPC"), }, .driver_data = (void *)&lcd720x1280_rightside_up, + }, { /* GPD Win Max */ + .matches = { +DMI_EXACT_MATCH (DMI_SYS_VENDOR ,"GPD" ), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "G1619-01"), + }, + .driver_data = (void *)&lcd800x1280_rightside_up, }, { /** GPD Pocket, note that the the DMI data is less generic then * it seems, devices with a board-vendor of "AMI Corporation"
drivers/gpu/drm/imx/parallel-display.c +3 -1
@@ -68,8 +68,10 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector) ret =of_get_drm_display_mode (np, &imxpd->mode, &imxpd->bus_flags,OF_USE_NATIVE_MODE );
Lines of this file are not shown. View the raw message.
drivers/hid/intel-ish-hid/ishtp-fw-loader.c +3 -26
Lines of this file are not shown. View the raw message.
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/coda/coda-common.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/usb/em28xx/em28xx-cards.c +5 -8
Lines of this file are not shown. View the raw message.
drivers/media/usb/stk1160/stk1160-core.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/usb/stk1160/stk1160-v4l.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/atmel/nand-controller.c +11 -3
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/dsa/microchip/ksz8795_spi.c +11 -0
Lines of this file are not shown. View the raw message.
drivers/net/dsa/microchip/ksz9477_spi.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_xsk.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qed/qed_sriov.c +27 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qed/qed_sriov.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qede/qede_fp.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h +5 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath5k/eeprom.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/htc_hst.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/carl9170/main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +19 -47
66 lines not on this page · raw message
drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/fw.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7603/main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7615/main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/parisc/dino.c +33 -8
41 lines not on this page · raw message
drivers/pinctrl/mediatek/pinctrl-mtk-common.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/pinctrl/mediatek/pinctrl-paris.c +4 -7
Lines of this file are not shown. View the raw message.
drivers/pinctrl/nomadik/pinctrl-nomadik.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c +92 -93
185 lines not on this page · raw message
drivers/pinctrl/samsung/pinctrl-samsung.c +23 -7
Lines of this file are not shown. View the raw message.
drivers/power/supply/wm8350_power.c +83 -14
97 lines not on this page · raw message
drivers/scsi/qla2xxx/qla_init.c +52 -14
66 lines not on this page · raw message
drivers/staging/media/hantro/hantro_h1_jpeg_enc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/media/hantro/hantro_h1_regs.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/thermal/intel/int340x_thermal/int3400_thermal.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/usb/storage/ene_ub6250.c +76 -79
155 lines not on this page · raw message
drivers/video/fbdev/core/fbcvt.c +21 -32
53 lines not on this page · raw message
drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/sm712fb.c +11 -35
46 lines not on this page · raw message
fs/nfs/direct.c +32 -16
48 lines not on this page · raw message
fs/ubifs/dir.c +28 -16
44 lines not on this page · raw message
kernel/auditsc.c +67 -20
87 lines not on this page · raw message
kernel/cgroup/cgroup.c +66 -27
93 lines not on this page · raw message
kernel/ptrace.c +32 -15
47 lines not on this page · raw message
mm/memory.c +32 -10
42 lines not on this page · raw message
net/netfilter/nf_conntrack_proto_tcp.c +13 -4
Lines of this file are not shown. View the raw message.
net/openvswitch/conntrack.c +59 -59
118 lines not on this page · raw message
net/sunrpc/xprtsock.c +39 -15
54 lines not on this page · raw message
scripts/gcc-plugins/stackleak_plugin.c +21 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/test_lirc_mode2.sh +4 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/test_lwt_ip_encap.sh +9 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/cgroup/cgroup_util.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/cgroup/test_core.c +167 -0
167 lines not on this page · raw message
tools/testing/selftests/net/test_vxlan_under_vrf.sh +4 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/x86/check_cc.sh +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.