Linux 4.19.198
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.19.198 kernel.
All users of the 4.19 kernel series must upgrade.
The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.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/ABI/testing/evm | 26 +- Documentation/admin-guide/kernel-parameters.txt | 6 Makefile | 2 arch/arm/boot/dts/am335x-cm-t335.dts | 2 arch/arm/boot/dts/am43x-epos-evm.dts | 4 arch/arm/boot/dts/bcm5301x.dtsi | 18 - arch/arm/boot/dts/exynos5422-odroidhc1.dts | 2 arch/arm/boot/dts/exynos5422-odroidxu4.dts | 2 arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi | 4 arch/arm/boot/dts/imx6q-dhcom-som.dtsi | 41 ++- arch/arm/boot/dts/r8a7779-marzen.dts | 2 arch/arm/boot/dts/r8a7779.dtsi | 1 arch/arm/boot/dts/sama5d4.dtsi | 2 arch/arm/kernel/perf_event_v7.c | 4 arch/arm/probes/kprobes/test-thumb.c | 10 arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 2 arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts | 2 arch/hexagon/kernel/vmlinux.lds.S | 7 arch/ia64/kernel/mca_drv.c | 2 arch/mips/boot/compressed/Makefile | 4 arch/mips/boot/compressed/decompress.c | 2 arch/mips/include/asm/hugetlb.h | 8 arch/mips/include/asm/mipsregs.h | 8 arch/mips/include/asm/pgalloc.h | 10 arch/mips/vdso/vdso.h | 2 arch/powerpc/boot/devtree.c | 59 ++-- arch/powerpc/boot/ns16550.c | 9 arch/powerpc/include/asm/barrier.h | 2 arch/powerpc/include/asm/ps3.h | 2 arch/powerpc/kernel/smp.c | 11 arch/powerpc/kernel/stacktrace.c | 27 +- arch/powerpc/platforms/ps3/mm.c | 12 arch/s390/Kconfig | 2 arch/s390/kernel/setup.c | 2 arch/um/drivers/chan_user.c | 3 arch/um/drivers/slip_user.c | 3 arch/x86/include/asm/fpu/internal.h | 19 - arch/x86/kernel/fpu/regset.c | 2 arch/x86/kvm/cpuid.c | 8 arch/x86/kvm/x86.c | 2 block/blk-wbt.c | 11 block/blk-wbt.h | 1 crypto/shash.c | 18 + drivers/acpi/Makefile | 5 drivers/acpi/acpi_amba.c | 1 drivers/acpi/acpi_video.c | 9 drivers/acpi/acpica/nsrepair2.c | 7 drivers/acpi/bus.c | 1 drivers/acpi/device_sysfs.c | 2 drivers/acpi/ec.c | 16 + drivers/acpi/processor_idle.c | 40 +++ drivers/ata/ahci_sunxi.c | 2 drivers/ata/pata_ep93xx.c | 2 drivers/ata/pata_octeon_cf.c | 5 drivers/ata/pata_rb532_cf.c | 6 drivers/ata/sata_highbank.c | 6 drivers/atm/iphase.c | 2 drivers/atm/nicstar.c | 26 +- drivers/block/virtio_blk.c | 2 drivers/bluetooth/btusb.c | 5 drivers/char/ipmi/ipmi_watchdog.c | 22 - drivers/char/pcmcia/cm4000_cs.c | 4 drivers/char/virtio_console.c | 4 drivers/clk/renesas/r8a77995-cpg-mssr.c | 1 drivers/clk/tegra/clk-pll.c | 6 drivers/clocksource/arm_arch_timer.c | 2 drivers/crypto/ccp/sp-pci.c | 6 drivers/crypto/ixp4xx_crypto.c | 2 drivers/crypto/nx/nx-842-pseries.c | 9 drivers/crypto/qat/qat_common/qat_hal.c | 6 drivers/crypto/qat/qat_common/qat_uclo.c | 1 drivers/crypto/ux500/hash/hash_core.c | 1 drivers/edac/ti_edac.c | 1 drivers/extcon/extcon-max8997.c | 1 drivers/extcon/extcon-sm5502.c | 1 drivers/firmware/qemu_fw_cfg.c | 8 drivers/fsi/fsi-core.c | 4 drivers/fsi/fsi-sbefifo.c | 10 drivers/fsi/fsi-scom.c | 16 - drivers/gpio/gpio-pca953x.c | 1 drivers/gpio/gpio-zynq.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c | 9 drivers/gpu/drm/amd/display/dc/irq_types.h | 2 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 2 drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c | 8 drivers/gpu/drm/mxsfb/Kconfig | 1 drivers/gpu/drm/qxl/qxl_dumb.c | 2 drivers/gpu/drm/radeon/radeon_display.c | 1 drivers/gpu/drm/rockchip/cdn-dp-core.c | 1 drivers/gpu/drm/virtio/virtgpu_kms.c | 1 drivers/gpu/drm/zte/Kconfig | 1 drivers/hid/hid-core.c | 10 drivers/hid/wacom_wac.h | 2 drivers/hv/hv_util.c | 4 drivers/hwmon/max31722.c | 9 drivers/hwmon/max31790.c | 2 drivers/hwtracing/coresight/coresight-tmc-etf.c | 2 drivers/hwtracing/intel_th/core.c | 17 + drivers/hwtracing/intel_th/gth.c | 16 + drivers/hwtracing/intel_th/intel_th.h | 3 drivers/i2c/i2c-core-base.c | 3 drivers/iio/accel/bma180.c | 10 drivers/iio/accel/bma220_spi.c | 10 drivers/iio/accel/hid-sensor-accel-3d.c | 13 - drivers/iio/accel/kxcjk-1013.c | 24 + drivers/iio/accel/stk8312.c | 12 drivers/iio/accel/stk8ba50.c | 17 - drivers/iio/adc/hx711.c | 4 drivers/iio/adc/mxs-lradc-adc.c | 3 drivers/iio/adc/ti-ads1015.c | 12 drivers/iio/adc/ti-ads8688.c | 3 drivers/iio/adc/vf610_adc.c | 10 drivers/iio/gyro/bmg160_core.c | 10 drivers/iio/humidity/am2315.c | 16 - drivers/iio/imu/adis_buffer.c | 3 drivers/iio/light/isl29125.c | 10 drivers/iio/light/ltr501.c | 15 - drivers/iio/light/tcs3414.c | 10 drivers/iio/light/tcs3472.c | 16 - drivers/iio/potentiostat/lmp91000.c | 4 drivers/iio/proximity/as3935.c | 10 drivers/iio/proximity/isl29501.c | 2 drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 10 drivers/iio/proximity/srf08.c | 14 - drivers/infiniband/core/cma.c | 3 drivers/infiniband/hw/cxgb4/qp.c | 1 drivers/infiniband/hw/mlx5/main.c | 4 drivers/infiniband/sw/rxe/rxe_mr.c | 2 drivers/infiniband/sw/rxe/rxe_net.c | 10 drivers/infiniband/sw/rxe/rxe_qp.c | 1 drivers/infiniband/sw/rxe/rxe_resp.c | 2 drivers/input/joydev.c | 2 drivers/input/keyboard/hil_kbd.c | 1 drivers/input/touchscreen/hideep.c | 13 - drivers/input/touchscreen/usbtouchscreen.c | 8 drivers/ipack/carriers/tpci200.c | 5 drivers/isdn/hardware/mISDN/hfcpci.c | 2 drivers/leds/leds-as3645a.c | 1 drivers/leds/leds-ktd2692.c | 27 +- drivers/md/persistent-data/dm-btree-remove.c | 3 drivers/md/persistent-data/dm-space-map-disk.c | 9 drivers/md/persistent-data/dm-space-map-metadata.c | 9 drivers/media/common/siano/smscoreapi.c | 22 - drivers/media/common/siano/smscoreapi.h | 4 drivers/media/common/siano/smsdvb-main.c | 4 drivers/media/dvb-core/dvb_net.c | 25 +- drivers/media/i2c/ir-kbd-i2c.c | 4 drivers/media/i2c/s5c73m3/s5c73m3-core.c | 6 drivers/media/i2c/s5c73m3/s5c73m3.h | 2 drivers/media/i2c/s5k4ecgx.c | 10 drivers/media/i2c/s5k5baf.c | 6 drivers/media/i2c/s5k6aa.c | 10 drivers/media/i2c/saa6588.c | 4 drivers/media/i2c/tc358743.c | 1 drivers/media/pci/bt8xx/bt878.c | 3 drivers/media/pci/bt8xx/bttv-driver.c | 6 drivers/media/pci/cobalt/cobalt-driver.c | 1 drivers/media/pci/cobalt/cobalt-driver.h | 7 drivers/media/pci/saa7134/saa7134-video.c | 6 drivers/media/platform/davinci/vpbe_display.c | 2 drivers/media/platform/davinci/vpbe_venc.c | 6 drivers/media/platform/exynos4-is/fimc-isp-video.c | 7 drivers/media/platform/s5p-cec/s5p_cec.c | 2 drivers/media/platform/s5p-g2d/g2d.c | 3 drivers/media/platform/sti/hva/hva-hw.c | 3 drivers/media/rc/bpf-lirc.c | 3 drivers/media/usb/cpia2/cpia2.h | 1 drivers/media/usb/cpia2/cpia2_core.c | 12 drivers/media/usb/cpia2/cpia2_usb.c | 13 - drivers/media/usb/dvb-usb/cinergyT2-core.c | 2 drivers/media/usb/dvb-usb/cxusb.c | 2 drivers/media/usb/dvb-usb/dtv5100.c | 7 drivers/media/usb/em28xx/em28xx-input.c | 8 drivers/media/usb/gspca/gl860/gl860.c | 4 drivers/media/usb/gspca/sq905.c | 2 drivers/media/usb/gspca/sunplus.c | 8 drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 4 drivers/media/usb/uvc/uvc_video.c | 27 ++ drivers/media/usb/zr364xx/zr364xx.c | 1 drivers/media/v4l2-core/v4l2-fh.c | 1 drivers/memory/atmel-ebi.c | 4 drivers/memory/fsl_ifc.c | 8 drivers/mfd/da9052-i2c.c | 1 drivers/mfd/stmpe-i2c.c | 2 drivers/misc/eeprom/idt_89hpesx.c | 8 drivers/misc/ibmasm/module.c | 5 drivers/mmc/core/block.c | 8 drivers/mmc/core/core.c | 7 drivers/mmc/core/sd.c | 10 drivers/mmc/host/sdhci.c | 4 drivers/mmc/host/sdhci.h | 1 drivers/mmc/host/usdhi6rol0.c | 1 drivers/mmc/host/via-sdmmc.c | 3 drivers/mmc/host/vub300.c | 2 drivers/mtd/nand/raw/marvell_nand.c | 4 drivers/net/can/peak_canfd/peak_canfd.c | 4 drivers/net/can/usb/ems_usb.c | 3 drivers/net/ethernet/aeroflex/greth.c | 3 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 1 drivers/net/ethernet/broadcom/genet/bcmmii.c | 4 drivers/net/ethernet/ezchip/nps_enet.c | 4 drivers/net/ethernet/ibm/ehea/ehea_main.c | 9 drivers/net/ethernet/ibm/ibmvnic.c | 10 drivers/net/ethernet/intel/e100.c | 12 drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 3 drivers/net/ethernet/intel/i40e/i40e_main.c | 2 drivers/net/ethernet/intel/ice/ice_type.h | 2 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 6 drivers/net/ethernet/micrel/ks8842.c | 4 drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 29 +- drivers/net/ethernet/sfc/ef10_sriov.c | 25 -- drivers/net/fjes/fjes_main.c | 4 drivers/net/ieee802154/mac802154_hwsim.c | 11 drivers/net/virtio_net.c | 29 ++ drivers/net/vxlan.c | 2 drivers/net/wireless/ath/ath10k/mac.c | 1 drivers/net/wireless/ath/ath9k/main.c | 5 drivers/net/wireless/ath/carl9170/Kconfig | 8 drivers/net/wireless/ath/wcn36xx/main.c | 21 - drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 37 +-- drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c | 8 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 24 + drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 15 - drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 3 drivers/net/wireless/marvell/mwifiex/pcie.c | 10 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 11 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 59 ++++ drivers/net/wireless/rsi/rsi_91x_hal.c | 6 drivers/net/wireless/rsi/rsi_91x_mac80211.c | 3 drivers/net/wireless/rsi/rsi_91x_mgmt.c | 3 drivers/net/wireless/rsi/rsi_main.h | 1 drivers/net/wireless/st/cw1200/cw1200_sdio.c | 1 drivers/net/wireless/ti/wl1251/cmd.c | 9 drivers/net/wireless/ti/wl12xx/main.c | 7 drivers/of/fdt.c | 8 drivers/of/of_reserved_mem.c | 8 drivers/pci/controller/pci-aardvark.c | 61 +++-- drivers/pci/controller/pci-tegra.c | 1 drivers/pci/controller/pcie-iproc-msi.c | 29 +- drivers/pci/pci-label.c | 2 drivers/pci/quirks.c | 11 drivers/phy/ti/phy-dm816x-usb.c | 17 + drivers/pinctrl/pinctrl-amd.c | 1 drivers/pinctrl/pinctrl-mcp23s08.c | 10 drivers/platform/x86/toshiba_acpi.c | 1 drivers/power/reset/gpio-poweroff.c | 1 drivers/power/supply/Kconfig | 3 drivers/power/supply/ab8500_btemp.c | 1 drivers/power/supply/ab8500_charger.c | 19 + drivers/power/supply/ab8500_fg.c | 1 drivers/power/supply/charger-manager.c | 1 drivers/power/supply/max17042_battery.c | 2 drivers/power/supply/rt5033_battery.c | 7 drivers/pwm/pwm-spear.c | 4 drivers/pwm/pwm-tegra.c | 13 - drivers/regulator/da9052-regulator.c | 3 drivers/regulator/uniphier-regulator.c | 1 drivers/reset/core.c | 5 drivers/reset/reset-a10sr.c | 1 drivers/rtc/rtc-proc.c | 4 drivers/rtc/rtc-stm32.c | 6 drivers/s390/char/sclp_vt220.c | 4 drivers/s390/cio/chp.c | 3 drivers/s390/cio/chsc.c | 2 drivers/scsi/FlashPoint.c | 32 +- drivers/scsi/be2iscsi/be_main.c | 5 drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 drivers/scsi/cxgbi/libcxgbi.c | 4 drivers/scsi/device_handler/scsi_dh_alua.c | 11 drivers/scsi/hosts.c | 4 drivers/scsi/libiscsi.c | 122 ++++------ drivers/scsi/lpfc/lpfc_els.c | 9 drivers/scsi/lpfc/lpfc_sli.c | 5 drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 drivers/scsi/qedi/qedi_fw.c | 2 drivers/scsi/qedi/qedi_main.c | 2 drivers/scsi/scsi_lib.c | 1 drivers/scsi/scsi_transport_iscsi.c | 12 drivers/spi/spi-loopback-test.c | 2 drivers/spi/spi-omap-100k.c | 2 drivers/spi/spi-sun6i.c | 6 drivers/spi/spi-topcliff-pch.c | 4 drivers/spi/spi.c | 1 drivers/ssb/scan.c | 1 drivers/ssb/sdio.c | 1 drivers/staging/gdm724x/gdm_lte.c | 20 + drivers/staging/media/imx/imx-media-csi.c | 14 + drivers/staging/mt7621-dts/mt7621.dtsi | 2 drivers/staging/rtl8723bs/hal/odm.h | 5 drivers/tty/nozomi.c | 9 drivers/tty/serial/8250/8250_port.c | 19 + drivers/tty/serial/8250/serial_cs.c | 13 - drivers/tty/serial/fsl_lpuart.c | 3 drivers/tty/serial/mvebu-uart.c | 33 +- drivers/tty/serial/sh-sci.c | 8 drivers/usb/class/cdc-acm.c | 5 drivers/usb/dwc3/core.c | 3 drivers/usb/gadget/function/f_eem.c | 43 +++ drivers/usb/gadget/function/f_fs.c | 67 ++--- drivers/usb/gadget/function/f_hid.c | 2 drivers/usb/gadget/legacy/hid.c | 4 drivers/usb/host/xhci-mem.c | 1 drivers/usb/typec/class.c | 4 drivers/vfio/pci/vfio_pci.c | 29 +- drivers/video/backlight/lm3630a_bl.c | 12 drivers/visorbus/visorchipset.c | 6 drivers/w1/slaves/w1_ds2438.c | 4 drivers/watchdog/aspeed_wdt.c | 2 drivers/watchdog/iTCO_wdt.c | 12 drivers/watchdog/lpc18xx_wdt.c | 2 drivers/watchdog/sbc60xxwdt.c | 2 drivers/watchdog/sc520_wdt.c | 2 drivers/watchdog/w83877f_wdt.c | 2 fs/btrfs/Kconfig | 2 fs/btrfs/delayed-inode.c | 18 - fs/btrfs/send.c | 11 fs/btrfs/transaction.c | 6 fs/btrfs/tree-log.c | 1 fs/ceph/addr.c | 10 fs/configfs/file.c | 10 fs/crypto/fname.c | 9 fs/dlm/config.c | 9 fs/dlm/lowcomms.c | 2 fs/ext4/extents.c | 3 fs/ext4/extents_status.c | 4 fs/ext4/ialloc.c | 11 fs/ext4/mballoc.c | 9 fs/ext4/super.c | 10 fs/f2fs/super.c | 1 fs/fs-writeback.c | 34 -- fs/fuse/dev.c | 11 fs/jfs/inode.c | 3 fs/jfs/jfs_logmgr.c | 1 fs/nfs/inode.c | 4 fs/nfs/nfs3proc.c | 4 fs/nfs/nfs4client.c | 82 +++--- fs/nfs/pnfs_nfs.c | 52 ++-- fs/ntfs/inode.c | 2 fs/ocfs2/filecheck.c | 6 fs/ocfs2/stackglue.c | 8 fs/orangefs/super.c | 2 fs/reiserfs/journal.c | 14 + fs/seq_file.c | 3 fs/ubifs/dir.c | 7 fs/udf/namei.c | 4 include/crypto/internal/hash.h | 8 include/linux/mfd/abx500/ux500_chargalg.h | 2 include/linux/netdev_features.h | 2 include/linux/nfs_fs.h | 1 include/linux/prandom.h | 2 include/linux/tracepoint.h | 10 include/media/v4l2-subdev.h | 4 include/net/ip.h | 12 include/net/ip6_route.h | 16 - include/net/sctp/structs.h | 2 include/scsi/libiscsi.h | 11 include/scsi/scsi_transport_iscsi.h | 2 include/uapi/linux/ethtool.h | 4 kernel/cpu.c | 49 ++++ kernel/sched/fair.c | 8 kernel/time/clocksource.c | 53 +++- kernel/trace/bpf_trace.c | 3 kernel/trace/trace.c | 91 ++++--- kernel/trace/trace_events_hist.c | 13 - kernel/tracepoint.c | 33 ++ lib/decompress_unlz4.c | 8 lib/iov_iter.c | 2 lib/kstrtox.c | 13 - lib/kstrtox.h | 2 lib/seq_buf.c | 8 lib/vsprintf.c | 82 +++--- mm/backing-dev.c | 4 mm/huge_memory.c | 2 net/bluetooth/hci_core.c | 16 - net/bluetooth/hci_event.c | 13 - net/bluetooth/mgmt.c | 6 net/bridge/br_multicast.c | 2 net/can/bcm.c | 7 net/can/gw.c | 3 net/core/dev.c | 11 net/core/filter.c | 4 net/ipv4/fib_frontend.c | 2 net/ipv4/ip_output.c | 32 +- net/ipv4/route.c | 3 net/ipv6/exthdrs.c | 31 +- net/ipv6/ip6_output.c | 32 +- net/ipv6/output_core.c | 28 -- net/mac80211/sta_info.c | 5 net/netfilter/nft_exthdr.c | 3 net/netfilter/nft_osf.c | 5 net/netfilter/nft_tproxy.c | 9 net/netlabel/netlabel_mgmt.c | 19 - net/sched/cls_tcindex.c | 2 net/sched/sch_qfq.c | 8 net/sctp/bind_addr.c | 19 - net/sctp/input.c | 8 net/sctp/ipv6.c | 7 net/sctp/protocol.c | 7 net/sctp/sm_make_chunk.c | 29 +- net/sunrpc/sched.c | 12 net/vmw_vsock/af_vsock.c | 2 net/wireless/wext-spy.c | 14 - net/xfrm/xfrm_user.c | 28 +- samples/bpf/xdp_redirect_user.c | 2 security/integrity/evm/evm_main.c | 5 security/integrity/evm/evm_secfs.c | 13 - security/selinux/avc.c | 13 - security/smack/smackfs.c | 2 sound/ac97/bus.c | 2 sound/firewire/Kconfig | 5 sound/firewire/bebob/bebob.c | 5 sound/firewire/oxfw/oxfw.c | 2 sound/isa/cmi8330.c | 2 sound/isa/sb/sb16_csp.c | 8 sound/pci/hda/hda_tegra.c | 3 sound/ppc/powermac.c | 6 sound/soc/atmel/atmel-i2s.c | 34 ++ sound/soc/codecs/cs42l42.h | 2 sound/soc/hisilicon/hi6210-i2s.c | 14 - sound/soc/sh/rcar/adg.c | 4 sound/soc/soc-core.c | 2 sound/soc/tegra/tegra_alc5632.c | 1 sound/soc/tegra/tegra_max98090.c | 1 sound/soc/tegra/tegra_rt5640.c | 1 sound/soc/tegra/tegra_rt5677.c | 1 sound/soc/tegra/tegra_sgtl5000.c | 1 sound/soc/tegra/tegra_wm8753.c | 1 sound/soc/tegra/tegra_wm8903.c | 1 sound/soc/tegra/tegra_wm9712.c | 1 sound/soc/tegra/trimslice.c | 1 sound/usb/format.c | 2 sound/usb/mixer.c | 5 tools/bpf/bpftool/main.c | 4 tools/perf/util/llvm-utils.c | 2 tools/testing/selftests/powerpc/pmu/ebb/no_handler_test.c | 2 tools/testing/selftests/timers/rtcpie.c | 10 tools/testing/selftests/x86/protection_keys.c | 3 438 files changed, 2568 insertions(+), 1309 deletions(-)
Al Cooper (1):
mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode
Al Viro (1):
iov_iter_fault_in_readable() should do nothing in xarray case
Alex Williamson (1):
vfio/pci: Handle concurrent vma faults
Alexander Aring (2):
fs: dlm: cancel work sync othercon
fs: dlm: fix memory leak when fenced
Alexander Larkin (1):
Input: joydev - prevent use of not validated data in JSIOCSBTNMAP ioctl
Alexander Shishkin (1):
intel_th: Wait until port is in reset before programming it
Alvin Šipraga (2):
brcmfmac: fix setting of station info chains bitmask
brcmfmac: correctly report average RSSI in station info
Andrew Gabbasov (1):
usb: gadget: f_fs: Fix setting of device and driver data cross-references
Andy Shevchenko (5):
net: mvpp2: Put fwnode in error case during ->probe()
net: pch_gbe: Propagate error from devm_gpio_request_one()
eeprom: idt_89hpesx: Put fwnode in matching case during ->probe()
eeprom: idt_89hpesx: Restore printing the unsupported fwnode name
net: pch_gbe: Use proper accessors to BE data in pch_ptp_match()
Anirudh Rayabharam (2):
ext4: fix kernel infoleak via ext4_extent_header
media: pvrusb2: fix warning in pvr2_i2c_core_done
Ard Biesheuvel (1):
crypto: shash - avoid comparing pointers to exported functions under CFI
Arnaldo Carvalho de Melo (1):
perf llvm: Return -ENOMEM when asprintf() fails
Arnd Bergmann (4):
ia64: mca_drv: fix incorrect array size calculation
mwifiex: re-fix for unaligned accesses
media: subdev: disallow ioctl for saa6588/davinci
mips: always link byteswap helpers into decompressor
Arturo Giusti (1):
udf: Fix NULL pointer dereference in udf_symlink function
Aswath Govindraju (2):
ARM: dts: am335x: align ti,pindir-d0-out-d1-in property with dt-shema
ARM: dts: am437x: align ti,pindir-d0-out-d1-in property with dt-shema
Athira Rajeev (1):
selftests/powerpc: Fix "no_handler" EBB selftest
Axel Lin (1):
regulator: da9052: Ensure enough delay time for .set_voltage_time_sel
Bean Huo (1):
mmc: block: Disable CMDQ on the ioctl path
Benjamin Drung (1):
media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K
Benjamin Herrenschmidt (1):
powerpc/boot: Fixup device-tree on little endian
Bibo Mao (1):
hugetlb: clear huge pte during flush function on mips platform
Bixuan Cui (3):
crypto: nx - add missing MODULE_DEVICE_TABLE EDAC/ti: Add missing MODULE_DEVICE_TABLE
power: reset: gpio-poweroff: add missing MODULE_DEVICE_TABLE
Bob Pearson (1):
RDMA/rxe: Fix qp reference counting for atomic ops
Bryan O'Donoghue (1):
wcn36xx: Move hal_buf allocation to devm_kmalloc in probe
Chao Yu (1):
f2fs: add MODULE_SOFTDEP to ensure crc32 is included in the initramfs
Charles Keepax (1):
spi: Make of_register_spi_device also set the fwnode
Chris Chiu (1):
ACPI: EC: Make more Asus laptops use ECDT _GPE
Christian Löhle (1):
mmc: core: Allow UHS-I voltage switch for SDSC cards if supported
Christoph Niedermaier (3):
ARM: dts: imx6q-dhcom: Fix ethernet reset time properties
ARM: dts: imx6q-dhcom: Fix ethernet plugin detection problems
ARM: dts: imx6q-dhcom: Add gpios pinctrl for i2c bus recovery
Christophe JAILLET (9):
crypto: ccp - Fix a resource leak in an error handling path
media: rc: i2c: Fix an error message
brcmsmac: mac80211_if: Fix a resource leak in an error handling path
tty: nozomi: Fix a resource leak in an error handling function
tty: nozomi: Fix the error handling path of 'nozomi_card_init()'
phy: ti: dm816x: Fix the error handling path in 'dm816x_usb_phy_probe()
leds: ktd2692: Fix an error handling path
tty: serial: 8250: serial_cs: Fix a memory leak in error handling path
scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe()
Christophe Leroy (1):
btrfs: disable build on platforms having page size 256K
Chung-Chiang Cheng (1):
configfs: fix memleak in configfs_release_bin_file
Codrin Ciubotariu (1):
ASoC: atmel-i2s: Fix usage of capture and playback at the same time
Colin Ian King (2):
drm: qxl: ensure surf.data is ininitialized
fsi: core: Fix return of error values on failures
Corentin Labbe (1):
crypto: ixp4xx - dma_unmap the correct address
Daehwan Jung (1):
ALSA: usb-audio: fix rate on Ozone Z90 USB headset
Dan Carpenter (5):
ocfs2: fix snprintf() checking
staging: gdm724x: check for buffer overflow in gdm_lte_multi_sdu_pkt()
staging: gdm724x: check for overflow in gdm_lte_netif_rx()
rtc: fix snprintf() checking in is_rtc_hctosys()
scsi: scsi_dh_alua: Fix signedness bug in alua_rtpg()
Daniel Vetter (1):
drm/msm/mdp4: Fix modifier support enabling
Dany Madden (1):
Revert "ibmvnic: remove duplicate napi_schedule call in open function"
Dave Hansen (1):
selftests/vm/pkeys: fix alloc_random_pkey() to make it really, really random
David Sterba (2):
btrfs: clear defrag status of a root if starting transaction fails
btrfs: clear log tree recovering status if starting transaction fails
Desmond Cheong Zhi Xi (1):
ntfs: fix validity check for file name attribute
Dillon Min (1):
media: s5p-g2d: Fix a memory leak on ctx->fh.m2m_ctx
Dimitri John Ledkov (1):
lib/decompress_unlz4.c: correctly handle zero-padding around initrds.
Dinghao Liu (1):
i40e: Fix error handling in i40e_vsi_open
Dmitry Osipenko (2):
clk: tegra: Ensure that PLLU configuration is applied properly
ASoC: tegra: Set driver_name=tegra for all machine drivers
Dmitry Torokhov (2):
HID: do not use down_interruptible() when unbinding devices
i2c: core: Disable client irq on reboot/shutdown
Dmytro Laktyushkin (1):
drm/amd/display: fix use_max_lb flag for 420 pixel formats
Dongliang Mu (3):
media: dvd_usb: memory leak in cinergyt2_fe_attach
ieee802154: hwsim: Fix possible memory leak in hwsim_subscribe_all_others
ieee802154: hwsim: Fix memory leak in hwsim_add_one
Eddie James (1):
fsi: scom: Reset the FSI2PIB engine for any error
Eric Biggers (1):
fscrypt: don't ignore minor_hash when hash is 0
Eric Dumazet (5):
pkt_sched: sch_qfq: fix qfq_change_class() error path
vxlan: add missing rcu_read_lock() in neigh_reduce()
ieee802154: hwsim: avoid possible crash in hwsim_del_edge_nl()
ipv6: exthdrs: do not blindly use init_net
ipv6: fix out-of-bound access in ip6_parse_tlv()
Eric Sandeen (1):
seq_file: disallow extremely large seq buffer allocations
Erik Kaneda (1):
ACPICA: Fix memory leak caused by _CID repair function
Evgeny Novikov (1):
media: st-hva: Fix potential NULL pointer dereferences
Fabio Aiuto (1):
staging: rtl8723bs: fix macro value for 2.4Ghz only device
Filipe Manana (1):
btrfs: send: fix invalid path for unlink operations after parent orphanization
Gao Xiang (1):
nfs: fix acl memory leak of posix_acl_create()
Geert Uytterhoeven (2):
of: Fix truncation of memory sizes on 32-bit platforms
ARM: dts: r8a7779, marzen: Fix DU clock names
Geoff Levand (1):
powerpc/ps3: Add dma_mask to ps3_dma_region
Gerd Rausch (1):
RDMA/cma: Fix rdma_resolve_route() memory leak
Greg Kroah-Hartman (1):
Linux 4.19.198
Guchun Chen (1):
drm/amd/display: fix incorrrect valid irq check
Guenter Roeck (2):
hwmon: (max31722) Remove non-standard ACPI device IDs
hwmon: (max31790) Fix fan speed reporting for fan7..12
Gustavo A. R. Silva (2):
media: siano: Fix out-of-bounds warnings in smscore_load_firmware_family2()
wireless: wext-spy: Fix out-of-bounds warning
Hanjun Guo (1):
ACPI: bus: Call kobject_put() in acpi_init() error path
Hannes Reinecke (1):
scsi: scsi_dh_alua: Check for negative result value
Hannu Hartikainen (1):
USB: cdc-acm: blacklist Heimann USB Appset device
Hans Verkuil (1):
media: cobalt: fix race condition in setting HPD
Hans de Goede (1):
ACPI: video: Add quirk for the Dell Vostro 3350
Herbert Xu (1):
crypto: nx - Fix RCU warning in nx842_OF_upd_status
Hou Tao (1):
dm btree remove: assign new_root only when removal succeeds
Huang Pei (1):
MIPS: add PMD table accounting into MIPS'pmd_alloc_one
Igor Matheus Andrade Torrente (1):
media: em28xx: Fix possible memory leak of em28xx struct
Jack Xu (2):
crypto: qat - check return code of qat_hal_rd_rel_reg()
crypto: qat - remove unused macro in FW loader
Jack Zhang (1):
drm/amd/amdgpu/sriov disable all ip hw status by default
Jakub Kicinski (1):
net: ip: avoid OOM kills with large UDP sends over loopback
James Smart (2):
scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology
scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize the SGLs
Jan Kiszka (1):
watchdog: iTCO_wdt: Account for rebooting on second timeout
Jason Gerecke (1):
HID: wacom: Correct base usage for capacitive ExpressKey status bits
Jay Fang (2):
spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf'
spi: spi-topcliff-pch: Fix potential double free in pch_spi_process_messages()
Jeff Layton (1):
ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
Jesse Brandeburg (1):
e100: handle eeprom as little endian
Jiajun Cao (1):
ALSA: hda: Add IRQ check for platform_get_irq()
Jian Shen (1):
net: fix mistake path for netdev_features_strings
Jian-Hong Pan (1):
net: bcmgenet: Fix attaching to PYH failed on RPi 4B
Jiapeng Chong (3):
platform/x86: toshiba_acpi: Fix missing error code in toshiba_acpi_setup_keyboard() RDMA/cxgb4: Fix missing error code in create_qp()
fs/jfs: Fix missing error code in lmLogInit()
Jing Xiangfeng (2):
usb: typec: Add the missed altmode_id_remove() in typec_register_altmode() drm/radeon: Add the missed drm_gem_object_put() in radeon_user_framebuffer_create()
Joachim Fenkes (2):
fsi/sbefifo: Clean up correct FIFO when receiving reset request from SBE fsi/sbefifo: Fix reset timeout
Joe Thornber (1):
dm space maps: don't reset space map allocation cursor when committing
Johan Hovold (6):
Input: usbtouchscreen - fix control-request directions
media: gspca/gl860: fix zero-length control requests
mmc: vub3000: fix control-request direction
media: dtv5100: fix control-request directions
media: gspca/sq905: fix control-request direction
media: gspca/sunplus: fix zero-length control requests
Johannes Berg (2):
iwlwifi: mvm: don't change band on bound PHY contexts
iwlwifi: pcie: free IML DMA memory allocation
John Garry (1):
scsi: core: Cap scsi_host cmd_per_lun at can_queue
Jonathan Cameron (21):
iio: accel: bma180: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: accel: bma220: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: accel: hid: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: accel: kxcjk-1013: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: accel: stk8312: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: accel: stk8ba50: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: adc: ti-ads1015: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: adc: vf610: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: gyro: bmg160: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: humidity: am2315: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: prox: srf08: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: prox: pulsed-light: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: prox: as3935: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: light: isl29125: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: light: tcs3414: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: light: tcs3472: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: potentiostat: lmp91000: Fix alignment of buffer in iio_push_to_buffers_with_timestamp()
iio: adc: hx711: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: adc: mxs-lradc: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
iio: adc: ti-ads8688: Fix alignment of buffer in iio_push_to_buffers_with_timestamp()
iio: prox: isl29501: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
Josef Bacik (2):
btrfs: fix error handling in __btrfs_update_delayed_inode
btrfs: abort transaction if we fail to update the delayed inode
Kai-Heng Feng (1):
Bluetooth: Shutdown controller after workqueues are flushed or cancelled
Kamal Heib (1):
RDMA/rxe: Fix failure during driver load
Konstantin Kharlamov (1):
PCI: Leave Apple Thunderbolt controllers on for s2idle or standby
Krzysztof Kozlowski (8):
power: supply: max17042: Do not enforce (incorrect) interrupt trigger type
reset: a10sr: add missing of_match_table reference
ARM: dts: exynos: fix PWM LED max brightness on Odroid XU/XU3
ARM: dts: exynos: fix PWM LED max brightness on Odroid HC1
ARM: dts: exynos: fix PWM LED max brightness on Odroid XU4
memory: atmel-ebi: add missing of_node_put for loop iteration
memory: fsl_ifc: fix leak of IO mapping on probe failure
memory: fsl_ifc: fix leak of private memory on probe failure
Krzysztof Wilczyński (2):
ACPI: sysfs: Fix a buffer overrun problem with description_show() PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun
Kuninori Morimoto (2):
ASoC: rsnd: tidyup loop on rsnd_adg_clk_query()
clk: renesas: r8a77995: Add ZA2 clock
Lai Jiangshan (1):
KVM: X86: Disable hardware breakpoints unconditionally before kvm_x86->run()
Lee Gibson (1):
wl1251: Fix possible buffer overflow in wl1251_cmd_scan
Leon Romanovsky (2):
RDMA/mlx5: Don't add slave port to unaffiliated list RDMA/mlx5: Don't access NULL-cleared mpi pointer
Liguang Zhang (1):
ACPI: AMBA: Fix resource name in /proc/iomem
Linus Walleij (2):
power: supply: ab8500: Fix an old bug
power: supply: ab8500: Avoid NULL pointers
Linyu Yuan (1):
usb: gadget: eem: fix echo command packet response issue
Liu Shixin (1):
netlabel: Fix memory leak in netlbl_mgmt_add_common
Liwei Song (1):
ice: set the value of global config lock timeout longer
Longpeng(Mike) (1):
vsock: notify server to shutdown when client has pending signal
Ludovic Desroches (1):
ARM: dts: at91: sama5d4: fix pinctrl muxing
Luiz Augusto von Dentz (2):
Bluetooth: mgmt: Fix slab-out-of-bounds in tlv_data_is_valid
Bluetooth: Fix handling of HCI_LE_Advertising_Set_Terminated event
Luiz Sampaio (1):
w1: ds2438: fixing bug that would always get page0
Lv Yunlong (4):
media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release
media: exynos4-is: Fix a use after free in isp_video_release ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe misc/libmasm/module: Fix two use after free in ibmasm_init_one
Maciej W. Rozycki (1):
serial: 8250: Actually allow UPF_MAGIC_MULTIPLIER baud rates
Maciej Żenczykowski (1):
bpf: Do not change gso_size during bpf_skb_change_proto()
Marc Kleine-Budde (1):
iio: ltr501: mark register holding upper 8 bits of ALS_DATA{0,1} and PS_DATA as volatile, too
Marcelo Ricardo Leitner (2):
sctp: validate from_addr_param return
sctp: add size validation when walking chunks
Marek Szyprowski (1):
extcon: max8997: Add missing modalias string
Marek Vasut (1):
rsi: Assign beacon rate settings to the correct rate_info descriptor field
Mario Limonciello (1):
ACPI: processor idle: Fix up C-state latency if not ordered
Martin Fuzzey (2):
rtc: stm32: Fix unbalanced clk_disable_unprepare() on probe error path
rsi: fix AP mode with WPA failure due to encrypted EAPOL
Martin Fäcknitz (1):
MIPS: vdso: Invalid GIC access through VDSO
Mateusz Palczewski (1):
i40e: Fix autoneg disabling for non-10GBaseT links
Mauro Carvalho Chehab (3):
media: dvb_net: avoid speculation from net slot
media: siano: fix device register error path
media: s5p_cec: decrement usage count if disabled
Maximilian Luz (1):
pinctrl/amd: Add device HID for new AMD GPIO controller
Miao Wang (1):
net/ipv4: swap flow ports when validating source
Miaohe Lin (1):
mm/huge_memory.c: don't discard hugepage if other processes are mapping it
Michael Buesch (1):
ssb: sdio: Don't overwrite const buffer if block_write fails
Michael Ellerman (1):
powerpc/stacktrace: Fix spurious "stale" traces in raise_backtrace_ipi()
Michael S. Tsirkin (1):
virtio_net: move tx vq operation under tx queue lock
Mika Westerberg (1):
bdi: Do not use freezable workqueue
Mike Christie (4):
scsi: iscsi: Add iscsi_cls_conn refcount helpers
scsi: iscsi: Fix conn use after free during resets
scsi: iscsi: Fix shost->max_id use
scsi: qedi: Fix null ref during abort handling
Mike Marshall (1):
orangefs: fix orangefs df output.
Miklos Szeredi (2):
fuse: check connected before queueing on fpq->io
fuse: reject internal errno
Mimi Zohar (1):
evm: fix writing <securityfs>/evm overflow
Minas Harutyunyan (1):
usb: dwc3: Fix debugfs creation flow
Minchan Kim (1):
selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC
Miquel Raynal (1):
serial: mvebu-uart: clarify the baud rate derivation
Mirko Vogt (1):
spi: spi-sun6i: Fix chipselect/clock bug
Muchun Song (1):
writeback: fix obtain a reference to a freeing memcg css
Nathan Chancellor (3):
powerpc/barrier: Avoid collision with clang's __lwsync macro
qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute
hexagon: use common DISCARDS macro
Nicholas Piggin (1):
powerpc: Offline CPU in stop_this_cpu()
Nick Desaulniers (2):
MIPS: set mips32r5 for virt extensions
ARM: 9087/1: kprobes: test-thumb: fix for LLVM_IAS=1
Nikolay Aleksandrov (1):
net: bridge: multicast: fix PIM hello router port marking race
Nuno Sa (1):
iio: adis_buffer: do not return ints in irq handlers
Odin Ugedal (1):
sched/fair: Fix ascii art by relpacing tabs
Oliver Hartkopp (1):
can: gw: synchronize rcu operations before removing gw job entry
Oliver Lang (2):
iio: ltr501: ltr559: fix initialization of LTR501_ALS_CONTR
iio: ltr501: ltr501_read_ps(): add missing endianness conversion
Ondrej Zary (2):
serial_cs: Add Option International GSM-Ready 56K/ISDN modem
serial_cs: remove wrong GLOBETROTTER.cis entry
Pablo Neira Ayuso (3):
netfilter: nft_exthdr: check for IPv6 packet before further processing
netfilter: nft_osf: check for TCP packet before further processing
netfilter: nft_tproxy: restrict support to TCP and UDP transport protocols
Pali Rohár (6):
ath9k: Fix kernel NULL pointer dereference during ath_reset_internal()
serial: mvebu-uart: correctly calculate minimal possible baudrate
arm64: dts: marvell: armada-37xx: Fix reg for standard variant of UART
serial: mvebu-uart: fix calculation of clock divisor
PCI: aardvark: Fix checking for PIO Non-posted Request
PCI: aardvark: Fix kernel panic during PIO transfer
Pan Dong (1):
ext4: fix avefreec in find_group_orlov
Pascal Terjan (1):
rtl8xxxu: Fix device info for RTL8192EU devices
Paul Burton (2):
tracing: Simplify & fix saved_tgids logic
tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT
Paul E. McKenney (1):
clocksource: Retry clock read if long delays detected
Pavel Skripkin (10):
media: dvb-usb: fix wrong definition
net: can: ems_usb: fix use-after-free in ems_usb_disconnect()
media: cpia2: fix memory leak in cpia2_usb_probe
net: ethernet: aeroflex: fix UAF in greth_of_remove
net: ethernet: ezchip: fix UAF in nps_enet_remove
net: ethernet: ezchip: fix error handling
net: sched: fix warning in tcindex_alloc_perfect_hash
reiserfs: add check for invalid 1st journal block
media: zr364xx: fix memory leak in zr364xx_start_readpipe
jfs: fix GPF in diFree
Peter Robinson (1):
gpio: pca953x: Add support for the On Semi pca9655
Petr Pavlu (1):
ipmi/watchdog: Stop watchdog timer when the current action is 'none'
Philipp Zabel (1):
reset: bail if try_module_get() fails
Ping-Ke Shih (1):
mac80211: remove iwlwifi specific workaround NDPs of null_response
Po-Hsu Lin (1):
selftests: timers: rtcpie: skip test if default RTC device does not exist
Quat Le (1):
scsi: core: Retry I/O for Notify (Enable Spinup) Required error
Radim Pavlik (1):
pinctrl: mcp23s08: fix race condition in irq handler
Rafał Miłecki (1):
ARM: dts: BCM5301X: Fixup SPI binding
Randy Dunlap (5):
media: I2C: change 'RST' to "RSET" to fix multiple build errors
wireless: carl9170: fix LEDS build errors & warnings
scsi: FlashPoint: Rename si_flags field
s390: appldata depends on PROC_SYSCTL
mips: disable branch profiling in boot/decompress.o
Remi Pommarel (1):
PCI: aardvark: Don't rely on jiffies while holding spinlock
Richard Fitzgerald (4):
lib: vsprintf: Fix handling of number field widths in vsscanf
random32: Fix implicit truncation warning in prandom_seed_state()
ACPI: tables: Add custom DSDT file as makefile prerequisite
ASoC: cs42l42: Correct definition of CS42L42_ADC_PDN_MASK
Roberto Sassu (2):
evm: Execute evm_inode_init_security() only when an HMAC key is loaded
evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded
Ruslan Bilovol (1):
usb: gadget: f_hid: fix endianness issue with descriptors
Sai Prakash Ranjan (1):
coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer()
Samuel Holland (1):
clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround
Sandor Bodo-Merle (2):
PCI: iproc: Fix multi-MSI base vector number allocation
PCI: iproc: Support multi-MSI only on uniprocessor kernel
Sean Christopherson (1):
KVM: x86: Use guest MAXPHYADDR from CPUID.0x8000_0008 iff TDP is enabled
Sean Young (1):
media, bpf: Do not copy more entries than user space requested
Sebastian Andrzej Siewior (1):
net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT
Sergey Shtylyov (4):
sata_highbank: fix deferred probing
pata_rb532_cf: fix deferred probing
pata_octeon_cf: avoid WARN_ON() in ata_host_activate()
pata_ep93xx: fix deferred probing
Sergio Paracuellos (1):
staging: mt7621-dts: fix pci address for PCI memory range
Sherry Sun (1):
tty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero
Srinivas Neeli (1):
gpio: zynq: Check return value of pm_runtime_get_sync
Steffen Klassert (1):
xfrm: Fix error reporting in xfrm_state_construct.
Stephan Gerhold (2):
extcon: sm5502: Drop invalid register write in sm5502_reg_data
power: supply: rt5033_battery: Fix device tree enumeration
Stephane Grosjean (1):
can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue in TX path
Stephen Brennan (1):
ext4: use ext4_grp_locked_error in mb_find_extent
Steve Longerbeam (1):
media: imx-csi: Skip first few frames from a BT.656 source
Steven Rostedt (VMware) (3):
tracing/histograms: Fix parsing of "sym-offset" modifier
tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing
tracing: Do not reference char * as a string in histograms
Sukadev Bhattiprolu (1):
ibmvnic: free tx_pool if tso_pool alloc fails
Takashi Iwai (2):
ALSA: usb-audio: Fix OOB access at proc output
ALSA: sb: Fix potential double-free of CSP mixer elements
Takashi Sakamoto (2):
Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro"
ALSA: bebob: add support for ToneWeal FW66
Tao Ren (1):
watchdog: aspeed: fix hardware timeout calculation
Tetsuo Handa (1):
smackfs: restrict bytes count in smk_set_cipso()
Thadeu Lima de Souza Cascardo (1):
can: bcm: delay release of struct bcm_op after synchronize_rcu()
Thomas Gleixner (3):
cpu/hotplug: Cure the cpusets trainwreck
x86/fpu: Return proper error codes from user access functions x86/fpu: Limit xstate copy size in xstateregs_set()
Thomas Zimmermann (2):
drm/mxsfb: Don't select DRM_KMS_FB_HELPER
drm/zte: Don't select DRM_KMS_FB_HELPER
Tian Tao (1):
spi: omap-100k: Fix the length judgment problem
Tim Jiang (1):
Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc.
Timo Sigurdsson (1):
ata: ahci_sunxi: Disable DIPM
Tony Lindgren (1):
wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP
Trond Myklebust (3):
NFS: nfs_find_open_context() may only select open files
NFSv4: Initialise connection to the server in nfs4_alloc_client() NFSv4/pNFS: Don't call _nfs4_pnfs_v3_ds_connect multiple times
Tyrel Datwyler (1):
scsi: core: Fix bad pointer dereference when ehandler kthread is invalid
Uwe Kleine-König (3):
backlight: lm3630a: Fix return code of .update_status() callback
pwm: spear: Don't modify HW state in .remove callback
pwm: tegra: Don't modify HW state in .remove callback
Vadim Fedorenko (1):
net: lwtunnel: handle MTU calculation in forwading
Valentin Vidic (1):
s390/sclp_vt220: fix console name to match device
Valentine Barshak (1):
arm64: dts: renesas: v3msk: Fix memory size
Vineeth Vijayan (1):
s390/cio: dont call css_wait_for_slow_path() inside a lock
Wang Hai (1):
samples/bpf: Fix the error return code of xdp_redirect's main()
Willy Tarreau (1):
ipv6: use prandom_u32() for ID generation
Wolfram Sang (1):
mmc: core: clear flags before allowing to retune
Xianting Tian (1):
virtio_net: Remove BUG() to avoid machine dead
Xiao Yang (1):
RDMA/rxe: Don't overwrite errno from ib_umem_get()
Xie Yongji (4):
drm/virtio: Fix double free on probe failure
virtio-blk: Fix memory leak among suspend/resume procedure
virtio_net: Fix error handling in virtnet_restore()
virtio_console: Assure used length from device is limited
Yang Jihong (1):
arm_pmu: Fix write counter incorrect in ARMv7 big-endian mode
Yang Li (1):
ath10k: Fix an error code in ath10k_add_interface()
Yang Yingliang (10):
ext4: return error code when ext4_fill_flex_info() fails
drm/rockchip: cdn-dp-core: add missing clk_disable_unprepare() on error in cdn_dp_grf_write()
ASoC: hisilicon: fix missing clk_disable_unprepare() on error in hi6210_i2s_startup()
mtd: rawnand: marvell: add missing clk_disable_unprepare() on error in marvell_nfc_resume()
net: bcmgenet: check return value after calling platform_get_resource()
net: mvpp2: check return value after calling platform_get_resource()
net: micrel: check return value after calling platform_get_resource()
fjes: check return value after calling platform_get_resource()
ALSA: ppc: fix error return code in snd_pmac_probe()
usb: gadget: hid: fix error return code in hid_bind()
Yizhuo Zhai (1):
Input: hideep - fix the uninitialized use in hideep_nvm_unlock()
Yoshihiro Shimoda (1):
serial: sh-sci: Stop dmaengine transfer in sci_stop_tx()
Yu Kuai (1):
char: pcmcia: error out if 'num_bytes_read' is greater than 4 in set_protocol()
Yu Liu (1):
Bluetooth: Fix the HCI to MGMT status conversion table
YueHaibing (1):
hv_utils: Fix passing zero to 'PTR_ERR' warning
Yufen Yu (1):
ALSA: ac97: fix PM reference leak in ac97_bus_remove()
Yun Zhou (2):
seq_buf: Make trace_seq_putmem_hex() support data longer than 8
seq_buf: Fix overflow in seq_buf_putmem_hex()
Zhang Xiaoxu (2):
SUNRPC: Fix the batch tasks count wraparound.
SUNRPC: Should wake up the privileged task firstly.
Zhang Yi (5):
ext4: cleanup in-core orphan list if ext4_truncate() failed to get a transaction handle
ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit
ext4: remove check for zero nr_to_scan in ext4_es_scan()
blk-wbt: introduce a new disable state to prevent false positive by rwb_enabled()
blk-wbt: make sure throttle is enabled properly
Zhangjiantao (Kirin, nanjing) (1):
xhci: solve a double free problem while doing s4
Zhen Lei (13):
crypto: ux500 - Fix error return code in hash_hw_final()
media: tc358743: Fix error return code in tc358743_probe_of()
mmc: usdhi6rol0: fix error return code in usdhi6_probe()
ehea: fix error return code in ehea_restart_qps()
ssb: Fix error return code in ssb_bus_scan()
Input: hil_kbd - fix error return code in hil_dev_connect()
visorbus: fix error return code in visorchipset_init()
scsi: mpt3sas: Fix error return value in _scsih_expander_add()
leds: as3645a: Fix error return code in as3645a_parse_node()
ASoC: soc-core: Fix the error return code in snd_soc_of_parse_audio_routing()
um: fix error return code in slip_open()
um: fix error return code in winch_tramp()
ALSA: isa: Fix error return code in snd_cmi8330_probe()
Zheyu Ma (4):
media: bt8xx: Fix a missing check bug in bt878_probe
mmc: via-sdmmc: add a check against NULL pointer dereference
atm: nicstar: use 'dma_free_coherent' instead of 'kfree'
atm: nicstar: register the interrupt handler in the right place
Zhihao Cheng (2):
tools/bpftool: Fix error return code in do_batch()
ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode
Zou Wei (13):
regulator: uniphier: Add missing MODULE_DEVICE_TABLE
atm: iphase: fix possible use-after-free in ia_module_exit()
mISDN: fix possible use-after-free in HFC_cleanup()
atm: nicstar: Fix possible use-after-free in nicstar_cleanup()
cw1200: add missing MODULE_DEVICE_TABLE
pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE
watchdog: Fix possible use-after-free in wdt_startup()
watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff()
watchdog: Fix possible use-after-free by calling del_timer_sync()
PCI: tegra: Add missing MODULE_DEVICE_TABLE
power: supply: charger-manager: add missing MODULE_DEVICE_TABLE
power: supply: ab8500: add missing MODULE_DEVICE_TABLE
frank zago (1):
iio: light: tcs3472: do not free unallocated IRQ
zhangyi (F) (1):
block_dump: remove block_dump feature in mark_inode_dirty()
Íñigo Huguet (2):
sfc: avoid double pci_remove of VFs
sfc: error code if SRIOV cannot be disabled
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/evm +24 -2
@@ -42,8 +42,30 @@ Description: modification of EVM-protected metadata and disable all further modification of policy - Note that once a key has been loaded, it will no longer be - possible to enable metadata modification. + Echoing a value is additive, the new value is added to the + existing initialization flags. + + For example, after:: + + echo 2 ><securityfs>/evm + + another echo can be performed:: + + echo 1 ><securityfs>/evm + + and the resulting value will be 3. + + Note that once an HMAC key has been loaded, it will no longer + be possible to enable metadata modification. Signaling that an + HMAC key has been loaded will clear the corresponding flag. + For example, if the current value is 6 (2 and 4 set):: + + echo 1 ><securityfs>/evm + + will set the new value to 3 (4 cleared). + + Loading an HMAC key is the only way to disable metadata + modification. Until key loading has been signaled EVM can not create or validate the 'security.evm' xattr, but returns
Documentation/admin-guide/kernel-parameters.txt +6 -0
@@ -558,6 +558,12 @@ loops can be debugged more effectively on production systems. + clocksource.max_cswd_read_retries= [KNL] + Number of clocksource_watchdog() retries due to + external delays before the clock will be marked + unstable. Defaults to three retries, that is, + four attempts to read the clock under test. + clearcpuid=BITNUM[,BITNUM...] [X86] Disable CPUID feature X for the kernel. See arch/x86/include/asm/cpufeatures.h for the valid bit
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 -SUBLEVEL = 197 +SUBLEVEL = 198 EXTRAVERSION = NAME = "People's Front"
arch/arm/boot/dts/am335x-cm-t335.dts +1 -1
@@ -552,7 +552,7 @@ status = "okay"; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&spi0_pins>; - ti,pindir-d0-out-d1-in = <1>; + ti,pindir-d0-out-d1-in; /* WLS1271 WiFi */ wlcore: wlcore@1 { compatible = "ti,wl1271";
arch/arm/boot/dts/am43x-epos-evm.dts +2 -2
@@ -839,7 +839,7 @@ pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi0_pins_default>; pinctrl-1 = <&spi0_pins_sleep>; - ti,pindir-d0-out-d1-in = <1>; + ti,pindir-d0-out-d1-in; }; &spi1 {
@@ -847,7 +847,7 @@ pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi1_pins_default>; pinctrl-1 = <&spi1_pins_sleep>; - ti,pindir-d0-out-d1-in = <1>; + ti,pindir-d0-out-d1-in; }; &usb2_phy1 {
arch/arm/boot/dts/bcm5301x.dtsi +9 -9
@@ -451,27 +451,27 @@ <0x1811b408 0x004>, <0x180293a0 0x01c>; reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg"; - interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, + interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "spi_lr_fullness_reached", + <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "mspi_done", + "mspi_halted", + "spi_lr_fullness_reached", "spi_lr_session_aborted", "spi_lr_impatient", "spi_lr_session_done", - "spi_lr_overhead", - "mspi_done", - "mspi_halted"; + "spi_lr_overread"; clocks = <&iprocmed>; clock-names = "iprocmed"; num-cs = <2>; #address-cells = <1>; #size-cells = <0>; - spi_nor: spi-nor@0 { + spi_nor: flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <20000000>;
arch/arm/boot/dts/exynos5422-odroidhc1.dts +1 -1
@@ -22,7 +22,7 @@ label = "blue:heartbeat"; pwms = <&pwm 2 2000000 0>; pwm-names = "pwm2"; - max_brightness = <255>; + max-brightness = <255>; linux,default-trigger = "heartbeat"; }; };
arch/arm/boot/dts/exynos5422-odroidxu4.dts +1 -1
@@ -24,7 +24,7 @@ label = "blue:heartbeat"; pwms = <&pwm 2 2000000 0>; pwm-names = "pwm2"; - max_brightness = <255>; + max-brightness = <255>; linux,default-trigger = "heartbeat"; }; };
arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi +2 -2
@@ -22,7 +22,7 @@ * Green LED is much brighter than the others * so limit its max brightness */ - max_brightness = <127>; + max-brightness = <127>; linux,default-trigger = "mmc0"; };
@@ -30,7 +30,7 @@ label = "blue:heartbeat"; pwms = <&pwm 2 2000000 0>; pwm-names = "pwm2"; - max_brightness = <255>; + max-brightness = <255>; linux,default-trigger = "heartbeat"; }; };
arch/arm/boot/dts/imx6q-dhcom-som.dtsi +36 -5
84 lines not on this page · raw message
arch/arm/boot/dts/r8a7779-marzen.dts +1 -1
@@ -146,7 +146,7 @@ status = "okay"; clocks = <&mstp1_clks R8A7779_CLK_DU>, <&x3_clk>; - clock-names = "du", "dclkin.0"; + clock-names = "du.0", "dclkin.0"; ports { port@0 {
arch/arm/boot/dts/r8a7779.dtsi +1 -0
@@ -437,6 +437,7 @@ reg = <0xfff80000 0x40000>; interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; clocks = <&mstp1_clks R8A7779_CLK_DU>; + clock-names = "du.0"; power-domains = <&sysc R8A7779_PD_ALWAYS_ON>; status = "disabled";
arch/arm/boot/dts/sama5d4.dtsi +1 -1
@@ -1388,7 +1388,7 @@ 0xffffffff 0x3ffcfe7c 0x1c010101 /* pioA */ 0x7fffffff 0xfffccc3a 0x3f00cc3a /* pioB */ 0xffffffff 0x3ff83fff 0xff00ffff /* pioC */ - 0x0003ff00 0x8002a800 0x00000000 /* pioD */ + 0xb003ff00 0x8002a800 0x00000000 /* pioD */ 0xffffffff 0x7fffffff 0x76fff1bf /* pioE */ >;
arch/arm/kernel/perf_event_v7.c +2 -2
@@ -773,10 +773,10 @@ static inline void armv7pmu_write_counter(struct perf_event *event, u64 value)pr_err ("CPU%u writing wrong counter %d\n" ,smp_processor_id (), idx); }else if (idx ==ARMV7_IDX_CYCLE_COUNTER ) { - asmvolatile ("mcr p15, 0, %0, c9, c13, 0" : :"r" (value)); + asmvolatile ("mcr p15, 0, %0, c9, c13, 0" : :"r" ((u32 )value)); }else {armv7_pmnc_select_counter (idx); - asmvolatile ("mcr p15, 0, %0, c9, c13, 2" : :"r" (value)); + asmvolatile ("mcr p15, 0, %0, c9, c13, 2" : :"r" ((u32 )value)); } }
arch/arm/probes/kprobes/test-thumb.c +5 -5
@@ -444,21 +444,21 @@ void kprobe_thumb32_test_cases(void) "3: mvn r0, r0 \n\t" "2: nop \n\t") - TEST_RX("tbh [pc, r",7, (9f-(1f+4))>>1,"]", + TEST_RX("tbh [pc, r",7, (9f-(1f+4))>>1,", lsl #1]", "9: \n\t" ".short (2f-1b-4)>>1 \n\t" ".short (3f-1b-4)>>1 \n\t" "3: mvn r0, r0 \n\t" "2: nop \n\t") - TEST_RX("tbh [pc, r",12, ((9f-(1f+4))>>1)+1,"]", + TEST_RX("tbh [pc, r",12, ((9f-(1f+4))>>1)+1,", lsl #1]", "9: \n\t" ".short (2f-1b-4)>>1 \n\t" ".short (3f-1b-4)>>1 \n\t" "3: mvn r0, r0 \n\t" "2: nop \n\t") -TEST_RRX ("tbh [r" ,1 ,9f ,", r" ,14 ,1 ,"]" , +TEST_RRX ("tbh [r" ,1 ,9f ,", r" ,14 ,1 ,", lsl #1]" ,"9: \n\t" ".short (2f-1b-4)>>1 \n\t" ".short (3f-1b-4)>>1 \n\t"
@@ -471,10 +471,10 @@ void kprobe_thumb32_test_cases(void) TEST_UNSUPPORTED("strexb r0, r1, [r2]") TEST_UNSUPPORTED("strexh r0, r1, [r2]") - TEST_UNSUPPORTED("strexd r0, r1, [r2]") + TEST_UNSUPPORTED("strexd r0, r1, r2, [r2]") TEST_UNSUPPORTED("ldrexb r0, [r1]") TEST_UNSUPPORTED("ldrexh r0, [r1]") - TEST_UNSUPPORTED("ldrexd r0, [r1]") + TEST_UNSUPPORTED("ldrexd r0, r1, [r1]")TEST_GROUP ("Data-processing (shifted register) and (modified immediate)" )
arch/arm64/boot/dts/marvell/armada-37xx.dtsi +1 -1
@@ -121,7 +121,7 @@ uart0: serial@12000 { compatible = "marvell,armada-3700-uart"; - reg = <0x12000 0x200>; + reg = <0x12000 0x18>; clocks = <&xtalclk>; interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts +1 -1
@@ -24,7 +24,7 @@ memory@48000000 { device_type = "memory"; /* first 128MB is reserved for secure area. */ - reg = <0x0 0x48000000 0x0 0x38000000>; + reg = <0x0 0x48000000 0x0 0x78000000>; }; osc5_clk: osc5-clock {
arch/hexagon/kernel/vmlinux.lds.S +1 -6
@@ -73,13 +73,8 @@ SECTIONS _end = .; - /DISCARD/ : { - EXIT_TEXT - EXIT_DATA - EXIT_CALL - } - STABS_DEBUG DWARF_DEBUG + DISCARDS }
arch/ia64/kernel/mca_drv.c +1 -1
@@ -343,7 +343,7 @@ init_record_index_pools(void)/* - 2 - */ sect_min_size = sal_log_sect_min_sizes[0 ]; -for (i =1 ; i <sizeof sal_log_sect_min_sizes/sizeof (size_t ); i++) +for (i =1 ; i <ARRAY_SIZE (sal_log_sect_min_sizes); i++)if (sect_min_size > sal_log_sect_min_sizes[i]) sect_min_size = sal_log_sect_min_sizes[i];
arch/mips/boot/compressed/Makefile +2 -2
@@ -33,7 +33,7 @@ KBUILD_AFLAGS := $(KBUILD_AFLAGS) -D__ASSEMBLY__ \ KCOV_INSTRUMENT := n # decompressor objects (linked with vmlinuz) -vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o +vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o $(obj)/bswapsi.o ifdef CONFIG_DEBUG_ZBOOT vmlinuzobjs-$(CONFIG_DEBUG_ZBOOT) += $(obj)/dbg.o
@@ -47,7 +47,7 @@ extra-y += uart-ath79.c $(obj)/uart-ath79.c: $(srctree)/arch/mips/ath79/early_printk.c $(call cmd,shipped) -vmlinuzobjs-$(CONFIG_KERNEL_XZ) += $(obj)/ashldi3.o $(obj)/bswapsi.o +vmlinuzobjs-$(CONFIG_KERNEL_XZ) += $(obj)/ashldi3.o extra-y += ashldi3.c $(obj)/ashldi3.c: $(obj)/%.c: $(srctree)/lib/%.c FORCE
arch/mips/boot/compressed/decompress.c +2 -0
@@ -11,6 +11,8 @@* option) any later version. */ +#define DISABLE_BRANCH_PROFILING +#include <linux/types.h> #include <linux/kernel.h> #include <linux/string.h>
arch/mips/include/asm/hugetlb.h +7 -1
@@ -67,7 +67,13 @@ static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,static inline void huge_ptep_clear_flush (struct vm_area_struct *vma,unsigned long addr,pte_t *ptep) { -flush_tlb_page (vma, addr &huge_page_mask (hstate_vma (vma))); +/* +* clear the huge pte entry firstly, so that the other smp threads will +* not get old pte entry after finishing flush_tlb_page and before +* setting new huge pte entry +*/ +huge_ptep_get_and_clear (vma->vm_mm, addr, ptep); +flush_tlb_page (vma, addr); }static inline int huge_pte_none (pte_t pte)
arch/mips/include/asm/mipsregs.h +4 -4
@@ -1986,7 +1986,7 @@ _ASM_MACRO_0(tlbginvf, _ASM_INSN_IF_MIPS(0x4200000c) ({ int __res; \ __asm__ __volatile__( \ ".set\tpush\n\t" \ - ".set\tmips32r2\n\t" \ + ".set\tmips32r5\n\t" \ _ASM_SET_VIRT \ "mfgc0\t%0, " #source ", %1\n\t" \ ".set\tpop" \
@@ -1999,7 +1999,7 @@ _ASM_MACRO_0(tlbginvf, _ASM_INSN_IF_MIPS(0x4200000c) ({ unsigned long long __res; \ __asm__ __volatile__( \ ".set\tpush\n\t" \ - ".set\tmips64r2\n\t" \ + ".set\tmips64r5\n\t" \ _ASM_SET_VIRT \ "dmfgc0\t%0, " #source ", %1\n\t" \ ".set\tpop" \
@@ -2012,7 +2012,7 @@ _ASM_MACRO_0(tlbginvf, _ASM_INSN_IF_MIPS(0x4200000c) do { \ __asm__ __volatile__( \ ".set\tpush\n\t" \ - ".set\tmips32r2\n\t" \ + ".set\tmips32r5\n\t" \ _ASM_SET_VIRT \ "mtgc0\t%z0, " #register ", %1\n\t" \ ".set\tpop" \
@@ -2024,7 +2024,7 @@ do { \ do { \ __asm__ __volatile__( \ ".set\tpush\n\t" \ - ".set\tmips64r2\n\t" \ + ".set\tmips64r5\n\t" \ _ASM_SET_VIRT \ "dmtgc0\t%z0, " #register ", %1\n\t" \ ".set\tpop" \
arch/mips/include/asm/pgalloc.h +7 -3
@@ -93,11 +93,15 @@ do { \static inline pmd_t *pmd_alloc_one (struct mm_struct *mm,unsigned long address) { -pmd_t *pmd; +pmd_t *pmd =NULL ; +struct page *pg; - pmd = (pmd_t *)__get_free_pages (GFP_KERNEL ,PMD_ORDER ); -if (pmd) + pg =alloc_pages (GFP_KERNEL | __GFP_ACCOUNT,PMD_ORDER ); +if (pg) { +pgtable_pmd_page_ctor (pg); + pmd = (pmd_t *)page_address (pg);pmd_init ((unsigned long )pmd, (unsigned long )invalid_pte_table); + }return pmd; }
arch/mips/vdso/vdso.h +1 -1
@@ -81,7 +81,7 @@ static inline const union mips_vdso_data *get_vdso_data(void)static inline void __iomem *get_gic (const union mips_vdso_data *data) { -return (void __iomem *)data -PAGE_SIZE ; +return (void __iomem *)((unsigned long )data &PAGE_MASK ) -PAGE_SIZE ; }#endif /* CONFIG_CLKSRC_MIPS_GIC */
arch/powerpc/boot/devtree.c +34 -25
165 lines not on this page · raw message
arch/powerpc/boot/ns16550.c +7 -2
@@ -15,6 +15,7 @@#include "stdio.h" #include "io.h" #include "ops.h" +#include "of.h" #define UART_DLL 0/* Out: Divisor Latch Low */ #define UART_DLM 1/* Out: Divisor Latch High */
@@ -58,16 +59,20 @@ int ns16550_console_init(void *devp, struct serial_console_data *scdp)int n;u32 reg_offset; -if (dt_get_virtual_reg (devp, (void **)®_base,1 ) <1 ) +if (dt_get_virtual_reg (devp, (void **)®_base,1 ) <1 ) { +printf ("virt reg parse fail...\r\n" );return -1 ; + } n =getprop (devp,"reg-offset" , ®_offset,sizeof (reg_offset));if (n ==sizeof (reg_offset)) - reg_base += reg_offset; + reg_base +=be32_to_cpu (reg_offset); n =getprop (devp,"reg-shift" , ®_shift,sizeof (reg_shift));if (n !=sizeof (reg_shift)) reg_shift =0 ; +else + reg_shift =be32_to_cpu (reg_shift); scdp->open = ns16550_open; scdp->putc = ns16550_putc;
arch/powerpc/include/asm/barrier.h +2 -0
@@ -44,6 +44,8 @@# define SMPWMB eieio#endif +/* clang defines this macro for a builtin, which will not work with runtime patching */ +#undef __lwsync#define __lwsync () __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")#define dma_rmb () __lwsync()#define dma_wmb () __asm__ __volatile__ (stringify_in_c(SMPWMB) : : :"memory")
arch/powerpc/include/asm/ps3.h +2 -0
@@ -83,6 +83,7 @@ struct ps3_dma_region_ops;* @bus_addr: The 'translated' bus address of the region. * @len: The length in bytes of the region. * @offset: The offset from the start of memory of the region. +* @dma_mask: Device dma_mask. * @ioid: The IOID of the device who owns this region * @chunk_list: Opaque variable used by the ioc page manager. * @region_ops: struct ps3_dma_region_ops - dma region operations
@@ -97,6 +98,7 @@ struct ps3_dma_region {enum ps3_dma_region_type region_type;unsigned long len;unsigned long offset; +u64 dma_mask;/* driver variables (set by ps3_dma_region_create) */ unsigned long bus_addr;
arch/powerpc/kernel/smp.c +11 -0
@@ -570,6 +570,8 @@ static void nmi_stop_this_cpu(struct pt_regs *regs)/* * IRQs are already hard disabled by the smp_handle_nmi_ipi. */ +set_cpu_online (smp_processor_id (), false); +spin_begin ();while (1 )spin_cpu_relax ();
@@ -585,6 +587,15 @@ void smp_send_stop(void)static void stop_this_cpu (void *dummy) {hard_irq_disable (); + +/* +* Offlining CPUs in stop_this_cpu can result in scheduler warnings, +* (see commit de6e5d38417e), but printk_safe_flush_on_panic() wants +* to know other CPUs are offline before it breaks locks to flush +* printk buffers, in case we panic()ed while holding the lock. +*/ +set_cpu_online (smp_processor_id (), false); +spin_begin ();while (1 )spin_cpu_relax ();
arch/powerpc/kernel/stacktrace.c +21 -6
@@ -19,6 +19,7 @@#include <asm/ptrace.h> #include <asm/processor.h> #include <linux/ftrace.h> +#include <linux/delay.h> #include <asm/kprobes.h> #include <asm/paca.h>
@@ -204,17 +205,31 @@ static void handle_backtrace_ipi(struct pt_regs *regs)static void raise_backtrace_ipi (cpumask_t *mask) { +struct paca_struct *p;unsigned int cpu; +u64 delay_us;for_each_cpu (cpu, mask) { -if (cpu ==smp_processor_id ()) +if (cpu ==smp_processor_id ()) {handle_backtrace_ipi (NULL ); -else -smp_send_safe_nmi_ipi (cpu, handle_backtrace_ipi,5 *USEC_PER_SEC ); - } +continue ; + } -for_each_cpu (cpu, mask) { -struct paca_struct *p = paca_ptrs[cpu]; + delay_us =5 *USEC_PER_SEC ; + +if (smp_send_safe_nmi_ipi (cpu, handle_backtrace_ipi, delay_us)) { +// Now wait up to 5s for the other CPU to do its backtrace +while (cpumask_test_cpu (cpu, mask) && delay_us) { +udelay (1 ); + delay_us--; + } + +// Other CPU cleared itself from the mask +if (delay_us) +continue ; + } + + p = paca_ptrs[cpu];cpumask_clear_cpu (cpu, mask);
arch/powerpc/platforms/ps3/mm.c +12 -0
@@ -18,6 +18,7 @@* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include <linux/dma-mapping.h> #include <linux/kernel.h> #include <linux/export.h> #include <linux/memblock.h>
@@ -1130,6 +1131,7 @@ int ps3_dma_region_init(struct ps3_system_bus_device *dev, enum ps3_dma_region_type region_type, void *addr, unsigned long len) { unsigned long lpar_addr; +int result; lpar_addr = addr ?ps3_mm_phys_to_lpar (__pa (addr)) :0 ;
@@ -1141,6 +1143,16 @@ int ps3_dma_region_init(struct ps3_system_bus_device *dev, r->offset -= map.r1.offset; r->len = len ? len :_ALIGN_UP (map.total,1 << r->page_size); + dev->core.dma_mask = &r->dma_mask; + + result =dma_set_mask_and_coherent (&dev->core,DMA_BIT_MASK (32 )); + +if (result <0 ) { +dev_err (&dev->core,"%s:%d: dma_set_mask_and_coherent failed: %d\n" , + __func__, __LINE__, result); +return result; + } +switch (dev->dev_type) {case PS3_DEVICE_TYPE_SB : r->region_ops = (USE_DYNAMIC_DMA )
arch/s390/Kconfig +1 -1
@@ -867,7 +867,7 @@ config CMM_IUCV config APPLDATA_BASE def_bool n prompt "Linux - VM Monitor Stream, base infrastructure" - depends on PROC_FS + depends on PROC_SYSCTL help This provides a kernel interface for creating and updating z/VM APPLDATA monitor records. The monitor records are updated at certain time
arch/s390/kernel/setup.c +1 -1
@@ -141,7 +141,7 @@ static void __init set_preferred_console(void)else if (CONSOLE_IS_3270 )add_preferred_console ("tty3270" ,0 ,NULL );else if (CONSOLE_IS_VT220 ) -add_preferred_console ("ttyS" ,1 ,NULL ); +add_preferred_console ("ttysclp" ,0 ,NULL );else if (CONSOLE_IS_HVC )add_preferred_console ("hvc" ,0 ,NULL ); }
arch/um/drivers/chan_user.c +2 -1
@@ -256,7 +256,8 @@ static int winch_tramp(int fd, struct tty_port *port, int *fd_out, goto out_close; } -if (os_set_fd_block (*fd_out,0 )) { + err =os_set_fd_block (*fd_out,0 ); +if (err) {printk (UM_KERN_ERR "winch_tramp: failed to set thread_fd " "non-blocking.\n" ); goto out_close;
arch/um/drivers/slip_user.c +2 -1
@@ -145,7 +145,8 @@ static int slip_open(void *data) } sfd = err; -if (set_up_tty (sfd)) + err =set_up_tty (sfd); +if (err) goto out_close2; pri->slave = sfd;
arch/x86/include/asm/fpu/internal.h +12 -7
@@ -103,6 +103,7 @@ static inline void fpstate_init_fxstate(struct fxregs_state *fx) }extern void fpstate_sanitize_xstate (struct fpu *fpu); +/* Returns 0 or the negated trap number, which results in -EFAULT for #PF */ #define user_insn(insn, output, input...) \ ({ \ int err; \
@@ -110,14 +111,14 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);might_fault (); \ \ asm volatile(ASM_STAC "\n" \ - "1:" #insn "\n\t" \ + "1: " #insn "\n" \ "2: " ASM_CLAC "\n" \ ".section .fixup,\"ax\"\n" \ - "3: movl $-1,%[err]\n" \ + "3: negl %%eax\n" \ " jmp 2b\n" \ ".previous\n" \ - _ASM_EXTABLE(1b, 3b) \ - : [err] "=r" (err), output \ + _ASM_EXTABLE_FAULT(1b, 3b) \ + : [err] "=a" (err), output \ : "0"(0), input); \ err; \ })
@@ -221,16 +222,20 @@ static inline void copy_fxregs_to_kernel(struct fpu *fpu)#define XRSTOR ".byte " REX_PREFIX "0x0f,0xae,0x2f"#define XRSTORS ".byte " REX_PREFIX "0x0f,0xc7,0x1f" +/* +* After this @err contains 0 on success or the negated trap number when +* the operation raises an exception. For faults this results in -EFAULT. +*/ #define XSTATE_OP (op, st, lmask, hmask, err) \ asm volatile("1:" op "\n\t" \ "xor %[err], %[err]\n" \ "2:\n\t" \ ".pushsection .fixup,\"ax\"\n\t" \ - "3: movl $-2,%[err]\n\t" \ + "3: negl %%eax\n\t" \ "jmp 2b\n\t" \ ".popsection\n\t" \ - _ASM_EXTABLE(1b, 3b) \ - : [err] "=r" (err) \ + _ASM_EXTABLE_FAULT(1b, 3b) \ + : [err] "=a" (err) \ : "D" (st), "m" (*st), "a" (lmask), "d" (hmask) \ : "memory")
arch/x86/kernel/fpu/regset.c +1 -1
@@ -128,7 +128,7 @@ int xstateregs_set(struct task_struct *target, const struct user_regset *regset,/* * A whole standard-format XSAVE buffer is needed: */ -if ((pos !=0 ) || (count < fpu_user_xstate_size)) +if (pos !=0 || count != fpu_user_xstate_size)return -EFAULT ; xsave = &fpu->state.xsave;
arch/x86/kvm/cpuid.c +7 -1
@@ -666,8 +666,14 @@ static inline int __do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function,unsigned virt_as =max ((entry->eax >>8 ) &0xff ,48U );unsigned phys_as = entry->eax &0xff ; -if (!g_phys_as) +/* +* Use bare metal's MAXPHADDR if the CPU doesn't report guest +* MAXPHYADDR separately, or if TDP (NPT) is disabled, as the +* guest version "applies only to guests using nested paging". +*/ +if (!g_phys_as || !tdp_enabled) g_phys_as = phys_as; + entry->eax = g_phys_as | (virt_as <<8 ); entry->edx =0 ;/*
arch/x86/kvm/x86.c +2 -0
@@ -7772,6 +7772,8 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)set_debugreg (vcpu->arch.eff_db[3 ],3 );set_debugreg (vcpu->arch.dr6,6 ); vcpu->arch.switch_db_regs &= ~KVM_DEBUGREG_RELOAD ; + }else if (unlikely (hw_breakpoint_active ())) { +set_debugreg (0 ,7 ); } kvm_x86_ops->run (vcpu);
block/blk-wbt.c +8 -3
@@ -76,7 +76,8 @@ enum {static inline bool rwb_enabled (struct rq_wb *rwb) { -return rwb && rwb->wb_normal !=0 ; +return rwb && rwb->enable_state !=WBT_STATE_OFF_DEFAULT && + rwb->wb_normal !=0 ; }static void wb_timestamp (struct rq_wb *rwb,unsigned long *var)
@@ -703,9 +704,13 @@ void wbt_set_write_cache(struct request_queue *q, bool write_cache_on)void wbt_enable_default (struct request_queue *q) {struct rq_qos *rqos =wbt_rq_qos (q); +/* Throttling already enabled? */ -if (rqos) +if (rqos) { +if (RQWB (rqos)->enable_state ==WBT_STATE_OFF_DEFAULT ) +RQWB (rqos)->enable_state =WBT_STATE_ON_DEFAULT ;return ; + }/* Queue not registered? Maybe shutting down... */ if (!blk_queue_registered (q))
@@ -764,7 +769,7 @@ void wbt_disable_default(struct request_queue *q) rwb =RQWB (rqos);if (rwb->enable_state ==WBT_STATE_ON_DEFAULT ) {blk_stat_deactivate (rwb->cb); - rwb->wb_normal =0 ; + rwb->enable_state =WBT_STATE_OFF_DEFAULT ; } }EXPORT_SYMBOL_GPL (wbt_disable_default);
block/blk-wbt.h +1 -0
@@ -34,6 +34,7 @@ enum {enum {WBT_STATE_ON_DEFAULT =1 ,WBT_STATE_ON_MANUAL =2 , +WBT_STATE_OFF_DEFAULT };struct rq_wb {
crypto/shash.c +15 -3
@@ -25,12 +25,24 @@static const struct crypto_type crypto_shash_type; -int shash_no_setkey (struct crypto_shash *tfm,const u8 *key, -unsigned int keylen) +static int shash_no_setkey (struct crypto_shash *tfm,const u8 *key, +unsigned int keylen) {return -ENOSYS ; } -EXPORT_SYMBOL_GPL (shash_no_setkey); + +/* +* Check whether an shash algorithm has a setkey function. +* +* For CFI compatibility, this must not be an inline function. This is because +* when CFI is enabled, modules won't get the same address for shash_no_setkey +* (if it were exported, which inlining would require) as the core kernel will. +*/ +bool crypto_shash_alg_has_setkey (struct shash_alg *alg) +{ +return alg->setkey != shash_no_setkey; +} +EXPORT_SYMBOL_GPL (crypto_shash_alg_has_setkey);static int shash_setkey_unaligned (struct crypto_shash *tfm,const u8 *key,unsigned int keylen)
drivers/acpi/Makefile +5 -0
@@ -8,6 +8,11 @@ ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT # # ACPI Boot-Time Table Parsing # +ifeq ($(CONFIG_ACPI_CUSTOM_DSDT),y) +tables.o: $(src)/../../include/$(subst $\",,$(CONFIG_ACPI_CUSTOM_DSDT_FILE)) ; + +endif + obj-$(CONFIG_ACPI) += tables.o obj-$(CONFIG_X86) += blacklist.o
drivers/acpi/acpi_amba.c +1 -0
@@ -70,6 +70,7 @@ static int amba_handler_attach(struct acpi_device *adev,case IORESOURCE_MEM :if (!address_found) { dev->res = *rentry->res; + dev->res.name =dev_name (&dev->dev); address_found = true; }break ;
drivers/acpi/acpi_video.c +9 -0
@@ -556,6 +556,15 @@ static const struct dmi_system_id video_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V131"), }, }, + { + .callback = video_set_report_key_events, + .driver_data = (void *)((uintptr_t)REPORT_BRIGHTNESS_KEY_EVENTS), + .ident = "Dell Vostro 3350", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3350"), + }, + },/* * Some machines change the brightness themselves when a brightness * hotkey gets pressed, despite us telling them not to. In this case
drivers/acpi/acpica/nsrepair2.c +7 -0
@@ -375,6 +375,13 @@ acpi_ns_repair_CID(struct acpi_evaluate_info *info, (*element_ptr)->common.reference_count = original_ref_count; + +/* +* The original_element holds a reference from the package object +* that represents _HID. Since a new element was created by _HID, +* remove the reference from the _CID package. +*/ +acpi_ut_remove_reference (original_element); } element_ptr++;
drivers/acpi/bus.c +1 -0
@@ -1240,6 +1240,7 @@ static int __init acpi_init(void)init_acpi_device_notify (); result =acpi_bus_init ();if (result) { +kobject_put (acpi_kobj);disable_acpi ();return result; }
drivers/acpi/device_sysfs.c +1 -1
@@ -452,7 +452,7 @@ static ssize_t description_show(struct device *dev, (wchar_t *)acpi_dev->pnp.str_obj->buffer.pointer, acpi_dev->pnp.str_obj->buffer.length,UTF16_LITTLE_ENDIAN , buf, - PAGE_SIZE); + PAGE_SIZE - 1); buf[result++] ='\n' ;
drivers/acpi/ec.c +16 -0
@@ -1904,6 +1904,22 @@ static const struct dmi_system_id ec_dmi_table[] __initconst = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), DMI_MATCH(DMI_PRODUCT_NAME, "GL702VMK"),}, NULL}, { + ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X505BA", { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "X505BA"),}, NULL}, + { + ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X505BP", { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "X505BP"),}, NULL}, + { + ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X542BA", { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "X542BA"),}, NULL}, + { + ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X542BP", { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "X542BP"),}, NULL}, + { ec_honor_ecdt_gpe, "ASUS X550VXK", { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), DMI_MATCH(DMI_PRODUCT_NAME, "X550VXK"),}, NULL},
drivers/acpi/processor_idle.c +40 -0
@@ -29,6 +29,7 @@#include <linux/acpi.h> #include <linux/dmi.h> #include <linux/sched.h> /* need_resched() */ +#include <linux/sort.h> #include <linux/tick.h> #include <linux/cpuidle.h> #include <linux/cpu.h>
@@ -544,10 +545,37 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr,return ; } +static int acpi_cst_latency_cmp (const void *a,const void *b) +{ +const struct acpi_processor_cx *x = a, *y = b; + +if (!(x->valid && y->valid)) +return 0 ; +if (x->latency > y->latency) +return 1 ; +if (x->latency < y->latency) +return -1 ; +return 0 ; +} +static void acpi_cst_latency_swap (void *a,void *b,int n) +{ +struct acpi_processor_cx *x = a, *y = b; +u32 tmp; + +if (!(x->valid && y->valid)) +return ; + tmp = x->latency; + x->latency = y->latency; + y->latency = tmp; +} +static int acpi_processor_power_verify (struct acpi_processor *pr) {unsigned int i;unsigned int working =0 ; +unsigned int last_latency =0 ; +unsigned int last_type =0 ; +bool buggy_latency = false; pr->power.timer_broadcast_on_state =INT_MAX ;
@@ -571,12 +599,24 @@ static int acpi_processor_power_verify(struct acpi_processor *pr) }if (!cx->valid)continue ; +if (cx->type >= last_type && cx->latency < last_latency) + buggy_latency = true; + last_latency = cx->latency; + last_type = cx->type;lapic_timer_check_state (i, pr, cx);tsc_check_state (cx->type); working++; } +if (buggy_latency) { +pr_notice ("FW issue: working around C-state latencies out of order\n" ); +sort (&pr->power.states[1 ], max_cstate, +sizeof (struct acpi_processor_cx ), + acpi_cst_latency_cmp, + acpi_cst_latency_swap); + } +lapic_timer_propagate_broadcast (pr);return (working);
drivers/ata/ahci_sunxi.c +1 -1
@@ -165,7 +165,7 @@ static void ahci_sunxi_start_engine(struct ata_port *ap) }static const struct ata_port_info ahci_sunxi_port_info = { - .flags =AHCI_FLAG_COMMON |ATA_FLAG_NCQ , + .flags =AHCI_FLAG_COMMON |ATA_FLAG_NCQ |ATA_FLAG_NO_DIPM , .pio_mask =ATA_PIO4 , .udma_mask =ATA_UDMA6 , .port_ops = &ahci_platform_ops,
drivers/ata/pata_ep93xx.c +1 -1
@@ -927,7 +927,7 @@ static int ep93xx_pata_probe(struct platform_device *pdev)/* INT[3] (IRQ_EP93XX_EXT3) line connected as pull down */ irq =platform_get_irq (pdev,0 );if (irq <0 ) { - err = -ENXIO ; + err = irq; goto err_rel_gpio; }
drivers/ata/pata_octeon_cf.c +3 -2
@@ -898,10 +898,11 @@ static int octeon_cf_probe(struct platform_device *pdev)return -EINVAL ; } - irq_handler = octeon_cf_interrupt; i =platform_get_irq (dma_dev,0 ); -if (i >0 ) +if (i >0 ) { irq = i; + irq_handler = octeon_cf_interrupt; + } }of_node_put (dma_node); }
drivers/ata/pata_rb532_cf.c +4 -2
@@ -120,10 +120,12 @@ static int rb532_pata_driver_probe(struct platform_device *pdev) } irq =platform_get_irq (pdev,0 ); -if (irq <=0 ) { +if (irq <0 ) {dev_err (&pdev->dev,"no IRQ resource found\n" ); -return -ENOENT ; +return irq; } +if (!irq) +return -EINVAL ; pdata =dev_get_platdata (&pdev->dev);if (!pdata) {
drivers/ata/sata_highbank.c +4 -2
@@ -483,10 +483,12 @@ static int ahci_highbank_probe(struct platform_device *pdev) } irq =platform_get_irq (pdev,0 ); -if (irq <=0 ) { +if (irq <0 ) {dev_err (dev,"no irq\n" ); -return -EINVAL ; +return irq; } +if (!irq) +return -EINVAL ; hpriv =devm_kzalloc (dev,sizeof (*hpriv),GFP_KERNEL );if (!hpriv) {
drivers/atm/iphase.c +1 -1
@@ -3301,7 +3301,7 @@ static void __exit ia_module_exit(void) {pci_unregister_driver (&ia_driver); -del_timer (&ia_timer); +del_timer_sync (&ia_timer); }module_init (ia_module_init);
drivers/atm/nicstar.c +14 -12
@@ -296,7 +296,7 @@ static void __exit nicstar_cleanup(void) {XPRINTK ("nicstar: nicstar_cleanup() called.\n" ); -del_timer (&ns_timer); +del_timer_sync (&ns_timer);pci_unregister_driver (&nicstar_driver);
@@ -524,6 +524,15 @@ static int ns_init_card(int i, struct pci_dev *pcidev)/* Set the VPI/VCI MSb mask to zero so we can receive OAM cells */ writel (0x00000000 , card->membase +VPM ); + card->intcnt =0 ; +if (request_irq + (pcidev->irq, &ns_irq_handler,IRQF_SHARED ,"nicstar" , card) !=0 ) { +pr_err ("nicstar%d: can't allocate IRQ %d.\n" , i, pcidev->irq); + error =9 ; +ns_init_card_error (card, error); +return error; + } +/* Initialize TSQ */ card->tsq.org = dma_alloc_coherent(&card->pcidev->dev, NS_TSQSIZE + NS_TSQ_ALIGNMENT,
@@ -750,15 +759,6 @@ static int ns_init_card(int i, struct pci_dev *pcidev) card->efbie =1 ; - card->intcnt =0 ; -if (request_irq - (pcidev->irq, &ns_irq_handler,IRQF_SHARED ,"nicstar" , card) !=0 ) { -printk ("nicstar%d: can't allocate IRQ %d.\n" , i, pcidev->irq); - error =9 ; -ns_init_card_error (card, error); -return error; - } -/* Register device */ card->atmdev =atm_dev_register ("nicstar" , &card->pcidev->dev, &atm_ops,-1 ,NULL );
@@ -836,10 +836,12 @@ static void ns_init_card_error(ns_dev *card, int error)dev_kfree_skb_any (hb); }if (error >=12 ) { -kfree (card->rsq.org); +dma_free_coherent (&card->pcidev->dev,NS_RSQSIZE +NS_RSQ_ALIGNMENT , + card->rsq.org, card->rsq.dma); }if (error >=11 ) { -kfree (card->tsq.org); +dma_free_coherent (&card->pcidev->dev,NS_TSQSIZE +NS_TSQ_ALIGNMENT , + card->tsq.org, card->tsq.dma); }if (error >=10 ) {free_irq (card->pcidev->irq, card);
drivers/block/virtio_blk.c +2 -0
@@ -944,6 +944,8 @@ static int virtblk_freeze(struct virtio_device *vdev)blk_mq_quiesce_queue (vblk->disk->queue); vdev->config->del_vqs (vdev); +kfree (vblk->vqs); +return 0 ; }
drivers/bluetooth/btusb.c +5 -0
@@ -2595,6 +2595,11 @@ static int btusb_setup_qca_download_fw(struct hci_dev *hdev, sent += size; count -= size; +/* ep2 need time to switch from function acl to function dfu, +* so we add 20ms delay here. +*/ +msleep (20 ); +while (count) { size =min_t (size_t, count,QCA_DFU_PACKET_LEN );
drivers/char/ipmi/ipmi_watchdog.c +12 -10
@@ -366,16 +366,18 @@ static int __ipmi_set_timeout(struct ipmi_smi_msg *smi_msg, data[0 ] =0 ;WDOG_SET_TIMER_USE (data[0 ],WDOG_TIMER_USE_SMS_OS ); -if ((ipmi_version_major >1 ) - || ((ipmi_version_major ==1 ) && (ipmi_version_minor >=5 ))) { -/* This is an IPMI 1.5-only feature. */ - data[0 ] |=WDOG_DONT_STOP_ON_SET ; - }else if (ipmi_watchdog_state !=WDOG_TIMEOUT_NONE ) { -/* -* In ipmi 1.0, setting the timer stops the watchdog, we -* need to start it back up again. -*/ - hbnow =1 ; +if (ipmi_watchdog_state !=WDOG_TIMEOUT_NONE ) { +if ((ipmi_version_major >1 ) || + ((ipmi_version_major ==1 ) && (ipmi_version_minor >=5 ))) { +/* This is an IPMI 1.5-only feature. */ + data[0 ] |=WDOG_DONT_STOP_ON_SET ; + }else { +/* +* In ipmi 1.0, setting the timer stops the watchdog, we +* need to start it back up again. +*/ + hbnow =1 ; + } } data[1 ] =0 ;
drivers/char/pcmcia/cm4000_cs.c +4 -0
@@ -544,6 +544,10 @@ static int set_protocol(struct cm4000_dev *dev, struct ptsreq *ptsreq)io_read_num_rec_bytes (iobase, &num_bytes_read);if (num_bytes_read >=4 ) {DEBUGP (2 , dev,"NumRecBytes = %i\n" , num_bytes_read); +if (num_bytes_read >4 ) { + rc = -EIO ; + goto exit_setprotocol; + }break ; }mdelay (10 );
drivers/char/virtio_console.c +2 -2
@@ -488,7 +488,7 @@ static struct port_buffer *get_inbuf(struct port *port) buf =virtqueue_get_buf (port->in_vq, &len);if (buf) { - buf->len = len; + buf->len =min_t (size_t, len, buf->size); buf->offset =0 ; port->stats.bytes_received += len; }
@@ -1738,7 +1738,7 @@ static void control_work_handler(struct work_struct *work)while ((buf =virtqueue_get_buf (vq, &len))) {spin_unlock (&portdev->c_ivq_lock); - buf->len = len; + buf->len =min_t (size_t, len, buf->size); buf->offset =0 ;handle_control_message (vq->vdev, portdev, buf);
drivers/clk/renesas/r8a77995-cpg-mssr.c +1 -0
@@ -73,6 +73,7 @@ static const struct cpg_core_clk r8a77995_core_clks[] __initconst = {DEF_FIXED (".sdsrc" ,CLK_SDSRC ,CLK_PLL1 ,2 ,1 ),/* Core Clock Outputs */ +DEF_FIXED ("za2" ,R8A77995_CLK_ZA2 ,CLK_PLL0D3 ,2 ,1 ),DEF_FIXED ("z2" ,R8A77995_CLK_Z2 ,CLK_PLL0D3 ,1 ,1 ),DEF_FIXED ("ztr" ,R8A77995_CLK_ZTR ,CLK_PLL1 ,6 ,1 ), DEF_FIXED("zt", R8A77995_CLK_ZT, CLK_PLL1, 4, 1),
drivers/clk/tegra/clk-pll.c +4 -2
@@ -1091,7 +1091,8 @@ static int clk_pllu_enable(struct clk_hw *hw)if (pll->lock)spin_lock_irqsave (pll->lock, flags); -_clk_pll_enable (hw); +if (!clk_pll_is_enabled (hw)) +_clk_pll_enable (hw); ret =clk_pll_wait_for_lock (pll);if (ret <0 )
@@ -1708,7 +1709,8 @@ static int clk_pllu_tegra114_enable(struct clk_hw *hw)if (pll->lock)spin_lock_irqsave (pll->lock, flags); -_clk_pll_enable (hw); +if (!clk_pll_is_enabled (hw)) +_clk_pll_enable (hw); ret =clk_pll_wait_for_lock (pll);if (ret <0 )
drivers/clocksource/arm_arch_timer.c +1 -1
@@ -334,7 +334,7 @@ static u64 notrace arm64_858921_read_cntvct_el0(void)do { \ _val =read_sysreg (reg); \ _retries--; \ - }while (((_val +1 ) &GENMASK (9 ,0 )) <=1 && _retries); \ + }while (((_val +1 ) &GENMASK (8 ,0 )) <=1 && _retries); \ \WARN_ON_ONCE (!_retries); \ _val; \
drivers/crypto/ccp/sp-pci.c +4 -2
@@ -216,7 +216,7 @@ static int sp_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)if (ret) {dev_err (dev,"dma_set_mask_and_coherent failed (%d)\n" , ret); - goto e_err; + goto free_irqs; } }
@@ -224,12 +224,14 @@ static int sp_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) ret =sp_init (sp);if (ret) - goto e_err; + goto free_irqs;dev_notice (dev,"enabled\n" );return 0 ; +free_irqs: +sp_free_irqs (sp); e_err:dev_notice (dev,"initialization failed\n" );return ret;
drivers/crypto/ixp4xx_crypto.c +1 -1
@@ -332,7 +332,7 @@ static void free_buf_chain(struct device *dev, struct buffer_desc *buf,u32 phys) buf1 = buf->next; phys1 = buf->phys_next; -dma_unmap_single (dev, buf->phys_next, buf->buf_len, buf->dir); +dma_unmap_single (dev, buf->phys_addr, buf->buf_len, buf->dir);dma_pool_free (buffer_pool, buf, phys); buf = buf1; phys = phys1;
drivers/crypto/nx/nx-842-pseries.c +6 -3
@@ -553,13 +553,15 @@ static int nx842_OF_set_defaults(struct nx842_devdata *devdata)* The status field indicates if the device is enabled when the status * is 'okay'. Otherwise the device driver will be disabled. * -* @prop - struct property point containing the maxsyncop for the update +* @devdata: struct nx842_devdata to use for dev_info +* @prop: struct property point containing the maxsyncop for the update * * Returns: * 0 - Device is available * -ENODEV - Device is not available */ -static int nx842_OF_upd_status (struct property *prop) +static int nx842_OF_upd_status (struct nx842_devdata *devdata, +struct property *prop) {const char *status = (const char *)prop->value;
@@ -773,7 +775,7 @@ static int nx842_OF_upd(struct property *new_prop) goto out;/* Perform property updates */ - ret =nx842_OF_upd_status (status); + ret =nx842_OF_upd_status (new_devdata, status);if (ret) goto error_out;
@@ -1086,6 +1088,7 @@ static const struct vio_device_id nx842_vio_driver_ids[] = { {"ibm,compression-v1", "ibm,compression"}, {"", ""}, }; +MODULE_DEVICE_TABLE (vio, nx842_vio_driver_ids);static struct vio_driver nx842_vio_driver = { .name = KBUILD_MODNAME,
drivers/crypto/qat/qat_common/qat_hal.c +5 -1
@@ -1256,7 +1256,11 @@ static int qat_hal_put_rel_wr_xfer(struct icp_qat_fw_loader_handle *handle,pr_err ("QAT: bad xfrAddr=0x%x\n" , xfr_addr);return -EINVAL ; } -qat_hal_rd_rel_reg (handle, ae, ctx,ICP_GPB_REL , gprnum, &gprval); + status =qat_hal_rd_rel_reg (handle, ae, ctx,ICP_GPB_REL , gprnum, &gprval); +if (status) { +pr_err ("QAT: failed to read register" ); +return status; + } gpr_addr =qat_hal_get_reg_addr (ICP_GPB_REL , gprnum); data16low =0xffff & data; data16hi =0xffff & (data >>0x10 );
drivers/crypto/qat/qat_common/qat_uclo.c +0 -1
@@ -385,7 +385,6 @@ static int qat_uclo_init_umem_seg(struct icp_qat_fw_loader_handle *handle,return 0 ; } -#define ICP_DH895XCC_PESRAM_BAR_SIZE 0x80000static int qat_uclo_init_ae_memory (struct icp_qat_fw_loader_handle *handle,struct icp_qat_uof_initmem *init_mem) {
drivers/crypto/ux500/hash/hash_core.c +1 -0
@@ -1007,6 +1007,7 @@ static int hash_hw_final(struct ahash_request *req) goto out; } }else if (req->nbytes ==0 && ctx->keylen >0 ) { + ret = -EPERM ;dev_err (device_data->dev,"%s: Empty message with keylength > 0, NOT supported\n" , __func__); goto out;
drivers/edac/ti_edac.c +1 -0
@@ -197,6 +197,7 @@ static const struct of_device_id ti_edac_of_match[] = { { .compatible = "ti,emif-dra7xx", .data = (void *)EMIF_TYPE_DRA7 }, {}, }; +MODULE_DEVICE_TABLE (of, ti_edac_of_match);static int _emif_get_id (struct device_node *node) {
drivers/extcon/extcon-max8997.c +1 -0
@@ -783,3 +783,4 @@ module_platform_driver(max8997_muic_driver);MODULE_DESCRIPTION ("Maxim MAX8997 Extcon driver" );MODULE_AUTHOR ("Donggeun Kim <[email protected]>" );MODULE_LICENSE ("GPL" ); +MODULE_ALIAS ("platform:max8997-muic" );
drivers/extcon/extcon-sm5502.c +0 -1
@@ -92,7 +92,6 @@ static struct reg_data sm5502_reg_data[] = { | SM5502_REG_INTM2_MHL_MASK, .invert = true, }, - { } };/* List of detectable cables */
drivers/firmware/qemu_fw_cfg.c +3 -5
@@ -296,15 +296,13 @@ static int fw_cfg_do_platform_probe(struct platform_device *pdev)return 0 ; } -static ssize_t fw_cfg_showrev (struct kobject *k,struct attribute *a,char *buf) +static ssize_t fw_cfg_showrev (struct kobject *k,struct kobj_attribute *a, +char *buf) {return sprintf (buf,"%u\n" , fw_cfg_rev); } -static const struct { -struct attribute attr; -ssize_t (*show)(struct kobject *k,struct attribute *a,char *buf); -} fw_cfg_rev_attr = { +static const struct kobj_attribute fw_cfg_rev_attr = { .attr = { .name ="rev" , .mode =S_IRUSR }, .show = fw_cfg_showrev, };
drivers/fsi/fsi-core.c +2 -2
@@ -726,7 +726,7 @@ static ssize_t cfam_read(struct file *filep, char __user *buf, size_t count, rc = count; fail: *offset = off; -return count; +return rc; } static ssize_t cfam_write(struct file *filep, const char __user *buf,
@@ -763,7 +763,7 @@ static ssize_t cfam_write(struct file *filep, const char __user *buf, rc = count; fail: *offset = off; -return count; +return rc; }static loff_t cfam_llseek (struct file *file,loff_t offset,int whence)
drivers/fsi/fsi-sbefifo.c +6 -4
@@ -325,7 +325,8 @@ static int sbefifo_up_write(struct sbefifo *sbefifo, __be32 word)static int sbefifo_request_reset (struct sbefifo *sbefifo) {struct device *dev = &sbefifo->fsi_dev->dev; -u32 status, timeout; +unsigned long end_time; +u32 status;int rc;dev_dbg (dev,"Requesting FIFO reset\n" );
@@ -341,7 +342,8 @@ static int sbefifo_request_reset(struct sbefifo *sbefifo) }/* Wait for it to complete */ -for (timeout =0 ; timeout <SBEFIFO_RESET_TIMEOUT ; timeout++) { + end_time = jiffies +msecs_to_jiffies (SBEFIFO_RESET_TIMEOUT ); +while (!time_after (jiffies, end_time)) { rc =sbefifo_regr (sbefifo,SBEFIFO_UP |SBEFIFO_STS , &status);if (rc) { dev_err(dev, "Failed to read UP fifo status during reset"
@@ -355,7 +357,7 @@ static int sbefifo_request_reset(struct sbefifo *sbefifo)return 0 ; } -msleep (1 ); +cond_resched (); }dev_err (dev,"FIFO reset timed out\n" );
@@ -400,7 +402,7 @@ static int sbefifo_cleanup_hw(struct sbefifo *sbefifo)/* The FIFO already contains a reset request from the SBE ? */ if (down_status &SBEFIFO_STS_RESET_REQ ) {dev_info (dev,"Cleanup: FIFO reset request set, resetting\n" ); - rc =sbefifo_regw (sbefifo,SBEFIFO_UP ,SBEFIFO_PERFORM_RESET ); + rc =sbefifo_regw (sbefifo,SBEFIFO_DOWN ,SBEFIFO_PERFORM_RESET );if (rc) { sbefifo->broken = true;dev_err (dev,"Cleanup: Reset reg write failed, rc=%d\n" , rc);
drivers/fsi/fsi-scom.c +9 -7
@@ -47,9 +47,10 @@#define SCOM_STATUS_PIB_RESP_MASK 0x00007000#define SCOM_STATUS_PIB_RESP_SHIFT 12 -#define SCOM_STATUS_ANY_ERR (SCOM_STATUS_PROTECTION | \ - SCOM_STATUS_PARITY | \ - SCOM_STATUS_PIB_ABORT | \ +#define SCOM_STATUS_FSI2PIB_ERROR (SCOM_STATUS_PROTECTION | \ + SCOM_STATUS_PARITY | \ + SCOM_STATUS_PIB_ABORT) +#define SCOM_STATUS_ANY_ERR (SCOM_STATUS_FSI2PIB_ERROR | \ SCOM_STATUS_PIB_RESP_MASK)/* SCOM address encodings */ #define XSCOM_ADDR_IND_FLAG BIT_ULL(63)
@@ -249,13 +250,14 @@ static int handle_fsi2pib_status(struct scom_device *scom, uint32_t status) {uint32_t dummy =-1 ; -if (status &SCOM_STATUS_PROTECTION ) -return -EPERM ; -if (status &SCOM_STATUS_PARITY ) { +if (status &SCOM_STATUS_FSI2PIB_ERROR )fsi_device_write (scom->fsi_dev,SCOM_FSI2PIB_RESET_REG , &dummy,sizeof (uint32_t )); + +if (status &SCOM_STATUS_PROTECTION ) +return -EPERM ; +if (status &SCOM_STATUS_PARITY )return -EIO ; - }/* Return -EBUSY on PIB abort to force a retry */ if (status &SCOM_STATUS_PIB_ABORT )return -EBUSY ;
drivers/gpio/gpio-pca953x.c +1 -0
@@ -980,6 +980,7 @@ static const struct of_device_id pca953x_dt_ids[] = { { .compatible = "ti,tca6424", .data = OF_953X(24, PCA_INT), }, { .compatible = "onnn,pca9654", .data = OF_953X( 8, PCA_INT), }, + { .compatible = "onnn,pca9655", .data = OF_953X(16, PCA_INT), }, { .compatible = "exar,xra1202", .data = OF_953X( 8, 0), }, { }
drivers/gpio/gpio-zynq.c +4 -1
@@ -919,8 +919,11 @@ static int zynq_gpio_probe(struct platform_device *pdev)static int zynq_gpio_remove (struct platform_device *pdev) {struct zynq_gpio *gpio =platform_get_drvdata (pdev); +int ret; -pm_runtime_get_sync (&pdev->dev); + ret =pm_runtime_get_sync (&pdev->dev); +if (ret <0 ) +dev_warn (&pdev->dev,"pm_runtime_get_sync() Failed\n" );gpiochip_remove (&gpio->chip);clk_disable_unprepare (gpio->clk);device_set_wakeup_capable (&pdev->dev,0 );
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +1 -1
@@ -2069,7 +2069,7 @@ static int amdgpu_device_ip_reinit_early_sriov(struct amdgpu_device *adev) AMD_IP_BLOCK_TYPE_IH, }; -for (i =0 ; i <ARRAY_SIZE (ip_order); i++) { +for (i =0 ; i < adev->num_ip_blocks; i++) {int j;struct amdgpu_ip_block *block;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c +6 -3
@@ -476,10 +476,13 @@ static enum lb_memory_config dpp1_dscl_find_lb_memory_config(struct dcn10_dpp *dint vtaps_c = scl_data->taps.v_taps_c;int ceil_vratio =dc_fixpt_ceil (scl_data->ratios.vert);int ceil_vratio_c =dc_fixpt_ceil (scl_data->ratios.vert_c); -enum lb_memory_config mem_cfg =LB_MEMORY_CONFIG_0 ; -if (dpp->base.ctx->dc->debug.use_max_lb) -return mem_cfg; +if (dpp->base.ctx->dc->debug.use_max_lb) { +if (scl_data->format ==PIXEL_FORMAT_420BPP8 + || scl_data->format ==PIXEL_FORMAT_420BPP10 ) +return LB_MEMORY_CONFIG_3 ; +return LB_MEMORY_CONFIG_0 ; + } dpp->base.caps->dscl_calc_lb_num_partitions ( scl_data,LB_MEMORY_CONFIG_1 , &num_part_y, &num_part_c);
drivers/gpu/drm/amd/display/dc/irq_types.h +1 -1
@@ -155,7 +155,7 @@ enum irq_type };#define DAL_VALID_IRQ_SRC_NUM (src) \ - ((src) <= DAL_IRQ_SOURCES_NUMBER && (src) > DC_IRQ_SOURCE_INVALID) + ((src) < DAL_IRQ_SOURCES_NUMBER && (src) > DC_IRQ_SOURCE_INVALID)/* Number of Page Flip IRQ Sources. */ #define DAL_PFLIP_IRQ_SRC_NUM \
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c +0 -2
@@ -96,8 +96,6 @@ static int mdp4_hw_init(struct msm_kms *kms)if (mdp4_kms->rev >1 )mdp4_write (mdp4_kms,REG_MDP4_RESET_STATUS ,1 ); - dev->mode_config.allow_fb_modifiers = true; - out:pm_runtime_put_sync (dev->dev);
drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c +7 -1
@@ -356,6 +356,12 @@ enum mdp4_pipe mdp4_plane_pipe(struct drm_plane *plane)return mdp4_plane->pipe; } +static const uint64_t supported_format_modifiers[] = { +DRM_FORMAT_MOD_SAMSUNG_64_32_TILE , +DRM_FORMAT_MOD_LINEAR , +DRM_FORMAT_MOD_INVALID +}; +/* initialize plane */ struct drm_plane *mdp4_plane_init (struct drm_device *dev,enum mdp4_pipe pipe_id,bool private_plane)
@@ -384,7 +390,7 @@ struct drm_plane *mdp4_plane_init(struct drm_device *dev, type = private_plane ?DRM_PLANE_TYPE_PRIMARY :DRM_PLANE_TYPE_OVERLAY ; ret =drm_universal_plane_init (dev, plane,0xff , &mdp4_plane_funcs, mdp4_plane->formats, mdp4_plane->nformats, -NULL , type,NULL ); + supported_format_modifiers, type,NULL );if (ret) goto fail;
drivers/gpu/drm/mxsfb/Kconfig +0 -1
@@ -9,7 +9,6 @@ config DRM_MXSFB depends on COMMON_CLK select DRM_MXS select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_KMS_CMA_HELPER select DRM_PANEL help
drivers/gpu/drm/qxl/qxl_dumb.c +2 -0
@@ -57,6 +57,8 @@ int qxl_mode_dumb_create(struct drm_file *file_priv, surf.height = args->height; surf.stride = pitch; surf.format = format; + surf.data =0 ; + r = qxl_gem_object_create_with_handle(qdev, file_priv, QXL_GEM_DOMAIN_VRAM, args->size, &surf, &qobj,
drivers/gpu/drm/radeon/radeon_display.c +1 -0
@@ -1327,6 +1327,7 @@ radeon_user_framebuffer_create(struct drm_device *dev,/* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */ if (obj->import_attach) {DRM_DEBUG_KMS ("Cannot create framebuffer from imported dma_buf\n" ); +drm_gem_object_put (obj);return ERR_PTR (-EINVAL ); }
drivers/gpu/drm/rockchip/cdn-dp-core.c +1 -0
@@ -81,6 +81,7 @@ static int cdn_dp_grf_write(struct cdn_dp_device *dp, ret =regmap_write (dp->grf, reg, val);if (ret) {DRM_DEV_ERROR (dp->dev,"Could not write to GRF: %d\n" , ret); +clk_disable_unprepare (dp->grf_clk);return ret; }
drivers/gpu/drm/virtio/virtgpu_kms.c +1 -0
@@ -237,6 +237,7 @@ int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags) err_vbufs: vgdev->vdev->config->del_vqs (vgdev->vdev); err_vqs: + dev->dev_private =NULL ;kfree (vgdev);return ret; }
drivers/gpu/drm/zte/Kconfig +0 -1
@@ -2,7 +2,6 @@ config DRM_ZTE tristate "DRM Support for ZTE SoCs" depends on DRM && ARCH_ZX select DRM_KMS_CMA_HELPER - select DRM_KMS_FB_HELPER select DRM_KMS_HELPER select SND_SOC_HDMI_CODEC if SND_SOC select VIDEOMODE_HELPERS
drivers/hid/hid-core.c +3 -7
@@ -2124,12 +2124,8 @@ static int hid_device_remove(struct device *dev) {struct hid_device *hdev =to_hid_device (dev);struct hid_driver *hdrv; -int ret =0 ; -if (down_interruptible (&hdev->driver_input_lock)) { - ret = -EINTR ; - goto end; - } +down (&hdev->driver_input_lock); hdev->io_started = false; hdrv = hdev->driver;
@@ -2144,8 +2140,8 @@ static int hid_device_remove(struct device *dev)if (!hdev->io_started)up (&hdev->driver_input_lock); -end: -return ret; + +return 0 ; } static ssize_t modalias_show(struct device *dev, struct device_attribute *a,
drivers/hid/wacom_wac.h +1 -1
@@ -126,7 +126,7 @@#define WACOM_HID_WD_TOUCHONOFF (WACOM_HID_UP_WACOMDIGITIZER | 0x0454)#define WACOM_HID_WD_BATTERY_LEVEL (WACOM_HID_UP_WACOMDIGITIZER | 0x043b)#define WACOM_HID_WD_EXPRESSKEY00 (WACOM_HID_UP_WACOMDIGITIZER | 0x0910) -#define WACOM_HID_WD_EXPRESSKEYCAP00 (WACOM_HID_UP_WACOMDIGITIZER | 0x0950) +#define WACOM_HID_WD_EXPRESSKEYCAP00 (WACOM_HID_UP_WACOMDIGITIZER | 0x0940)#define WACOM_HID_WD_MODE_CHANGE (WACOM_HID_UP_WACOMDIGITIZER | 0x0980)#define WACOM_HID_WD_MUTE_DEVICE (WACOM_HID_UP_WACOMDIGITIZER | 0x0981)#define WACOM_HID_WD_CONTROLPANEL (WACOM_HID_UP_WACOMDIGITIZER | 0x0982)
drivers/hv/hv_util.c +2 -2
@@ -548,8 +548,8 @@ static int hv_timesync_init(struct hv_util_service *srv)*/ hv_ptp_clock =ptp_clock_register (&ptp_hyperv_info,NULL );if (IS_ERR_OR_NULL (hv_ptp_clock)) { -pr_err ("cannot register PTP clock: %ld\n" , -PTR_ERR (hv_ptp_clock)); +pr_err ("cannot register PTP clock: %d\n" , +PTR_ERR_OR_ZERO (hv_ptp_clock)); hv_ptp_clock =NULL ; }
drivers/hwmon/max31722.c +0 -9
@@ -9,7 +9,6 @@* directory of this archive for more details. */ -#include <linux/acpi.h> #include <linux/hwmon.h> #include <linux/hwmon-sysfs.h> #include <linux/kernel.h>
@@ -138,20 +137,12 @@ static const struct spi_device_id max31722_spi_id[] = { {"max31723", 0}, {} }; - -static const struct acpi_device_id __maybe_unused max31722_acpi_id[] = { - {"MAX31722" ,0 }, - {"MAX31723" ,0 }, - {} -}; -MODULE_DEVICE_TABLE (spi, max31722_spi_id);static struct spi_driver max31722_driver = { .driver = { .name ="max31722" , .pm = &max31722_pm_ops, - .acpi_match_table =ACPI_PTR (max31722_acpi_id), }, .probe = max31722_probe, .remove = max31722_remove,
drivers/hwmon/max31790.c +1 -1
@@ -179,7 +179,7 @@ static int max31790_read_fan(struct device *dev, u32 attr, int channel,switch (attr) {case hwmon_fan_input: - sr =get_tach_period (data->fan_dynamics[channel]); + sr =get_tach_period (data->fan_dynamics[channel %NR_CHANNEL ]); rpm =RPM_FROM_REG (data->tach[channel], sr); *val = rpm;return 0 ;
drivers/hwtracing/coresight/coresight-tmc-etf.c +1 -1
@@ -470,7 +470,7 @@ static void tmc_update_etf_buffer(struct coresight_device *csdev, buf_ptr = buf->data_pages[cur] + offset; *buf_ptr =readl_relaxed (drvdata->base +TMC_RRD ); -if (lost && *barrier) { +if (lost && i <CORESIGHT_BARRIER_PKT_SIZE ) { *buf_ptr = *barrier; barrier++; }
drivers/hwtracing/intel_th/core.c +17 -0
@@ -215,6 +215,22 @@ static ssize_t port_show(struct device *dev, struct device_attribute *attr,static DEVICE_ATTR_RO (port); +static void intel_th_trace_prepare (struct intel_th_device *thdev) +{ +struct intel_th_device *hub =to_intel_th_hub (thdev); +struct intel_th_driver *hubdrv =to_intel_th_driver (hub->dev.driver); + +if (hub->type !=INTEL_TH_SWITCH ) +return ; + +if (thdev->type !=INTEL_TH_OUTPUT ) +return ; + +pm_runtime_get_sync (&thdev->dev); + hubdrv->prepare (hub, &thdev->output); +pm_runtime_put (&thdev->dev); +} +static int intel_th_output_activate (struct intel_th_device *thdev) { struct intel_th_driver *thdrv =
@@ -235,6 +251,7 @@ static int intel_th_output_activate(struct intel_th_device *thdev)if (ret) goto fail_put; +intel_th_trace_prepare (thdev);if (thdrv->activate) ret = thdrv->activate (thdev);else
drivers/hwtracing/intel_th/gth.c +16 -0
@@ -513,6 +513,21 @@ static void gth_tscu_resync(struct gth_device *gth)iowrite32 (reg, gth->base +REG_TSCU_TSUCTRL ); } +static void intel_th_gth_prepare (struct intel_th_device *thdev, +struct intel_th_output *output) +{ +struct gth_device *gth =dev_get_drvdata (&thdev->dev); +int count; + +/* +* Wait until the output port is in reset before we start +* programming it. +*/ +for (count =GTH_PLE_WAITLOOP_DEPTH ; + count && !(gth_output_get (gth, output->port) &BIT (5 )); count--) +cpu_relax (); +} +/** * intel_th_gth_enable() - enable tracing to an output device * @thdev: GTH device
@@ -734,6 +749,7 @@ static struct intel_th_driver intel_th_gth_driver = { .assign = intel_th_gth_assign, .unassign = intel_th_gth_unassign, .set_output = intel_th_gth_set_output, + .prepare = intel_th_gth_prepare, .enable = intel_th_gth_enable, .disable = intel_th_gth_disable, .driver = {
drivers/hwtracing/intel_th/intel_th.h +3 -0
@@ -134,6 +134,7 @@ intel_th_output_assigned(struct intel_th_device *thdev)* @remove: remove method * @assign: match a given output type device against available outputs * @unassign: deassociate an output type device from an output port +* @prepare: prepare output port for tracing * @enable: enable tracing for a given output device * @disable: disable tracing for a given output device * @irq: interrupt callback
@@ -155,6 +156,8 @@ struct intel_th_driver { struct intel_th_device *othdev);void (*unassign)(struct intel_th_device *thdev,struct intel_th_device *othdev); +void (*prepare)(struct intel_th_device *thdev, +struct intel_th_output *output);void (*enable)(struct intel_th_device *thdev,struct intel_th_output *output); void (*disable)(struct intel_th_device *thdev,
drivers/i2c/i2c-core-base.c +3 -0
@@ -32,6 +32,7 @@#include <linux/i2c-smbus.h> #include <linux/idr.h> #include <linux/init.h> +#include <linux/interrupt.h> #include <linux/irqflags.h> #include <linux/jump_label.h> #include <linux/kernel.h>
@@ -457,6 +458,8 @@ static void i2c_device_shutdown(struct device *dev) driver =to_i2c_driver (dev->driver);if (driver->shutdown) driver->shutdown (client); +else if (client->irq >0 ) +disable_irq (client->irq); }static void i2c_client_dev_release (struct device *dev)
drivers/iio/accel/bma180.c +7 -3
@@ -121,7 +121,11 @@ struct bma180_data {int scale;int bw;bool pmode; -u8 buff[16 ];/* 3x 16-bit + 8-bit + padding + timestamp */ +/* Ensure timestamp is naturally aligned */ +struct { +s16 chan[4 ]; +s64 timestamp__aligned(8) ; + } scan; };enum bma180_chan {
@@ -667,12 +671,12 @@ static irqreturn_t bma180_trigger_handler(int irq, void *p)mutex_unlock (&data->mutex); goto err; } - ((s16 *)data->buff)[i++] = ret; + data->scan.chan[i++] = ret; }mutex_unlock (&data->mutex); -iio_push_to_buffers_with_timestamp (indio_dev, data->buff, time_ns); +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan, time_ns); err:iio_trigger_notify_done (indio_dev->trig);
drivers/iio/accel/bma220_spi.c +7 -3
@@ -76,7 +76,11 @@ static const int bma220_scale_table[][4] = {struct bma220_data {struct spi_device *spi_device;struct mutex lock; -s8 buffer[16 ];/* 3x8-bit channels + 5x8 padding + 8x8 timestamp */ +struct { +s8 chans[3 ]; +/* Ensure timestamp is naturally aligned. */ +s64 timestamp__aligned(8) ; + } scan;u8 tx_buf[2 ]____cacheline_aligned ; };
@@ -107,12 +111,12 @@ static irqreturn_t bma220_trigger_handler(int irq, void *p)mutex_lock (&data->lock); data->tx_buf[0 ] =BMA220_REG_ACCEL_X |BMA220_READ_MASK ; - ret =spi_write_then_read (spi, data->tx_buf,1 , data->buffer, + ret =spi_write_then_read (spi, data->tx_buf,1 , &data->scan.chans,ARRAY_SIZE (bma220_channels) -1 );if (ret <0 ) goto err; -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan, pf->timestamp); err:mutex_unlock (&data->lock);
drivers/iio/accel/hid-sensor-accel-3d.c +8 -5
@@ -42,8 +42,11 @@ struct accel_3d_state {struct hid_sensor_hub_callbacks callbacks;struct hid_sensor_common common_attributes;struct hid_sensor_hub_attribute_info accel[ACCEL_3D_CHANNEL_MAX ]; -/* Reserve for 3 channels + padding + timestamp */ -u32 accel_val[ACCEL_3D_CHANNEL_MAX +3 ]; +/* Ensure timestamp is naturally aligned */ +struct { +u32 accel_val[3 ]; +s64 timestamp__aligned(8) ; + } scan;int scale_pre_decml;int scale_post_decml;int scale_precision;
@@ -254,8 +257,8 @@ static int accel_3d_proc_event(struct hid_sensor_hub_device *hsdev, accel_state->timestamp =iio_get_time_ns (indio_dev);hid_sensor_push_data (indio_dev, - accel_state->accel_val, -sizeof (accel_state->accel_val), + &accel_state->scan, +sizeof (accel_state->scan), accel_state->timestamp); accel_state->timestamp =0 ;
@@ -280,7 +283,7 @@ static int accel_3d_capture_sample(struct hid_sensor_hub_device *hsdev,case HID_USAGE_SENSOR_ACCEL_Y_AXIS :case HID_USAGE_SENSOR_ACCEL_Z_AXIS : offset = usage_id -HID_USAGE_SENSOR_ACCEL_X_AXIS ; - accel_state->accel_val[CHANNEL_SCAN_INDEX_X + offset] = + accel_state->scan.accel_val[CHANNEL_SCAN_INDEX_X + offset] = *(u32 *)raw_data; ret =0 ;break ;
drivers/iio/accel/kxcjk-1013.c +14 -10
@@ -140,12 +140,23 @@ enum kx_acpi_type { ACPI_KIOX010A, }; +enum kxcjk1013_axis { +AXIS_X , +AXIS_Y , +AXIS_Z , +AXIS_MAX +}; +struct kxcjk1013_data {struct i2c_client *client;struct iio_trigger *dready_trig;struct iio_trigger *motion_trig;struct mutex mutex; -s16 buffer[8 ]; +/* Ensure timestamp naturally aligned */ +struct { +s16 chans[AXIS_MAX ]; +s64 timestamp__aligned(8) ; + } scan;u8 odr_bits;u8 range;int wake_thres;
@@ -159,13 +170,6 @@ struct kxcjk1013_data {enum kx_acpi_type acpi_type; }; -enum kxcjk1013_axis { -AXIS_X , -AXIS_Y , -AXIS_Z , -AXIS_MAX , -}; -enum kxcjk1013_mode {STANDBY ,OPERATION ,
@@ -1086,12 +1090,12 @@ static irqreturn_t kxcjk1013_trigger_handler(int irq, void *p) ret =i2c_smbus_read_i2c_block_data_or_emulated (data->client,KXCJK1013_REG_XOUT_L ,AXIS_MAX *2 , - (u8 *)data->buffer); + (u8 *)data->scan.chans);mutex_unlock (&data->mutex);if (ret <0 ) goto err; -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan, data->timestamp); err:iio_trigger_notify_done (indio_dev->trig);
drivers/iio/accel/stk8312.c +8 -4
@@ -106,7 +106,11 @@ struct stk8312_data {u8 mode;struct iio_trigger *dready_trig;bool dready_trigger_on; -s8 buffer[16 ];/* 3x8-bit channels + 5x8 padding + 64-bit timestamp */ +/* Ensure timestamp is naturally aligned */ +struct { +s8 chans[3 ]; +s64 timestamp__aligned(8) ; + } scan; }; static IIO_CONST_ATTR(in_accel_scale_available, STK8312_SCALE_AVAIL);
@@ -441,7 +445,7 @@ static irqreturn_t stk8312_trigger_handler(int irq, void *p) ret =i2c_smbus_read_i2c_block_data (data->client,STK8312_REG_XOUT ,STK8312_ALL_CHANNEL_SIZE , - data->buffer); + data->scan.chans);if (ret <STK8312_ALL_CHANNEL_SIZE ) {dev_err (&data->client->dev,"register read failed\n" );mutex_unlock (&data->lock);
@@ -455,12 +459,12 @@ static irqreturn_t stk8312_trigger_handler(int irq, void *p)mutex_unlock (&data->lock); goto err; } - data->buffer[i++] = ret; + data->scan.chans[i++] = ret; } }mutex_unlock (&data->lock); -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan, pf->timestamp); err:iio_trigger_notify_done (indio_dev->trig);
drivers/iio/accel/stk8ba50.c +8 -9
@@ -94,12 +94,11 @@ struct stk8ba50_data {u8 sample_rate_idx;struct iio_trigger *dready_trig;bool dready_trigger_on; -/* -* 3 x 16-bit channels (10-bit data, 6-bit padding) + -* 1 x 16 padding + -* 4 x 16 64-bit timestamp -*/ -s16 buffer[8 ]; +/* Ensure timestamp is naturally aligned */ +struct { +s16 chans[3 ]; +s64 timetamp__aligned(8) ; + } scan; };#define STK8BA50_ACCEL_CHANNEL (index, reg, axis) { \
@@ -327,7 +326,7 @@ static irqreturn_t stk8ba50_trigger_handler(int irq, void *p) ret =i2c_smbus_read_i2c_block_data (data->client,STK8BA50_REG_XOUT ,STK8BA50_ALL_CHANNEL_SIZE , - (u8 *)data->buffer); + (u8 *)data->scan.chans);if (ret <STK8BA50_ALL_CHANNEL_SIZE ) {dev_err (&data->client->dev,"register read failed\n" ); goto err;
@@ -340,10 +339,10 @@ static irqreturn_t stk8ba50_trigger_handler(int irq, void *p)if (ret <0 ) goto err; - data->buffer[i++] = ret; + data->scan.chans[i++] = ret; } } -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan, pf->timestamp); err:mutex_unlock (&data->lock);
drivers/iio/adc/hx711.c +2 -2
@@ -94,9 +94,9 @@ struct hx711_data {struct mutex lock;/* * triggered buffer -* 2x32-bit channel + 64-bit timestamp +* 2x32-bit channel + 64-bit naturally aligned timestamp */ -u32 buffer[4 ]; +u32 buffer[4 ]__aligned(8) ;/* * delay after a rising edge on SCK until the data is ready DOUT * this is dependent on the hx711 where the datasheet tells a
drivers/iio/adc/mxs-lradc-adc.c +2 -1
@@ -124,7 +124,8 @@ struct mxs_lradc_adc {struct device *dev;void __iomem *base; -u32 buffer[10 ]; +/* Maximum of 8 channels + 8 byte ts */ +u32 buffer[10 ]__aligned(8) ;struct iio_trigger *trig;struct completion completion;spinlock_t lock;
drivers/iio/adc/ti-ads1015.c +8 -4
@@ -391,10 +391,14 @@ static irqreturn_t ads1015_trigger_handler(int irq, void *p)struct iio_poll_func *pf = p;struct iio_dev *indio_dev = pf->indio_dev;struct ads1015_data *data =iio_priv (indio_dev); -s16 buf[8 ];/* 1x s16 ADC val + 3x s16 padding + 4x s16 timestamp */ +/* Ensure natural alignment of timestamp */ +struct { +s16 chan; +s64 timestamp__aligned(8) ; + } scan;int chan, ret, res; -memset (buf,0 ,sizeof (buf)); +memset (&scan,0 ,sizeof (scan));mutex_lock (&data->lock); chan = find_first_bit(indio_dev->active_scan_mask,
@@ -405,10 +409,10 @@ static irqreturn_t ads1015_trigger_handler(int irq, void *p) goto err; } - buf[0 ] = res; + scan.chan = res;mutex_unlock (&data->lock); -iio_push_to_buffers_with_timestamp (indio_dev, buf, +iio_push_to_buffers_with_timestamp (indio_dev, &scan,iio_get_time_ns (indio_dev)); err:
drivers/iio/adc/ti-ads8688.c +2 -1
@@ -386,7 +386,8 @@ static irqreturn_t ads8688_trigger_handler(int irq, void *p) {struct iio_poll_func *pf = p;struct iio_dev *indio_dev = pf->indio_dev; -u16 buffer[ADS8688_MAX_CHANNELS +sizeof (s64)/sizeof (u16)]; +/* Ensure naturally aligned timestamp */ +u16 buffer[ADS8688_MAX_CHANNELS +sizeof (s64)/sizeof (u16)]__aligned(8) ;int i, j =0 ;for (i =0 ; i < indio_dev->masklength; i++) {
drivers/iio/adc/vf610_adc.c +7 -3
@@ -180,7 +180,11 @@ struct vf610_adc {u32 sample_freq_avail[5 ];struct completion completion; -u16 buffer[8 ]; +/* Ensure the timestamp is naturally aligned */ +struct { +u16 chan; +s64 timestamp__aligned(8) ; + } scan; };static const u32 vf610_hw_avgs[] = {1 ,4 ,8 ,16 ,32 };
@@ -592,9 +596,9 @@ static irqreturn_t vf610_adc_isr(int irq, void *dev_id)if (coco &VF610_ADC_HS_COCO0 ) { info->value =vf610_adc_read_data (info);if (iio_buffer_enabled (indio_dev)) { - info->buffer[0 ] = info->value; + info->scan.chan = info->value;iio_push_to_buffers_with_timestamp (indio_dev, - info->buffer, + &info->scan,iio_get_time_ns (indio_dev));iio_trigger_notify_done (indio_dev->trig); }else
drivers/iio/gyro/bmg160_core.c +7 -3
@@ -103,7 +103,11 @@ struct bmg160_data {struct iio_trigger *dready_trig;struct iio_trigger *motion_trig;struct mutex mutex; -s16 buffer[8 ]; +/* Ensure naturally aligned timestamp */ +struct { +s16 chans[3 ]; +s64 timestamp__aligned(8) ; + } scan;u32 dps_range;int ev_enable_state;int slope_thres;
@@ -872,12 +876,12 @@ static irqreturn_t bmg160_trigger_handler(int irq, void *p)mutex_lock (&data->mutex); ret =regmap_bulk_read (data->regmap,BMG160_REG_XOUT_L , - data->buffer,AXIS_MAX *2 ); + data->scan.chans,AXIS_MAX *2 );mutex_unlock (&data->mutex);if (ret <0 ) goto err; -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan, pf->timestamp); err:iio_trigger_notify_done (indio_dev->trig);
drivers/iio/humidity/am2315.c +10 -6
@@ -36,7 +36,11 @@struct am2315_data {struct i2c_client *client;struct mutex lock; -s16 buffer[8 ];/* 2x16-bit channels + 2x16 padding + 4x16 timestamp */ +/* Ensure timestamp is naturally aligned */ +struct { +s16 chans[2 ]; +s64 timestamp__aligned(8) ; + } scan; };struct am2315_sensor_data {
@@ -170,20 +174,20 @@ static irqreturn_t am2315_trigger_handler(int irq, void *p)mutex_lock (&data->lock);if (*(indio_dev->active_scan_mask) ==AM2315_ALL_CHANNEL_MASK ) { - data->buffer[0 ] = sensor_data.hum_data; - data->buffer[1 ] = sensor_data.temp_data; + data->scan.chans[0 ] = sensor_data.hum_data; + data->scan.chans[1 ] = sensor_data.temp_data; }else { i =0 ;for_each_set_bit (bit, indio_dev->active_scan_mask, indio_dev->masklength) { - data->buffer[i] = (bit ? sensor_data.temp_data : - sensor_data.hum_data); + data->scan.chans[i] = (bit ? sensor_data.temp_data : + sensor_data.hum_data); i++; } }mutex_unlock (&data->lock); -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan, pf->timestamp); err:iio_trigger_notify_done (indio_dev->trig);
drivers/iio/imu/adis_buffer.c +0 -3
@@ -83,9 +83,6 @@ static irqreturn_t adis_trigger_handler(int irq, void *p)struct adis *adis =iio_device_get_drvdata (indio_dev);int ret; -if (!adis->buffer) -return -ENOMEM ; -if (adis->data->has_paging) {mutex_lock (&adis->txrx_lock);if (adis->current_page !=0 ) {
drivers/iio/light/isl29125.c +7 -3
@@ -54,7 +54,11 @@struct isl29125_data {struct i2c_client *client;u8 conf1; -u16 buffer[8 ];/* 3x 16-bit, padding, 8 bytes timestamp */ +/* Ensure timestamp is naturally aligned */ +struct { +u16 chans[3 ]; +s64 timestamp__aligned(8) ; + } scan; };#define ISL29125_CHANNEL (_color, _si) { \
@@ -187,10 +191,10 @@ static irqreturn_t isl29125_trigger_handler(int irq, void *p)if (ret <0 ) goto done; - data->buffer[j++] = ret; + data->scan.chans[j++] = ret; } -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan,iio_get_time_ns (indio_dev)); done:
drivers/iio/light/ltr501.c +11 -4
@@ -35,9 +35,12 @@#define LTR501_PART_ID 0x86#define LTR501_MANUFAC_ID 0x87#define LTR501_ALS_DATA1 0x88/* 16-bit, little endian */ +#define LTR501_ALS_DATA1_UPPER 0x89/* upper 8 bits of LTR501_ALS_DATA1 */ #define LTR501_ALS_DATA0 0x8a/* 16-bit, little endian */ +#define LTR501_ALS_DATA0_UPPER 0x8b/* upper 8 bits of LTR501_ALS_DATA0 */ #define LTR501_ALS_PS_STATUS 0x8c#define LTR501_PS_DATA 0x8d/* 16-bit, little endian */ +#define LTR501_PS_DATA_UPPER 0x8e/* upper 8 bits of LTR501_PS_DATA */ #define LTR501_INTR 0x8f/* output mode, polarity, mode */ #define LTR501_PS_THRESH_UP 0x90/* 11 bit, ps upper threshold */ #define LTR501_PS_THRESH_LOW 0x92/* 11 bit, ps lower threshold */
@@ -408,18 +411,19 @@ static int ltr501_read_als(struct ltr501_data *data, __le16 buf[2])static int ltr501_read_ps (struct ltr501_data *data) { -int ret, status; +__le16 status; +int ret; ret =ltr501_drdy (data,LTR501_STATUS_PS_RDY );if (ret <0 )return ret; ret =regmap_bulk_read (data->regmap,LTR501_PS_DATA , - &status,2 ); + &status,sizeof (status));if (ret <0 )return ret; -return status; +return le16_to_cpu (status); } static int ltr501_read_intr_prst(struct ltr501_data *data,
@@ -1207,7 +1211,7 @@ static struct ltr501_chip_info ltr501_chip_info_tbl[] = { .als_gain_tbl_size = ARRAY_SIZE(ltr559_als_gain_tbl), .ps_gain = ltr559_ps_gain_tbl, .ps_gain_tbl_size = ARRAY_SIZE(ltr559_ps_gain_tbl), - .als_mode_active = BIT(1), + .als_mode_active = BIT(0), .als_gain_mask = BIT(2) | BIT(3) | BIT(4), .als_gain_shift = 2, .info = <r501_info,
@@ -1356,9 +1360,12 @@ static bool ltr501_is_volatile_reg(struct device *dev, unsigned int reg) {switch (reg) {case LTR501_ALS_DATA1 : +case LTR501_ALS_DATA1_UPPER :case LTR501_ALS_DATA0 : +case LTR501_ALS_DATA0_UPPER :case LTR501_ALS_PS_STATUS :case LTR501_PS_DATA : +case LTR501_PS_DATA_UPPER :return true;default :return false;
drivers/iio/light/tcs3414.c +7 -3
@@ -56,7 +56,11 @@ struct tcs3414_data {u8 control;u8 gain;u8 timing; -u16 buffer[8 ];/* 4x 16-bit + 8 bytes timestamp */ +/* Ensure timestamp is naturally aligned */ +struct { +u16 chans[4 ]; +s64 timestamp__aligned(8) ; + } scan; };#define TCS3414_CHANNEL (_color, _si, _addr) { \
@@ -212,10 +216,10 @@ static irqreturn_t tcs3414_trigger_handler(int irq, void *p)if (ret <0 ) goto done; - data->buffer[j++] = ret; + data->scan.chans[j++] = ret; } -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan,iio_get_time_ns (indio_dev)); done:
drivers/iio/light/tcs3472.c +11 -5
@@ -67,7 +67,11 @@ struct tcs3472_data {u8 control;u8 atime;u8 apers; -u16 buffer[8 ];/* 4 16-bit channels + 64-bit timestamp */ +/* Ensure timestamp is naturally aligned */ +struct { +u16 chans[4 ]; +s64 timestamp__aligned(8) ; + } scan; };static const struct iio_event_spec tcs3472_events[] = {
@@ -389,10 +393,10 @@ static irqreturn_t tcs3472_trigger_handler(int irq, void *p)if (ret <0 ) goto done; - data->buffer[j++] = ret; + data->scan.chans[j++] = ret; } -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan,iio_get_time_ns (indio_dev)); done:
@@ -535,7 +539,8 @@ static int tcs3472_probe(struct i2c_client *client,return 0 ; free_irq: -free_irq (client->irq, indio_dev); +if (client->irq) +free_irq (client->irq, indio_dev); buffer_cleanup:iio_triggered_buffer_cleanup (indio_dev);return ret;
@@ -563,7 +568,8 @@ static int tcs3472_remove(struct i2c_client *client)struct iio_dev *indio_dev =i2c_get_clientdata (client);iio_device_unregister (indio_dev); -free_irq (client->irq, indio_dev); +if (client->irq) +free_irq (client->irq, indio_dev);iio_triggered_buffer_cleanup (indio_dev);tcs3472_powerdown (iio_priv (indio_dev));
drivers/iio/potentiostat/lmp91000.c +2 -2
@@ -71,8 +71,8 @@ struct lmp91000_data {struct completion completion;u8 chan_select; - -u32 buffer[4 ];/* 64-bit data + 64-bit timestamp */ +/* 64-bit data + 64-bit naturally aligned timestamp */ +u32 buffer[4 ]__aligned(8) ; };static const struct iio_chan_spec lmp91000_channels[] = {
drivers/iio/proximity/as3935.c +7 -3
@@ -61,7 +61,11 @@ struct as3935_state {unsigned long noise_tripped;u32 tune_cap;u32 nflwdth_reg; -u8 buffer[16 ];/* 8-bit data + 56-bit padding + 64-bit timestamp */ +/* Ensure timestamp is naturally aligned */ +struct { +u8 chan; +s64 timestamp__aligned(8) ; + } scan;u8 buf[2 ]____cacheline_aligned ; };
@@ -227,8 +231,8 @@ static irqreturn_t as3935_trigger_handler(int irq, void *private)if (ret) goto err_read; - st->buffer[0 ] = val &AS3935_DATA_MASK ; -iio_push_to_buffers_with_timestamp (indio_dev, &st->buffer, + st->scan.chan = val &AS3935_DATA_MASK ; +iio_push_to_buffers_with_timestamp (indio_dev, &st->scan,iio_get_time_ns (indio_dev)); err_read:iio_trigger_notify_done (indio_dev->trig);
drivers/iio/proximity/isl29501.c +1 -1
@@ -946,7 +946,7 @@ static irqreturn_t isl29501_trigger_handler(int irq, void *p)struct iio_dev *indio_dev = pf->indio_dev;struct isl29501_private *isl29501 =iio_priv (indio_dev);const unsigned long *active_mask = indio_dev->active_scan_mask; -u32 buffer[4 ] = {};/* 1x16-bit + ts */ +u32 buffer[4 ]__aligned(8) = {};/* 1x16-bit + naturally aligned ts */ if (test_bit (ISL29501_DISTANCE_SCAN_INDEX , active_mask))isl29501_register_read (isl29501,REG_DISTANCE , buffer);
drivers/iio/proximity/pulsedlight-lidar-lite-v2.c +7 -3
@@ -43,7 +43,11 @@ struct lidar_data {int (*xfer)(struct lidar_data *data,u8 reg,u8 *val,int len);int i2c_enabled; -u16 buffer[8 ];/* 2 byte distance + 8 byte timestamp */ +/* Ensure timestamp is naturally aligned */ +struct { +u16 chan; +s64 timestamp__aligned(8) ; + } scan; };static const struct iio_chan_spec lidar_channels[] = {
@@ -228,9 +232,9 @@ static irqreturn_t lidar_trigger_handler(int irq, void *private)struct lidar_data *data =iio_priv (indio_dev);int ret; - ret =lidar_get_measurement (data, data->buffer); + ret =lidar_get_measurement (data, &data->scan.chan);if (!ret) { -iio_push_to_buffers_with_timestamp (indio_dev, data->buffer, +iio_push_to_buffers_with_timestamp (indio_dev, &data->scan,iio_get_time_ns (indio_dev)); }else if (ret != -EINVAL ) {dev_err (&data->client->dev,"cannot read LIDAR measurement" );
drivers/iio/proximity/srf08.c +7 -7
@@ -66,11 +66,11 @@ struct srf08_data {int range_mm;struct mutex lock; -/* -* triggered buffer -* 1x16-bit channel + 3x16 padding + 4x16 timestamp -*/ -s16 buffer[8 ]; +/* Ensure timestamp is naturally aligned */ +struct { +s16 chan; +s64 timestamp__aligned(8) ; + } scan;/* Sensor-Type */ enum srf08_sensor_type sensor_type;
@@ -193,9 +193,9 @@ static irqreturn_t srf08_trigger_handler(int irq, void *p)mutex_lock (&data->lock); - data->buffer[0 ] = sensor_data; + data->scan.chan = sensor_data;iio_push_to_buffers_with_timestamp (indio_dev, - data->buffer, pf->timestamp); + &data->scan, pf->timestamp);mutex_unlock (&data->lock); err:
drivers/infiniband/core/cma.c +2 -1
@@ -2558,7 +2558,8 @@ static int cma_resolve_ib_route(struct rdma_id_private *id_priv, int timeout_ms)cma_init_resolve_route_work (work, id_priv); - route->path_rec =kmalloc (sizeof *route->path_rec,GFP_KERNEL ); +if (!route->path_rec) + route->path_rec =kmalloc (sizeof *route->path_rec,GFP_KERNEL );if (!route->path_rec) { ret = -ENOMEM ; goto err1;
drivers/infiniband/hw/cxgb4/qp.c +1 -0
@@ -295,6 +295,7 @@ static int create_qp(struct c4iw_rdev *rdev, struct t4_wq *wq,if (user && (!wq->sq.bar2_pa || (need_rq && !wq->rq.bar2_pa))) {pr_warn ("%s: sqid %u or rqid %u not in BAR2 range\n" ,pci_name (rdev->lldi.pdev), wq->sq.qid, wq->rq.qid); + ret = -EINVAL ; goto free_dma; }
drivers/infiniband/hw/mlx5/main.c +2 -2
@@ -5374,8 +5374,6 @@ static void mlx5_ib_unbind_slave_port(struct mlx5_ib_dev *ibdev, port->mp.mpi =NULL ; -list_add_tail (&mpi->list, &mlx5_ib_unaffiliated_port_list); -spin_unlock (&port->mp.mpi_lock); err =mlx5_nic_vport_unaffiliate_multiport (mpi->mdev);
@@ -5524,6 +5522,8 @@ static void mlx5_ib_cleanup_multiport_master(struct mlx5_ib_dev *dev) dev->port[i].mp.mpi =NULL ; }else {mlx5_ib_dbg (dev,"unbinding port_num: %d\n" , i +1 ); +list_add_tail (&dev->port[i].mp.mpi->list, + &mlx5_ib_unaffiliated_port_list);mlx5_ib_unbind_slave_port (dev, dev->port[i].mp.mpi); } }
drivers/infiniband/sw/rxe/rxe_mr.c +1 -1
@@ -175,7 +175,7 @@ int rxe_mem_init_user(struct rxe_pd *pd, u64 start,if (IS_ERR (umem)) {pr_warn ("err %d from rxe_umem_get\n" , (int )PTR_ERR (umem)); - err = -EINVAL ; + err =PTR_ERR (umem); goto err1; }
drivers/infiniband/sw/rxe/rxe_net.c +7 -3
@@ -290,10 +290,8 @@ static struct socket *rxe_setup_udp_tunnel(struct net *net, __be16 port,/* Create UDP socket */ err =udp_sock_create (net, &udp_cfg, &sock); -if (err <0 ) { -pr_err ("failed to create udp socket. err = %d\n" , err); +if (err <0 )return ERR_PTR (err); - } tnl_cfg.encap_type =1 ; tnl_cfg.encap_rcv = rxe_udp_encap_recv;
@@ -717,6 +715,12 @@ static int rxe_net_ipv6_init(void) recv_sockets.sk6 =rxe_setup_udp_tunnel (&init_net,htons (ROCE_V2_UDP_DPORT ), true); +if (PTR_ERR (recv_sockets.sk6) == -EAFNOSUPPORT ) { + recv_sockets.sk6 =NULL ; +pr_warn ("IPv6 is not supported, can not create a UDPv6 socket\n" ); +return 0 ; + } +if (IS_ERR (recv_sockets.sk6)) { recv_sockets.sk6 =NULL ;pr_err ("Failed to create IPv6 UDP tunnel\n" );
drivers/infiniband/sw/rxe/rxe_qp.c +0 -1
@@ -151,7 +151,6 @@ static void free_rd_atomic_resources(struct rxe_qp *qp)void free_rd_atomic_resource (struct rxe_qp *qp,struct resp_res *res) {if (res->type ==RXE_ATOMIC_MASK ) { -rxe_drop_ref (qp);kfree_skb (res->atomic.skb); }else if (res->type ==RXE_READ_MASK ) {if (res->read.mr)
drivers/infiniband/sw/rxe/rxe_resp.c +0 -2
@@ -999,8 +999,6 @@ static int send_atomic_ack(struct rxe_qp *qp, struct rxe_pkt_info *pkt, goto out; } -rxe_add_ref (qp); - res = &qp->resp.resources[qp->resp.res_head];free_rd_atomic_resource (qp, res);rxe_advance_resp_resource (qp);
drivers/input/joydev.c +1 -1
@@ -504,7 +504,7 @@ static int joydev_handle_JSIOCSBTNMAP(struct joydev *joydev,memcpy (joydev->keypam, keypam, len);for (i =0 ; i < joydev->nkey; i++) - joydev->keymap[keypam[i] -BTN_MISC ] = i; + joydev->keymap[joydev->keypam[i] -BTN_MISC ] = i; out:kfree (keypam);
drivers/input/keyboard/hil_kbd.c +1 -0
@@ -512,6 +512,7 @@ static int hil_dev_connect(struct serio *serio, struct serio_driver *drv) HIL_IDD_NUM_AXES_PER_SET(*idd)) { printk(KERN_INFO PREFIX "combo devices are not supported.\n"); + error = -EINVAL ; goto bail1; }
drivers/input/touchscreen/hideep.c +10 -3
@@ -364,13 +364,16 @@ static int hideep_enter_pgm(struct hideep_ts *ts)return -EIO ; } -static void hideep_nvm_unlock (struct hideep_ts *ts) +static int hideep_nvm_unlock (struct hideep_ts *ts) {u32 unmask_code; +int error;hideep_pgm_w_reg (ts,HIDEEP_FLASH_CFG ,HIDEEP_NVM_SFR_RPAGE ); -hideep_pgm_r_reg (ts,0x0000000C , &unmask_code); + error =hideep_pgm_r_reg (ts,0x0000000C , &unmask_code);hideep_pgm_w_reg (ts,HIDEEP_FLASH_CFG ,HIDEEP_NVM_DEFAULT_PAGE ); +if (error) +return error;/* make it unprotected code */ unmask_code &= ~HIDEEP_PROT_MODE ;
@@ -387,6 +390,8 @@ static void hideep_nvm_unlock(struct hideep_ts *ts)NVM_W_SFR (HIDEEP_NVM_MASK_OFS , ts->nvm_mask);SET_FLASH_HWCONTROL ();hideep_pgm_w_reg (ts,HIDEEP_FLASH_CFG ,HIDEEP_NVM_DEFAULT_PAGE ); + +return 0 ; }static int hideep_check_status (struct hideep_ts *ts)
@@ -465,7 +470,9 @@ static int hideep_program_nvm(struct hideep_ts *ts,u32 addr =0 ;int error; -hideep_nvm_unlock (ts); + error =hideep_nvm_unlock (ts); +if (error) +return error;while (ucode_len >0 ) { xfer_len =min_t (size_t, ucode_len,HIDEEP_NVM_PAGE_SIZE );
drivers/input/touchscreen/usbtouchscreen.c +4 -4
@@ -264,7 +264,7 @@ static int e2i_init(struct usbtouch_usb *usbtouch)int ret;struct usb_device *udev =interface_to_usbdev (usbtouch->interface); - ret =usb_control_msg (udev,usb_rcvctrlpipe (udev,0 ), + ret =usb_control_msg (udev,usb_sndctrlpipe (udev,0 ),0x01 ,0x02 ,0x0000 ,0x0081 ,NULL ,0 ,USB_CTRL_SET_TIMEOUT );
@@ -544,7 +544,7 @@ static int mtouch_init(struct usbtouch_usb *usbtouch)if (ret)return ret; - ret =usb_control_msg (udev,usb_rcvctrlpipe (udev,0 ), + ret =usb_control_msg (udev,usb_sndctrlpipe (udev,0 ),MTOUCHUSB_RESET ,USB_DIR_OUT |USB_TYPE_VENDOR |USB_RECIP_DEVICE ,1 ,0 ,NULL ,0 ,USB_CTRL_SET_TIMEOUT );
@@ -556,7 +556,7 @@ static int mtouch_init(struct usbtouch_usb *usbtouch)msleep (150 );for (i =0 ; i <3 ; i++) { - ret =usb_control_msg (udev,usb_rcvctrlpipe (udev,0 ), + ret =usb_control_msg (udev,usb_sndctrlpipe (udev,0 ),MTOUCHUSB_ASYNC_REPORT ,USB_DIR_OUT |USB_TYPE_VENDOR |USB_RECIP_DEVICE ,1 ,1 ,NULL ,0 ,USB_CTRL_SET_TIMEOUT );
@@ -735,7 +735,7 @@ static int dmc_tsc10_init(struct usbtouch_usb *usbtouch) }/* start sending data */ - ret =usb_control_msg (dev,usb_rcvctrlpipe (dev,0 ), + ret =usb_control_msg (dev,usb_sndctrlpipe (dev,0 ),TSC10_CMD_DATA1 ,USB_DIR_OUT |USB_TYPE_VENDOR |USB_RECIP_DEVICE ,0 ,0 ,NULL ,0 ,USB_CTRL_SET_TIMEOUT );
drivers/ipack/carriers/tpci200.c +4 -1
@@ -599,8 +599,11 @@ static int tpci200_pci_probe(struct pci_dev *pdev, out_err_bus_register:tpci200_uninstall (tpci200); +/* tpci200->info->cfg_regs is unmapped in tpci200_uninstall */ + tpci200->info->cfg_regs =NULL ; out_err_install: -iounmap (tpci200->info->cfg_regs); +if (tpci200->info->cfg_regs) +iounmap (tpci200->info->cfg_regs); out_err_ioremap:pci_release_region (pdev,TPCI200_CFG_MEM_BAR ); out_err_pci_request:
drivers/isdn/hardware/mISDN/hfcpci.c +1 -1
@@ -2348,7 +2348,7 @@ static void __exitHFC_cleanup (void) {if (timer_pending (&hfc_tl)) -del_timer (&hfc_tl); +del_timer_sync (&hfc_tl);pci_unregister_driver (&hfc_driver); }
drivers/leds/leds-as3645a.c +1 -0
@@ -565,6 +565,7 @@ static int as3645a_parse_node(struct as3645a *flash,if (!flash->indicator_node) {dev_warn (&flash->client->dev,"can't find indicator node\n" ); + rval = -ENODEV ; goto out_err; }
drivers/leds/leds-ktd2692.c +18 -9
@@ -259,6 +259,17 @@ static void ktd2692_setup(struct ktd2692_context *led) | KTD2692_REG_FLASH_CURRENT_BASE); } +static void regulator_disable_action (void *_data) +{ +struct device *dev = _data; +struct ktd2692_context *led =dev_get_drvdata (dev); +int ret; + + ret =regulator_disable (led->regulator); +if (ret) +dev_err (dev,"Failed to disable supply: %d\n" , ret); +} +static int ktd2692_parse_dt (struct ktd2692_context *led,struct device *dev,struct ktd2692_led_config_data *cfg) {
@@ -289,8 +300,14 @@ static int ktd2692_parse_dt(struct ktd2692_context *led, struct device *dev,if (led->regulator) { ret =regulator_enable (led->regulator); -if (ret) +if (ret) {dev_err (dev,"Failed to enable supply: %d\n" , ret); + }else { + ret =devm_add_action_or_reset (dev, + regulator_disable_action, dev); +if (ret) +return ret; + } } child_node =of_get_next_available_child (np,NULL );
@@ -380,17 +397,9 @@ static int ktd2692_probe(struct platform_device *pdev)static int ktd2692_remove (struct platform_device *pdev) {struct ktd2692_context *led =platform_get_drvdata (pdev); -int ret;led_classdev_flash_unregister (&led->fled_cdev); -if (led->regulator) { - ret =regulator_disable (led->regulator); -if (ret) -dev_err (&pdev->dev, -"Failed to disable supply: %d\n" , ret); - } -mutex_destroy (&led->lock);return 0 ;
drivers/md/persistent-data/dm-btree-remove.c +2 -1
@@ -549,7 +549,8 @@ int dm_btree_remove(struct dm_btree_info *info, dm_block_t root,delete_at (n, index); } - *new_root =shadow_root (&spine); +if (!r) + *new_root =shadow_root (&spine);exit_shadow_spine (&spine);return r;
drivers/md/persistent-data/dm-space-map-disk.c +8 -1
@@ -171,6 +171,14 @@ static int sm_disk_new_block(struct dm_space_map *sm, dm_block_t *b)* Any block we allocate has to be free in both the old and current ll. */ r =sm_ll_find_common_free_block (&smd->old_ll, &smd->ll, smd->begin, smd->ll.nr_blocks, b); +if (r == -ENOSPC ) { +/* +* There's no free block between smd->begin and the end of the metadata device. +* We search before smd->begin in case something has been freed. +*/ + r =sm_ll_find_common_free_block (&smd->old_ll, &smd->ll,0 , smd->begin, b); + } +if (r)return r;
@@ -199,7 +207,6 @@ static int sm_disk_commit(struct dm_space_map *sm)return r;memcpy (&smd->old_ll, &smd->ll,sizeof (smd->old_ll)); - smd->begin =0 ; smd->nr_allocated_this_transaction =0 ; r =sm_disk_get_nr_free (sm, &nr_free);
drivers/md/persistent-data/dm-space-map-metadata.c +8 -1
@@ -452,6 +452,14 @@ static int sm_metadata_new_block_(struct dm_space_map *sm, dm_block_t *b)* Any block we allocate has to be free in both the old and current ll. */ r =sm_ll_find_common_free_block (&smm->old_ll, &smm->ll, smm->begin, smm->ll.nr_blocks, b); +if (r == -ENOSPC ) { +/* +* There's no free block between smm->begin and the end of the metadata device. +* We search before smm->begin in case something has been freed. +*/ + r =sm_ll_find_common_free_block (&smm->old_ll, &smm->ll,0 , smm->begin, b); + } +if (r)return r;
@@ -503,7 +511,6 @@ static int sm_metadata_commit(struct dm_space_map *sm)return r;memcpy (&smm->old_ll, &smm->ll,sizeof (smm->old_ll)); - smm->begin =0 ; smm->allocated_this_transaction =0 ;return 0 ;
drivers/media/common/siano/smscoreapi.c +9 -13
@@ -916,7 +916,7 @@ static int smscore_load_firmware_family2(struct smscore_device_t *coredev, void *buffer, size_t size) {struct sms_firmware *firmware = (struct sms_firmware *) buffer; -struct sms_msg_data4 *msg; +struct sms_msg_data5 *msg;u32 mem_address, calc_checksum =0 ;u32 i, *ptr;u8 *payload = firmware->payload;
@@ -997,24 +997,20 @@ static int smscore_load_firmware_family2(struct smscore_device_t *coredev, goto exit_fw_download;if (coredev->mode ==DEVICE_MODE_NONE ) { -struct sms_msg_data *trigger_msg = - (struct sms_msg_data *) msg; -pr_debug ("sending MSG_SMS_SWDOWNLOAD_TRIGGER_REQ\n" );SMS_INIT_MSG (&msg->x_msg_header,MSG_SMS_SWDOWNLOAD_TRIGGER_REQ , -sizeof (struct sms_msg_hdr ) + -sizeof (u32) *5 ); +sizeof (*msg)); - trigger_msg->msg_data[0 ] = firmware->start_address; + msg->msg_data[0 ] = firmware->start_address;/* Entry point */ - trigger_msg->msg_data[1 ] =6 ;/* Priority */ - trigger_msg->msg_data[2 ] =0x200 ;/* Stack size */ - trigger_msg->msg_data[3 ] =0 ;/* Parameter */ - trigger_msg->msg_data[4 ] =4 ;/* Task ID */ + msg->msg_data[1 ] =6 ;/* Priority */ + msg->msg_data[2 ] =0x200 ;/* Stack size */ + msg->msg_data[3 ] =0 ;/* Parameter */ + msg->msg_data[4 ] =4 ;/* Task ID */ - rc =smscore_sendrequest_and_wait (coredev, trigger_msg, - trigger_msg->x_msg_header.msg_length, + rc =smscore_sendrequest_and_wait (coredev, msg, + msg->x_msg_header.msg_length, &coredev->trigger_done); }else { SMS_INIT_MSG(&msg->x_msg_header, MSG_SW_RELOAD_EXEC_REQ,
drivers/media/common/siano/smscoreapi.h +2 -2
@@ -640,9 +640,9 @@ struct sms_msg_data2 {u32 msg_data[2 ]; }; -struct sms_msg_data4 { +struct sms_msg_data5 {struct sms_msg_hdr x_msg_header; -u32 msg_data[4 ]; +u32 msg_data[5 ]; };struct sms_data_download {
drivers/media/common/siano/smsdvb-main.c +4 -0
@@ -1187,6 +1187,10 @@ static int smsdvb_hotplug(struct smscore_device_t *coredev,return 0 ; media_graph_error: +mutex_lock (&g_smsdvb_clientslock); +list_del (&client->entry); +mutex_unlock (&g_smsdvb_clientslock); +smsdvb_debugfs_release (client); client_error:
drivers/media/dvb-core/dvb_net.c +19 -6
@@ -56,6 +56,7 @@#include <linux/module.h> #include <linux/kernel.h> #include <linux/netdevice.h> +#include <linux/nospec.h> #include <linux/etherdevice.h> #include <linux/dvb/net.h> #include <linux/uio.h>
@@ -1473,14 +1474,20 @@ static int dvb_net_do_ioctl(struct file *file,struct net_device *netdev;struct dvb_net_priv *priv_data;struct dvb_net_if *dvbnetif = parg; +int if_num = dvbnetif->if_num; -if (dvbnetif->if_num >=DVB_NET_DEVICES_MAX || - !dvbnet->state[dvbnetif->if_num]) { +if (if_num >=DVB_NET_DEVICES_MAX ) { ret = -EINVAL ; goto ioctl_error; } + if_num =array_index_nospec (if_num,DVB_NET_DEVICES_MAX ); - netdev = dvbnet->device[dvbnetif->if_num]; +if (!dvbnet->state[if_num]) { + ret = -EINVAL ; + goto ioctl_error; + } + + netdev = dvbnet->device[if_num]; priv_data =netdev_priv (netdev); dvbnetif->pid=priv_data->pid;
@@ -1533,14 +1540,20 @@ static int dvb_net_do_ioctl(struct file *file,struct net_device *netdev;struct dvb_net_priv *priv_data;struct __dvb_net_if_old *dvbnetif = parg; +int if_num = dvbnetif->if_num; + +if (if_num >=DVB_NET_DEVICES_MAX ) { + ret = -EINVAL ; + goto ioctl_error; + } + if_num =array_index_nospec (if_num,DVB_NET_DEVICES_MAX ); -if (dvbnetif->if_num >=DVB_NET_DEVICES_MAX || - !dvbnet->state[dvbnetif->if_num]) { +if (!dvbnet->state[if_num]) { ret = -EINVAL ; goto ioctl_error; } - netdev = dvbnet->device[dvbnetif->if_num]; + netdev = dvbnet->device[if_num]; priv_data =netdev_priv (netdev); dvbnetif->pid=priv_data->pid;
drivers/media/i2c/ir-kbd-i2c.c +2 -2
@@ -688,8 +688,8 @@ static int zilog_tx(struct rc_dev *rcdev, unsigned int *txbuf, goto out_unlock; } - i =i2c_master_recv (ir->tx_c, buf,1 ); -if (i !=1 ) { + ret =i2c_master_recv (ir->tx_c, buf,1 ); +if (ret !=1 ) {dev_err (&ir->rc->dev,"i2c_master_recv failed with %d\n" , ret); ret = -EIO ; goto out_unlock;
drivers/media/i2c/s5c73m3/s5c73m3-core.c +3 -3
@@ -1394,7 +1394,7 @@ static int __s5c73m3_power_on(struct s5c73m3 *state)s5c73m3_gpio_deassert (state,STBY );usleep_range (100 ,200 ); -s5c73m3_gpio_deassert (state,RST ); +s5c73m3_gpio_deassert (state,RSET );usleep_range (50 ,100 );return 0 ;
@@ -1409,7 +1409,7 @@ static int __s5c73m3_power_off(struct s5c73m3 *state) {int i, ret; -if (s5c73m3_gpio_assert (state,RST )) +if (s5c73m3_gpio_assert (state,RSET ))usleep_range (10 ,50 );if (s5c73m3_gpio_assert (state,STBY ))
@@ -1614,7 +1614,7 @@ static int s5c73m3_get_platform_data(struct s5c73m3 *state) state->mclk_frequency = pdata->mclk_frequency; state->gpio[STBY ] = pdata->gpio_stby; - state->gpio[RST ] = pdata->gpio_reset; + state->gpio[RSET ] = pdata->gpio_reset;return 0 ; }
drivers/media/i2c/s5c73m3/s5c73m3.h +1 -1
@@ -361,7 +361,7 @@ struct s5c73m3_ctrls {enum s5c73m3_gpio_id {STBY , -RST , +RSET ,GPIO_NUM , };
drivers/media/i2c/s5k4ecgx.c +5 -5
@@ -177,7 +177,7 @@ static const char * const s5k4ecgx_supply_names[] = {enum s5k4ecgx_gpio_id {STBY , -RST , +RSET ,GPIO_NUM , };
@@ -482,7 +482,7 @@ static int __s5k4ecgx_power_on(struct s5k4ecgx *priv)if (s5k4ecgx_gpio_set_value (priv,STBY , priv->gpio[STBY ].level))usleep_range (30 ,50 ); -if (s5k4ecgx_gpio_set_value (priv,RST , priv->gpio[RST ].level)) +if (s5k4ecgx_gpio_set_value (priv,RSET , priv->gpio[RSET ].level))usleep_range (30 ,50 );return 0 ;
@@ -490,7 +490,7 @@ static int __s5k4ecgx_power_on(struct s5k4ecgx *priv)static int __s5k4ecgx_power_off (struct s5k4ecgx *priv) { -if (s5k4ecgx_gpio_set_value (priv,RST , !priv->gpio[RST ].level)) +if (s5k4ecgx_gpio_set_value (priv,RSET , !priv->gpio[RSET ].level))usleep_range (30 ,50 );if (s5k4ecgx_gpio_set_value (priv,STBY , !priv->gpio[STBY ].level))
@@ -878,7 +878,7 @@ static int s5k4ecgx_config_gpios(struct s5k4ecgx *priv,int ret; priv->gpio[STBY ].gpio = -EINVAL ; - priv->gpio[RST ].gpio = -EINVAL ; + priv->gpio[RSET ].gpio = -EINVAL ; ret =s5k4ecgx_config_gpio (gpio->gpio, gpio->level,"S5K4ECGX_STBY" );
@@ -897,7 +897,7 @@ static int s5k4ecgx_config_gpios(struct s5k4ecgx *priv,s5k4ecgx_free_gpios (priv);return ret; } - priv->gpio[RST ] = *gpio; + priv->gpio[RSET ] = *gpio;if (gpio_is_valid (gpio->gpio))gpio_set_value (gpio->gpio,0 );
drivers/media/i2c/s5k5baf.c +3 -3
@@ -238,7 +238,7 @@ struct s5k5baf_gpio {enum s5k5baf_gpio_id {STBY , -RST , +RSET ,NUM_GPIOS , };
@@ -973,7 +973,7 @@ static int s5k5baf_power_on(struct s5k5baf *state)s5k5baf_gpio_deassert (state,STBY );usleep_range (50 ,100 ); -s5k5baf_gpio_deassert (state,RST ); +s5k5baf_gpio_deassert (state,RSET );return 0 ; err_reg_dis:
@@ -991,7 +991,7 @@ static int s5k5baf_power_off(struct s5k5baf *state) state->apply_cfg =0 ; state->apply_crop =0 ; -s5k5baf_gpio_assert (state,RST ); +s5k5baf_gpio_assert (state,RSET );s5k5baf_gpio_assert (state,STBY );if (!IS_ERR (state->clock))
drivers/media/i2c/s5k6aa.c +5 -5
@@ -181,7 +181,7 @@ static const char * const s5k6aa_supply_names[] = {enum s5k6aa_gpio_id {STBY , -RST , +RSET ,GPIO_NUM , };
@@ -845,7 +845,7 @@ static int __s5k6aa_power_on(struct s5k6aa *s5k6aa) ret = s5k6aa->s_power (1 );usleep_range (4000 ,5000 ); -if (s5k6aa_gpio_deassert (s5k6aa,RST )) +if (s5k6aa_gpio_deassert (s5k6aa,RSET ))msleep (20 );return ret;
@@ -855,7 +855,7 @@ static int __s5k6aa_power_off(struct s5k6aa *s5k6aa) {int ret; -if (s5k6aa_gpio_assert (s5k6aa,RST )) +if (s5k6aa_gpio_assert (s5k6aa,RSET ))usleep_range (100 ,150 );if (s5k6aa->s_power) {
@@ -1514,7 +1514,7 @@ static int s5k6aa_configure_gpios(struct s5k6aa *s5k6aa,int ret; s5k6aa->gpio[STBY ].gpio = -EINVAL ; - s5k6aa->gpio[RST ].gpio = -EINVAL ; + s5k6aa->gpio[RSET ].gpio = -EINVAL ; gpio = &pdata->gpio_stby;if (gpio_is_valid (gpio->gpio)) {
@@ -1537,7 +1537,7 @@ static int s5k6aa_configure_gpios(struct s5k6aa *s5k6aa,if (ret <0 )return ret; - s5k6aa->gpio[RST ] = *gpio; + s5k6aa->gpio[RSET ] = *gpio; }return 0 ;
drivers/media/i2c/saa6588.c +2 -2
@@ -392,7 +392,7 @@ static void saa6588_configure(struct saa6588 *s)/* ---------------------------------------------------------------------- */ -static long saa6588_ioctl (struct v4l2_subdev *sd,unsigned int cmd,void *arg) +static long saa6588_command (struct v4l2_subdev *sd,unsigned int cmd,void *arg) {struct saa6588 *s =to_saa6588 (sd);struct saa6588_command *a = arg;
@@ -445,7 +445,7 @@ static int saa6588_s_tuner(struct v4l2_subdev *sd, const struct v4l2_tuner *vt)/* ----------------------------------------------------------------------- */ static const struct v4l2_subdev_core_ops saa6588_core_ops = { - .ioctl = saa6588_ioctl, + .command = saa6588_command, };static const struct v4l2_subdev_tuner_ops saa6588_tuner_ops = {
drivers/media/i2c/tc358743.c +1 -0
@@ -1972,6 +1972,7 @@ static int tc358743_probe_of(struct tc358743_state *state) bps_pr_lane =2 * endpoint->link_frequencies[0 ];if (bps_pr_lane <62500000U || bps_pr_lane >1000000000U ) {dev_err (dev,"unsupported bps per lane: %u bps\n" , bps_pr_lane); + ret = -EINVAL ; goto disable_clk; }
drivers/media/pci/bt8xx/bt878.c +3 -0
@@ -494,6 +494,9 @@ static int bt878_probe(struct pci_dev *dev, const struct pci_device_id *pci_id)btwrite (0 ,BT878_AINT_MASK ); bt878_num++; +if (!bt->tasklet.func) +tasklet_disable (&bt->tasklet); +return 0 ; fail2:
drivers/media/pci/bt8xx/bttv-driver.c +3 -3
@@ -3243,7 +3243,7 @@ static int radio_release(struct file *file) btv->radio_user--; -bttv_call_all (btv, core, ioctl,SAA6588_CMD_CLOSE , &cmd); +bttv_call_all (btv, core, command,SAA6588_CMD_CLOSE , &cmd);if (btv->radio_user ==0 ) btv->has_radio_tuner =0 ;
@@ -3324,7 +3324,7 @@ static ssize_t radio_read(struct file *file, char __user *data, cmd.result = -ENODEV ;radio_enable (btv); -bttv_call_all (btv, core, ioctl,SAA6588_CMD_READ , &cmd); +bttv_call_all (btv, core, command,SAA6588_CMD_READ , &cmd);return cmd.result; }
@@ -3345,7 +3345,7 @@ static __poll_t radio_poll(struct file *file, poll_table *wait) cmd.instance = file; cmd.event_list = wait; cmd.poll_mask = res; -bttv_call_all (btv, core, ioctl,SAA6588_CMD_POLL , &cmd); +bttv_call_all (btv, core, command,SAA6588_CMD_POLL , &cmd);return cmd.poll_mask; }
drivers/media/pci/cobalt/cobalt-driver.c +1 -0
@@ -675,6 +675,7 @@ static int cobalt_probe(struct pci_dev *pci_dev,return -ENOMEM ; cobalt->pci_dev = pci_dev; cobalt->instance = i; +mutex_init (&cobalt->pci_lock); retval =v4l2_device_register (&pci_dev->dev, &cobalt->v4l2_dev);if (retval) {
drivers/media/pci/cobalt/cobalt-driver.h +6 -1
@@ -250,6 +250,8 @@ struct cobalt {int instance;
Lines of this file are not shown. View the raw message.
drivers/media/pci/saa7134/saa7134-video.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/media/platform/davinci/vpbe_display.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/davinci/vpbe_venc.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/media/platform/exynos4-is/fimc-isp-video.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/s5p-cec/s5p_cec.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/sti/hva/hva-hw.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/media/usb/dvb-usb/cinergyT2-core.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/media/usb/em28xx/em28xx-input.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/media/usb/pvrusb2/pvrusb2-hdw.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/can/peak_canfd/peak_canfd.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmmii.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ibm/ehea/ehea_main.c +5 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_ethtool.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_type.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c +13 -16
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/sfc/ef10_sriov.c +12 -13
Lines of this file are not shown. View the raw message.
drivers/net/ieee802154/mac802154_hwsim.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/carl9170/Kconfig +3 -5
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/main.c +8 -13
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +20 -17
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +18 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c +10 -5
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/internal.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/pcie.c +4 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +3 -8
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c +53 -6
59 lines not on this page · raw message
drivers/net/wireless/rsi/rsi_91x_mac80211.c +0 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_mgmt.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/st/cw1200/cw1200_sdio.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pci-aardvark.c +46 -15
61 lines not on this page · raw message
drivers/pci/controller/pcie-iproc-msi.c +18 -11
Lines of this file are not shown. View the raw message.
drivers/power/supply/max17042_battery.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/device_handler/scsi_dh_alua.c +6 -5
Lines of this file are not shown. View the raw message.
drivers/scsi/libiscsi.c +57 -65
122 lines not on this page · raw message
drivers/staging/media/imx/imx-media-csi.c +13 -1
Lines of this file are not shown. View the raw message.
drivers/usb/gadget/function/f_eem.c +39 -4
43 lines not on this page · raw message
drivers/usb/gadget/function/f_fs.c +32 -35
67 lines not on this page · raw message
fs/nfs/nfs4client.c +42 -40
82 lines not on this page · raw message
fs/nfs/pnfs_nfs.c +26 -26
52 lines not on this page · raw message
include/linux/mfd/abx500/ux500_chargalg.h +1 -1
Lines of this file are not shown. View the raw message.
kernel/cpu.c +49 -0
49 lines not on this page · raw message
kernel/time/clocksource.c +47 -6
53 lines not on this page · raw message
kernel/trace/trace.c +55 -36
91 lines not on this page · raw message
lib/vsprintf.c +48 -34
82 lines not on this page · raw message
tools/testing/selftests/powerpc/pmu/ebb/no_handler_test.c +0 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/timers/rtcpie.c +9 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/x86/protection_keys.c +2 -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.