Skip to contentSkip to conversation

Linux 4.14.276

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Apr 20, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 4.14.276 kernel.

All users of the 4.14 kernel series must upgrade.

The updated 4.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.14.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/process/stable-kernel-rules.rst                    |   11 
 Makefile                                                         |    2 
 arch/arm/boot/dts/bcm2837.dtsi                                   |   49 +++
 arch/arm/boot/dts/exynos5250-pinctrl.dtsi                        |    2 
 arch/arm/boot/dts/exynos5250-smdk5250.dts                        |    3 
 arch/arm/boot/dts/exynos5420-smdk5420.dts                        |    3 
 arch/arm/boot/dts/qcom-ipq4019.dtsi                              |    3 
 arch/arm/boot/dts/qcom-msm8960.dtsi                              |    8 
 arch/arm/boot/dts/sama5d2.dtsi                                   |    2 
 arch/arm/boot/dts/spear1340.dtsi                                 |    6 
 arch/arm/boot/dts/spear13xx.dtsi                                 |    6 
 arch/arm/boot/dts/tegra20-tamonten.dtsi                          |    6 
 arch/arm/mach-davinci/board-da850-evm.c                          |    4 
 arch/arm/mach-mmp/sram.c                                         |   22 -
 arch/arm/mach-s3c24xx/mach-jive.c                                |    6 
 arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts              |    8 
 arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi                 |    2 
 arch/arm64/kernel/insn.c                                         |    4 
 arch/arm64/kernel/module.lds                                     |    6 
 arch/mips/dec/prom/Makefile                                      |    2 
 arch/mips/include/asm/dec/prom.h                                 |   15 
 arch/mips/include/asm/setup.h                                    |    2 
 arch/mips/kernel/traps.c                                         |   22 -
 arch/mips/rb532/devices.c                                        |    6 
 arch/powerpc/boot/dts/fsl/t104xrdb.dtsi                          |    4 
 arch/powerpc/kernel/machine_kexec.c                              |   15 
 arch/powerpc/kernel/rtas.c                                       |    6 
 arch/powerpc/lib/sstep.c                                         |    8 
 arch/powerpc/sysdev/fsl_gtm.c                                    |    4 
 arch/x86/events/intel/pt.c                                       |    2 
 arch/x86/kvm/emulate.c                                           |   14 
 arch/x86/kvm/hyperv.c                                            |   15 
 arch/x86/kvm/lapic.c                                             |    5 
 arch/x86/kvm/pmu_amd.c                                           |    8 
 arch/x86/power/cpu.c                                             |   21 +
 arch/x86/xen/pmu.c                                               |   10 
 arch/x86/xen/pmu.h                                               |    3 
 arch/x86/xen/smp_pv.c                                            |    2 
 arch/xtensa/boot/dts/xtfpga-flash-128m.dtsi                      |    8 
 arch/xtensa/boot/dts/xtfpga-flash-16m.dtsi                       |    8 
 arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi                        |    4 
 crypto/authenc.c                                                 |    2 
 drivers/acpi/acpica/nswalk.c                                     |    3 
 drivers/acpi/apei/bert.c                                         |   10 
 drivers/acpi/apei/erst.c                                         |    2 
 drivers/acpi/apei/hest.c                                         |    2 
 drivers/acpi/cppc_acpi.c                                         |    5 
 drivers/acpi/property.c                                          |    2 
 drivers/ata/libata-core.c                                        |    3 
 drivers/base/power/main.c                                        |    6 
 drivers/block/drbd/drbd_int.h                                    |    8 
 drivers/block/drbd/drbd_nl.c                                     |   41 +-
 drivers/block/drbd/drbd_req.c                                    |    3 
 drivers/block/drbd/drbd_state.c                                  |   18 -
 drivers/block/drbd/drbd_state_change.h                           |    8 
 drivers/block/loop.c                                             |   10 
 drivers/block/virtio_blk.c                                       |   12 
 drivers/char/hw_random/atmel-rng.c                               |    1 
 drivers/char/tpm/tpm-chip.c                                      |   46 --
 drivers/char/tpm/tpm.h                                           |    2 
 drivers/char/tpm/tpm2-space.c                                    |   65 ++++
 drivers/char/virtio_console.c                                    |   15 
 drivers/clk/clk-clps711x.c                                       |    2 
 drivers/clk/loongson1/clk-loongson1c.c                           |    1 
 drivers/clk/qcom/clk-rcg2.c                                      |    1 
 drivers/clk/tegra/clk-emc.c                                      |    1 
 drivers/clk/uniphier/clk-uniphier-fixed-rate.c                   |    1 
 drivers/clocksource/acpi_pm.c                                    |    6 
 drivers/crypto/ccp/ccp-dmaengine.c                               |   16 +
 drivers/crypto/mxs-dcp.c                                         |    2 
 drivers/crypto/vmx/Kconfig                                       |    4 
 drivers/dma/sh/shdma-base.c                                      |    4 
 drivers/gpio/gpiolib-acpi.c                                      |    4 
 drivers/gpu/drm/amd/amdgpu/ObjectID.h                            |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c                          |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_events.c                          |    2 
 drivers/gpu/drm/drm_edid.c                                       |    8 
 drivers/gpu/drm/imx/parallel-display.c                           |    4 
 drivers/gpu/drm/tegra/dsi.c                                      |    4 
 drivers/gpu/ipu-v3/ipu-di.c                                      |    5 
 drivers/hid/i2c-hid/i2c-hid-core.c                               |   32 +-
 drivers/hv/ring_buffer.c                                         |   11 
 drivers/hwmon/pmbus/pmbus.h                                      |    1 
 drivers/hwmon/pmbus/pmbus_core.c                                 |   18 -
 drivers/hwmon/sch56xx-common.c                                   |    2 
 drivers/hwtracing/coresight/coresight-etm4x-sysfs.c              |    8 
 drivers/i2c/busses/i2c-pasemi.c                                  |    6 
 drivers/i2c/busses/i2c-xiic.c                                    |    3 
 drivers/i2c/muxes/i2c-demux-pinctrl.c                            |    5 
 drivers/iio/adc/twl6030-gpadc.c                                  |    2 
 drivers/iio/inkern.c                                             |   40 ++
 drivers/input/input.c                                            |    6 
 drivers/iommu/arm-smmu-v3.c                                      |    1 
 drivers/irqchip/irq-nvic.c                                       |    2 
 drivers/md/dm-crypt.c                                            |    2 
 drivers/md/dm-ioctl.c                                            |    2 
 drivers/media/pci/cx88/cx88-mpeg.c                               |    3 
 drivers/media/platform/coda/coda-common.c                        |    1 
 drivers/media/platform/davinci/vpif.c                            |    1 
 drivers/media/usb/go7007/s2250-board.c                           |   10 
 drivers/media/usb/hdpvr/hdpvr-video.c                            |    4 
 drivers/media/usb/stk1160/stk1160-core.c                         |    2 
 drivers/media/usb/stk1160/stk1160-v4l.c                          |   10 
 drivers/media/usb/stk1160/stk1160.h                              |    2 
 drivers/memory/atmel-ebi.c                                       |   23 +
 drivers/memory/emif.c                                            |    8 
 drivers/mfd/asic3.c                                              |   10 
 drivers/mfd/mc13xxx-core.c                                       |    4 
 drivers/misc/kgdbts.c                                            |    4 
 drivers/mmc/core/host.c                                          |   15 
 drivers/mmc/host/sdhci-xenon.c                                   |   10 
 drivers/mtd/nand/atmel/nand-controller.c                         |   14 
 drivers/mtd/onenand/generic.c                                    |    7 
 drivers/mtd/ubi/build.c                                          |    9 
 drivers/mtd/ubi/fastmap.c                                        |   28 +
 drivers/mtd/ubi/vmt.c                                            |    8 
 drivers/net/can/usb/ems_usb.c                                    |    1 
 drivers/net/can/usb/mcba_usb.c                                   |   27 +
 drivers/net/can/vxcan.c                                          |    2 
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c                |    4 
 drivers/net/ethernet/mellanox/mlxsw/i2c.c                        |    1 
 drivers/net/ethernet/micrel/Kconfig                              |    1 
 drivers/net/ethernet/qlogic/qed/qed_sriov.c                      |   29 +
 drivers/net/ethernet/qlogic/qed/qed_sriov.h                      |    1 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h                  |   10 
 drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c               |    8 
 drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.h               |    4 
 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c              |   13 
 drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c            |    3 
 drivers/net/ethernet/sun/sunhme.c                                |    6 
 drivers/net/hamradio/6pack.c                                     |    4 
 drivers/net/macvtap.c                                            |    6 
 drivers/net/phy/broadcom.c                                       |   21 +
 drivers/net/slip/slip.c                                          |    2 
 drivers/net/veth.c                                               |    2 
 drivers/net/wireless/ath/ath5k/eeprom.c                          |    3 
 drivers/net/wireless/ath/ath9k/htc_hst.c                         |    5 
 drivers/net/wireless/ath/carl9170/main.c                         |    2 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c      |    2 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c          |   48 ---
 drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c                |    2 
 drivers/net/wireless/ray_cs.c                                    |    6 
 drivers/parisc/dino.c                                            |   41 ++
 drivers/parisc/gsc.c                                             |   31 ++
 drivers/parisc/gsc.h                                             |    1 
 drivers/parisc/lasi.c                                            |    7 
 drivers/parisc/wax.c                                             |    7 
 drivers/pci/access.c                                             |    9 
 drivers/pci/host/pci-aardvark.c                                  |   16 -
 drivers/pci/hotplug/pciehp_hpc.c                                 |    2 
 drivers/perf/qcom_l2_pmu.c                                       |    6 
 drivers/pinctrl/mediatek/pinctrl-mtk-common.c                    |    2 
 drivers/pinctrl/nomadik/pinctrl-nomadik.c                        |    4 
 drivers/pinctrl/pinconf-generic.c                                |    6 
 drivers/pinctrl/pinctrl-rockchip.c                               |    2 
 drivers/pinctrl/samsung/pinctrl-samsung.c                        |   30 +
 drivers/power/reset/gemini-poweroff.c                            |    4 
 drivers/power/supply/ab8500_fg.c                                 |    4 
 drivers/power/supply/axp20x_battery.c                            |   13 
 drivers/power/supply/bq24190_charger.c                           |    7 
 drivers/power/supply/wm8350_power.c                              |   97 +++++-
 drivers/ptp/ptp_sysfs.c                                          |    4 
 drivers/pwm/pwm-lpc18xx-sct.c                                    |   20 -
 drivers/remoteproc/qcom_wcnss.c                                  |    1 
 drivers/rtc/rtc-wm8350.c                                         |   11 
 drivers/scsi/aha152x.c                                           |    6 
 drivers/scsi/bfa/bfad_attr.c                                     |   26 -
 drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c                         |    2 
 drivers/scsi/libfc/fc_exch.c                                     |    1 
 drivers/scsi/libsas/sas_ata.c                                    |    2 
 drivers/scsi/mvsas/mv_init.c                                     |    5 
 drivers/scsi/pm8001/pm8001_hwi.c                                 |   13 
 drivers/scsi/pm8001/pm80xx_hwi.c                                 |   11 
 drivers/scsi/qla2xxx/qla_init.c                                  |    2 
 drivers/scsi/qla2xxx/qla_target.c                                |    1 
 drivers/scsi/zorro7xx.c                                          |    2 
 drivers/soc/ti/wkup_m3_ipc.c                                     |    4 
 drivers/spi/spi-pxa2xx-pci.c                                     |   17 +
 drivers/spi/spi-tegra114.c                                       |    4 
 drivers/spi/spi-tegra20-slink.c                                  |    8 
 drivers/spi/spi.c                                                |    4 
 drivers/staging/iio/adc/ad7280a.c                                |    4 
 drivers/target/target_core_user.c                                |    3 
 drivers/thermal/int340x_thermal/int3400_thermal.c                |    2 
 drivers/tty/hvc/hvc_iucv.c                                       |    4 
 drivers/tty/mxser.c                                              |   15 
 drivers/tty/serial/8250/8250_mid.c                               |   19 -
 drivers/tty/serial/8250/8250_port.c                              |   12 
 drivers/tty/serial/kgdboc.c                                      |    6 
 drivers/tty/serial/samsung.c                                     |    5 
 drivers/usb/dwc3/dwc3-omap.c                                     |    2 
 drivers/usb/serial/Kconfig                                       |    1 
 drivers/usb/serial/pl2303.c                                      |    1 
 drivers/usb/serial/pl2303.h                                      |    3 
 drivers/usb/serial/usb-serial-simple.c                           |    7 
 drivers/usb/storage/ene_ub6250.c                                 |  155 ++++------
 drivers/usb/storage/realtek_cr.c                                 |    2 
 drivers/video/fbdev/atafb.c                                      |   12 
 drivers/video/fbdev/cirrusfb.c                                   |   16 -
 drivers/video/fbdev/core/fbcvt.c                                 |   53 +--
 drivers/video/fbdev/nvidia/nv_i2c.c                              |    2 
 drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c        |    1 
 drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c         |    8 
 drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c |    2 
 drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c |    4 
 drivers/video/fbdev/sm712fb.c                                    |   46 --
 drivers/video/fbdev/smscufx.c                                    |    3 
 drivers/video/fbdev/w100fb.c                                     |   15 
 drivers/w1/slaves/w1_therm.c                                     |    8 
 fs/btrfs/extent_io.h                                             |    2 
 fs/cifs/link.c                                                   |    3 
 fs/ext2/super.c                                                  |    6 
 fs/ext4/inode.c                                                  |   25 +
 fs/fuse/dev.c                                                    |   12 
 fs/fuse/file.c                                                   |    1 
 fs/fuse/fuse_i.h                                                 |    2 
 fs/gfs2/rgrp.c                                                   |    3 
 fs/jffs2/build.c                                                 |    4 
 fs/jffs2/fs.c                                                    |    2 
 fs/jffs2/scan.c                                                  |    6 
 fs/jfs/inode.c                                                   |    3 
 fs/jfs/jfs_dmap.c                                                |    7 
 fs/nfs/callback_proc.c                                           |   27 -
 fs/nfs/callback_xdr.c                                            |    4 
 fs/nfs/direct.c                                                  |   48 ++-
 fs/nfs/file.c                                                    |    4 
 fs/nfs/pnfs.c                                                    |   11 
 fs/nfs/pnfs.h                                                    |    2 
 fs/nfsd/nfsproc.c                                                |    2 
 fs/nfsd/xdr.h                                                    |    2 
 fs/ntfs/inode.c                                                  |    4 
 fs/ubifs/dir.c                                                   |   19 -
 fs/ubifs/ioctl.c                                                 |    2 
 include/linux/blkdev.h                                           |    8 
 include/linux/mmzone.h                                           |   11 
 include/linux/netdevice.h                                        |    6 
 include/linux/nfs_fs.h                                           |    8 
 include/linux/pci.h                                              |    1 
 include/net/sock.h                                               |   25 +
 include/net/xfrm.h                                               |    9 
 init/main.c                                                      |    6 
 kernel/cgroup/cgroup-internal.h                                  |   19 +
 kernel/cgroup/cgroup-v1.c                                        |   33 +-
 kernel/cgroup/cgroup.c                                           |   81 +++--
 kernel/events/core.c                                             |    3 
 kernel/power/hibernate.c                                         |    2 
 kernel/power/suspend_test.c                                      |    8 
 kernel/printk/printk.c                                           |    6 
 kernel/ptrace.c                                                  |   47 ++-
 kernel/sched/debug.c                                             |   10 
 kernel/smp.c                                                     |    2 
 lib/raid6/test/test.c                                            |    1 
 lib/test_kmod.c                                                  |    1 
 mm/kmemleak.c                                                    |    8 
 mm/memcontrol.c                                                  |    2 
 mm/memory.c                                                      |   25 +
 mm/mempolicy.c                                                   |    9 
 mm/mmap.c                                                        |    2 
 mm/mremap.c                                                      |    3 
 mm/page_alloc.c                                                  |   11 
 mm/rmap.c                                                        |   25 +
 net/bluetooth/hci_event.c                                        |    3 
 net/can/raw.c                                                    |    2 
 net/ipv4/raw.c                                                   |    2 
 net/ipv4/tcp_output.c                                            |    5 
 net/ipv6/raw.c                                                   |    7 
 net/key/af_key.c                                                 |    6 
 net/netfilter/nf_conntrack_proto_tcp.c                           |   17 -
 net/netlink/af_netlink.c                                         |    2 
 net/nfc/nci/core.c                                               |    4 
 net/openvswitch/flow_netlink.c                                   |    4 
 net/packet/af_packet.c                                           |    6 
 net/smc/smc_core.c                                               |    2 
 net/sunrpc/sched.c                                               |    4 
 net/sunrpc/xprt.c                                                |    7 
 net/sunrpc/xprtrdma/transport.c                                  |    4 
 net/x25/af_x25.c                                                 |   11 
 net/xfrm/xfrm_policy.c                                           |   24 -
 net/xfrm/xfrm_user.c                                             |   14 
 scripts/gcc-plugins/latent_entropy_plugin.c                      |   44 +-
 security/selinux/xfrm.c                                          |    2 
 security/smack/smack_lsm.c                                       |    2 
 security/tomoyo/load_policy.c                                    |    4 
 sound/core/pcm_misc.c                                            |    2 
 sound/firewire/fcp.c                                             |    4 
 sound/isa/cs423x/cs4236.c                                        |    8 
 sound/soc/atmel/atmel_ssc_dai.c                                  |    5 
 sound/soc/atmel/sam9g20_wm8731.c                                 |    1 
 sound/soc/codecs/msm8916-wcd-digital.c                           |    5 
 sound/soc/codecs/wm8350.c                                        |   28 +
 sound/soc/davinci/davinci-i2s.c                                  |    5 
 sound/soc/fsl/imx-es8328.c                                       |    1 
 sound/soc/mxs/mxs-saif.c                                         |    5 
 sound/soc/mxs/mxs-sgtl5000.c                                     |    3 
 sound/soc/sh/fsi.c                                               |   19 +
 sound/soc/soc-core.c                                             |    2 
 sound/soc/soc-generic-dmaengine-pcm.c                            |    6 
 sound/soc/soc-topology.c                                         |    3 
 sound/spi/at73c213.c                                             |   27 +
 tools/build/feature/Makefile                                     |    2 
 tools/testing/selftests/x86/check_cc.sh                          |    2 
 virt/kvm/kvm_main.c                                              |   13 
 302 files changed, 1918 insertions(+), 1012 deletions(-)

Aashish Sharma (1):
dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS

Adrian Hunter (2):
perf/core: Fix address filter parser for multiple filters perf/x86/intel/pt: Fix address filter config for 32-bit kernel

Alan Stern (1):
USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c

Alexander Lobakin (1):
MIPS: fix fortify panic when copying asm exception handlers

Alexey Galakhov (1):
scsi: mvsas: Add PCI ID of RocketRaid 2640

Alexey Khoroshilov (1):
NFS: remove unneeded check in decode_devicenotify_args()

Alistair Popple (1):
mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node

Amadeusz Sławiński (1):
ASoC: topology: Allow TLV control to be either read or write

Anders Roxell (2):
powerpc/lib/sstep: Fix 'sthcx' instruction powerpc/lib/sstep: Fix build errors with newer binutils

Andrew Price (1):
gfs2: Make sure FITRIM minlen is rounded up to fs block size

Andy Shevchenko (2):
spi: pxa2xx-pci: Balance reference count for PCI DMA device
serial: 8250_mid: Balance reference count for PCI DMA device

Armin Wolf (1):
hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING

Arnaldo Carvalho de Melo (1):

      tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts

Aurabindo Pillai (1):
drm/amd: Add USBC connector ID

Bagas Sanjaya (2):
Documentation: add link to stable release candidate tree
Documentation: update stable tree link

Baokun Li (5):
jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
jffs2: fix memory leak in jffs2_do_mount_fs
jffs2: fix memory leak in jffs2_scan_medium
ubifs: rename_whiteout: correct old_dir size computing
ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl

Bharata B Rao (1):
sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa

Biju Das (2):
spi: Fix invalid sgs value
spi: Fix erroneous sgs value with min_t()

Brandon Wyman (1):
hwmon: (pmbus) Add Vin unit off handling

Casey Schaufler (1):
Fix incorrect type in assignment of ipv6 port for audit

Chaitanya Kulkarni (1):
loop: use sysfs_emit() in the sysfs xxx show()

Chen-Yu Tsai (2):
pinctrl: pinconf-generic: Print arguments for bias-pull-*
net: stmmac: Fix unset max_speed difference between DT and non-DT platforms

Christian Göttsche (1):
selinux: use correct type for context length

Christian Lamparter (1):
ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs

Christophe JAILLET (1):
scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()

Claudiu Beznea (1):
hwrng: atmel - disable trng on failure path

Codrin Ciubotariu (1):
ASoC: dmaengine: do not use a NULL prepare_slave_config() callback

Colin Ian King (2):
carl9170: fix missing bit-wise or operator for tx_params
iwlwifi: Fix -EIO error code that is never returned

Dafna Hirschfeld (1):
media: stk1160: If start stream fails, return buffers with VB2_BUF_STATE_QUEUED

Damien Le Moal (6):
scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
scsi: pm8001: Fix abort all task initialization
scsi: pm8001: Fix pm8001_mpi_task_abort_resp()

Dan Carpenter (6):
NFSD: prevent underflow in nfssvc_decode_writeargs()
video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
media: usb: go7007: s2250-board: fix leak in probe()
USB: storage: ums-realtek: fix error code in rts51x_read_mem() lib/test: use after free in register_test_dev_kmod() drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire()

Daniel González Cabanelas (1):
media: cx88-mpeg: clear interrupt status register before streaming video

Darren Hart (1):
ACPI/APEI: Limit printable size of BERT table data

David Heidelberg (1):
ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960

David Matlack (1):
KVM: Prevent module exit until all VMs are freed

Dinh Nguyen (1):
net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link

Dirk Müller (1):
lib/raid6/test: fix multiple definition linking error

Dmitry Baryshkov (1):
PM: core: keep irq flags in device_pm_check_callbacks()

Dmitry Torokhov (1):
HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports

Dongliang Mu (2):
ntfs: add sanity check on allocation size
media: hdpvr: initialize dev->worker at hdpvr_register_videodev

Duoming Zhou (3):
drivers: hamradio: 6pack: fix UAF bug caused by mod_timer() net/x25: Fix null-ptr-deref caused by x25_disconnect
drivers: net: slip: fix NPD bug in sl_tx_timeout()

Dust Li (1):
net/smc: correct settings of RMB window update limit

Dāvis Mosāns (1):
crypto: ccp - ccp_dmaengine_unregister release dma channels

Eddie James (1):
USB: serial: pl2303: add IBM device IDs

Ethan Lien (1):
btrfs: fix qgroup reserve overflow the qgroup limit

Evgeny Boger (1):

      power: supply: axp20x_battery: properly report current when discharging

Evgeny Novikov (1):
video: fbdev: w100fb: Reset global state

Fabio M. De Francesco (1):
ALSA: pcm: Test for "silence" field in struct "pcm_format_data"

Fangrui Song (1):
arm64: module: remove (NOLOAD) from linker script

Florian Fainelli (1):
net: phy: broadcom: Fix brcm_fet_config_init()

Frank Wunderlich (1):
arm64: dts: broadcom: Fix sata nodename

George Kennedy (1):
video: fbdev: cirrusfb: check pixclock to avoid divide by zero

Greg Kroah-Hartman (1):

      Linux 4.14.276

Guillaume Nault (1):
veth: Ensure eth header is in skb's linear part

Guo Ren (1):
arm64: patch_text: Fixup last cpu should be master

H. Nikolaus Schaller (1):
usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm

Haimin Zhang (2):
af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_register
jfs: prevent NULL deref in diFree

Hangyu Hua (2):
can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path

Hans de Goede (1):
power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return

Harshit Mogalapalli (1):
cifs: potential buffer overflow in handling symlinks

Hector Martin (2):
brcmfmac: firmware: Allocate space for default boardrev in nvram
brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio

Helge Deller (2):
video: fbdev: sm712fb: Fix crash in smtcfb_read()
parisc: Fix CPU affinity for Lasi, WAX and Dino chips

Herbert Xu (1):
crypto: authenc - Fix sleep in atomic context in decrypt_tail

Hou Wenlong (1):
KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()

Hugh Dickins (1):
mempolicy: mbind_range() set_policy() after vma_merge()

Jakob Koschel (1):
powerpc/sysdev: fix incorrect use to determine if list is empty

Jakub Kicinski (1):
tcp: ensure PMTU updates are processed during fastopen

James Clark (1):
coresight: Fix TRCCONFIGR.QE sysfs interface

Jann Horn (1):
ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE

Jason A. Donenfeld (1):
gcc-plugins: latent_entropy: use /dev/urandom

Jia-Ju Bai (1):
memory: emif: check the pointer temp in get_device_details()

Jianglei Nie (1):
scsi: libfc: Fix use after free in fc_exch_abts_resp()

Jiasheng Jiang (14):
ASoC: ti: davinci-i2s: Add check for clk_enable()
ALSA: spi: Add check for clk_enable()
ASoC: mxs-saif: Handle errors for clk_enable
ASoC: atmel_ssc_dai: Handle errors for clk_enable
memory: emif: Add check for setup_interrupts
ASoC: wm8350: Handle error for wm8350_register_irq
ASoC: fsi: Add check for clk_enable
mtd: onenand: Check for error irq
ray_cs: Check ioremap return value
power: supply: wm8350-power: Handle error for wm8350_register_irq
power: supply: wm8350-power: Add missing free in free_charger_irq
mfd: mc13xxx: Add check for mc13xxx_irq_request
iio: adc: Add check for devm_request_threaded_irq
rtc: wm8350: Handle error for wm8350_register_irq

Jim Mattson (1):
KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs

Jing Yao (2):
video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()
video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of snprintf()

Jiri Slaby (2):

      mxser: fix xmit_buf leak in activate when LSR == 0xff
      serial: samsung_tty: do not unlock port->lock for uart_write_wakeup()

Johan Hovold (2):
USB: serial: simple: add Nokia phone driver
media: davinci: vpif: fix unbalanced runtime PM get

Jonathan Cameron (1):
staging:iio:adc:ad7280a: Fix handing of device address bit reversing.

Jonathan Neuschäfer (2):
clk: loongson1: Terminate clk_div_table with sentinel element
clk: clps711x: Terminate clk_div_table with sentinel element

Jordy Zomer (1):
dm ioctl: prevent potential spectre v1 gadget

José Expósito (2):
Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads" drm/imx: Fix memory leak in imx_pd_connector_get_modes

Juergen Gross (2):
xen: fix is_xen_pmu()
mm, page_alloc: fix build_zonerefs_node()

Krzysztof Kozlowski (4):
pinctrl: samsung: drop pin banks references on error paths
ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
ARM: dts: exynos: add missing HDMI supplies on SMDK5250
ARM: dts: exynos: add missing HDMI supplies on SMDK5420

Kuldeep Singh (3):
arm64: dts: ns2: Fix spi-cpol and spi-cpha property
ARM: dts: spear1340: Update serial node properties
ARM: dts: spear13xx: Update SPI dma properties

Kunihiko Hayashi (1):
clk: uniphier: Fix fixed-rate initialization

Lars Ellenberg (1):
drbd: fix potential silent data corruption

Leo Ruan (1):
gpu: ipu-v3: Fix dev_dbg frequency output

Liam Beguin (3):
iio: inkern: apply consumer scale on IIO_VAL_INT cases
iio: inkern: apply consumer scale when no channel scale is available
iio: inkern: make a best effort on offset calculation

Liguang Zhang (1):
PCI: pciehp: Clear cmd_busy bit in polling mode

Lin Ma (1):
nfc: nci: add flush_workqueue to prevent uaf

Lino Sanfilippo (1):
tpm: fix reference counting for struct tpm_chip

Linus Torvalds (1):
gpiolib: acpi: use correct format characters

Lucas Denefle (1):
w1: w1_therm: fixes w1_seq for ds28ea00 sensors

Luiz Augusto von Dentz (1):
Bluetooth: Fix use after free in hci_send_acl

Lv Yunlong (1):
drbd: Fix five use after free bugs in get_initial_state

Maciej W. Rozycki (1):
DEC: Limit PMAX memory probing to R3k systems

Manish Chopra (2):
qed: display VF trust config
qed: validate and restrict untrusted VFs vlan promisc mode

Mark Tomlinson (1):
PCI: Reduce warnings on possible RW1C corruption

Martin Povišer (1):
i2c: pasemi: Wait for write xfers to finish

Martin Varghese (1):
openvswitch: Fixed nd target mask field in the flow dump.

Mauricio Faria de Oliveira (1):
mm: fix race between MADV_FREE reclaim and blkdev direct IO read

Max Filippov (1):
xtensa: fix DTC warning unit_address_format

Maxim Kiselev (1):
powerpc: dts: t104xrdb: fix phy type for FMAN 4/5

Maxime Ripard (1):
drm/edid: Don't clear formats if using deep color

Miaohe Lin (1):
mm/mempolicy: fix mpol_new leak in shared_policy_replace

Miaoqian Lin (17):
spi: tegra114: Add missing IRQ check in tegra_spi_probe
media: coda: Fix missing put_device() call in coda_get_vdoa_data
soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in msm8916_wcd_digital_probe
power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region
clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver
pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe

Michael Chan (1):
bnxt_en: Eliminate unintended link toggle during FW reset

Michael Kelley (1):
Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer

Michael S. Tsirkin (1):
virtio_console: break out of buf poll on remove

Michael Schmitz (1):
video: fbdev: atari: Atari 2 bpp (STe) palette bugfix

Miklos Szeredi (1):
fuse: fix pipe buffer lifetime for direct_io

Minghao Chi (1):
spi: tegra20: Use of_device_get_match_data()

Muhammad Usama Anjum (1):
selftests/x86: Add validity check and allow field splitting

Nadav Amit (1):
smp: Fix offline cpu check in flush_smp_call_function_queue()

Nathan Chancellor (1):
ARM: davinci: da850-evm: Avoid NULL pointer dereference

NeilBrown (4):
SUNRPC: avoid race between mod_timer() and del_timer_sync() SUNRPC/call_alloc: async tasks mustn't block waiting for memory
NFS: swap IO handling is slightly different for O_DIRECT IO
NFS: swap-out must always use STABLE writes.

Nilesh Javali (1):
scsi: qla2xxx: Fix warning for missing error code

Oliver Hartkopp (1):
vxcan: enable local echo for sent CAN frames

Pablo Neira Ayuso (1):
netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options

Pali Rohár (2):
PCI: aardvark: Fix support for MSI interrupts Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"

Paolo Bonzini (1):
mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0)

Patrick Rudolph (1):
hwmon: (pmbus) Add mutex to regulator ops

Patrick Wang (1):
mm: kmemleak: take a full lowmem check in kmemleak_*_phys()

Pavel Kubelun (1):
ARM: dts: qcom: ipq4019: fix sleep clock

Pavel Skripkin (3):
ath9k_htc: fix uninit value bugs
jfs: fix divide error in dbNextAG
can: mcba_usb: properly check endpoint type

Pawan Gupta (2):
x86/pm: Save the MSR validity status at context setup x86/speculation: Restore speculation related MSRs during S3 resume

Peter Rosin (1):
i2c: mux: demux-pinctrl: do not deactivate a master that is not active

Peter Xu (1):
mm: don't skip swap entry even if zap_details specified

Petr Machata (1):
af_netlink: Fix shift out of bounds in group mask calculation

Petr Vorel (1):
crypto: vmx - add missing dependencies

QintaoShen (1):
drm/amdkfd: Check for potential null return of kmalloc_array()

Rafael J. Wysocki (2):
ACPICA: Avoid walking the ACPI Namespace if it is not there
ACPI: CPPC: Avoid out of bounds access when parsing _CPC data

Randy Dunlap (17):
PM: hibernate: fix __setup handler error handling
PM: suspend: fix return value of __setup handler
ACPI: APEI: fix return value of __setup handlers
clocksource: acpi_pm: fix return value of __setup handler
printk: fix return value of printk.devkmsg __setup handler
TOMOYO: fix __setup handlers return values
MIPS: RB532: fix return value of __setup handler
tty: hvc: fix return value of __setup handler
kgdboc: fix return value of __setup handler
kgdbts: fix return value of __setup handler
mm/mmap: return 1 from stack_guard_gap __setup() handler mm/memcontrol: return 1 from cgroup.memory __setup() handler
ARM: 9187/1: JIVE: fix return value of __setup handler
scsi: aha152x: Fix aha152x_setup() __setup handler return value init/main.c: return 1 from handled __setup() functions
virtio_console: eliminate anonymous module_init & module_exit
net: micrel: fix KS8851_MLL Kconfig

Richard Leitner (1):
ARM: tegra: tamonten: Fix I2C3 pad setting

Richard Schleich (1):
ARM: dts: bcm2837: Add the missing L1/L2 cache information

Robert Hancock (1):
i2c: xiic: Make bus names unique

Sakari Ailus (1):
ACPI: properties: Consistently return -ENOENT if there are no more references

Saurav Kashyap (1):
scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()

Shengjiu Wang (1):
ASoC: soc-core: skip zero num_dai component in searching dai name

Souptick Joarder (HPE) (1):
irqchip/nvic: Release nvic_base upon failure

Sourabh Jain (1):
powerpc: Set crashkernel offset to mid of RMA region

Srinivas Pandruvada (1):

      thermal: int340x: Increase bitmap size

Sven Eckelmann (1):
macvtap: advertise link netns via netlink

Takashi Sakamoto (1):
ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction

Taniya Das (1):
clk: qcom: clk-rcg2: Update the frac table for pixel clock

Tejun Heo (3):
cgroup: Use open-time credentials for process migraton perm checks
cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
cgroup: Use open-time cgroup namespace for process migration perm checks

Theodore Ts'o (1):
ext4: don't BUG if someone dirty pages without asking ext4 first

Tim Gardner (1):
video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow

Tom Rix (1):
qlcnic: dcb: default to returning -EOPNOTSUPP

Tomas Paukrt (1):
crypto: mxs-dcp - Fix scatterlist processing

Trond Myklebust (1):
NFSv4/pNFS: Fix another issue with a list iterator pointing to the head

Tudor Ambarus (1):
ARM: dts: at91: sama5d2: Fix PMERRLOC resource size

Tyrel Datwyler (1):
scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024

Ulf Hansson (1):

      mmc: host: Return an error when ->enable_sdio_irq() ops is missing

Uwe Kleine-König (3):
pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
serial: 8250: Fix race condition in RTS-after-send handling
ARM: mmp: Fix failure to remove sram device

Vadim Pasternak (1):
mlxsw: i2c: Fix initialization error flow

Vinod Koul (1):
dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error"

Vitaly Kuznetsov (1):
KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated

Waiman Long (1):
mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning

Wang Hai (1):
video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()

Wang Wensheng (1):
ASoC: imx-es8328: Fix error return code in imx_es8328_probe()

Willem de Bruijn (2):
ipv6: add missing tx timestamping on IPPROTO_RAW
net: add missing SOF_TIMESTAMPING_OPT_ID support

Xiaoguang Wang (1):
scsi: target: tcmu: Fix possible page UAF

Xiaomeng Tong (2):
ALSA: cs4236: fix an incorrect NULL check on list iterator
perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator

Xie Yongji (2):
block: Add a helper to validate the block size
virtio-blk: Use blk_validate_block_size() to validate block size

Xin Long (1):
xfrm: policy: match with both mark and mask on user interfaces

Xin Xiong (1):
mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init

Yajun Deng (1):
netdevice: add the case if dev is NULL

Yang Guang (4):
video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit
ptp: replace snprintf with sysfs_emit
scsi: mvsas: Replace snprintf() with sysfs_emit()
scsi: bfa: Replace snprintf() with sysfs_emit()

Zekun Shen (1):
ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111

Zhang Yi (1):
ext2: correct max file size computing

Zhenzhong Duan (1):
KVM: x86: Fix emulation in writing cr8

Zheyu Ma (2):
ethernet: sun: Free the coherent when failing in probing
video: fbdev: sm712fb: Fix crash in smtcfb_write()

Zhihao Cheng (5):
ubifs: rename_whiteout: Fix double free for whiteout_ui->data
ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
ubi: fastmap: Return error code if memory allocation fails in add_aeb()
ubifs: Rectify space amount budget for mkdir/tmpfile operations

Zhou Guanghui (1):
iommu/arm-smmu-v3: fix event handling soft lockup

author maintainer
#1 lore raw
Documentation/process/stable-kernel-rules.rst +10 -1
index 36a2dded525b..09a269fb8aa2 100644
@@ -171,7 +171,16 @@ Trees
  - The finalized and tagged releases of all stable kernels can be found
    in separate branches per version at:
 
-	https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
+	https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
+
+ - The release candidate of all stable kernel versions can be found at:
+
+        https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/
+
+   .. warning::
+      The -stable-rc tree is a snapshot in time of the stable-queue tree and
+      will change frequently, hence will be rebased often. It should only be
+      used for testing purposes (e.g. to be consumed by CI systems).
 
 
 Review committee
Makefile +1 -1
index cad522127bb9..ce295ec15975 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 4
 PATCHLEVEL = 14
-SUBLEVEL = 275
+SUBLEVEL = 276
 EXTRAVERSION =
 NAME = Petit Gorille
 
arch/arm/boot/dts/bcm2837.dtsi +49 -0

79 lines not on this page · raw message

arch/arm/boot/dts/exynos5250-pinctrl.dtsi +1 -1
index 1fd122db18e6..48096768e33a 100644
@@ -257,7 +257,7 @@
 	};
 
 	uart3_data: uart3-data {
-		samsung,pins = "gpa1-4", "gpa1-4";
+		samsung,pins = "gpa1-4", "gpa1-5";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
 		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
arch/arm/boot/dts/exynos5250-smdk5250.dts +3 -0
index 5065e6bf3778..a3c4b9e03fbf 100644
@@ -117,6 +117,9 @@
 
 &hdmi {
 	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+	vdd-supply = <&ldo8_reg>;
+	vdd_osc-supply = <&ldo10_reg>;
+	vdd_pll-supply = <&ldo8_reg>;
 };
 
 &i2c_0 {
arch/arm/boot/dts/exynos5420-smdk5420.dts +3 -0
index 08c8ab173e87..9bd317aee6a1 100644
@@ -133,6 +133,9 @@
 	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&hdmi_hpd_irq>;
+	vdd-supply = <&ldo6_reg>;
+	vdd_osc-supply = <&ldo7_reg>;
+	vdd_pll-supply = <&ldo6_reg>;
 };
 
 &hsi2c_4 {
arch/arm/boot/dts/qcom-ipq4019.dtsi +2 -1
index 19156cbb6003..ed218425a059 100644
@@ -93,7 +93,8 @@
 	clocks {
 		sleep_clk: sleep_clk {
 			compatible = "fixed-clock";
-			clock-frequency = <32768>;
+			clock-frequency = <32000>;
+			clock-output-names = "gcc_sleep_clk_src";
 			#clock-cells = <0>;
 		};
 
arch/arm/boot/dts/qcom-msm8960.dtsi +5 -3
index 1733d8f40ab1..b256fda0f5ea 100644
@@ -140,7 +140,9 @@
 			reg		= <0x108000 0x1000>;
 			qcom,ipc	= <&l2cc 0x8 2>;
 
-			interrupts	= <0 19 0>, <0 21 0>, <0 22 0>;
+			interrupts	= <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+					  <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+					  <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
 			interrupt-names	= "ack", "err", "wakeup";
 
 			regulators {
@@ -186,7 +188,7 @@
 				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
 				reg = <0x16440000 0x1000>,
 				      <0x16400000 0x1000>;
-				interrupts = <0 154 0x0>;
+				interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
 				clock-names = "core", "iface";
 				status = "disabled";
@@ -312,7 +314,7 @@
 				#address-cells = <1>;
 				#size-cells = <0>;
 				reg = <0x16080000 0x1000>;
-				interrupts = <0 147 0>;
+				interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
 				spi-max-frequency = <24000000>;
 				cs-gpios = <&msmgpio 8 0>;
 
arch/arm/boot/dts/sama5d2.dtsi +1 -1
index d6e3f975323d..4c9869750efd 100644
@@ -1121,7 +1121,7 @@
 				pmecc: ecc-engine@f8014070 {
 					compatible = "atmel,sama5d2-pmecc";
 					reg = <0xf8014070 0x490>,
-					      <0xf8014500 0x100>;
+					      <0xf8014500 0x200>;
 				};
 			};
 
arch/arm/boot/dts/spear1340.dtsi +3 -3
index d4dbc4098653..cf1139973bda 100644
@@ -142,9 +142,9 @@
 				reg = <0xb4100000 0x1000>;
 				interrupts = <0 105 0x4>;
 				status = "disabled";
-				dmas = <&dwdma0 12 0 1>,
-					<&dwdma0 13 1 0>;
-				dma-names = "tx", "rx";
+				dmas = <&dwdma0 13 0 1>,
+					<&dwdma0 12 1 0>;
+				dma-names = "rx", "tx";
 			};
 
 			thermal@e07008c4 {
arch/arm/boot/dts/spear13xx.dtsi +3 -3
index 086b4b333249..06eb7245d93e 100644
@@ -290,9 +290,9 @@
 				#size-cells = <0>;
 				interrupts = <0 31 0x4>;
 				status = "disabled";
-				dmas = <&dwdma0 4 0 0>,
-					<&dwdma0 5 0 0>;
-				dma-names = "tx", "rx";
+				dmas = <&dwdma0 5 0 0>,
+					<&dwdma0 4 0 0>;
+				dma-names = "rx", "tx";
 			};
 
 			rtc@e0580000 {
arch/arm/boot/dts/tegra20-tamonten.dtsi +3 -3
index 4d69d67792d1..b919ca29bb78 100644
@@ -183,8 +183,8 @@
 			};
 			conf_ata {
 				nvidia,pins = "ata", "atb", "atc", "atd", "ate",
-					"cdev1", "cdev2", "dap1", "dtb", "gma",
-					"gmb", "gmc", "gmd", "gme", "gpu7",
+					"cdev1", "cdev2", "dap1", "dtb", "dtf",
+					"gma", "gmb", "gmc", "gmd", "gme", "gpu7",
 					"gpv", "i2cp", "irrx", "irtx", "pta",
 					"rm", "slxa", "slxk", "spia", "spib",
 					"uac";
@@ -203,7 +203,7 @@
 			};
 			conf_crtp {
 				nvidia,pins = "crtp", "dap2", "dap3", "dap4",
-					"dtc", "dte", "dtf", "gpu", "sdio1",
+					"dtc", "dte", "gpu", "sdio1",
 					"slxc", "slxd", "spdi", "spdo", "spig",
 					"uda";
 				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
arch/arm/mach-davinci/board-da850-evm.c +3 -1
index 686e7e6f2eb3..a29233da8e50 100644
@@ -1035,11 +1035,13 @@ static int __init da850_evm_config_emac(void)
 	int ret;
 	u32 val;
 	struct davinci_soc_info *soc_info = &davinci_soc_info;
-	u8 rmii_en = soc_info->emac_pdata->rmii_en;
+	u8 rmii_en;
 
 	if (!machine_is_davinci_da850_evm())
 		return 0;
 
+	rmii_en = soc_info->emac_pdata->rmii_en;
+
 	cfg_chip3_base = DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG);
 
 	val = __raw_readl(cfg_chip3_base);
arch/arm/mach-mmp/sram.c +12 -10
index bf5e64906e65..a41162dc4af4 100644
@@ -75,6 +75,8 @@ static int sram_probe(struct platform_device *pdev)
 	if (!info)
 		return -ENOMEM;
 
+	platform_set_drvdata(pdev, info);
+
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	if (res == NULL) {
 		dev_err(&pdev->dev, "no memory resource defined\n");
@@ -110,8 +112,6 @@ static int sram_probe(struct platform_device *pdev)
 	list_add(&info->node, &sram_bank_list);
 	mutex_unlock(&sram_lock);
 
-	platform_set_drvdata(pdev, info);
-
 	dev_info(&pdev->dev, "initialized\n");
 	return 0;
 
@@ -130,17 +130,19 @@ static int sram_remove(struct platform_device *pdev)
 	struct sram_bank_info *info;
 
 	info = platform_get_drvdata(pdev);
-	if (info == NULL)
-		return -ENODEV;
 
-	mutex_lock(&sram_lock);
-	list_del(&info->node);
-	mutex_unlock(&sram_lock);
+	if (info->sram_size) {
+		mutex_lock(&sram_lock);
+		list_del(&info->node);
+		mutex_unlock(&sram_lock);
+
+		gen_pool_destroy(info->gpool);
+		iounmap(info->sram_virt);
+		kfree(info->pool_name);
+	}
 
-	gen_pool_destroy(info->gpool);
-	iounmap(info->sram_virt);
-	kfree(info->pool_name);
 	kfree(info);
+
 	return 0;
 }
 
arch/arm/mach-s3c24xx/mach-jive.c +3 -3
index 17821976f769..5de514940a9c 100644
@@ -241,11 +241,11 @@ static int __init jive_mtdset(char *options)
 	unsigned long set;
 
 	if (options == NULL || options[0] == '\0')
-		return 0;
+		return 1;
 
 	if (kstrtoul(options, 10, &set)) {
 		printk(KERN_ERR "failed to parse mtdset=%s\n", options);
-		return 0;
+		return 1;
 	}
 
 	switch (set) {
@@ -260,7 +260,7 @@ static int __init jive_mtdset(char *options)
 		       "using default.", set);
 	}
 
-	return 0;
+	return 1;
 }
 
 /* parse the mtdset= option given to the kernel command line */
arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts +4 -4
index ec19fbf928a1..12a4b1c03390 100644
@@ -111,8 +111,8 @@
 		compatible = "silabs,si3226x";
 		reg = <0>;
 		spi-max-frequency = <5000000>;
-		spi-cpha = <1>;
-		spi-cpol = <1>;
+		spi-cpha;
+		spi-cpol;
 		pl022,hierarchy = <0>;
 		pl022,interface = <0>;
 		pl022,slave-tx-disable = <0>;
@@ -135,8 +135,8 @@
 		at25,byte-len = <0x8000>;
 		at25,addr-mode = <2>;
 		at25,page-size = <64>;
-		spi-cpha = <1>;
-		spi-cpol = <1>;
+		spi-cpha;
+		spi-cpol;
 		pl022,hierarchy = <0>;
 		pl022,interface = <0>;
 		pl022,slave-tx-disable = <0>;
arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi +1 -1
index 05f82819ae2d..46676af48c31 100644
@@ -687,7 +687,7 @@
 			};
 		};
 
-		sata: ahci@663f2000 {
+		sata: sata@663f2000 {
 			compatible = "brcm,iproc-ahci", "generic-ahci";
 			reg = <0x663f2000 0x1000>;
 			dma-coherent;
arch/arm64/kernel/insn.c +2 -2
index 4381aa7b071d..8ac4f47cde33 100644
@@ -233,8 +233,8 @@ static int __kprobes aarch64_insn_patch_text_cb(void *arg)
 	int i, ret = 0;
 	struct aarch64_insn_patch *pp = arg;
 
-	/* The first CPU becomes master */
-	if (atomic_inc_return(&pp->cpu_count) == 1) {
+	/* The last CPU becomes master */
+	if (atomic_inc_return(&pp->cpu_count) == num_online_cpus()) {
 		for (i = 0; ret == 0 && i < pp->insn_cnt; i++)
 			ret = aarch64_insn_patch_text_nosync(pp->text_addrs[i],
 							     pp->new_insns[i]);
arch/arm64/kernel/module.lds +3 -3
index 09a0eef71d12..9371abe2f4c2 100644
@@ -1,5 +1,5 @@
 SECTIONS {
-	.plt 0 (NOLOAD) : { BYTE(0) }
-	.init.plt 0 (NOLOAD) : { BYTE(0) }
-	.text.ftrace_trampoline 0 (NOLOAD) : { BYTE(0) }
+	.plt 0 : { BYTE(0) }
+	.init.plt 0 : { BYTE(0) }
+	.text.ftrace_trampoline 0 : { BYTE(0) }
 }
arch/mips/dec/prom/Makefile +1 -1
index ae73e42ac20b..4c369359cdab 100644
@@ -5,4 +5,4 @@
 
 lib-y			+= init.o memory.o cmdline.o identify.o console.o
 
-lib-$(CONFIG_32BIT)	+= locore.o
+lib-$(CONFIG_CPU_R3000)	+= locore.o
arch/mips/include/asm/dec/prom.h +5 -10
index b59a2103b61a..09538ff5e924 100644
@@ -47,16 +47,11 @@
  */
 #define REX_PROM_MAGIC		0x30464354
 
-#ifdef CONFIG_64BIT
-
-#define prom_is_rex(magic)	1	/* KN04 and KN05 are REX PROMs.  */
-
-#else /* !CONFIG_64BIT */
-
-#define prom_is_rex(magic)	((magic) == REX_PROM_MAGIC)
-
-#endif /* !CONFIG_64BIT */
-
+/* KN04 and KN05 are REX PROMs, so only do the check for R3k systems.  */
+static inline bool prom_is_rex(u32 magic)
+{
+	return !IS_ENABLED(CONFIG_CPU_R3000) || magic == REX_PROM_MAGIC;
+}
 
 /*
  * 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's and
arch/mips/include/asm/setup.h +1 -1
index d49d247d48a1..d48a5f18a267 100644
@@ -14,7 +14,7 @@ static inline void setup_8250_early_printk_port(unsigned long base,
 	unsigned int reg_shift, unsigned int timeout) {}
 #endif
 
-extern void set_handler(unsigned long offset, void *addr, unsigned long len);
+void set_handler(unsigned long offset, const void *addr, unsigned long len);
 extern void set_uncached_handler(unsigned long offset, void *addr, unsigned long len);
 
 typedef void (*vi_handler_t)(void);
arch/mips/kernel/traps.c +11 -11
index 4a23d89e251c..abbc64788008 100644
@@ -2017,19 +2017,19 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
 		 * If no shadow set is selected then use the default handler
 		 * that does normal register saving and standard interrupt exit
 		 */
-		extern char except_vec_vi, except_vec_vi_lui;
-		extern char except_vec_vi_ori, except_vec_vi_end;
-		extern char rollback_except_vec_vi;
-		char *vec_start = using_rollback_handler() ?
-			&rollback_except_vec_vi : &except_vec_vi;
+		extern const u8 except_vec_vi[], except_vec_vi_lui[];
+		extern const u8 except_vec_vi_ori[], except_vec_vi_end[];
+		extern const u8 rollback_except_vec_vi[];
+		const u8 *vec_start = using_rollback_handler() ?
+				      rollback_except_vec_vi : except_vec_vi;
 #if defined(CONFIG_CPU_MICROMIPS) || defined(CONFIG_CPU_BIG_ENDIAN)
-		const int lui_offset = &except_vec_vi_lui - vec_start + 2;
-		const int ori_offset = &except_vec_vi_ori - vec_start + 2;
+		const int lui_offset = except_vec_vi_lui - vec_start + 2;
+		const int ori_offset = except_vec_vi_ori - vec_start + 2;
 #else
-		const int lui_offset = &except_vec_vi_lui - vec_start;
-		const int ori_offset = &except_vec_vi_ori - vec_start;
+		const int lui_offset = except_vec_vi_lui - vec_start;
+		const int ori_offset = except_vec_vi_ori - vec_start;
 #endif
-		const int handler_len = &except_vec_vi_end - vec_start;
+		const int handler_len = except_vec_vi_end - vec_start;
 
 		if (handler_len > VECTORSPACING) {
 			/*
@@ -2249,7 +2249,7 @@ void per_cpu_trap_init(bool is_boot_cpu)
 }
 
 /* Install CPU exception handler */
-void set_handler(unsigned long offset, void *addr, unsigned long size)
+void set_handler(unsigned long offset, const void *addr, unsigned long size)
 {
 #ifdef CONFIG_CPU_MICROMIPS
 	memcpy((void *)(ebase + offset), ((unsigned char *)addr - 1), size);
arch/mips/rb532/devices.c +2 -4
index 32ea3e6731d6..ea500873f023 100644
@@ -313,11 +313,9 @@ static int __init plat_setup_devices(void)
 static int __init setup_kmac(char *s)
 {
 	printk(KERN_INFO "korina mac = %s\n", s);
-	if (!mac_pton(s, korina_dev0_data.mac)) {
+	if (!mac_pton(s, korina_dev0_data.mac))
 		printk(KERN_ERR "Invalid mac\n");
-		return -EINVAL;
-	}
-	return 0;
+	return 1;
 }
 
 __setup("kmac=", setup_kmac);
arch/powerpc/boot/dts/fsl/t104xrdb.dtsi +2 -2
index 5fdddbd2a62b..b0a9beab1c26 100644
@@ -139,12 +139,12 @@
 		fman@400000 {
 			ethernet@e6000 {
 				phy-handle = <&phy_rgmii_0>;
-				phy-connection-type = "rgmii";
+				phy-connection-type = "rgmii-id";
 			};
 
 			ethernet@e8000 {
 				phy-handle = <&phy_rgmii_1>;
-				phy-connection-type = "rgmii";
+				phy-connection-type = "rgmii-id";
 			};
 
 			mdio0: mdio@fc000 {
arch/powerpc/kernel/machine_kexec.c +11 -4
index cb4d6cd949fc..101b0fb7a80e 100644
@@ -145,11 +145,18 @@ void __init reserve_crashkernel(void)
 	if (!crashk_res.start) {
 #ifdef CONFIG_PPC64
 		/*
-		 * On 64bit we split the RMO in half but cap it at half of
-		 * a small SLB (128MB) since the crash kernel needs to place
-		 * itself and some stacks to be in the first segment.
+		 * On the LPAR platform place the crash kernel to mid of
+		 * RMA size (512MB or more) to ensure the crash kernel
+		 * gets enough space to place itself and some stack to be
+		 * in the first segment. At the same time normal kernel
+		 * also get enough space to allocate memory for essential
+		 * system resource in the first segment. Keep the crash
+		 * kernel starts at 128MB offset on other platforms.
 		 */
-		crashk_res.start = min(0x8000000ULL, (ppc64_rma_size / 2));
+		if (firmware_has_feature(FW_FEATURE_LPAR))
+			crashk_res.start = ppc64_rma_size / 2;
+		else
+			crashk_res.start = min(0x8000000ULL, (ppc64_rma_size / 2));
 #else
 		crashk_res.start = KDUMP_KERNELBASE;
 #endif
arch/powerpc/kernel/rtas.c +6 -0
index 55b266d7afe1..912e7f69266e 100644
@@ -1356,6 +1356,12 @@ int __init early_init_dt_scan_rtas(unsigned long node,
 	entryp = of_get_flat_dt_prop(node, "linux,rtas-entry", NULL);
 	sizep  = of_get_flat_dt_prop(node, "rtas-size", NULL);
 
+#ifdef CONFIG_PPC64
+	/* need this feature to decide the crashkernel offset */
+	if (of_get_flat_dt_prop(node, "ibm,hypertas-functions", NULL))
+		powerpc_firmware_features |= FW_FEATURE_LPAR;
+#endif
+
 	if (basep && entryp && sizep) {
 		rtas.base = *basep;
 		rtas.entry = *entryp;
arch/powerpc/lib/sstep.c +7 -1
index eb3f7237d09a..e9bfd9751246 100644
@@ -908,7 +908,10 @@ NOKPROBE_SYMBOL(emulate_dcbz);
 
 #define __put_user_asmx(x, addr, err, op, cr)		\
 	__asm__ __volatile__(				\
+		".machine push\n"			\
+		".machine power8\n"			\
 		"1:	" op " %2,0,%3\n"		\
+		".machine pop\n"			\
 		"	mfcr	%1\n"			\
 		"2:\n"					\
 		".section .fixup,\"ax\"\n"		\
@@ -921,7 +924,10 @@ NOKPROBE_SYMBOL(emulate_dcbz);
 
 #define __get_user_asmx(x, addr, err, op)		\
 	__asm__ __volatile__(				\
+		".machine push\n"			\
+		".machine power8\n"			\
 		"1:	"op" %1,0,%2\n"			\
+		".machine pop\n"			\
 		"2:\n"					\
 		".section .fixup,\"ax\"\n"		\
 		"3:	li	%0,%3\n"		\
@@ -2776,7 +2782,7 @@ int emulate_loadstore(struct pt_regs *regs, struct instruction_op *op)
 			__put_user_asmx(op->val, ea, err, "stbcx.", cr);
 			break;
 		case 2:
-			__put_user_asmx(op->val, ea, err, "stbcx.", cr);
+			__put_user_asmx(op->val, ea, err, "sthcx.", cr);
 			break;
 #endif
 		case 4:
arch/powerpc/sysdev/fsl_gtm.c +2 -2
index d902306f4718..42fe959f6fc2 100644
@@ -90,7 +90,7 @@ static LIST_HEAD(gtms);
  */
 struct gtm_timer *gtm_get_timer16(void)
 {
-	struct gtm *gtm = NULL;
+	struct gtm *gtm;
 	int i;
 
 	list_for_each_entry(gtm, &gtms, list_node) {
@@ -107,7 +107,7 @@ struct gtm_timer *gtm_get_timer16(void)
 		spin_unlock_irq(&gtm->lock);
 	}
 
-	if (gtm)
+	if (!list_empty(&gtms))
 		return ERR_PTR(-EBUSY);
 	return ERR_PTR(-ENODEV);
 }
arch/x86/events/intel/pt.c +1 -1
index 990ca9614b23..ad273bba5126 100644
@@ -460,7 +460,7 @@ static u64 pt_config_filters(struct perf_event *event)
 			pt->filters.filter[range].msr_b = filter->msr_b;
 		}
 
-		rtit_ctl |= filter->config << pt_address_ranges[range].reg_off;
+		rtit_ctl |= (u64)filter->config << pt_address_ranges[range].reg_off;
 	}
 
 	return rtit_ctl;
arch/x86/kvm/emulate.c +9 -5
index 23d3329e1c73..c5f2a72343e3 100644
@@ -1682,11 +1682,6 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,
 		goto exception;
 	}
 
-	if (!seg_desc.p) {
-		err_vec = (seg == VCPU_SREG_SS) ? SS_VECTOR : NP_VECTOR;
-		goto exception;
-	}
-
 	dpl = seg_desc.dpl;
 
 	switch (seg) {
@@ -1726,6 +1721,10 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,
 	case VCPU_SREG_TR:
 		if (seg_desc.s || (seg_desc.type != 1 && seg_desc.type != 9))
 			goto exception;
+		if (!seg_desc.p) {
+			err_vec = NP_VECTOR;
+			goto exception;
+		}
 		old_desc = seg_desc;
 		seg_desc.type |= 2; /* busy */
 		ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc,
@@ -1750,6 +1749,11 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,
 		break;
 	}
 
+	if (!seg_desc.p) {
+		err_vec = (seg == VCPU_SREG_SS) ? SS_VECTOR : NP_VECTOR;
+		goto exception;
+	}
+
 	if (seg_desc.s) {
 		/* mark segment as accessed */
 		if (!(seg_desc.type & 1)) {
arch/x86/kvm/hyperv.c +15 -0
index 2fba82b06c2d..5497eeef4e70 100644
@@ -260,6 +260,9 @@ static int synic_set_msr(struct kvm_vcpu_hv_synic *synic,
 	case HV_X64_MSR_EOM: {
 		int i;
 
+		if (!synic->active)
+			break;
+
 		for (i = 0; i < ARRAY_SIZE(synic->sint); i++)
 			kvm_hv_notify_acked_sint(vcpu, i);
 		break;
@@ -520,6 +523,12 @@ static int stimer_start(struct kvm_vcpu_hv_stimer *stimer)
 static int stimer_set_config(struct kvm_vcpu_hv_stimer *stimer, u64 config,
 			     bool host)
 {
+	struct kvm_vcpu *vcpu = stimer_to_vcpu(stimer);
+	struct kvm_vcpu_hv_synic *synic = vcpu_to_synic(vcpu);
+
+	if (!synic->active && (!host || config))
+		return 1;
+
 	trace_kvm_hv_stimer_set_config(stimer_to_vcpu(stimer)->vcpu_id,
 				       stimer->index, config, host);
 
@@ -534,6 +543,12 @@ static int stimer_set_config(struct kvm_vcpu_hv_stimer *stimer, u64 config,
 static int stimer_set_count(struct kvm_vcpu_hv_stimer *stimer, u64 count,
 			    bool host)
 {
+	struct kvm_vcpu *vcpu = stimer_to_vcpu(stimer);
+	struct kvm_vcpu_hv_synic *synic = vcpu_to_synic(vcpu);
+
+	if (!synic->active && (!host || count))
+		return 1;
+
 	trace_kvm_hv_stimer_set_count(stimer_to_vcpu(stimer)->vcpu_id,
 				      stimer->index, count, host);
 
arch/x86/kvm/lapic.c +1 -4
index d4fdf0e52144..99b3fa3a29bf 100644
@@ -1929,10 +1929,7 @@ void kvm_set_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu, u64 data)
 
 void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8)
 {
-	struct kvm_lapic *apic = vcpu->arch.apic;
-
-	apic_set_tpr(apic, ((cr8 & 0x0f) << 4)
-		     | (kvm_lapic_get_reg(apic, APIC_TASKPRI) & 4));
+	apic_set_tpr(vcpu->arch.apic, (cr8 & 0x0f) << 4);
 }
 
 u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu)
arch/x86/kvm/pmu_amd.c +3 -5
index cd944435dfbd..e0473c72062e 100644
@@ -139,12 +139,10 @@ static int amd_pmu_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
 	/* MSR_K7_EVNTSELn */
 	pmc = get_gp_pmc(pmu, msr, MSR_K7_EVNTSEL0);
 	if (pmc) {
-		if (data == pmc->eventsel)
-			return 0;
-		if (!(data & pmu->reserved_bits)) {
+		data &= ~pmu->reserved_bits;
+		if (data != pmc->eventsel)
 			reprogram_gp_counter(pmc, data);
-			return 0;
-		}
+		return 0;
 	}
 
 	return 1;
arch/x86/power/cpu.c +19 -2
index 3aa3149df07f..e00b8c36ab72 100644
@@ -41,7 +41,8 @@ static void msr_save_context(struct saved_context *ctxt)
 	struct saved_msr *end = msr + ctxt->saved_msrs.num;
 
 	while (msr < end) {
-		msr->valid = !rdmsrl_safe(msr->info.msr_no, &msr->info.reg.q);
+		if (msr->valid)
+			rdmsrl(msr->info.msr_no, msr->info.reg.q);
 		msr++;
 	}
 }
@@ -426,8 +427,10 @@ static int msr_build_context(const u32 *msr_id, const int num)
 	}
 
 	for (i = saved_msrs->num, j = 0; i < total_num; i++, j++) {
+		u64 dummy;
+
 		msr_array[i].info.msr_no	= msr_id[j];
-		msr_array[i].valid		= false;
+		msr_array[i].valid		= !rdmsrl_safe(msr_id[j], &dummy);
 		msr_array[i].info.reg.q		= 0;
 	}
 	saved_msrs->num   = total_num;
@@ -514,10 +517,24 @@ static int pm_cpu_check(const struct x86_cpu_id *c)
 	return ret;
 }
 
+static void pm_save_spec_msr(void)
+{
+	u32 spec_msr_id[] = {
+		MSR_IA32_SPEC_CTRL,
+		MSR_IA32_TSX_CTRL,
+		MSR_TSX_FORCE_ABORT,
+		MSR_IA32_MCU_OPT_CTRL,
+		MSR_AMD64_LS_CFG,
+	};
+
+	msr_build_context(spec_msr_id, ARRAY_SIZE(spec_msr_id));
+}
+
 static int pm_check_save_msr(void)
 {
 	dmi_check_system(msr_save_dmi_table);
 	pm_cpu_check(msr_save_cpu_table);
+	pm_save_spec_msr();
 
 	return 0;
 }
arch/x86/xen/pmu.c +4 -6
index 95997e6c0696..9813298ba57d 100644
@@ -505,10 +505,7 @@ irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id)
 	return ret;
 }
 
-bool is_xen_pmu(int cpu)
-{
-	return (get_xenpmu_data() != NULL);
-}
+bool is_xen_pmu;
 
 void xen_pmu_init(int cpu)
 {
@@ -519,7 +516,7 @@ void xen_pmu_init(int cpu)
 
 	BUILD_BUG_ON(sizeof(struct xen_pmu_data) > PAGE_SIZE);
 
-	if (xen_hvm_domain())
+	if (xen_hvm_domain() || (cpu != 0 && !is_xen_pmu))
 		return;
 
 	xenpmu_data = (struct xen_pmu_data *)get_zeroed_page(GFP_KERNEL);
@@ -540,7 +537,8 @@ void xen_pmu_init(int cpu)
 	per_cpu(xenpmu_shared, cpu).xenpmu_data = xenpmu_data;
 	per_cpu(xenpmu_shared, cpu).flags = 0;
 
-	if (cpu == 0) {
+	if (!is_xen_pmu) {
+		is_xen_pmu = true;
 		perf_register_guest_info_callbacks(&xen_guest_cbs);
 		xen_pmu_arch_init();
 	}
arch/x86/xen/pmu.h +2 -1
index 0e83a160589b..65c58894fc79 100644
@@ -4,6 +4,8 @@
 
 #include <xen/interface/xenpmu.h>
 
+extern bool is_xen_pmu;
+
 irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id);
 #ifdef CONFIG_XEN_HAVE_VPMU
 void xen_pmu_init(int cpu);
@@ -12,7 +14,6 @@ void xen_pmu_finish(int cpu);
 static inline void xen_pmu_init(int cpu) {}
 static inline void xen_pmu_finish(int cpu) {}
 #endif
-bool is_xen_pmu(int cpu);
 bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
 bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
 int pmu_apic_update(uint32_t reg);
arch/x86/xen/smp_pv.c +1 -1
index f779d2a5b04c..54ffe4ddf9f9 100644
@@ -126,7 +126,7 @@ int xen_smp_intr_init_pv(unsigned int cpu)
 	per_cpu(xen_irq_work, cpu).irq = rc;
 	per_cpu(xen_irq_work, cpu).name = callfunc_name;
 
-	if (is_xen_pmu(cpu)) {
+	if (is_xen_pmu) {
 		pmu_name = kasprintf(GFP_KERNEL, "pmu%d", cpu);
 		rc = bind_virq_to_irqhandler(VIRQ_XENPMU, cpu,
 					     xen_pmu_irq_handler,
arch/xtensa/boot/dts/xtfpga-flash-128m.dtsi +4 -4
index 9bf8bad1dd18..c33932568aa7 100644
@@ -8,19 +8,19 @@
 			reg = <0x00000000 0x08000000>;
 			bank-width = <2>;
 			device-width = <2>;
-			partition@0x0 {
+			partition@0 {
 				label = "data";
 				reg = <0x00000000 0x06000000>;
 			};
-			partition@0x6000000 {
+			partition@6000000 {
 				label = "boot loader area";
 				reg = <0x06000000 0x00800000>;
 			};
-			partition@0x6800000 {
+			partition@6800000 {
 				label = "kernel image";
 				reg = <0x06800000 0x017e0000>;
 			};
-			partition@0x7fe0000 {
+			partition@7fe0000 {
 				label = "boot environment";
 				reg = <0x07fe0000 0x00020000>;
 			};
arch/xtensa/boot/dts/xtfpga-flash-16m.dtsi +4 -4
index 40c2f81f7cb6..7bde2ab2d6fb 100644
@@ -8,19 +8,19 @@
 			reg = <0x08000000 0x01000000>;
 			bank-width = <2>;
 			device-width = <2>;
-			partition@0x0 {
+			partition@0 {
 				label = "boot loader area";
 				reg = <0x00000000 0x00400000>;
 			};
-			partition@0x400000 {
+			partition@400000 {
 				label = "kernel image";
 				reg = <0x00400000 0x00600000>;
 			};
-			partition@0xa00000 {
+			partition@a00000 {
 				label = "data";
 				reg = <0x00a00000 0x005e0000>;
 			};
-			partition@0xfe0000 {
+			partition@fe0000 {
 				label = "boot environment";
 				reg = <0x00fe0000 0x00020000>;
 			};
arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi +2 -2
index fb8d3a9f33c2..0655b868749a 100644
@@ -8,11 +8,11 @@
 			reg = <0x08000000 0x00400000>;
 			bank-width = <2>;
 			device-width = <2>;
-			partition@0x0 {
+			partition@0 {
 				label = "boot loader area";
 				reg = <0x00000000 0x003f0000>;
 			};
-			partition@0x3f0000 {
+			partition@3f0000 {
 				label = "boot environment";
 				reg = <0x003f0000 0x00010000>;
 			};
crypto/authenc.c +1 -1
index 053287dfad65..533e811a0899 100644
@@ -268,7 +268,7 @@ static int crypto_authenc_decrypt_tail(struct aead_request *req,
 		dst = scatterwalk_ffwd(areq_ctx->dst, req->dst, req->assoclen);
 
 	skcipher_request_set_tfm(skreq, ctx->enc);
-	skcipher_request_set_callback(skreq, aead_request_flags(req),
+	skcipher_request_set_callback(skreq, flags,
 				      req->base.complete, req->base.data);
 	skcipher_request_set_crypt(skreq, src, dst,
 				   req->cryptlen - authsize, req->iv);
drivers/acpi/acpica/nswalk.c +3 -0
index 6b6e6f498cff..129fc61f14c4 100644
@@ -203,6 +203,9 @@ acpi_ns_walk_namespace(acpi_object_type type,
 
 	if (start_node == ACPI_ROOT_OBJECT) {
 		start_node = acpi_gbl_root_node;
+		if (!start_node) {
+			return_ACPI_STATUS(AE_NO_NAMESPACE);
+		}
 	}
 
 	/* Null child means "get first node" */
drivers/acpi/apei/bert.c +7 -3
index 12771fcf0417..d2212e092c50 100644
@@ -31,6 +31,7 @@
 
 #undef pr_fmt
 #define pr_fmt(fmt) "BERT: " fmt
+#define ACPI_BERT_PRINT_MAX_LEN 1024
 
 static int bert_disable;
 
@@ -59,8 +60,11 @@ static void __init bert_print_all(struct acpi_bert_region *region,
 		}
 
 		pr_info_once("Error records from previous boot:\n");
-
-		cper_estatus_print(KERN_INFO HW_ERR, estatus);
+		if (region_len < ACPI_BERT_PRINT_MAX_LEN)
+			cper_estatus_print(KERN_INFO HW_ERR, estatus);
+		else
+			pr_info_once("Max print length exceeded, table data is available at:\n"
+				     "/sys/firmware/acpi/tables/data/BERT");
 
 		/*
 		 * Because the boot error source is "one-time polled" type,
@@ -82,7 +86,7 @@ static int __init setup_bert_disable(char *str)
 {
 	bert_disable = 1;
 
-	return 0;
+	return 1;
 }
 __setup("bert_disable", setup_bert_disable);
 
drivers/acpi/apei/erst.c +1 -1
index 5b149d2d52f4..575c63260fc8 100644
@@ -898,7 +898,7 @@ EXPORT_SYMBOL_GPL(erst_clear);
 static int __init setup_erst_disable(char *str)
 {
 	erst_disable = 1;
-	return 0;
+	return 1;
 }
 
 __setup("erst_disable", setup_erst_disable);
drivers/acpi/apei/hest.c +1 -1
index 9cb74115a43d..3af53ae1f276 100644
@@ -214,7 +214,7 @@ static int __init hest_ghes_dev_register(unsigned int ghes_count)
 static int __init setup_hest_disable(char *str)
 {
 	hest_disable = HEST_DISABLED;
-	return 0;
+	return 1;
 }
 
 __setup("hest_disable", setup_hest_disable);
drivers/acpi/cppc_acpi.c +5 -0
index 5b2e58cbeb35..54ec4e191a8e 100644
@@ -678,6 +678,11 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr)
 	cpc_obj = &out_obj->package.elements[0];
 	if (cpc_obj->type == ACPI_TYPE_INTEGER)	{
 		num_ent = cpc_obj->integer.value;
+		if (num_ent <= 1) {
+			pr_debug("Unexpected _CPC NumEntries value (%d) for CPU:%d\n",
+				 num_ent, pr->id);
+			goto out_free;
+		}
 	} else {
 		pr_debug("Unexpected entry type(%d) for NumEntries\n",
 				cpc_obj->type);
drivers/acpi/property.c +1 -1
index da39117032df..94e1cac3997d 100644
@@ -601,7 +601,7 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode,
 	 */
 	if (obj->type == ACPI_TYPE_LOCAL_REFERENCE) {
 		if (index)
-			return -EINVAL;
+			return -ENOENT;
 
 		ret = acpi_bus_get_device(obj->reference.handle, &device);
 		if (ret)
drivers/ata/libata-core.c +3 -0
index 791374199e22..d3a7b3bb5043 100644
@@ -4588,6 +4588,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Crucial_CT*MX100*",		"MU01",	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
+	{ "Samsung SSD 840 EVO*",	NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
+						ATA_HORKAGE_NO_DMA_LOG |
+						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Samsung SSD 840*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Samsung SSD 850*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
drivers/base/power/main.c +4 -2
index 4fd49d55bc3e..3d51e457a4cd 100644
@@ -1901,7 +1901,9 @@ static bool pm_ops_is_empty(const struct dev_pm_ops *ops)
 
 void device_pm_check_callbacks(struct device *dev)
 {
-	spin_lock_irq(&dev->power.lock);
+	unsigned long flags;
+
+	spin_lock_irqsave(&dev->power.lock, flags);
 	dev->power.no_pm_callbacks =
 		(!dev->bus || (pm_ops_is_empty(dev->bus->pm) &&
 		 !dev->bus->suspend && !dev->bus->resume)) &&
@@ -1911,5 +1913,5 @@ void device_pm_check_callbacks(struct device *dev)
 		(!dev->pm_domain || pm_ops_is_empty(&dev->pm_domain->ops)) &&
 		(!dev->driver || (pm_ops_is_empty(dev->driver->pm) &&
 		 !dev->driver->suspend && !dev->driver->resume));
-	spin_unlock_irq(&dev->power.lock);
+	spin_unlock_irqrestore(&dev->power.lock, flags);
 }
drivers/block/drbd/drbd_int.h +4 -4
index 7e8589ce631c..204b4a84bdbb 100644
@@ -1690,22 +1690,22 @@ struct sib_info {
 };
 void drbd_bcast_event(struct drbd_device *device, const struct sib_info *sib);
 
-extern void notify_resource_state(struct sk_buff *,
+extern int notify_resource_state(struct sk_buff *,
 				  unsigned int,
 				  struct drbd_resource *,
 				  struct resource_info *,
 				  enum drbd_notification_type);
-extern void notify_device_state(struct sk_buff *,
+extern int notify_device_state(struct sk_buff *,
 				unsigned int,
 				struct drbd_device *,
 				struct device_info *,
 				enum drbd_notification_type);
-extern void notify_connection_state(struct sk_buff *,
+extern int notify_connection_state(struct sk_buff *,
 				    unsigned int,
 				    struct drbd_connection *,
 				    struct connection_info *,
 				    enum drbd_notification_type);
-extern void notify_peer_device_state(struct sk_buff *,
+extern int notify_peer_device_state(struct sk_buff *,
 				     unsigned int,
 				     struct drbd_peer_device *,
 				     struct peer_device_info *,
drivers/block/drbd/drbd_nl.c +25 -16

156 lines not on this page · raw message

drivers/block/drbd/drbd_req.c +2 -1
index c72071c300bb..9b179b3d203a 100644
@@ -207,7 +207,8 @@ void start_new_tl_epoch(struct drbd_connection *connection)
 void complete_master_bio(struct drbd_device *device,
 		struct bio_and_error *m)
 {
-	m->bio->bi_status = errno_to_blk_status(m->error);
+	if (unlikely(m->error))
+		m->bio->bi_status = errno_to_blk_status(m->error);
 	bio_endio(m->bio);
 	dec_ap_bio(device);
 }
drivers/block/drbd/drbd_state.c +9 -9
index b452359b6aae..1474250f9440 100644
@@ -1549,7 +1549,7 @@ int drbd_bitmap_io_from_worker(struct drbd_device *device,
 	return rv;
 }
 
-void notify_resource_state_change(struct sk_buff *skb,
+int notify_resource_state_change(struct sk_buff *skb,
 				  unsigned int seq,
 				  struct drbd_resource_state_change *resource_state_change,
 				  enum drbd_notification_type type)
@@ -1562,10 +1562,10 @@ void notify_resource_state_change(struct sk_buff *skb,
 		.res_susp_fen = resource_state_change->susp_fen[NEW],
 	};
 
-	notify_resource_state(skb, seq, resource, &resource_info, type);
+	return notify_resource_state(skb, seq, resource, &resource_info, type);
 }
 
-void notify_connection_state_change(struct sk_buff *skb,
+int notify_connection_state_change(struct sk_buff *skb,
 				    unsigned int seq,
 				    struct drbd_connection_state_change *connection_state_change,
 				    enum drbd_notification_type type)
@@ -1576,10 +1576,10 @@ void notify_connection_state_change(struct sk_buff *skb,
 		.conn_role = connection_state_change->peer_role[NEW],
 	};
 
-	notify_connection_state(skb, seq, connection, &connection_info, type);
+	return notify_connection_state(skb, seq, connection, &connection_info, type);
 }
 
-void notify_device_state_change(struct sk_buff *skb,
+int notify_device_state_change(struct sk_buff *skb,
 				unsigned int seq,
 				struct drbd_device_state_change *device_state_change,
 				enum drbd_notification_type type)
@@ -1589,10 +1589,10 @@ void notify_device_state_change(struct sk_buff *skb,
 		.dev_disk_state = device_state_change->disk_state[NEW],
 	};
 
-	notify_device_state(skb, seq, device, &device_info, type);
+	return notify_device_state(skb, seq, device, &device_info, type);
 }
 
-void notify_peer_device_state_change(struct sk_buff *skb,
+int notify_peer_device_state_change(struct sk_buff *skb,
 				     unsigned int seq,
 				     struct drbd_peer_device_state_change *p,
 				     enum drbd_notification_type type)
@@ -1606,7 +1606,7 @@ void notify_peer_device_state_change(struct sk_buff *skb,
 		.peer_resync_susp_dependency = p->resync_susp_dependency[NEW],
 	};
 
-	notify_peer_device_state(skb, seq, peer_device, &peer_device_info, type);
+	return notify_peer_device_state(skb, seq, peer_device, &peer_device_info, type);
 }
 
 static void broadcast_state_change(struct drbd_state_change *state_change)
@@ -1614,7 +1614,7 @@ static void broadcast_state_change(struct drbd_state_change *state_change)
 	struct drbd_resource_state_change *resource_state_change = &state_change->resource[0];
 	bool resource_state_has_changed;
 	unsigned int n_device, n_connection, n_peer_device, n_peer_devices;
-	void (*last_func)(struct sk_buff *, unsigned int, void *,
+	int (*last_func)(struct sk_buff *, unsigned int, void *,
 			  enum drbd_notification_type) = NULL;
 	void *uninitialized_var(last_arg);
 
drivers/block/drbd/drbd_state_change.h +4 -4
index ba80f612d6ab..d5b0479bc9a6 100644
@@ -44,19 +44,19 @@ extern struct drbd_state_change *remember_old_state(struct drbd_resource *, gfp_
 extern void copy_old_to_new_state_change(struct drbd_state_change *);
 extern void forget_state_change(struct drbd_state_change *);
 
-extern void notify_resource_state_change(struct sk_buff *,
+extern int notify_resource_state_change(struct sk_buff *,
 					 unsigned int,
 					 struct drbd_resource_state_change *,
 					 enum drbd_notification_type type);
-extern void notify_connection_state_change(struct sk_buff *,
+extern int notify_connection_state_change(struct sk_buff *,
 					   unsigned int,
 					   struct drbd_connection_state_change *,
 					   enum drbd_notification_type type);
-extern void notify_device_state_change(struct sk_buff *,
+extern int notify_device_state_change(struct sk_buff *,
 				       unsigned int,
 				       struct drbd_device_state_change *,
 				       enum drbd_notification_type type);
-extern void notify_peer_device_state_change(struct sk_buff *,
+extern int notify_peer_device_state_change(struct sk_buff *,
 					    unsigned int,
 					    struct drbd_peer_device_state_change *,
 					    enum drbd_notification_type type);
drivers/block/loop.c +5 -5
index c6157ccb9498..4c115c1e9209 100644
@@ -765,33 +765,33 @@ static ssize_t loop_attr_backing_file_show(struct loop_device *lo, char *buf)
 
 static ssize_t loop_attr_offset_show(struct loop_device *lo, char *buf)
 {
-	return sprintf(buf, "%llu\n", (unsigned long long)lo->lo_offset);
+	return sysfs_emit(buf, "%llu\n", (unsigned long long)lo->lo_offset);
 }
 
 static ssize_t loop_attr_sizelimit_show(struct loop_device *lo, char *buf)
 {
-	return sprintf(buf, "%llu\n", (unsigned long long)lo->lo_sizelimit);
+	return sysfs_emit(buf, "%llu\n", (unsigned long long)lo->lo_sizelimit);
 }
 
 static ssize_t loop_attr_autoclear_show(struct loop_device *lo, char *buf)
 {
 	int autoclear = (lo->lo_flags & LO_FLAGS_AUTOCLEAR);
 
-	return sprintf(buf, "%s\n", autoclear ? "1" : "0");
+	return sysfs_emit(buf, "%s\n", autoclear ? "1" : "0");
 }
 
 static ssize_t loop_attr_partscan_show(struct loop_device *lo, char *buf)
 {
 	int partscan = (lo->lo_flags & LO_FLAGS_PARTSCAN);
 
-	return sprintf(buf, "%s\n", partscan ? "1" : "0");
+	return sysfs_emit(buf, "%s\n", partscan ? "1" : "0");
 }
 
 static ssize_t loop_attr_dio_show(struct loop_device *lo, char *buf)
 {
 	int dio = (lo->lo_flags & LO_FLAGS_DIRECT_IO);
 
-	return sprintf(buf, "%s\n", dio ? "1" : "0");
+	return sysfs_emit(buf, "%s\n", dio ? "1" : "0");
 }
 
 LOOP_ATTR_RO(backing_file);
drivers/block/virtio_blk.c +10 -2
index 437d43747c6d..7e8f58c2f65b 100644
@@ -822,9 +822,17 @@ static int virtblk_probe(struct virtio_device *vdev)
 	err = virtio_cread_feature(vdev, VIRTIO_BLK_F_BLK_SIZE,
 				   struct virtio_blk_config, blk_size,
 				   &blk_size);
-	if (!err)
+	if (!err) {
+		err = blk_validate_block_size(blk_size);
+		if (err) {
+			dev_err(&vdev->dev,
+				"virtio_blk: invalid block size: 0x%x\n",
+				blk_size);
+			goto out_free_tags;
+		}
+
 		blk_queue_logical_block_size(q, blk_size);
-	else
+	} else
 		blk_size = queue_logical_block_size(q);
 
 	/* Use topology information if available */
drivers/char/hw_random/atmel-rng.c +1 -0
index 661c82cde0f2..92a8960ceba5 100644
@@ -95,6 +95,7 @@ static int atmel_trng_probe(struct platform_device *pdev)
 
 err_register:
 	clk_disable_unprepare(trng->clk);
+	atmel_trng_disable(trng);
 	return ret;
 }
 
drivers/char/tpm/tpm-chip.c +8 -38

101 lines not on this page · raw message

drivers/char/tpm/tpm.h +2 -0
index 019fe80fedd8..7436da043040 100644
@@ -593,4 +593,6 @@ int tpm2_prepare_space(struct tpm_chip *chip, struct tpm_space *space, u32 cc,
 		       u8 *cmd);
 int tpm2_commit_space(struct tpm_chip *chip, struct tpm_space *space,
 		      u32 cc, u8 *buf, size_t *bufsiz);
+int tpm_devs_add(struct tpm_chip *chip);
+void tpm_devs_remove(struct tpm_chip *chip);
 #endif
drivers/char/tpm/tpm2-space.c +65 -0

68 lines not on this page · raw message

drivers/char/virtio_console.c +11 -4
index 0fb3a8e62e62..fa103e7a43b7 100644
@@ -2001,6 +2001,13 @@ static void virtcons_remove(struct virtio_device *vdev)
 	list_del(&portdev->list);
 	spin_unlock_irq(&pdrvdata_lock);
 
+	/* Device is going away, exit any polling for buffers */
+	virtio_break_device(vdev);
+	if (use_multiport(portdev))
+		flush_work(&portdev->control_work);
+	else
+		flush_work(&portdev->config_work);
+
 	/* Disable interrupts for vqs */
 	vdev->config->reset(vdev);
 	/* Finish up work that's lined up */
@@ -2274,7 +2281,7 @@ static struct virtio_driver virtio_rproc_serial = {
 	.remove =	virtcons_remove,
 };
 
-static int __init init(void)
+static int __init virtio_console_init(void)
 {
 	int err;
 
@@ -2311,7 +2318,7 @@ static int __init init(void)
 	return err;
 }
 
-static void __exit fini(void)
+static void __exit virtio_console_fini(void)
 {
 	reclaim_dma_bufs();
 
@@ -2321,8 +2328,8 @@ static void __exit fini(void)
 	class_destroy(pdrvdata.class);
 	debugfs_remove_recursive(pdrvdata.debugfs_dir);
 }
-module_init(init);
-module_exit(fini);
+module_init(virtio_console_init);
+module_exit(virtio_console_fini);
 
 MODULE_DESCRIPTION("Virtio console driver");
 MODULE_LICENSE("GPL");
drivers/clk/clk-clps711x.c +2 -0
index 9193f64561f6..4dcf15a88269 100644
@@ -32,11 +32,13 @@ static const struct clk_div_table spi_div_table[] = {
 	{ .val = 1, .div = 8, },
 	{ .val = 2, .div = 2, },
 	{ .val = 3, .div = 1, },
+	{ /* sentinel */ }
 };
 
 static const struct clk_div_table timer_div_table[] = {
 	{ .val = 0, .div = 256, },
 	{ .val = 1, .div = 1, },
+	{ /* sentinel */ }
 };
 
 struct clps711x_clk {
drivers/clk/loongson1/clk-loongson1c.c +1 -0
index 3466f7320b40..e3aa502761a3 100644
@@ -40,6 +40,7 @@ static const struct clk_div_table ahb_div_table[] = {
 	[1] = { .val = 1, .div = 4 },
 	[2] = { .val = 2, .div = 3 },
 	[3] = { .val = 3, .div = 3 },
+	[4] = { /* sentinel */ }
 };
 
 void __init ls1x_clk_init(void)
drivers/clk/qcom/clk-rcg2.c +1 -0
index 6091d9b6a27b..9743af6ae84f 100644
@@ -702,6 +702,7 @@ static const struct frac_entry frac_table_pixel[] = {
 	{ 2, 9 },
 	{ 4, 9 },
 	{ 1, 1 },
+	{ 2, 3 },
 	{ }
 };
 
drivers/clk/tegra/clk-emc.c +1 -0
index 11a5066e5c27..8b47d57cad17 100644
@@ -190,6 +190,7 @@ static struct tegra_emc *emc_ensure_emc_driver(struct tegra_clk_emc *tegra)
 
 	tegra->emc = platform_get_drvdata(pdev);
 	if (!tegra->emc) {
+		put_device(&pdev->dev);
 		pr_err("%s: cannot find EMC driver\n", __func__);
 		return NULL;
 	}
drivers/clk/uniphier/clk-uniphier-fixed-rate.c +1 -0
index 0ad0d46173c0..225de2302cb7 100644
@@ -33,6 +33,7 @@ struct clk_hw *uniphier_clk_register_fixed_rate(struct device *dev,
 
 	init.name = name;
 	init.ops = &clk_fixed_rate_ops;
+	init.flags = 0;
 	init.parent_names = NULL;
 	init.num_parents = 0;
 
drivers/clocksource/acpi_pm.c +4 -2
index 1961e3539b57..05cc8d4e49ad 100644
@@ -230,8 +230,10 @@ static int __init parse_pmtmr(char *arg)
 	int ret;
 
 	ret = kstrtouint(arg, 16, &base);
-	if (ret)
-		return ret;
+	if (ret) {
+		pr_warn("PMTMR: invalid 'pmtmr=' value: '%s'\n", arg);
+		return 1;
+	}
 
 	pr_info("PMTMR IOPort override: 0x%04x -> 0x%04x\n", pmtmr_ioport,
 		base);
drivers/crypto/ccp/ccp-dmaengine.c +16 -0
index df82af3dd970..27a738c57119 100644
@@ -632,6 +632,20 @@ static int ccp_terminate_all(struct dma_chan *dma_chan)
 	return 0;
 }
 
+static void ccp_dma_release(struct ccp_device *ccp)
+{
+	struct ccp_dma_chan *chan;
+	struct dma_chan *dma_chan;
+	unsigned int i;
+
+	for (i = 0; i < ccp->cmd_q_count; i++) {
+		chan = ccp->ccp_dma_chan + i;
+		dma_chan = &chan->dma_chan;
+		tasklet_kill(&chan->cleanup_tasklet);
+		list_del_rcu(&dma_chan->device_node);
+	}
+}
+
 int ccp_dmaengine_register(struct ccp_device *ccp)
 {
 	struct ccp_dma_chan *chan;
@@ -733,6 +747,7 @@ int ccp_dmaengine_register(struct ccp_device *ccp)
 	return 0;
 
 err_reg:
+	ccp_dma_release(ccp);
 	kmem_cache_destroy(ccp->dma_desc_cache);
 
 err_cache:
@@ -746,6 +761,7 @@ void ccp_dmaengine_unregister(struct ccp_device *ccp)
 	struct dma_device *dma_dev = &ccp->dma_dev;
 
 	dma_async_device_unregister(dma_dev);
+	ccp_dma_release(ccp);
 
 	kmem_cache_destroy(ccp->dma_desc_cache);
 	kmem_cache_destroy(ccp->dma_cmd_cache);
drivers/crypto/mxs-dcp.c +1 -1
index e986be405411..3e4068badffd 100644
@@ -328,7 +328,7 @@ static int mxs_dcp_aes_block_crypt(struct crypto_async_request *arq)
 		memset(key + AES_KEYSIZE_128, 0, AES_KEYSIZE_128);
 	}
 
-	for_each_sg(req->src, src, sg_nents(src), i) {
+	for_each_sg(req->src, src, sg_nents(req->src), i) {
 		src_buf = sg_virt(src);
 		len = sg_dma_len(src);
 		tlen += len;
drivers/crypto/vmx/Kconfig +4 -0
index c3d524ea6998..f39eeca87932 100644
@@ -1,7 +1,11 @@
 config CRYPTO_DEV_VMX_ENCRYPT
 	tristate "Encryption acceleration support on P8 CPU"
 	depends on CRYPTO_DEV_VMX
+	select CRYPTO_AES
+	select CRYPTO_CBC
+	select CRYPTO_CTR
 	select CRYPTO_GHASH
+	select CRYPTO_XTS
 	default m
 	help
 	  Support for VMX cryptographic acceleration instructions on Power8 CPU.
drivers/dma/sh/shdma-base.c +1 -3
index 4f8dfe77da3c..12fa48e380cf 100644
@@ -118,10 +118,8 @@ static dma_cookie_t shdma_tx_submit(struct dma_async_tx_descriptor *tx)
 		ret = pm_runtime_get(schan->dev);
 
 		spin_unlock_irq(&schan->chan_lock);
-		if (ret < 0) {
+		if (ret < 0)
 			dev_err(schan->dev, "%s(): GET = %d\n", __func__, ret);
-			pm_runtime_put(schan->dev);
-		}
 
 		pm_runtime_barrier(schan->dev);
 
drivers/gpio/gpiolib-acpi.c +2 -2
index 60e394da9709..713dc43024c9 100644
@@ -335,8 +335,8 @@ static acpi_status acpi_gpiochip_alloc_event(struct acpi_resource *ares,
 	pin = agpio->pin_table[0];
 
 	if (pin <= 255) {
-		char ev_name[5];
-		sprintf(ev_name, "_%c%02hhX",
+		char ev_name[8];
+		sprintf(ev_name, "_%c%02X",
 			agpio->triggering == ACPI_EDGE_SENSITIVE ? 'E' : 'L',
 			pin);
 		if (ACPI_SUCCESS(acpi_get_handle(handle, ev_name, &evt_handle)))
drivers/gpu/drm/amd/amdgpu/ObjectID.h +1 -0
index 06192698bd96..c90567de8bf7 100644
@@ -119,6 +119,7 @@
 #define CONNECTOR_OBJECT_ID_eDP                   0x14
 #define CONNECTOR_OBJECT_ID_MXM                   0x15
 #define CONNECTOR_OBJECT_ID_LVDS_eDP              0x16
+#define CONNECTOR_OBJECT_ID_USBC                  0x17
 
 /* deleted */
 
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +1 -1
index 4f6c68fc1dd9..f3bdd14e13a0 100644
@@ -157,7 +157,7 @@ static int amdgpu_gfx_kiq_acquire(struct amdgpu_device *adev,
 		    * adev->gfx.mec.num_pipe_per_mec
 		    * adev->gfx.mec.num_queue_per_pipe;
 
-	while (queue_bit-- >= 0) {
+	while (--queue_bit >= 0) {
 		if (test_bit(queue_bit, adev->gfx.mec.queue_bitmap))
 			continue;
 
drivers/gpu/drm/amd/amdkfd/kfd_events.c +2 -0
index 944abfad39c1..1d8dd81dfc70 100644
@@ -607,6 +607,8 @@ static struct kfd_event_waiter *alloc_event_waiters(uint32_t num_events)
 	event_waiters = kmalloc_array(num_events,
 					sizeof(struct kfd_event_waiter),
 					GFP_KERNEL);
+	if (!event_waiters)
+		return NULL;
 
 	for (i = 0; (event_waiters) && (i < num_events) ; i++) {
 		INIT_LIST_HEAD(&event_waiters[i].waiters);
drivers/gpu/drm/drm_edid.c +0 -8
index 4824c775dd7d..de5fc79379e8 100644
@@ -4319,16 +4319,8 @@ static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector,
 		  connector->name, dc_bpc);
 	info->bpc = dc_bpc;
 
-	/*
-	 * Deep color support mandates RGB444 support for all video
-	 * modes and forbids YCRCB422 support for all video modes per
-	 * HDMI 1.3 spec.
-	 */
-	info->color_formats = DRM_COLOR_FORMAT_RGB444;
-
 	/* YCRCB444 is optional according to spec. */
 	if (hdmi[6] & DRM_EDID_HDMI_DC_Y444) {
-		info->color_formats |= DRM_COLOR_FORMAT_YCRCB444;
 		DRM_DEBUG("%s: HDMI sink does YCRCB444 in deep color.\n",
 			  connector->name);
 	}
drivers/gpu/drm/imx/parallel-display.c +3 -1
index 8def97d75030..6420dec6cc00 100644
@@ -77,8 +77,10 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
 		ret = of_get_drm_display_mode(np, &imxpd->mode,
 					      &imxpd->bus_flags,
 					      OF_USE_NATIVE_MODE);
-		if (ret)
+		if (ret) {
+			drm_mode_destroy(connector->dev, mode);
 			return ret;
+		}
 
 		drm_mode_copy(mode, &imxpd->mode);
 		mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
drivers/gpu/drm/tegra/dsi.c +3 -1
index 046649ec9441..4e06af34c048 100644
@@ -1480,8 +1480,10 @@ static int tegra_dsi_ganged_probe(struct tegra_dsi *dsi)
 		dsi->slave = platform_get_drvdata(gangster);
 		of_node_put(np);
 
-		if (!dsi->slave)
+		if (!dsi->slave) {
+			put_device(&gangster->dev);
 			return -EPROBE_DEFER;
+		}
 
 		dsi->slave->master = dsi;
 	}
drivers/gpu/ipu-v3/ipu-di.c +3 -2
index d2f1bd9d3deb..c498dc7d8838 100644
@@ -460,8 +460,9 @@ static void ipu_di_config_clock(struct ipu_di *di,
 
 		error = rate / (sig->mode.pixelclock / 1000);
 
-		dev_dbg(di->ipu->dev, "  IPU clock can give %lu with divider %u, error %d.%u%%\n",
-			rate, div, (signed)(error - 1000) / 10, error % 10);
+		dev_dbg(di->ipu->dev, "  IPU clock can give %lu with divider %u, error %c%d.%d%%\n",
+			rate, div, error < 1000 ? '-' : '+',
+			abs(error - 1000) / 10, abs(error - 1000) % 10);
 
 		/* Allow a 1% error */
 		if (error < 1010 && error >= 990) {
drivers/hid/i2c-hid/i2c-hid-core.c +24 -8
index b16bf4358485..9a070d65ed34 100644
@@ -582,6 +582,17 @@ static int i2c_hid_get_raw_report(struct hid_device *hid,
 	if (report_type == HID_OUTPUT_REPORT)
 		return -EINVAL;
 
+	/*
+	 * In case of unnumbered reports the response from the device will
+	 * not have the report ID that the upper layers expect, so we need
+	 * to stash it the buffer ourselves and adjust the data size.
+	 */
+	if (!report_number) {
+		buf[0] = 0;
+		buf++;
+		count--;
+	}
+
 	/* +2 bytes to include the size of the reply in the query buffer */
 	ask_count = min(count + 2, (size_t)ihid->bufsize);
 
@@ -603,6 +614,9 @@ static int i2c_hid_get_raw_report(struct hid_device *hid,
 	count = min(count, ret_count - 2);
 	memcpy(buf, ihid->rawbuf + 2, count);
 
+	if (!report_number)
+		count++;
+
 	return count;
 }
 
@@ -619,17 +633,19 @@ static int i2c_hid_output_raw_report(struct hid_device *hid, __u8 *buf,
 
 	mutex_lock(&ihid->reset_lock);
 
-	if (report_id) {
-		buf++;
-		count--;
-	}
-
+	/*
+	 * Note that both numbered and unnumbered reports passed here
+	 * are supposed to have report ID stored in the 1st byte of the
+	 * buffer, so we strip it off unconditionally before passing payload
+	 * to i2c_hid_set_or_send_report which takes care of encoding
+	 * everything properly.
+	 */
 	ret = i2c_hid_set_or_send_report(client,
 				report_type == HID_FEATURE_REPORT ? 0x03 : 0x02,
-				report_id, buf, count, use_data);
+				report_id, buf + 1, count - 1, use_data);
 
-	if (report_id && ret >= 0)
-		ret++; /* add report_id to the number of transfered bytes */
+	if (ret >= 0)
+		ret++; /* add report_id to the number of transferred bytes */
 
 	mutex_unlock(&ihid->reset_lock);
 
drivers/hv/ring_buffer.c +10 -1
index 74c1dfb8183b..6b08e9d9b382 100644
@@ -340,7 +340,16 @@ int hv_ringbuffer_read(struct vmbus_channel *channel,
 static u32 hv_pkt_iter_avail(const struct hv_ring_buffer_info *rbi)
 {
 	u32 priv_read_loc = rbi->priv_read_index;
-	u32 write_loc = READ_ONCE(rbi->ring_buffer->write_index);
+	u32 write_loc;
+
+	/*
+	 * The Hyper-V host writes the packet data, then uses
+	 * store_release() to update the write_index.  Use load_acquire()
+	 * here to prevent loads of the packet data from being re-ordered
+	 * before the read of the write_index and potentially getting
+	 * stale data.
+	 */
+	write_loc = virt_load_acquire(&rbi->ring_buffer->write_index);
 
 	if (write_loc >= priv_read_loc)
 		return write_loc - priv_read_loc;
drivers/hwmon/pmbus/pmbus.h +1 -0
index fa613bd209e3..1fed8ed36d5e 100644
@@ -262,6 +262,7 @@ enum pmbus_regs {
 /*
  * STATUS_VOUT, STATUS_INPUT
  */
+#define PB_VOLTAGE_VIN_OFF		BIT(3)
 #define PB_VOLTAGE_UV_FAULT		BIT(4)
 #define PB_VOLTAGE_UV_WARNING		BIT(5)
 #define PB_VOLTAGE_OV_WARNING		BIT(6)
drivers/hwmon/pmbus/pmbus_core.c +14 -4
index cb9064ac4977..b736fe1a05b7 100644
@@ -1162,7 +1162,7 @@ static const struct pmbus_limit_attr vin_limit_attrs[] = {
 		.reg = PMBUS_VIN_UV_FAULT_LIMIT,
 		.attr = "lcrit",
 		.alarm = "lcrit_alarm",
-		.sbit = PB_VOLTAGE_UV_FAULT,
+		.sbit = PB_VOLTAGE_UV_FAULT | PB_VOLTAGE_VIN_OFF,
 	}, {
 		.reg = PMBUS_VIN_OV_WARN_LIMIT,
 		.attr = "max",
@@ -1861,10 +1861,14 @@ static int pmbus_regulator_is_enabled(struct regulator_dev *rdev)
 {
 	struct device *dev = rdev_get_dev(rdev);
 	struct i2c_client *client = to_i2c_client(dev->parent);
+	struct pmbus_data *data = i2c_get_clientdata(client);
 	u8 page = rdev_get_id(rdev);
 	int ret;
 
+	mutex_lock(&data->update_lock);
 	ret = pmbus_read_byte_data(client, page, PMBUS_OPERATION);
+	mutex_unlock(&data->update_lock);
+
 	if (ret < 0)
 		return ret;
 
@@ -1875,11 +1879,17 @@ static int _pmbus_regulator_on_off(struct regulator_dev *rdev, bool enable)
 {
 	struct device *dev = rdev_get_dev(rdev);
 	struct i2c_client *client = to_i2c_client(dev->parent);
+	struct pmbus_data *data = i2c_get_clientdata(client);
 	u8 page = rdev_get_id(rdev);
+	int ret;
 
-	return pmbus_update_byte_data(client, page, PMBUS_OPERATION,
-				      PB_OPERATION_CONTROL_ON,
-				      enable ? PB_OPERATION_CONTROL_ON : 0);
+	mutex_lock(&data->update_lock);
+	ret = pmbus_update_byte_data(client, page, PMBUS_OPERATION,
+				     PB_OPERATION_CONTROL_ON,
+				     enable ? PB_OPERATION_CONTROL_ON : 0);
+	mutex_unlock(&data->update_lock);
+
+	return ret;
 }
 
 static int pmbus_regulator_enable(struct regulator_dev *rdev)
drivers/hwmon/sch56xx-common.c +1 -1
index bda3d5285586..e1c4e6937a64 100644
@@ -437,7 +437,7 @@ struct sch56xx_watchdog_data *sch56xx_watchdog_register(struct device *parent,
 	if (nowayout)
 		set_bit(WDOG_NO_WAY_OUT, &data->wddev.status);
 	if (output_enable & SCH56XX_WDOG_OUTPUT_ENABLE)
-		set_bit(WDOG_ACTIVE, &data->wddev.status);
+		set_bit(WDOG_HW_RUNNING, &data->wddev.status);
 
 	/* Since the watchdog uses a downcounter there is no register to read
 	   the BIOS set timeout from (if any was set at all) ->
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c +6 -2
index 2f021c1a2fa6..c51447344393 100644
@@ -379,8 +379,12 @@ static ssize_t mode_store(struct device *dev,
 	mode = ETM_MODE_QELEM(config->mode);
 	/* start by clearing QE bits */
 	config->cfg &= ~(BIT(13) | BIT(14));
-	/* if supported, Q elements with instruction counts are enabled */
-	if ((mode & BIT(0)) && (drvdata->q_support & BIT(0)))
+	/*
+	 * if supported, Q elements with instruction counts are enabled.
+	 * Always set the low bit for any requested mode. Valid combos are
+	 * 0b00, 0b01 and 0b11.
+	 */
+	if (mode && drvdata->q_support)
 		config->cfg |= BIT(13);
 	/*
 	 * if supported, Q elements with and without instruction
drivers/i2c/busses/i2c-pasemi.c +6 -0
index df1dbc92a024..25c877654c32 100644
@@ -145,6 +145,12 @@ static int pasemi_i2c_xfer_msg(struct i2c_adapter *adapter,
 
 		TXFIFO_WR(smbus, msg->buf[msg->len-1] |
 			  (stop ? MTXFIFO_STOP : 0));
+
+		if (stop) {
+			err = pasemi_smb_waitready(smbus);
+			if (err)
+				goto reset_out;
+		}
 	}
 
 	return 0;
drivers/i2c/busses/i2c-xiic.c +2 -1
index 5a94f732049e..da526cc471cc 100644
@@ -731,7 +731,6 @@ static const struct i2c_adapter_quirks xiic_quirks = {
 
 static const struct i2c_adapter xiic_adapter = {
 	.owner = THIS_MODULE,
-	.name = DRIVER_NAME,
 	.class = I2C_CLASS_DEPRECATED,
 	.algo = &xiic_algorithm,
 	.quirks = &xiic_quirks,
@@ -768,6 +767,8 @@ static int xiic_i2c_probe(struct platform_device *pdev)
 	i2c_set_adapdata(&i2c->adap, i2c);
 	i2c->adap.dev.parent = &pdev->dev;
 	i2c->adap.dev.of_node = pdev->dev.of_node;
+	snprintf(i2c->adap.name, sizeof(i2c->adap.name),
+		 DRIVER_NAME " %s", pdev->name);
 
 	mutex_init(&i2c->lock);
 	init_waitqueue_head(&i2c->wait);
drivers/i2c/muxes/i2c-demux-pinctrl.c +3 -2
index 0c637ae81404..c638b2fc7fa2 100644
@@ -259,7 +259,7 @@ static int i2c_demux_pinctrl_probe(struct platform_device *pdev)
 
 	err = device_create_file(&pdev->dev, &dev_attr_available_masters);
 	if (err)
-		goto err_rollback;
+		goto err_rollback_activation;
 
 	err = device_create_file(&pdev->dev, &dev_attr_current_master);
 	if (err)
@@ -269,8 +269,9 @@ static int i2c_demux_pinctrl_probe(struct platform_device *pdev)
 
 err_rollback_available:
 	device_remove_file(&pdev->dev, &dev_attr_available_masters);
-err_rollback:
+err_rollback_activation:
 	i2c_demux_deactivate_master(priv);
+err_rollback:
 	for (j = 0; j < i; j++) {
 		of_node_put(priv->chan[j].parent_np);
 		of_changeset_destroy(&priv->chan[j].chgset);
drivers/iio/adc/twl6030-gpadc.c +2 -0
index bc0e60b9da45..6a4ec58eb9c5 100644
@@ -927,6 +927,8 @@ static int twl6030_gpadc_probe(struct platform_device *pdev)
 	ret = devm_request_threaded_irq(dev, irq, NULL,
 				twl6030_gpadc_irq_handler,
 				IRQF_ONESHOT, "twl6030_gpadc", indio_dev);
+	if (ret)
+		return ret;
 
 	ret = twl6030_gpadc_enable_irq(TWL6030_GPADC_RT_SW1_EOC_MASK);
 	if (ret < 0) {
drivers/iio/inkern.c +31 -9
index 069defcc6d9b..f12bad60a581 100644
@@ -591,28 +591,50 @@ EXPORT_SYMBOL_GPL(iio_read_channel_average_raw);
 static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
 	int raw, int *processed, unsigned int scale)
 {
-	int scale_type, scale_val, scale_val2, offset;
+	int scale_type, scale_val, scale_val2;
+	int offset_type, offset_val, offset_val2;
 	s64 raw64 = raw;
-	int ret;
 
-	ret = iio_channel_read(chan, &offset, NULL, IIO_CHAN_INFO_OFFSET);
-	if (ret >= 0)
-		raw64 += offset;
+	offset_type = iio_channel_read(chan, &offset_val, &offset_val2,
+				       IIO_CHAN_INFO_OFFSET);
+	if (offset_type >= 0) {
+		switch (offset_type) {
+		case IIO_VAL_INT:
+			break;
+		case IIO_VAL_INT_PLUS_MICRO:
+		case IIO_VAL_INT_PLUS_NANO:
+			/*
+			 * Both IIO_VAL_INT_PLUS_MICRO and IIO_VAL_INT_PLUS_NANO
+			 * implicitely truncate the offset to it's integer form.
+			 */
+			break;
+		case IIO_VAL_FRACTIONAL:
+			offset_val /= offset_val2;
+			break;
+		case IIO_VAL_FRACTIONAL_LOG2:
+			offset_val >>= offset_val2;
+			break;
+		default:
+			return -EINVAL;
+		}
+
+		raw64 += offset_val;
+	}
 
 	scale_type = iio_channel_read(chan, &scale_val, &scale_val2,
 					IIO_CHAN_INFO_SCALE);
 	if (scale_type < 0) {
 		/*
-		 * Just pass raw values as processed if no scaling is
-		 * available.
+		 * If no channel scaling is available apply consumer scale to
+		 * raw value and return.
 		 */
-		*processed = raw;
+		*processed = raw * scale;
 		return 0;
 	}
 
 	switch (scale_type) {
 	case IIO_VAL_INT:
-		*processed = raw64 * scale_val;
+		*processed = raw64 * scale_val * scale;
 		break;
 	case IIO_VAL_INT_PLUS_MICRO:
 		if (scale_val2 < 0)
drivers/input/input.c +0 -6
index cb8ff919ba82..cadb368be8ef 100644
@@ -2120,12 +2120,6 @@ int input_register_device(struct input_dev *dev)
 	/* KEY_RESERVED is not supposed to be transmitted to userspace. */
 	__clear_bit(KEY_RESERVED, dev->keybit);
 
-	/* Buttonpads should not map BTN_RIGHT and/or BTN_MIDDLE. */
-	if (test_bit(INPUT_PROP_BUTTONPAD, dev->propbit)) {
-		__clear_bit(BTN_RIGHT, dev->keybit);
-		__clear_bit(BTN_MIDDLE, dev->keybit);
-	}
-
 	/* Make sure that bitmasks not mentioned in dev->evbit are clean. */
 	input_cleanse_bitmasks(dev);
 
drivers/iommu/arm-smmu-v3.c +1 -0
index 29feafa8007f..878087b9ddfe 100644
@@ -1210,6 +1210,7 @@ static irqreturn_t arm_smmu_evtq_thread(int irq, void *dev)
 				dev_info(smmu->dev, "\t0x%016llx\n",
 					 (unsigned long long)evt[i]);
 
+			cond_resched();
 		}
 
 		/*
drivers/irqchip/irq-nvic.c +2 -0
index 9694529b709d..330beb62d015 100644
@@ -108,6 +108,7 @@ static int __init nvic_of_init(struct device_node *node,
 
 	if (!nvic_irq_domain) {
 		pr_warn("Failed to allocate irq domain\n");
+		iounmap(nvic_base);
 		return -ENOMEM;
 	}
 
@@ -117,6 +118,7 @@ static int __init nvic_of_init(struct device_node *node,
 	if (ret) {
 		pr_warn("Failed to allocate irq chips\n");
 		irq_domain_remove(nvic_irq_domain);
+		iounmap(nvic_base);
 		return ret;
 	}
 
drivers/md/dm-crypt.c +1 -1
index b8a9695af141..0b6d4337aaab 100644
@@ -2114,7 +2114,7 @@ static int crypt_set_keyring_key(struct crypt_config *cc, const char *key_string
 
 static int get_key_size(char **key_string)
 {
-	return (*key_string[0] == ':') ? -EINVAL : strlen(*key_string) >> 1;
+	return (*key_string[0] == ':') ? -EINVAL : (int)(strlen(*key_string) >> 1);
 }
 
 #endif
drivers/md/dm-ioctl.c +2 -0
index 2f020401d5ba..ddfea5324b58 100644
@@ -17,6 +17,7 @@
 #include <linux/dm-ioctl.h>
 #include <linux/hdreg.h>
 #include <linux/compat.h>
+#include <linux/nospec.h>
 
 #include <linux/uaccess.h>
 
@@ -1669,6 +1670,7 @@ static ioctl_fn lookup_ioctl(unsigned int cmd, int *ioctl_flags)
 	if (unlikely(cmd >= ARRAY_SIZE(_ioctls)))
 		return NULL;
 
+	cmd = array_index_nospec(cmd, ARRAY_SIZE(_ioctls));
 	*ioctl_flags = _ioctls[cmd].flags;
 	return _ioctls[cmd].fn;
 }
drivers/media/pci/cx88/cx88-mpeg.c +3 -0
index 52ff00ebd4bd..281eca525340 100644
@@ -171,6 +171,9 @@ int cx8802_start_dma(struct cx8802_dev    *dev,
 	cx_write(MO_TS_GPCNTRL, GP_COUNT_CONTROL_RESET);
 	q->count = 0;
 
+	/* clear interrupt status register */
+	cx_write(MO_TS_INTSTAT,  0x1f1111);
+
 	/* enable irqs */
 	dprintk(1, "setting the interrupt mask\n");
 	cx_set(MO_PCI_INTMSK, core->pci_irqmask | PCI_INT_TSINT);
drivers/media/platform/coda/coda-common.c +1 -0
index 5b87c488ee11..993208944ace 100644
@@ -360,6 +360,7 @@ static struct vdoa_data *coda_get_vdoa_data(void)
 	if (!vdoa_data)
 		vdoa_data = ERR_PTR(-EPROBE_DEFER);
 
+	put_device(&vdoa_pdev->dev);
 out:
 	if (vdoa_node)
 		of_node_put(vdoa_node);
drivers/media/platform/davinci/vpif.c +1 -0
index 07e89a4985a6..4ac0893282f5 100644
@@ -495,6 +495,7 @@ static int vpif_probe(struct platform_device *pdev)
 
 static int vpif_remove(struct platform_device *pdev)
 {
+	pm_runtime_put(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 	return 0;
 }
drivers/media/usb/go7007/s2250-board.c +4 -6
index 1466db150d82..625e77f4dbd2 100644
@@ -512,6 +512,7 @@ static int s2250_probe(struct i2c_client *client,
 	u8 *data;
 	struct go7007 *go = i2c_get_adapdata(adapter);
 	struct go7007_usb *usb = go->hpi_context;
+	int err = -EIO;
 
 	audio = i2c_new_dummy(adapter, TLV320_ADDRESS >> 1);
 	if (audio == NULL)
@@ -540,11 +541,8 @@ static int s2250_probe(struct i2c_client *client,
 		V4L2_CID_HUE, -512, 511, 1, 0);
 	sd->ctrl_handler = &state->hdl;
 	if (state->hdl.error) {
-		int err = state->hdl.error;
-
-		v4l2_ctrl_handler_free(&state->hdl);
-		kfree(state);
-		return err;
+		err = state->hdl.error;
+		goto fail;
 	}
 
 	state->std = V4L2_STD_NTSC;
@@ -608,7 +606,7 @@ static int s2250_probe(struct i2c_client *client,
 	i2c_unregister_device(audio);
 	v4l2_ctrl_handler_free(&state->hdl);
 	kfree(state);
-	return -EIO;
+	return err;
 }
 
 static int s2250_remove(struct i2c_client *client)
drivers/media/usb/hdpvr/hdpvr-video.c +3 -1
index 991f820a4530..1cecb37e16d2 100644
@@ -312,7 +312,6 @@ static int hdpvr_start_streaming(struct hdpvr_device *dev)
 
 	dev->status = STATUS_STREAMING;
 
-	INIT_WORK(&dev->worker, hdpvr_transmit_buffers);
 	schedule_work(&dev->worker);
 
 	v4l2_dbg(MSG_BUFFER, hdpvr_debug, &dev->v4l2_dev,
@@ -1175,6 +1174,9 @@ int hdpvr_register_videodev(struct hdpvr_device *dev, struct device *parent,
 	bool ac3 = dev->flags & HDPVR_FLAG_AC3_CAP;
 	int res;
 
+	// initialize dev->worker
+	INIT_WORK(&dev->worker, hdpvr_transmit_buffers);
+
 	dev->cur_std = V4L2_STD_525_60;
 	dev->width = 720;
 	dev->height = 480;
drivers/media/usb/stk1160/stk1160-core.c +1 -1
index 8e434b31cb98..7f02c2739ec2 100644
@@ -410,7 +410,7 @@ static void stk1160_disconnect(struct usb_interface *interface)
 	/* Here is the only place where isoc get released */
 	stk1160_uninit_isoc(dev);
 
-	stk1160_clear_queue(dev);
+	stk1160_clear_queue(dev, VB2_BUF_STATE_ERROR);
 
 	video_unregister_device(&dev->vdev);
 	v4l2_device_disconnect(&dev->v4l2_dev);
drivers/media/usb/stk1160/stk1160-v4l.c +5 -5
index 77b759a0bcd9..43676abc1694 100644
@@ -269,7 +269,7 @@ static int stk1160_start_streaming(struct stk1160 *dev)
 	stk1160_uninit_isoc(dev);
 out_stop_hw:
 	usb_set_interface(dev->udev, 0, 0);
-	stk1160_clear_queue(dev);
+	stk1160_clear_queue(dev, VB2_BUF_STATE_QUEUED);
 
 	mutex_unlock(&dev->v4l_lock);
 
@@ -317,7 +317,7 @@ static int stk1160_stop_streaming(struct stk1160 *dev)
 
 	stk1160_stop_hw(dev);
 
-	stk1160_clear_queue(dev);
+	stk1160_clear_queue(dev, VB2_BUF_STATE_ERROR);
 
 	stk1160_dbg("streaming stopped\n");
 
@@ -762,7 +762,7 @@ static const struct video_device v4l_template = {
 /********************************************************************/
 
 /* Must be called with both v4l_lock and vb_queue_lock hold */
-void stk1160_clear_queue(struct stk1160 *dev)
+void stk1160_clear_queue(struct stk1160 *dev, enum vb2_buffer_state vb2_state)
 {
 	struct stk1160_buffer *buf;
 	unsigned long flags;
@@ -773,7 +773,7 @@ void stk1160_clear_queue(struct stk1160 *dev)
 		buf = list_first_entry(&dev->avail_bufs,
 			struct stk1160_buffer, list);
 		list_del(&buf->list);
-		vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
+		vb2_buffer_done(&buf->vb.vb2_buf, vb2_state);
 		stk1160_dbg("buffer [%p/%d] aborted\n",
 			    buf, buf->vb.vb2_buf.index);
 	}
@@ -783,7 +783,7 @@ void stk1160_clear_queue(struct stk1160 *dev)
 		buf = dev->isoc_ctl.buf;
 		dev->isoc_ctl.buf = NULL;
 
-		vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
+		vb2_buffer_done(&buf->vb.vb2_buf, vb2_state);
 		stk1160_dbg("buffer [%p/%d] aborted\n",
 			    buf, buf->vb.vb2_buf.index);
 	}
drivers/media/usb/stk1160/stk1160.h +1 -1
index acd1c811db08..54a046aacd33 100644
@@ -177,7 +177,7 @@ struct regval {
 int stk1160_vb2_setup(struct stk1160 *dev);
 int stk1160_video_register(struct stk1160 *dev);
 void stk1160_video_unregister(struct stk1160 *dev);
-void stk1160_clear_queue(struct stk1160 *dev);
+void stk1160_clear_queue(struct stk1160 *dev, enum vb2_buffer_state vb2_state);
 
 /* Provided by stk1160-video.c */
 int stk1160_alloc_isoc(struct stk1160 *dev);
drivers/memory/atmel-ebi.c +17 -6
index 2b9283d4fcb1..8e7b5a1d2983 100644
@@ -524,20 +524,27 @@ static int atmel_ebi_probe(struct platform_device *pdev)
 	smc_np = of_parse_phandle(dev->of_node, "atmel,smc", 0);
 
 	ebi->smc.regmap = syscon_node_to_regmap(smc_np);
-	if (IS_ERR(ebi->smc.regmap))
-		return PTR_ERR(ebi->smc.regmap);
+	if (IS_ERR(ebi->smc.regmap)) {
+		ret = PTR_ERR(ebi->smc.regmap);
+		goto put_node;
+	}
 
 	ebi->smc.layout = atmel_hsmc_get_reg_layout(smc_np);
-	if (IS_ERR(ebi->smc.layout))
-		return PTR_ERR(ebi->smc.layout);
+	if (IS_ERR(ebi->smc.layout)) {
+		ret = PTR_ERR(ebi->smc.layout);
+		goto put_node;
+	}
 
 	ebi->smc.clk = of_clk_get(smc_np, 0);
 	if (IS_ERR(ebi->smc.clk)) {
-		if (PTR_ERR(ebi->smc.clk) != -ENOENT)
-			return PTR_ERR(ebi->smc.clk);
+		if (PTR_ERR(ebi->smc.clk) != -ENOENT) {
+			ret = PTR_ERR(ebi->smc.clk);
+			goto put_node;
+		}
 
 		ebi->smc.clk = NULL;
 	}
+	of_node_put(smc_np);
 	ret = clk_prepare_enable(ebi->smc.clk);
 	if (ret)
 		return ret;
@@ -587,6 +594,10 @@ static int atmel_ebi_probe(struct platform_device *pdev)
 	}
 
 	return of_platform_populate(np, NULL, NULL, dev);
+
+put_node:
+	of_node_put(smc_np);
+	return ret;
 }
 
 static __maybe_unused int atmel_ebi_resume(struct device *dev)
drivers/memory/emif.c +5 -3
index 88c32b8dc88a..9f293b931144 100644
@@ -1425,7 +1425,7 @@ static struct emif_data *__init_or_module get_device_details(
 	temp	= devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL);
 	dev_info = devm_kzalloc(dev, sizeof(*dev_info), GFP_KERNEL);
 
-	if (!emif || !pd || !dev_info) {
+	if (!emif || !temp || !dev_info) {
 		dev_err(dev, "%s:%d: allocation error\n", __func__, __LINE__);
 		goto error;
 	}
@@ -1517,7 +1517,7 @@ static int __init_or_module emif_probe(struct platform_device *pdev)
 {
 	struct emif_data	*emif;
 	struct resource		*res;
-	int			irq;
+	int			irq, ret;
 
 	if (pdev->dev.of_node)
 		emif = of_get_memory_device_details(pdev->dev.of_node, &pdev->dev);
@@ -1551,7 +1551,9 @@ static int __init_or_module emif_probe(struct platform_device *pdev)
 	emif_onetime_settings(emif);
 	emif_debugfs_init(emif);
 	disable_and_clear_all_interrupts(emif);
-	setup_interrupts(emif, irq);
+	ret = setup_interrupts(emif, irq);
+	if (ret)
+		goto error;
 
 	/* One-time actions taken on probing the first device */
 	if (!emif1) {
drivers/mfd/asic3.c +7 -3
index cf2e25ab2940..21424c43ba72 100644
@@ -915,14 +915,14 @@ static int __init asic3_mfd_probe(struct platform_device *pdev,
 		ret = mfd_add_devices(&pdev->dev, pdev->id,
 			&asic3_cell_ds1wm, 1, mem, asic->irq_base, NULL);
 		if (ret < 0)
-			goto out;
+			goto out_unmap;
 	}
 
 	if (mem_sdio && (irq >= 0)) {
 		ret = mfd_add_devices(&pdev->dev, pdev->id,
 			&asic3_cell_mmc, 1, mem_sdio, irq, NULL);
 		if (ret < 0)
-			goto out;
+			goto out_unmap;
 	}
 
 	ret = 0;
@@ -936,8 +936,12 @@ static int __init asic3_mfd_probe(struct platform_device *pdev,
 		ret = mfd_add_devices(&pdev->dev, 0,
 			asic3_cell_leds, ASIC3_NUM_LEDS, NULL, 0, NULL);
 	}
+	return ret;
 
- out:
+out_unmap:
+	if (asic->tmio_cnf)
+		iounmap(asic->tmio_cnf);
+out:
 	return ret;
 }
 
drivers/mfd/mc13xxx-core.c +3 -1
index 75d52034f89d..5b4faebdcae2 100644
@@ -313,8 +313,10 @@ int mc13xxx_adc_do_conversion(struct mc13xxx *mc13xxx, unsigned int mode,
 		adc1 |= MC13783_ADC1_ATOX;
 
 	dev_dbg(mc13xxx->dev, "%s: request irq\n", __func__);
-	mc13xxx_irq_request(mc13xxx, MC13XXX_IRQ_ADCDONE,
+	ret = mc13xxx_irq_request(mc13xxx, MC13XXX_IRQ_ADCDONE,
 			mc13xxx_handler_adcdone, __func__, &adcdone_data);
+	if (ret)
+		goto out;
 
 	mc13xxx_reg_write(mc13xxx, MC13XXX_ADC0, adc0);
 	mc13xxx_reg_write(mc13xxx, MC13XXX_ADC1, adc1);
drivers/misc/kgdbts.c +2 -2
index aa70e22e247b..d14b4b0a1d7c 100644
@@ -1068,10 +1068,10 @@ static int kgdbts_option_setup(char *opt)
 {
 	if (strlen(opt) >= MAX_CONFIG_LEN) {
 		printk(KERN_ERR "kgdbts: config string too long\n");
-		return -ENOSPC;
+		return 1;
 	}
 	strcpy(config, opt);
-	return 0;
+	return 1;
 }
 
 __setup("kgdbts=", kgdbts_option_setup);
drivers/mmc/core/host.c +13 -2
index 3740fb0052a4..4da2bcfd0649 100644
@@ -401,6 +401,16 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)
 
 EXPORT_SYMBOL(mmc_alloc_host);
 
+static int mmc_validate_host_caps(struct mmc_host *host)
+{
+	if (host->caps & MMC_CAP_SDIO_IRQ && !host->ops->enable_sdio_irq) {
+		dev_warn(host->parent, "missing ->enable_sdio_irq() ops\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
 /**
  *	mmc_add_host - initialise host hardware
  *	@host: mmc host
@@ -413,8 +423,9 @@ int mmc_add_host(struct mmc_host *host)
 {
 	int err;
 
-	WARN_ON((host->caps & MMC_CAP_SDIO_IRQ) &&
-		!host->ops->enable_sdio_irq);
+	err = mmc_validate_host_caps(host);
+	if (err)
+		return err;
 
 	err = device_add(&host->class_dev);
 	if (err)
drivers/mmc/host/sdhci-xenon.c +0 -10
index ca34fa424634..bd7d15936836 100644
@@ -243,16 +243,6 @@ static void xenon_voltage_switch(struct sdhci_host *host)
 {
 	/* Wait for 5ms after set 1.8V signal enable bit */
 	usleep_range(5000, 5500);
-
-	/*
-	 * For some reason the controller's Host Control2 register reports
-	 * the bit representing 1.8V signaling as 0 when read after it was
-	 * written as 1. Subsequent read reports 1.
-	 *
-	 * Since this may cause some issues, do an empty read of the Host
-	 * Control2 register here to circumvent this.
-	 */
-	sdhci_readw(host, SDHCI_HOST_CONTROL2);
 }
 
 static const struct sdhci_ops sdhci_xenon_ops = {
drivers/mtd/nand/atmel/nand-controller.c +11 -3
index d5a493e8ee08..475c751f2d1e 100644
@@ -1998,13 +1998,15 @@ static int atmel_nand_controller_init(struct atmel_nand_controller *nc,
 	nc->mck = of_clk_get(dev->parent->of_node, 0);
 	if (IS_ERR(nc->mck)) {
 		dev_err(dev, "Failed to retrieve MCK clk\n");
-		return PTR_ERR(nc->mck);
+		ret = PTR_ERR(nc->mck);
+		goto out_release_dma;
 	}
 
 	np = of_parse_phandle(dev->parent->of_node, "atmel,smc", 0);
 	if (!np) {
 		dev_err(dev, "Missing or invalid atmel,smc property\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto out_release_dma;
 	}
 
 	nc->smc = syscon_node_to_regmap(np);
@@ -2012,10 +2014,16 @@ static int atmel_nand_controller_init(struct atmel_nand_controller *nc,
 	if (IS_ERR(nc->smc)) {
 		ret = PTR_ERR(nc->smc);
 		dev_err(dev, "Could not get SMC regmap (err = %d)\n", ret);
-		return ret;
+		goto out_release_dma;
 	}
 
 	return 0;
+
+out_release_dma:
+	if (nc->dmac)
+		dma_release_channel(nc->dmac);
+
+	return ret;
 }
 
 static int
drivers/mtd/onenand/generic.c +6 -1
index 125da34d8ff9..23a878e7974e 100644
@@ -58,7 +58,12 @@ static int generic_onenand_probe(struct platform_device *pdev)
 	}
 
 	info->onenand.mmcontrol = pdata ? pdata->mmcontrol : NULL;
-	info->onenand.irq = platform_get_irq(pdev, 0);
+
+	err = platform_get_irq(pdev, 0);
+	if (err < 0)
+		goto out_iounmap;
+
+	info->onenand.irq = err;
 
 	info->mtd.dev.parent = &pdev->dev;
 	info->mtd.priv = &info->onenand;
drivers/mtd/ubi/build.c +1 -8
index 0104d9537329..933c4de39dce 100644
@@ -363,9 +363,6 @@ static ssize_t dev_attribute_show(struct device *dev,
 	 * we still can use 'ubi->ubi_num'.
 	 */
 	ubi = container_of(dev, struct ubi_device, dev);
-	ubi = ubi_get_device(ubi->ubi_num);
-	if (!ubi)
-		return -ENODEV;
 
 	if (attr == &dev_eraseblock_size)
 		ret = sprintf(buf, "%d\n", ubi->leb_size);
@@ -394,7 +391,6 @@ static ssize_t dev_attribute_show(struct device *dev,
 	else
 		ret = -EINVAL;
 
-	ubi_put_device(ubi);
 	return ret;
 }
 
@@ -960,9 +956,6 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num,
 			goto out_detach;
 	}
 
-	/* Make device "available" before it becomes accessible via sysfs */
-	ubi_devices[ubi_num] = ubi;
-
 	err = uif_init(ubi);
 	if (err)
 		goto out_detach;
@@ -1007,6 +1000,7 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num,
 	wake_up_process(ubi->bgt_thread);
 	spin_unlock(&ubi->wl_lock);
 
+	ubi_devices[ubi_num] = ubi;
 	ubi_notify_all(ubi, UBI_VOLUME_ADDED, NULL);
 	return ubi_num;
 
@@ -1015,7 +1009,6 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num,
 out_uif:
 	uif_close(ubi);
 out_detach:
-	ubi_devices[ubi_num] = NULL;
 	ubi_wl_close(ubi);
 	ubi_free_internal_volumes(ubi);
 	vfree(ubi->vtbl);
drivers/mtd/ubi/fastmap.c +19 -9
index 18aba1cf8acc..2882a575a74f 100644
@@ -478,7 +478,9 @@ static int scan_pool(struct ubi_device *ubi, struct ubi_attach_info *ai,
 			if (err == UBI_IO_FF_BITFLIPS)
 				scrub = 1;
 
-			add_aeb(ai, free, pnum, ec, scrub);
+			ret = add_aeb(ai, free, pnum, ec, scrub);
+			if (ret)
+				goto out;
 			continue;
 		} else if (err == 0 || err == UBI_IO_BITFLIPS) {
 			dbg_bld("Found non empty PEB:%i in pool", pnum);
@@ -648,8 +650,10 @@ static int ubi_attach_fastmap(struct ubi_device *ubi,
 		if (fm_pos >= fm_size)
 			goto fail_bad;
 
-		add_aeb(ai, &ai->free, be32_to_cpu(fmec->pnum),
-			be32_to_cpu(fmec->ec), 0);
+		ret = add_aeb(ai, &ai->free, be32_to_cpu(fmec->pnum),
+			      be32_to_cpu(fmec->ec), 0);
+		if (ret)
+			goto fail;
 	}
 
 	/* read EC values from used list */
@@ -659,8 +663,10 @@ static int ubi_attach_fastmap(struct ubi_device *ubi,
 		if (fm_pos >= fm_size)
 			goto fail_bad;
 
-		add_aeb(ai, &used, be32_to_cpu(fmec->pnum),
-			be32_to_cpu(fmec->ec), 0);
+		ret = add_aeb(ai, &used, be32_to_cpu(fmec->pnum),
+			      be32_to_cpu(fmec->ec), 0);
+		if (ret)
+			goto fail;
 	}
 
 	/* read EC values from scrub list */
@@ -670,8 +676,10 @@ static int ubi_attach_fastmap(struct ubi_device *ubi,
 		if (fm_pos >= fm_size)
 			goto fail_bad;
 
-		add_aeb(ai, &used, be32_to_cpu(fmec->pnum),
-			be32_to_cpu(fmec->ec), 1);
+		ret = add_aeb(ai, &used, be32_to_cpu(fmec->pnum),
+			      be32_to_cpu(fmec->ec), 1);
+		if (ret)
+			goto fail;
 	}
 
 	/* read EC values from erase list */
@@ -681,8 +689,10 @@ static int ubi_attach_fastmap(struct ubi_device *ubi,
 		if (fm_pos >= fm_size)
 			goto fail_bad;
 
-		add_aeb(ai, &ai->erase, be32_to_cpu(fmec->pnum),
-			be32_to_cpu(fmec->ec), 1);
+		ret = add_aeb(ai, &ai->erase, be32_to_cpu(fmec->pnum),
+			      be32_to_cpu(fmec->ec), 1);
+		if (ret)
+			goto fail;
 	}
 
 	ai->mean_ec = div_u64(ai->ec_sum, ai->ec_count);
drivers/mtd/ubi/vmt.c +1 -7
index 0be516780e92..8f641448a97a 100644
@@ -69,16 +69,11 @@ static ssize_t vol_attribute_show(struct device *dev,
 {
 	int ret;
 	struct ubi_volume *vol = container_of(dev, struct ubi_volume, dev);
-	struct ubi_device *ubi;
-
-	ubi = ubi_get_device(vol->ubi->ubi_num);
-	if (!ubi)
-		return -ENODEV;
+	struct ubi_device *ubi = vol->ubi;
 
 	spin_lock(&ubi->volumes_lock);
 	if (!ubi->volumes[vol->vol_id]) {
 		spin_unlock(&ubi->volumes_lock);
-		ubi_put_device(ubi);
 		return -ENODEV;
 	}
 	/* Take a reference to prevent volume removal */
@@ -116,7 +111,6 @@ static ssize_t vol_attribute_show(struct device *dev,
 	vol->ref_count -= 1;
 	ubi_assert(vol->ref_count >= 0);
 	spin_unlock(&ubi->volumes_lock);
-	ubi_put_device(ubi);
 	return ret;
 }
 
drivers/net/can/usb/ems_usb.c +0 -1
index d62d61d734ea..4d01b6cbf0eb 100644
@@ -834,7 +834,6 @@ static netdev_tx_t ems_usb_start_xmit(struct sk_buff *skb, struct net_device *ne
 
 		usb_unanchor_urb(urb);
 		usb_free_coherent(dev->udev, size, buf, urb->transfer_dma);
-		dev_kfree_skb(skb);
 
 		atomic_dec(&dev->active_tx_urbs);
 
drivers/net/can/usb/mcba_usb.c +16 -11
index 9e43fbb4cc9d..f7c3fc3dabfe 100644
@@ -44,10 +44,6 @@
 #define MCBA_USB_RX_BUFF_SIZE 64
 #define MCBA_USB_TX_BUFF_SIZE (sizeof(struct mcba_usb_msg))
 
-/* MCBA endpoint numbers */
-#define MCBA_USB_EP_IN 1
-#define MCBA_USB_EP_OUT 1
-
 /* Microchip command id */
 #define MBCA_CMD_RECEIVE_MESSAGE 0xE3
 #define MBCA_CMD_I_AM_ALIVE_FROM_CAN 0xF5
@@ -95,6 +91,8 @@ struct mcba_priv {
 	atomic_t free_ctx_cnt;
 	void *rxbuf[MCBA_MAX_RX_URBS];
 	dma_addr_t rxbuf_dma[MCBA_MAX_RX_URBS];
+	int rx_pipe;
+	int tx_pipe;
 };
 
 /* CAN frame */
@@ -283,10 +281,8 @@ static netdev_tx_t mcba_usb_xmit(struct mcba_priv *priv,
 
 	memcpy(buf, usb_msg, MCBA_USB_TX_BUFF_SIZE);
 
-	usb_fill_bulk_urb(urb, priv->udev,
-			  usb_sndbulkpipe(priv->udev, MCBA_USB_EP_OUT), buf,
-			  MCBA_USB_TX_BUFF_SIZE, mcba_usb_write_bulk_callback,
-			  ctx);
+	usb_fill_bulk_urb(urb, priv->udev, priv->tx_pipe, buf, MCBA_USB_TX_BUFF_SIZE,
+			  mcba_usb_write_bulk_callback, ctx);
 
 	urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
 	usb_anchor_urb(urb, &priv->tx_submitted);
@@ -379,7 +375,6 @@ static netdev_tx_t mcba_usb_start_xmit(struct sk_buff *skb,
 xmit_failed:
 	can_free_echo_skb(priv->netdev, ctx->ndx);
 	mcba_usb_free_ctx(ctx);
-	dev_kfree_skb(skb);
 	stats->tx_dropped++;
 
 	return NETDEV_TX_OK;
@@ -622,7 +617,7 @@ static void mcba_usb_read_bulk_callback(struct urb *urb)
 resubmit_urb:
 
 	usb_fill_bulk_urb(urb, priv->udev,
-			  usb_rcvbulkpipe(priv->udev, MCBA_USB_EP_OUT),
+			  priv->rx_pipe,
 			  urb->transfer_buffer, MCBA_USB_RX_BUFF_SIZE,
 			  mcba_usb_read_bulk_callback, priv);
 
@@ -667,7 +662,7 @@ static int mcba_usb_start(struct mcba_priv *priv)
 		urb->transfer_dma = buf_dma;
 
 		usb_fill_bulk_urb(urb, priv->udev,
-				  usb_rcvbulkpipe(priv->udev, MCBA_USB_EP_IN),
+				  priv->rx_pipe,
 				  buf, MCBA_USB_RX_BUFF_SIZE,
 				  mcba_usb_read_bulk_callback, priv);
 		urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
@@ -821,6 +816,13 @@ static int mcba_usb_probe(struct usb_interface *intf,
 	struct mcba_priv *priv;
 	int err = -ENOMEM;
 	struct usb_device *usbdev = interface_to_usbdev(intf);
+	struct usb_endpoint_descriptor *in, *out;
+
+	err = usb_find_common_endpoints(intf->cur_altsetting, &in, &out, NULL, NULL);
+	if (err) {
+		dev_err(&intf->dev, "Can't find endpoints\n");
+		return err;
+	}
 
 	netdev = alloc_candev(sizeof(struct mcba_priv), MCBA_MAX_TX_URBS);
 	if (!netdev) {
@@ -866,6 +868,9 @@ static int mcba_usb_probe(struct usb_interface *intf,
 		goto cleanup_free_candev;
 	}
 
+	priv->rx_pipe = usb_rcvbulkpipe(priv->udev, in->bEndpointAddress);
+	priv->tx_pipe = usb_sndbulkpipe(priv->udev, out->bEndpointAddress);
+
 	devm_can_led_init(netdev);
 
 	/* Start USB dev only if we have successfully registered CAN device */
drivers/net/can/vxcan.c +1 -1
index fc9197f14a3f..4b5355226f58 100644
@@ -156,7 +156,7 @@ static void vxcan_setup(struct net_device *dev)
 	dev->hard_header_len	= 0;
 	dev->addr_len		= 0;
 	dev->tx_queue_len	= 0;
-	dev->flags		= (IFF_NOARP|IFF_ECHO);
+	dev->flags		= IFF_NOARP;
 	dev->netdev_ops		= &vxcan_netdev_ops;
 	dev->needs_free_netdev	= true;
 }
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +1 -3
index e3123cb0fb70..82e16b2d1f7a 100644
@@ -1272,9 +1272,7 @@ static int bnxt_set_pauseparam(struct net_device *dev,
 		}
 
 		link_info->autoneg |= BNXT_AUTONEG_FLOW_CTRL;
-		if (bp->hwrm_spec_code >= 0x10201)
-			link_info->req_flow_ctrl =
-				PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE;
+		link_info->req_flow_ctrl = 0;
 	} else {
 		/* when transition from auto pause to force pause,
 		 * force a link change
drivers/net/ethernet/mellanox/mlxsw/i2c.c +1 -0
index c0dcfa05b077..3d10e6100748 100644
@@ -548,6 +548,7 @@ static int mlxsw_i2c_probe(struct i2c_client *client,
 	return 0;
 
 errout:
+	mutex_destroy(&mlxsw_i2c->cmd.lock);
 	i2c_set_clientdata(client, NULL);
 
 	return err;
drivers/net/ethernet/micrel/Kconfig +1 -0
index b7e2f49696b7..aa12bace8673 100644
@@ -45,6 +45,7 @@ config KS8851
 config KS8851_MLL
 	tristate "Micrel KS8851 MLL"
 	depends on HAS_IOMEM
+	depends on PTP_1588_CLOCK_OPTIONAL
 	select MII
 	---help---
 	  This platform driver is for Micrel KS8851 Address/data bus
drivers/net/ethernet/qlogic/qed/qed_sriov.c +27 -2
index 5e7e977c62b6..3dbea6be4e55 100644
@@ -2996,12 +2996,16 @@ static int qed_iov_pre_update_vport(struct qed_hwfn *hwfn,
 	u8 mask = QED_ACCEPT_UCAST_UNMATCHED | QED_ACCEPT_MCAST_UNMATCHED;
 	struct qed_filter_accept_flags *flags = &params->accept_flags;
 	struct qed_public_vf_info *vf_info;
+	u16 tlv_mask;
+
+	tlv_mask = BIT(QED_IOV_VP_UPDATE_ACCEPT_PARAM) |
+		   BIT(QED_IOV_VP_UPDATE_ACCEPT_ANY_VLAN);
 
 	/* Untrusted VFs can't even be trusted to know that fact.
 	 * Simply indicate everything is configured fine, and trace
 	 * configuration 'behind their back'.
 	 */
-	if (!(*tlvs & BIT(QED_IOV_VP_UPDATE_ACCEPT_PARAM)))
+	if (!(*tlvs & tlv_mask))
 		return 0;
 
 	vf_info = qed_iov_get_public_vf_info(hwfn, vfid, true);
@@ -3018,6 +3022,13 @@ static int qed_iov_pre_update_vport(struct qed_hwfn *hwfn,
 			flags->tx_accept_filter &= ~mask;
 	}
 
+	if (params->update_accept_any_vlan_flg) {
+		vf_info->accept_any_vlan = params->accept_any_vlan;
+
+		if (vf_info->forced_vlan && !vf_info->is_trusted_configured)
+			params->accept_any_vlan = false;
+	}
+
 	return 0;
 }
 
@@ -4587,6 +4598,7 @@ static int qed_get_vf_config(struct qed_dev *cdev,
 	tx_rate = vf_info->tx_rate;
 	ivi->max_tx_rate = tx_rate ? tx_rate : link.speed;
 	ivi->min_tx_rate = qed_iov_get_vf_min_rate(hwfn, vf_id);
+	ivi->trusted = vf_info->is_trusted_request;
 
 	return 0;
 }
@@ -4919,6 +4931,12 @@ static void qed_iov_handle_trust_change(struct qed_hwfn *hwfn)
 
 		params.update_ctl_frame_check = 1;
 		params.mac_chk_en = !vf_info->is_trusted_configured;
+		params.update_accept_any_vlan_flg = 0;
+
+		if (vf_info->accept_any_vlan && vf_info->forced_vlan) {
+			params.update_accept_any_vlan_flg = 1;
+			params.accept_any_vlan = vf_info->accept_any_vlan;
+		}
 
 		if (vf_info->rx_accept_mode & mask) {
 			flags->update_rx_mode_config = 1;
@@ -4934,13 +4952,20 @@ static void qed_iov_handle_trust_change(struct qed_hwfn *hwfn)
 		if (!vf_info->is_trusted_configured) {
 			flags->rx_accept_filter &= ~mask;
 			flags->tx_accept_filter &= ~mask;
+			params.accept_any_vlan = false;
 		}
 
 		if (flags->update_rx_mode_config ||
 		    flags->update_tx_mode_config ||
-		    params.update_ctl_frame_check)
+		    params.update_ctl_frame_check ||
+		    params.update_accept_any_vlan_flg) {
+			DP_VERBOSE(hwfn, QED_MSG_IOV,
+				   "vport update config for %s VF[abs 0x%x rel 0x%x]\n",
+				   vf_info->is_trusted_configured ? "trusted" : "untrusted",
+				   vf->abs_vf_id, vf->relative_vf_id);
 			qed_sp_vport_update(hwfn, &params,
 					    QED_SPQ_MODE_EBLOCK, NULL);
+		}
 	}
 }
 
drivers/net/ethernet/qlogic/qed/qed_sriov.h +1 -0
index 3955929ba892..a17ac595331f 100644
@@ -88,6 +88,7 @@ struct qed_public_vf_info {
 	bool is_trusted_request;
 	u8 rx_accept_mode;
 	u8 tx_accept_mode;
+	bool accept_any_vlan;
 };
 
 struct qed_iov_vf_init_params {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h +5 -5
index f4aa6331b367..0a9d24e86715 100644
@@ -52,7 +52,7 @@ static inline int qlcnic_dcb_get_hw_capability(struct qlcnic_dcb *dcb)
 	if (dcb && dcb->ops->get_hw_capability)
 		return dcb->ops->get_hw_capability(dcb);
 
-	return 0;
+	return -EOPNOTSUPP;
 }
 
 static inline void qlcnic_dcb_free(struct qlcnic_dcb *dcb)
@@ -66,7 +66,7 @@ static inline int qlcnic_dcb_attach(struct qlcnic_dcb *dcb)
 	if (dcb && dcb->ops->attach)
 		return dcb->ops->attach(dcb);
 
-	return 0;
+	return -EOPNOTSUPP;
 }
 
 static inline int
@@ -75,7 +75,7 @@ qlcnic_dcb_query_hw_capability(struct qlcnic_dcb *dcb, char *buf)
 	if (dcb && dcb->ops->query_hw_capability)
 		return dcb->ops->query_hw_capability(dcb, buf);
 
-	return 0;
+	return -EOPNOTSUPP;
 }
 
 static inline void qlcnic_dcb_get_info(struct qlcnic_dcb *dcb)
@@ -90,7 +90,7 @@ qlcnic_dcb_query_cee_param(struct qlcnic_dcb *dcb, char *buf, u8 type)
 	if (dcb && dcb->ops->query_cee_param)
 		return dcb->ops->query_cee_param(dcb, buf, type);
 
-	return 0;
+	return -EOPNOTSUPP;
 }
 
 static inline int qlcnic_dcb_get_cee_cfg(struct qlcnic_dcb *dcb)
@@ -98,7 +98,7 @@ static inline int qlcnic_dcb_get_cee_cfg(struct qlcnic_dcb *dcb)
 	if (dcb && dcb->ops->get_cee_cfg)
 		return dcb->ops->get_cee_cfg(dcb);
 
-	return 0;
+	return -EOPNOTSUPP;
 }
 
 static inline void qlcnic_dcb_aen_handler(struct qlcnic_dcb *dcb, void *msg)
drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c +0 -8
index 6a9c954492f2..6ca428a702f1 100644
@@ -68,10 +68,6 @@
 #define TSE_PCS_USE_SGMII_ENA				BIT(0)
 #define TSE_PCS_IF_USE_SGMII				0x03
 
-#define SGMII_ADAPTER_CTRL_REG				0x00
-#define SGMII_ADAPTER_DISABLE				0x0001
-#define SGMII_ADAPTER_ENABLE				0x0000
-
 #define AUTONEGO_LINK_TIMER				20
 
 static int tse_pcs_reset(void __iomem *base, struct tse_pcs *pcs)
@@ -215,12 +211,8 @@ void tse_pcs_fix_mac_speed(struct tse_pcs *pcs, struct phy_device *phy_dev,
 			   unsigned int speed)
 {
 	void __iomem *tse_pcs_base = pcs->tse_pcs_base;
-	void __iomem *sgmii_adapter_base = pcs->sgmii_adapter_base;
 	u32 val;
 
-	writew(SGMII_ADAPTER_ENABLE,
-	       sgmii_adapter_base + SGMII_ADAPTER_CTRL_REG);
-
 	pcs->autoneg = phy_dev->autoneg;
 
 	if (phy_dev->autoneg == AUTONEG_ENABLE) {
drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.h +4 -0
index 2f5882450b06..254199f2efdb 100644
@@ -21,6 +21,10 @@
 #include <linux/phy.h>
 #include <linux/timer.h>
 
+#define SGMII_ADAPTER_CTRL_REG		0x00
+#define SGMII_ADAPTER_ENABLE		0x0000
+#define SGMII_ADAPTER_DISABLE		0x0001
+
 struct tse_pcs {
 	struct device *dev;
 	void __iomem *tse_pcs_base;
drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c +5 -8
index 33407df6bea6..32ead4a4b460 100644
@@ -29,9 +29,6 @@
 
 #include "altr_tse_pcs.h"
 
-#define SGMII_ADAPTER_CTRL_REG                          0x00
-#define SGMII_ADAPTER_DISABLE                           0x0001
-
 #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_GMII_MII 0x0
 #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII 0x1
 #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RMII 0x2
@@ -65,16 +62,14 @@ static void socfpga_dwmac_fix_mac_speed(void *priv, unsigned int speed)
 {
 	struct socfpga_dwmac *dwmac = (struct socfpga_dwmac *)priv;
 	void __iomem *splitter_base = dwmac->splitter_base;
-	void __iomem *tse_pcs_base = dwmac->pcs.tse_pcs_base;
 	void __iomem *sgmii_adapter_base = dwmac->pcs.sgmii_adapter_base;
 	struct device *dev = dwmac->dev;
 	struct net_device *ndev = dev_get_drvdata(dev);
 	struct phy_device *phy_dev = ndev->phydev;
 	u32 val;
 
-	if ((tse_pcs_base) && (sgmii_adapter_base))
-		writew(SGMII_ADAPTER_DISABLE,
-		       sgmii_adapter_base + SGMII_ADAPTER_CTRL_REG);
+	writew(SGMII_ADAPTER_DISABLE,
+	       sgmii_adapter_base + SGMII_ADAPTER_CTRL_REG);
 
 	if (splitter_base) {
 		val = readl(splitter_base + EMAC_SPLITTER_CTRL_REG);
@@ -96,7 +91,9 @@ static void socfpga_dwmac_fix_mac_speed(void *priv, unsigned int speed)
 		writel(val, splitter_base + EMAC_SPLITTER_CTRL_REG);
 	}
 
-	if (tse_pcs_base && sgmii_adapter_base)
+	writew(SGMII_ADAPTER_ENABLE,
+	       sgmii_adapter_base + SGMII_ADAPTER_CTRL_REG);
+	if (phy_dev)
 		tse_pcs_fix_mac_speed(&dwmac->pcs, phy_dev, speed);
 }
 
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +1 -2
index d008e9d1518b..14d11f9fcbe8 100644
@@ -388,8 +388,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
 	plat->interface = of_get_phy_mode(np);
 
 	/* Get max speed of operation from device tree */
-	if (of_property_read_u32(np, "max-speed", &plat->max_speed))
-		plat->max_speed = -1;
+	of_property_read_u32(np, "max-speed", &plat->max_speed);
 
 	plat->bus_id = of_alias_get_id(np, "ethernet");
 	if (plat->bus_id < 0)
drivers/net/ethernet/sun/sunhme.c +5 -1
index 9e983e1d8249..7522f277e912 100644
@@ -3165,7 +3165,7 @@ static int happy_meal_pci_probe(struct pci_dev *pdev,
 	if (err) {
 		printk(KERN_ERR "happymeal(PCI): Cannot register net device, "
 		       "aborting.\n");
-		goto err_out_iounmap;
+		goto err_out_free_coherent;
 	}
 
 	pci_set_drvdata(pdev, hp);
@@ -3198,6 +3198,10 @@ static int happy_meal_pci_probe(struct pci_dev *pdev,
 
 	return 0;
 
+err_out_free_coherent:
+	dma_free_coherent(hp->dma_dev, PAGE_SIZE,
+			  hp->happy_block, hp->hblock_dvma);
+
 err_out_iounmap:
 	iounmap(hp->gregs);
 
drivers/net/hamradio/6pack.c +2 -2
index 7e430300818e..3d5b2b4899ec 100644
@@ -685,14 +685,14 @@ static void sixpack_close(struct tty_struct *tty)
 	 */
 	netif_stop_queue(sp->dev);
 
+	unregister_netdev(sp->dev);
+
 	del_timer_sync(&sp->tx_t);
 	del_timer_sync(&sp->resync_t);
 
 	/* Free all 6pack frame buffers. */
 	kfree(sp->rbuff);
 	kfree(sp->xbuff);
-
-	unregister_netdev(sp->dev);
 }
 
 /* Perform I/O control on an active 6pack channel. */
drivers/net/macvtap.c +6 -0
index cba5cb3b849a..dc89019ca876 100644
@@ -132,11 +132,17 @@ static void macvtap_setup(struct net_device *dev)
 	dev->tx_queue_len = TUN_READQ_SIZE;
 }
 
+static struct net *macvtap_link_net(const struct net_device *dev)
+{
+	return dev_net(macvlan_dev_real_dev(dev));
+}
+
 static struct rtnl_link_ops macvtap_link_ops __read_mostly = {
 	.kind		= "macvtap",
 	.setup		= macvtap_setup,
 	.newlink	= macvtap_newlink,
 	.dellink	= macvtap_dellink,
+	.get_link_net	= macvtap_link_net,
 	.priv_size      = sizeof(struct macvtap_dev),
 };
 
drivers/net/phy/broadcom.c +21 -0
index 1e9ad30a35c8..97e017a54eb5 100644
@@ -15,6 +15,7 @@
  */
 
 #include "bcm-phy-lib.h"
+#include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/phy.h>
 #include <linux/brcmphy.h>
@@ -444,6 +445,26 @@ static int brcm_fet_config_init(struct phy_device *phydev)
 	if (err < 0)
 		return err;
 
+	/* The datasheet indicates the PHY needs up to 1us to complete a reset,
+	 * build some slack here.
+	 */
+	usleep_range(1000, 2000);
+
+	/* The PHY requires 65 MDC clock cycles to complete a write operation
+	 * and turnaround the line properly.
+	 *
+	 * We ignore -EIO here as the MDIO controller (e.g.: mdio-bcm-unimac)
+	 * may flag the lack of turn-around as a read failure. This is
+	 * particularly true with this combination since the MDIO controller
+	 * only used 64 MDC cycles. This is not a critical failure in this
+	 * specific case and it has no functional impact otherwise, so we let
+	 * that one go through. If there is a genuine bus error, the next read
+	 * of MII_BRCM_FET_INTREG will error out.
+	 */
+	err = phy_read(phydev, MII_BMCR);
+	if (err < 0 && err != -EIO)
+		return err;
+
 	reg = phy_read(phydev, MII_BRCM_FET_INTREG);
 	if (reg < 0)
 		return reg;
drivers/net/slip/slip.c +1 -1
index d7882b548b79..dd95d6181afa 100644
@@ -471,7 +471,7 @@ static void sl_tx_timeout(struct net_device *dev)
 	spin_lock(&sl->lock);
 
 	if (netif_queue_stopped(dev)) {
-		if (!netif_running(dev))
+		if (!netif_running(dev) || !sl->tty)
 			goto out;
 
 		/* May be we must check transmitter timeout here ?
drivers/net/veth.c +1 -1
index a69ad39ee57e..f0b26768a639 100644
@@ -106,7 +106,7 @@ static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)
 
 	rcu_read_lock();
 	rcv = rcu_dereference(priv->peer);
-	if (unlikely(!rcv)) {
+	if (unlikely(!rcv) || !pskb_may_pull(skb, ETH_HLEN)) {
 		kfree_skb(skb);
 		goto drop;
 	}
drivers/net/wireless/ath/ath5k/eeprom.c +3 -0
index 94d34ee02265..01163b333945 100644
@@ -746,6 +746,9 @@ ath5k_eeprom_convert_pcal_info_5111(struct ath5k_hw *ah, int mode,
 			}
 		}
 
+		if (idx == AR5K_EEPROM_N_PD_CURVES)
+			goto err_out;
+
 		ee->ee_pd_gains[mode] = 1;
 
 		pd = &chinfo[pier].pd_curves[idx];
drivers/net/wireless/ath/ath9k/htc_hst.c +5 -0
index 05fca38b38ed..e37de14bc502 100644
@@ -30,6 +30,7 @@ static int htc_issue_send(struct htc_target *target, struct sk_buff* skb,
 	hdr->endpoint_id = epid;
 	hdr->flags = flags;
 	hdr->payload_len = cpu_to_be16(len);
+	memset(hdr->control, 0, sizeof(hdr->control));
 
 	status = target->hif->send(target->hif_dev, endpoint->ul_pipeid, skb);
 
@@ -274,6 +275,10 @@ int htc_connect_service(struct htc_target *target,
 	conn_msg->dl_pipeid = endpoint->dl_pipeid;
 	conn_msg->ul_pipeid = endpoint->ul_pipeid;
 
+	/* To prevent infoleak */
+	conn_msg->svc_meta_len = 0;
+	conn_msg->pad = 0;
+
 	ret = htc_issue_send(target, skb, skb->len, 0, ENDPOINT0);
 	if (ret)
 		goto err;
drivers/net/wireless/ath/carl9170/main.c +1 -1
index 80312b2fddb1..39f4bde6c2a0 100644
@@ -1922,7 +1922,7 @@ static int carl9170_parse_eeprom(struct ar9170 *ar)
 		WARN_ON(!(tx_streams >= 1 && tx_streams <=
 			IEEE80211_HT_MCS_TX_MAX_STREAMS));
 
-		tx_params = (tx_streams - 1) <<
+		tx_params |= (tx_streams - 1) <<
 			    IEEE80211_HT_MCS_TX_MAX_STREAMS_SHIFT;
 
 		carl9170_band_2GHz.ht_cap.mcs.tx_params |= tx_params;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c +2 -0
index 091b52979e03..13c25798f39a 100644
@@ -216,6 +216,8 @@ static int brcmf_init_nvram_parser(struct nvram_parser *nvp,
 		size = BRCMF_FW_MAX_NVRAM_SIZE;
 	else
 		size = data_len;
+	/* Add space for properties we may add */
+	size += strlen(BRCMF_FW_DEFAULT_BOARDREV) + 1;
 	/* Alloc for extra 0 byte + roundup by 4 + length field */
 	size += 1 + 3 + sizeof(u32);
 	nvp->nvram = kzalloc(size, GFP_KERNEL);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +4 -44

72 lines not on this page · raw message

drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c +1 -1
index 82caae02dd09..f2e0cfa2f4a2 100644
@@ -317,7 +317,7 @@ static int iwlagn_mac_start(struct ieee80211_hw *hw)
 
 	priv->is_open = 1;
 	IWL_DEBUG_MAC80211(priv, "leave\n");
-	return 0;
+	return ret;
 }
 
 static void iwlagn_mac_stop(struct ieee80211_hw *hw)
drivers/net/wireless/ray_cs.c +6 -0
index 170cd504e8ff..1ee150563260 100644
@@ -395,6 +395,8 @@ static int ray_config(struct pcmcia_device *link)
 		goto failed;
 	local->sram = ioremap(link->resource[2]->start,
 			resource_size(link->resource[2]));
+	if (!local->sram)
+		goto failed;
 
 /*** Set up 16k window for shared memory (receive buffer) ***************/
 	link->resource[3]->flags |=
@@ -409,6 +411,8 @@ static int ray_config(struct pcmcia_device *link)
 		goto failed;
 	local->rmem = ioremap(link->resource[3]->start,
 			resource_size(link->resource[3]));
+	if (!local->rmem)
+		goto failed;
 
 /*** Set up window for attribute memory ***********************************/
 	link->resource[4]->flags |=
@@ -423,6 +427,8 @@ static int ray_config(struct pcmcia_device *link)
 		goto failed;
 	local->amem = ioremap(link->resource[4]->start,
 			resource_size(link->resource[4]));
+	if (!local->amem)
+		goto failed;
 
 	dev_dbg(&link->dev, "ray_config sram=%p\n", local->sram);
 	dev_dbg(&link->dev, "ray_config rmem=%p\n", local->rmem);
drivers/parisc/dino.c +33 -8

58 lines not on this page · raw message

drivers/parisc/gsc.c +31 -0
index 1bab5a2cd359..a0cae6194591 100644

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

drivers/parisc/gsc.h +1 -0
index b9d7bfb68e24..9a364a4d09a5 100644

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

drivers/parisc/lasi.c +3 -4
index 4c9225431500..07ac0b8ee4fe 100644

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

drivers/parisc/wax.c +3 -4
index 6a3e40702b3b..5c42bfa83398 100644

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

drivers/pci/access.c +6 -3
index 8c585e7ca520..9ae710a63d38 100644

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

drivers/pci/host/pci-aardvark.c +6 -10
index 9ae544e113dc..124fd7cb5da5 100644

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

drivers/pci/hotplug/pciehp_hpc.c +2 -0
index 2fa830727362..c2dd297d4007 100644

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

drivers/perf/qcom_l2_pmu.c +3 -3
index b242cce10468..ab313c0adb2b 100644

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

drivers/pinctrl/mediatek/pinctrl-mtk-common.c +2 -0
index 3cf384f8b122..8b07439bb694 100644

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

drivers/pinctrl/nomadik/pinctrl-nomadik.c +3 -1
index a53f1a9b1ed2..69c702b366bc 100644

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

drivers/pinctrl/pinconf-generic.c +3 -3
index 8eaa25c3384f..6f6fd5e6b68c 100644

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

drivers/pinctrl/pinctrl-rockchip.c +2 -0
index d6b344163448..0c237dd13f2f 100644

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

drivers/pinctrl/samsung/pinctrl-samsung.c +23 -7
index ab04d4c4941d..eecc024a96a5 100644

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

drivers/power/reset/gemini-poweroff.c +2 -2
index ff75af5abbc5..95d48edf0605 100644

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

drivers/power/supply/ab8500_fg.c +3 -1
index 2677592ed7af..b00844103a07 100644

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

drivers/power/supply/axp20x_battery.c +6 -7
index 7494f0f0eadb..a2e2443357fa 100644

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

drivers/power/supply/bq24190_charger.c +6 -1
index 0906f6b562bc..32bd28f68983 100644

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

drivers/power/supply/wm8350_power.c +83 -14

97 lines not on this page · raw message

drivers/ptp/ptp_sysfs.c +2 -2
index 48401dfcd999..f97a5eefa2e2 100644

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

drivers/pwm/pwm-lpc18xx-sct.c +9 -11
index d7f5f7de030d..8b3aad06e236 100644

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

drivers/remoteproc/qcom_wcnss.c +1 -0
index c7686393d505..bc399fb29592 100644

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

drivers/rtc/rtc-wm8350.c +9 -2
index 483c7993516b..ed874e5c5fc8 100644

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

drivers/scsi/aha152x.c +2 -4
index bc0058df31c6..24ef8e326ee5 100644

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

drivers/scsi/bfa/bfad_attr.c +13 -13
index 0a70d54a4df6..47e599352468 100644

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

drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +1 -1
index 25d2741cdf96..b97140661119 100644

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

drivers/scsi/libfc/fc_exch.c +1 -0
index 384458d1f73c..9fa0aa235cb4 100644

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

drivers/scsi/libsas/sas_ata.c +1 -1
index 9eb61a41be24..1afb4402a799 100644

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

drivers/scsi/mvsas/mv_init.c +3 -2
index 718c88de328b..b03fdff72adb 100644

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

drivers/scsi/pm8001/pm8001_hwi.c +7 -6
index f374abfb7f1f..cc90b5c8d462 100644

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

drivers/scsi/pm8001/pm80xx_hwi.c +7 -4
index df5f0bc29587..4eae727ccfbc 100644

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

drivers/scsi/qla2xxx/qla_init.c +1 -1
index a66f7cec797c..0de22299df4e 100644

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

drivers/scsi/qla2xxx/qla_target.c +1 -0
index cb2db1c1e9f2..97a0c2384aee 100644

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

drivers/scsi/zorro7xx.c +2 -0
index aff31991aea9..ee6d97473853 100644

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

drivers/soc/ti/wkup_m3_ipc.c +2 -2
index 651827c6ee6f..1223eed329ea 100644

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

drivers/spi/spi-pxa2xx-pci.c +16 -1
index 1736a48bbcce..54e316eb0891 100644

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

drivers/spi/spi-tegra114.c +4 -0
index 0e1a8d7aa322..9758b7f7e92f 100644

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

drivers/spi/spi-tegra20-slink.c +1 -7
index 1548f7b738c1..b520525df246 100644

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

drivers/spi/spi.c +2 -2
index 71f74015efb9..1031c8e38144 100644

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

drivers/staging/iio/adc/ad7280a.c +2 -2
index f17f700ea04f..0b639da562d9 100644

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

drivers/target/target_core_user.c +2 -1
index 96601fda47b1..f687481ccfdc 100644

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

drivers/thermal/int340x_thermal/int3400_thermal.c +1 -1
index d7cd86116084..72fd878b20f8 100644

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

drivers/tty/hvc/hvc_iucv.c +3 -1
index a74680729825..be1bef7896a5 100644

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

drivers/tty/mxser.c +11 -4
index 7dd38047ba23..31d5a4d95c2d 100644

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

drivers/tty/serial/8250/8250_mid.c +15 -4
index ec957cce8c9a..83446e7ceec7 100644

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

drivers/tty/serial/8250/8250_port.c +12 -0
index 7ac6bb38948f..9758d3b0c9fc 100644

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

drivers/tty/serial/kgdboc.c +3 -3
index 0314e78e31ff..72b89702d008 100644

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

drivers/tty/serial/samsung.c +1 -4
index 70d29b697e82..3886d4799603 100644

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

drivers/usb/dwc3/dwc3-omap.c +1 -1
index 830ef7333750..6fbaa0d1bcd2 100644

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

drivers/usb/serial/Kconfig +1 -0
index c508e2d7104b..72d5de424d49 100644

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

drivers/usb/serial/pl2303.c +1 -0
index f37dc4cfce27..103b77f56aec 100644

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

drivers/usb/serial/pl2303.h +3 -0
index c65c6c079544..c1b93d101990 100644

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

drivers/usb/serial/usb-serial-simple.c +7 -0
index 15e05ebf37ac..3681e6418262 100644

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

drivers/usb/storage/ene_ub6250.c +76 -79

155 lines not on this page · raw message

drivers/usb/storage/realtek_cr.c +1 -1
index 8e0b12cc084a..0c5f1db24ee8 100644

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

drivers/video/fbdev/atafb.c +6 -6
index fcd2dd670a65..770f77055682 100644

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

drivers/video/fbdev/cirrusfb.c +8 -8
index d992aa5eb3f0..a8f4967de798 100644

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

drivers/video/fbdev/core/fbcvt.c +21 -32

53 lines not on this page · raw message

drivers/video/fbdev/nvidia/nv_i2c.c +1 -1
index d7994a173245..0b48965a6420 100644

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

drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c +1 -0
index 06e1db34541e..41b0db0cc047 100644

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

drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c +4 -4
index bef431530090..25cc0bcdfe19 100644

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

drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c +1 -1
index f2c2fef3db74..87c4f420a9d9 100644

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

drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c +2 -2
index ea8c79a42b41..3f1389bfba6f 100644

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

drivers/video/fbdev/sm712fb.c +11 -35

46 lines not on this page · raw message

drivers/video/fbdev/smscufx.c +1 -2
index 2275e80b5776..1b244bea24b8 100644

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

drivers/video/fbdev/w100fb.c +12 -3
index ffda1d68fb05..566eacd903a3 100644

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

drivers/w1/slaves/w1_therm.c +6 -2
index 259525c3382a..9b9870ba01cd 100644

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

fs/btrfs/extent_io.h +1 -1
index 90c5095ae97e..c8945be9f63a 100644

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

fs/cifs/link.c +3 -0
index 9451a7f6893d..a89b8ff82040 100644

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

fs/ext2/super.c +5 -1
index 4a338576ebb1..f3d55f1c0ce4 100644

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

fs/ext4/inode.c +25 -0
index 9c07c8674b21..4d3eefff3c84 100644

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

fs/fuse/dev.c +11 -1
index db7d746633cf..1c98b5b7bead 100644

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

fs/fuse/file.c +1 -0
index 5f5da2911cea..a32b2ca3de6f 100644

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

fs/fuse/fuse_i.h +2 -0
index fac1f08dd32e..30fdede2ea64 100644

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

fs/gfs2/rgrp.c +2 -1
index 87656030ec7d..f4a26759ca38 100644

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

fs/jffs2/build.c +3 -1
index b288c8ae1236..837cd55fd4c5 100644

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

fs/jffs2/fs.c +1 -1
index 3c96f4bdc549..b7df9e34ccfd 100644

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

fs/jffs2/scan.c +4 -2
index 08813789fcf0..664384dac6e5 100644

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

fs/jfs/inode.c +2 -1
index 87b41edc800d..68779cc3609a 100644

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

fs/jfs/jfs_dmap.c +7 -0
index 9ff510a489cb..6dac48e29d28 100644

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

fs/nfs/callback_proc.c +9 -18
index 3998b432e1b9..825b3166605d 100644

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

fs/nfs/callback_xdr.c +0 -4
index 36c34be839d0..737c37603fb1 100644

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

fs/nfs/direct.c +32 -16

48 lines not on this page · raw message

fs/nfs/file.c +2 -2
index 81cca49a8375..4d847fcbedcf 100644

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

fs/nfs/pnfs.c +11 -0
index 619fc5c4c82c..18bbdaefd940 100644

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

fs/nfs/pnfs.h +2 -0
index 965d657086c8..3504826c1ee7 100644

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

fs/nfsd/nfsproc.c +1 -1
index fc6282181a1f..65d1aae9bfde 100644

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

fs/nfsd/xdr.h +1 -1
index 2f4f22e6b8cb..046454a62156 100644

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

fs/ntfs/inode.c +4 -0
index 8cd134750ebb..4150b3633f77 100644

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

fs/ubifs/dir.c +13 -6
index de0d63a347ac..299611052bbf 100644

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

fs/ubifs/ioctl.c +1 -1
index 1f6d16105990..ae05bca197bd 100644

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

include/linux/blkdev.h +8 -0
index 1c3d774d3c83..afbe2fcc476a 100644

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

include/linux/mmzone.h +7 -4
index f679f5268467..3727053d13fc 100644

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

include/linux/netdevice.h +4 -2
index 7972aac9264c..1edc2af51e03 100644

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

include/linux/nfs_fs.h +4 -4
index e51292d9e1a2..b32347453679 100644

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

include/linux/pci.h +1 -0
index 66c0d5fad0cb..521030233c8d 100644

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

include/net/sock.h +21 -4
index f72753391acc..f729ccfe756a 100644

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

include/net/xfrm.h +6 -3
index 86ff11157449..fe45e5ab2601 100644

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

init/main.c +4 -2
index f0b2411a5fbf..621cedd9173a 100644

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

kernel/cgroup/cgroup-internal.h +19 -0
index bf54ade001be..421c01590cb5 100644

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

kernel/cgroup/cgroup-v1.c +18 -15
index 105f5b2f5978..a14182e90f57 100644

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

kernel/cgroup/cgroup.c +58 -23

81 lines not on this page · raw message

kernel/events/core.c +3 -0
index 54da9e12381f..0f49ab48cb14 100644

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

kernel/power/hibernate.c +1 -1
index e68b1c20ad3d..f4ecb23c9194 100644

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

kernel/power/suspend_test.c +4 -4
index 6a897e8b2a88..3f6345d60256 100644

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

kernel/printk/printk.c +4 -2
index 31b5e7919d62..11173d0b51bc 100644

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

kernel/ptrace.c +32 -15

47 lines not on this page · raw message

kernel/sched/debug.c +0 -10
index 187c04a34ba1..053c480f5382 100644

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

kernel/smp.c +1 -1
index f9d95d59b7ed..d519c792c9d5 100644

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

lib/raid6/test/test.c +0 -1
index b07f4d8e6b03..a7e937248299 100644

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

lib/test_kmod.c +1 -0
index c0ce0156d54b..74f8d386f85e 100644

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

mm/kmemleak.c +4 -4
index 0b842160168b..d279d8be0dca 100644

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

mm/memcontrol.c +1 -1
index 5e8b8e1b7d90..637e1eb59a0b 100644

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

mm/memory.c +19 -6
index b001670c9615..cec495ecffae 100644

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

mm/mempolicy.c +2 -7
index 4e30d23943d5..5a6bfadef40e 100644

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

mm/mmap.c +1 -1
index c389fd258384..64d1d133af79 100644

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

mm/mremap.c +3 -0
index 3c7fcd5d5794..2bdb255cde9a 100644

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

mm/page_alloc.c +9 -2
index 9c467ac4b72d..e3d205f2a3ff 100644

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

mm/rmap.c +24 -1
index 8ed8ec113d5a..65de683e7f7c 100644

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

net/bluetooth/hci_event.c +2 -1
index 39e222fb3004..4eeba9dfb38f 100644

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

net/can/raw.c +1 -1
index 2a987a6ea6d7..bda2113a8529 100644

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

net/ipv4/raw.c +1 -1
index 9c4b2c0dc68a..19a6ec2adc6c 100644

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

net/ipv4/tcp_output.c +4 -1
index 99ab936a9cd3..83c0e859bb33 100644

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

net/ipv6/raw.c +5 -2
index 3d9d20074203..e8926ebfe74c 100644

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

net/key/af_key.c +3 -3
index a10336cd7f97..d7adac31b0fd 100644

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

net/netfilter/nf_conntrack_proto_tcp.c +13 -4
index cba1c6ffe51a..5239c502c016 100644

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

net/netlink/af_netlink.c +2 -0
index 0563b4d34eae..24e8ac2b724e 100644

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

net/nfc/nci/core.c +4 -0
index c6dc82f66bd9..99f4573fd917 100644

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

net/openvswitch/flow_netlink.c +2 -2
index f5deae2ccb79..ed3528aec15f 100644

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

net/packet/af_packet.c +3 -3
index 92394595920c..b0dd17d1992e 100644

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

net/smc/smc_core.c +1 -1
index 7dc907a45c68..a28e06c70e52 100644

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

net/sunrpc/sched.c +3 -1
index 253132130c42..4e0ebb4780df 100644

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

net/sunrpc/xprt.c +7 -0
index 7b1213be3e81..e7d55d63d4f1 100644

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

net/sunrpc/xprtrdma/transport.c +3 -1
index ead20e6754ab..90c99919ea30 100644

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

net/x25/af_x25.c +8 -3
index fd0a6c6c77b6..e103ec39759f 100644

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

net/xfrm/xfrm_policy.c +10 -14
index f8fd0aebf771..d87121d61a2b 100644

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

net/xfrm/xfrm_user.c +8 -6
index 321fd881c638..ad30e0d8b28e 100644

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

scripts/gcc-plugins/latent_entropy_plugin.c +27 -17

44 lines not on this page · raw message

security/selinux/xfrm.c +1 -1
index 56e354fcdfc6..5304dd49e054 100644

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

security/smack/smack_lsm.c +1 -1
index a0e1b99212b2..fe070669dc18 100644

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

security/tomoyo/load_policy.c +2 -2
index 81b951652051..f8baef1f3277 100644

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

sound/core/pcm_misc.c +1 -1
index 9be81025372f..8412d1cbd009 100644

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

sound/firewire/fcp.c +1 -3
index 61dda828f767..c8fbb54269cb 100644

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

sound/isa/cs423x/cs4236.c +5 -3
index 7d4e18cb6351..6fff77fe34a8 100644

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

sound/soc/atmel/atmel_ssc_dai.c +4 -1
index a1e2c5682dcd..6741ae42b598 100644

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

sound/soc/atmel/sam9g20_wm8731.c +1 -0
index d7469cdd90dc..39365319c351 100644

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

sound/soc/codecs/msm8916-wcd-digital.c +4 -1
index 13354d6304a8..b2571ab13ea1 100644

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

sound/soc/codecs/wm8350.c +24 -4
index 2efc5b41ad0f..6d719392cdbe 100644

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

sound/soc/davinci/davinci-i2s.c +4 -1
index 384961651904..e5f61f1499c6 100644

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

sound/soc/fsl/imx-es8328.c +1 -0
index 9953438086e4..735693274f49 100644

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

sound/soc/mxs/mxs-saif.c +4 -1
index 156aa7c00787..93c019670199 100644

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

sound/soc/mxs/mxs-sgtl5000.c +3 -0
index 2ed3240cc682..d5e1a5e7c238 100644

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

sound/soc/sh/fsi.c +16 -3
index 6d3c7706d93f..b564accb6098 100644

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

sound/soc/soc-core.c +1 -1
index 2a172de37466..febf2b649b96 100644

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

sound/soc/soc-generic-dmaengine-pcm.c +3 -3
index 052778c6afad..5362ceccbd45 100644

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

sound/soc/soc-topology.c +2 -1
index 0fbe50502699..3de4ee51029c 100644

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

sound/spi/at73c213.c +21 -6
index 1ef52edeb538..3763f06ed784 100644

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

tools/build/feature/Makefile +1 -1
index a1a3eb8fe52e..652e6c92e1db 100644

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

tools/testing/selftests/x86/check_cc.sh +1 -1
index 172d3293fb7b..356689c56397 100755

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

virt/kvm/kvm_main.c +13 -0
index 36b9f2b29071..87d522eefbb4 100644

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

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.