Skip to contentSkip to conversation

Linux 4.14.213

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Dec 29, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 4.14.213 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/admin-guide/kernel-parameters.txt       |    1 
 Makefile                                              |    2 
 arch/arc/kernel/stacktrace.c                          |   23 ++-
 arch/arm/boot/dts/armada-xp-98dx3236.dtsi             |    5 
 arch/arm/boot/dts/at91-sama5d3_xplained.dts           |    7 +
 arch/arm/boot/dts/at91-sama5d4_xplained.dts           |    7 +
 arch/arm/boot/dts/at91sam9rl.dtsi                     |   19 +-
 arch/arm/boot/dts/exynos5410-odroidxu.dts             |    6 
 arch/arm/boot/dts/exynos5410-pinctrl.dtsi             |   28 ++++
 arch/arm/boot/dts/exynos5410.dtsi                     |    4 
 arch/arm/boot/dts/sama5d2.dtsi                        |    7 -
 arch/arm/boot/dts/sun8i-v3s.dtsi                      |    2 
 arch/arm/kernel/head.S                                |    6 
 arch/arm/mach-shmobile/pm-rmobile.c                   |    1 
 arch/arm64/boot/dts/exynos/exynos7.dtsi               |    4 
 arch/arm64/boot/dts/rockchip/rk3328.dtsi              |   16 +-
 arch/arm64/boot/dts/rockchip/rk3399.dtsi              |    3 
 arch/arm64/include/asm/kvm_host.h                     |    1 
 arch/arm64/kvm/sys_regs.c                             |    1 
 arch/mips/bcm47xx/Kconfig                             |    1 
 arch/powerpc/include/asm/cputable.h                   |    5 
 arch/powerpc/kernel/rtas.c                            |    2 
 arch/powerpc/perf/core-book3s.c                       |   10 +
 arch/powerpc/platforms/powernv/memtrace.c             |   22 +++
 arch/powerpc/platforms/pseries/suspend.c              |    4 
 arch/powerpc/xmon/nonstdio.c                          |    2 
 arch/s390/kernel/smp.c                                |   18 --
 arch/um/drivers/xterm.c                               |    5 
 arch/x86/include/asm/pgtable_types.h                  |    1 
 arch/x86/kernel/kprobes/core.c                        |    5 
 arch/x86/mm/ident_map.c                               |   12 +
 arch/x86/mm/mem_encrypt.c                             |    4 
 crypto/af_alg.c                                       |   10 +
 crypto/ecdh.c                                         |    9 -
 drivers/acpi/acpi_pnp.c                               |    3 
 drivers/acpi/device_pm.c                              |   41 +----
 drivers/acpi/resource.c                               |    2 
 drivers/block/xen-blkback/xenbus.c                    |    4 
 drivers/bus/mips_cdmm.c                               |    4 
 drivers/clk/clk-s2mps11.c                             |    1 
 drivers/clk/mvebu/armada-37xx-xtal.c                  |    4 
 drivers/clk/sunxi-ng/ccu-sun50i-a64.c                 |    1 
 drivers/clk/sunxi-ng/ccu-sun8i-h3.c                   |    1 
 drivers/clk/tegra/clk-id.h                            |    1 
 drivers/clk/tegra/clk-tegra-periph.c                  |    2 
 drivers/clk/ti/fapll.c                                |   11 +
 drivers/clocksource/arm_arch_timer.c                  |   23 ++-
 drivers/clocksource/cadence_ttc_timer.c               |   18 +-
 drivers/cpufreq/highbank-cpufreq.c                    |    7 +
 drivers/cpufreq/loongson1-cpufreq.c                   |    1 
 drivers/cpufreq/mediatek-cpufreq.c                    |    1 
 drivers/cpufreq/scpi-cpufreq.c                        |    1 
 drivers/cpufreq/sti-cpufreq.c                         |    7 +
 drivers/crypto/omap-aes.c                             |    3 
 drivers/crypto/talitos.c                              |    6 
 drivers/edac/amd64_edac.c                             |   26 ++-
 drivers/extcon/extcon-max77693.c                      |    2 
 drivers/gpio/gpio-mvebu.c                             |   16 +-
 drivers/gpu/drm/drm_dp_aux_dev.c                      |    2 
 drivers/gpu/drm/drm_dp_mst_topology.c                 |    7 -
 drivers/gpu/drm/gma500/cdv_intel_dp.c                 |    2 
 drivers/gpu/drm/omapdrm/omap_dmm_tiler.c              |    1 
 drivers/gpu/drm/tegra/sor.c                           |   10 +
 drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c              |    8 +
 drivers/hsi/controllers/omap_ssi_core.c               |    2 
 drivers/iio/adc/rockchip_saradc.c                     |    2 
 drivers/iio/imu/bmi160/bmi160_core.c                  |    4 
 drivers/iio/industrialio-buffer.c                     |    6 
 drivers/iio/light/rpr0521.c                           |   17 +-
 drivers/iio/pressure/mpl3115.c                        |    9 +
 drivers/infiniband/core/cm.c                          |    2 
 drivers/infiniband/hw/bnxt_re/ib_verbs.c              |    1 
 drivers/infiniband/hw/cxgb4/cq.c                      |    3 
 drivers/infiniband/hw/mthca/mthca_cq.c                |    2 
 drivers/infiniband/hw/mthca/mthca_dev.h               |    1 
 drivers/infiniband/sw/rxe/rxe_req.c                   |    3 
 drivers/input/keyboard/cros_ec_keyb.c                 |    1 
 drivers/input/keyboard/omap4-keypad.c                 |   89 +++++++-----
 drivers/input/misc/cm109.c                            |    7 -
 drivers/input/mouse/cyapa_gen6.c                      |    2 
 drivers/input/serio/i8042-x86ia64io.h                 |   42 ++++++
 drivers/input/touchscreen/ads7846.c                   |   52 ++++---
 drivers/input/touchscreen/goodix.c                    |   12 +
 drivers/irqchip/irq-alpine-msi.c                      |    3 
 drivers/md/dm-ioctl.c                                 |    1 
 drivers/md/dm-table.c                                 |    6 
 drivers/md/md-cluster.c                               |   67 +++++----
 drivers/md/md.c                                       |   13 +
 drivers/media/common/siano/smsdvb-main.c              |    5 
 drivers/media/i2c/max2175.c                           |    2 
 drivers/media/pci/netup_unidvb/netup_unidvb_spi.c     |    5 
 drivers/media/pci/saa7146/mxb.c                       |   19 +-
 drivers/media/pci/solo6x10/solo6x10-g723.c            |    2 
 drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c |    1 
 drivers/media/rc/sunxi-cir.c                          |    2 
 drivers/media/usb/gspca/gspca.c                       |    1 
 drivers/media/usb/msi2500/msi2500.c                   |    2 
 drivers/memstick/core/memstick.c                      |    1 
 drivers/memstick/host/r592.c                          |   12 +
 drivers/mtd/cmdlinepart.c                             |   14 +-
 drivers/net/can/softing/softing_main.c                |    9 +
 drivers/net/ethernet/allwinner/sun4i-emac.c           |    7 -
 drivers/net/ethernet/broadcom/genet/bcmgenet.c        |    4 
 drivers/net/ethernet/korina.c                         |    2 
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c        |   21 ++-
 drivers/net/ethernet/mellanox/mlx4/en_tx.c            |   40 ++++-
 drivers/net/ethernet/mellanox/mlx4/mlx4_en.h          |   12 +
 drivers/net/ethernet/mellanox/mlx5/core/main.c        |    6 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c      |    1 
 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c   |    6 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c     |   27 +++
 drivers/net/vxlan.c                                   |    3 
 drivers/net/wireless/ath/ath10k/usb.c                 |    7 -
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c     |    2 
 drivers/net/wireless/intel/iwlwifi/pcie/trans.c       |   36 +++--
 drivers/net/wireless/intersil/orinoco/orinoco_usb.c   |   14 +-
 drivers/net/wireless/marvell/mwifiex/main.c           |    2 
 drivers/net/wireless/st/cw1200/main.c                 |    2 
 drivers/net/xen-netback/xenbus.c                      |    6 
 drivers/nfc/s3fwrn5/firmware.c                        |    4 
 drivers/nvdimm/label.c                                |    9 +
 drivers/pci/dwc/pcie-qcom.c                           |   12 +
 drivers/pci/host/pcie-iproc.c                         |   10 -
 drivers/pci/pci-acpi.c                                |    4 
 drivers/pci/slot.c                                    |    6 
 drivers/pinctrl/intel/pinctrl-baytrail.c              |    8 +
 drivers/pinctrl/intel/pinctrl-merrifield.c            |    8 +
 drivers/pinctrl/pinctrl-amd.c                         |    7 -
 drivers/pinctrl/pinctrl-falcon.c                      |   14 +-
 drivers/platform/x86/acer-wmi.c                       |    1 
 drivers/power/supply/bq24190_charger.c                |   20 ++
 drivers/ps3/ps3stor_lib.c                             |    2 
 drivers/pwm/pwm-lp3943.c                              |    1 
 drivers/pwm/pwm-zx.c                                  |    1 
 drivers/s390/block/dasd_alias.c                       |   12 +
 drivers/scsi/be2iscsi/be_main.c                       |    4 
 drivers/scsi/bnx2i/Kconfig                            |    1 
 drivers/scsi/fnic/fnic_main.c                         |    1 
 drivers/scsi/mpt3sas/mpt3sas_base.c                   |    2 
 drivers/scsi/pm8001/pm8001_init.c                     |    3 
 drivers/scsi/qedi/qedi_main.c                         |    4 
 drivers/scsi/scsi_lib.c                               |  126 ++++++++++++------
 drivers/scsi/ufs/ufshcd.c                             |    7 +
 drivers/soc/mediatek/mtk-scpsys.c                     |    5 
 drivers/soc/qcom/smp2p.c                              |    5 
 drivers/soc/tegra/fuse/speedo-tegra210.c              |    2 
 drivers/soc/ti/knav_dma.c                             |   13 +
 drivers/soc/ti/knav_qmss_queue.c                      |    4 
 drivers/spi/spi-bcm2835aux.c                          |   17 --
 drivers/spi/spi-davinci.c                             |    2 
 drivers/spi/spi-img-spfi.c                            |    4 
 drivers/spi/spi-pic32.c                               |    1 
 drivers/spi/spi-rb4xx.c                               |    2 
 drivers/spi/spi-sc18is602.c                           |   13 -
 drivers/spi/spi-sh.c                                  |   13 -
 drivers/spi/spi-st-ssc4.c                             |    5 
 drivers/spi/spi-tegra114.c                            |    2 
 drivers/spi/spi-tegra20-sflash.c                      |    1 
 drivers/spi/spi-tegra20-slink.c                       |    2 
 drivers/spi/spi-ti-qspi.c                             |    1 
 drivers/staging/comedi/drivers/mf6x4.c                |    3 
 drivers/staging/fsl-mc/bus/dpio/dpio-driver.c         |    5 
 drivers/staging/greybus/audio_codec.c                 |    2 
 drivers/staging/speakup/speakup_dectlk.c              |    2 
 drivers/tty/serial/8250/8250_omap.c                   |    5 
 drivers/tty/serial/serial_core.c                      |    4 
 drivers/usb/chipidea/ci_hdrc_imx.c                    |    3 
 drivers/usb/core/quirks.c                             |    3 
 drivers/usb/gadget/function/f_acm.c                   |    2 
 drivers/usb/gadget/function/f_fs.c                    |    5 
 drivers/usb/gadget/function/f_midi.c                  |    6 
 drivers/usb/gadget/function/f_rndis.c                 |    4 
 drivers/usb/gadget/udc/dummy_hcd.c                    |    2 
 drivers/usb/host/ehci-omap.c                          |    1 
 drivers/usb/host/oxu210hp-hcd.c                       |    4 
 drivers/usb/host/xhci-hub.c                           |    4 
 drivers/usb/misc/sisusbvga/Kconfig                    |    2 
 drivers/usb/serial/keyspan_pda.c                      |   63 ++++-----
 drivers/usb/serial/mos7720.c                          |    2 
 drivers/usb/serial/option.c                           |   23 +++
 drivers/usb/storage/uas.c                             |    3 
 drivers/usb/storage/unusual_uas.h                     |    7 -
 drivers/usb/storage/usb.c                             |    3 
 drivers/vfio/pci/vfio_pci.c                           |    4 
 drivers/watchdog/Kconfig                              |    3 
 drivers/watchdog/qcom-wdt.c                           |    2 
 drivers/xen/xen-pciback/xenbus.c                      |    2 
 drivers/xen/xenbus/xenbus.h                           |    2 
 drivers/xen/xenbus/xenbus_client.c                    |    8 +
 drivers/xen/xenbus/xenbus_probe.c                     |    1 
 drivers/xen/xenbus/xenbus_probe_backend.c             |    7 +
 drivers/xen/xenbus/xenbus_xs.c                        |   34 +++-
 fs/btrfs/inode.c                                      |    2 
 fs/btrfs/tests/btrfs-tests.c                          |    8 +
 fs/ceph/caps.c                                        |   11 +
 fs/ext4/inode.c                                       |   19 ++
 fs/ext4/mballoc.c                                     |    1 
 fs/jffs2/readinode.c                                  |   16 ++
 fs/jfs/jfs_dmap.h                                     |    2 
 fs/lockd/host.c                                       |   20 +-
 fs/nfs/inode.c                                        |    2 
 fs/nfs/nfs4proc.c                                     |   10 +
 fs/nfs_common/grace.c                                 |    6 
 fs/nfsd/nfssvc.c                                      |    3 
 fs/quota/quota_v2.c                                   |   19 ++
 include/acpi/acpi_bus.h                               |    5 
 include/linux/build_bug.h                             |    5 
 include/linux/security.h                              |    2 
 include/linux/seq_buf.h                               |    2 
 include/linux/sunrpc/xprt.h                           |    1 
 include/linux/trace_seq.h                             |    4 
 include/linux/usb_usual.h                             |    2 
 include/uapi/linux/if_alg.h                           |   16 ++
 include/xen/xenbus.h                                  |   15 ++
 kernel/cpu.c                                          |    6 
 kernel/irq/irqdomain.c                                |   11 +
 kernel/sched/core.c                                   |    6 
 kernel/sched/deadline.c                               |    5 
 kernel/sched/sched.h                                  |   42 ++----
 net/bluetooth/hci_event.c                             |   17 +-
 net/bridge/br_vlan.c                                  |    4 
 net/ipv4/tcp_output.c                                 |    9 -
 net/mac80211/mesh_pathtbl.c                           |    4 
 net/sunrpc/xprt.c                                     |   65 +++++++--
 net/sunrpc/xprtrdma/module.c                          |    1 
 net/sunrpc/xprtrdma/transport.c                       |    1 
 net/sunrpc/xprtsock.c                                 |    4 
 net/wireless/nl80211.c                                |    2 
 samples/bpf/lwt_len_hist.sh                           |    2 
 scripts/checkpatch.pl                                 |    2 
 security/integrity/ima/ima_crypto.c                   |   20 --
 security/selinux/hooks.c                              |   16 +-
 sound/core/oss/pcm_oss.c                              |   28 ++--
 sound/pci/hda/patch_realtek.c                         |    1 
 sound/soc/codecs/wm8997.c                             |    2 
 sound/soc/codecs/wm8998.c                             |    4 
 sound/soc/codecs/wm_adsp.c                            |    5 
 sound/soc/jz4740/jz4740-i2s.c                         |    4 
 sound/soc/soc-pcm.c                                   |    2 
 sound/usb/clock.c                                     |    6 
 sound/usb/format.c                                    |    2 
 sound/usb/stream.c                                    |    6 
 tools/perf/util/parse-regs-options.c                  |    2 
 243 files changed, 1447 insertions(+), 672 deletions(-)

Alan Stern (1):
media: gspca: Fix memory leak in probe

Alexander Sverdlin (1):
serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access

Alexandre Belloni (1):
ARM: dts: at91: at91sam9rl: fix ADC triggers

Alexey Kardashevskiy (1):
serial_core: Check for port state when tty is in error state

Andy Shevchenko (2):
pinctrl: merrifield: Set default bias in case no particular value given
pinctrl: baytrail: Avoid clearing debounce value when turning it off

Anmol Karn (1):
Bluetooth: Fix null pointer dereference in hci_event_packet()

Ansuel Smith (1):
PCI: qcom: Add missing reset for ipq806x

Anton Ivanov (1):
um: chan_xterm: Fix fd leak

Antti Palosaari (1):
media: msi2500: assign SPI bus number dynamically

Ard Biesheuvel (2):
ARM: p2v: fix handling of LPAE translation in BE mode
crypto: ecdh - avoid unaligned accesses in ecdh_set_secret()

Arnd Bergmann (5):
kbuild: avoid static_assert for genksyms RDMa/mthca: Work around -Wenum-conversion warning
seq_buf: Avoid type mismatch for seq_buf_init
watchdog: coh901327: add COMMON_CLK dependency
Input: cyapa_gen6 - fix out-of-bounds stack access

Arvind Sankar (2):
x86/mm/mem_encrypt: Fix definition of PMD_FLAGS_DEC_WP x86/mm/ident_map: Check for errors from ident_pud_init()

Athira Rajeev (1):
powerpc/perf: Exclude kernel samples while counting events in user space.

Baruch Siach (1):
gpio: mvebu: fix potential user-after-free on probe

Bharat Gooty (1):
PCI: iproc: Fix out-of-bound array accesses

Bob Pearson (1):
RDMA/rxe: Compute PSN windows correctly

Bongsu Jeon (1):
nfc: s3fwrn5: Release the nfc firmware

Borislav Petkov (1):
EDAC/amd64: Fix PCI component registration

Bui Quang Minh (1):
USB: dummy-hcd: Fix uninitialized array use in init()

Calum Mackay (1):
lockd: don't use interval-based rebinding over TCP

Can Guo (1):
scsi: ufs: Make sure clk scaling happens only when HBA is runtime ACTIVE

Cezary Rojewski (1):
ASoC: pcm: DRAIN support reactivation

Chen-Yu Tsai (1):
arm64: dts: rockchip: Fix UART pull-ups on rk3328

Cheng Lin (1):
nfs_common: need lock during iterate through the list

Chris Chiu (2):
Input: i8042 - add Acer laptops to the i8042 reset list
ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255

Chris Packham (1):
ARM: dts: Remove non-existent i2c1 from 98dx3236

Christophe JAILLET (5):
ath10k: Fix an error handling path
ath10k: Release some resources in an error handling path
net: bcmgenet: Fix a resource leak in an error handling path in the probe functin
net: allwinner: Fix some resources leak in the error handling path of the probe and in the remove function
clk: s2mps11: Fix a resource leak in error handling paths in the probe function

Christophe Leroy (3):
crypto: talitos - Fix return type of current_desc_hdr() powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32 powerpc/xmon: Change printk() to pr_cont()

Chuhong Yuan (1):
ASoC: jz4740-i2s: add missed checks for clk_get()

Chunguang Xu (1):
ext4: fix a memory leak of ext4_free_data

Claudiu Beznea (1):
ARM: dts: at91: sama5d2: map securam as device

Coiby Xu (1):
pinctrl: amd: remove debounce filter setting in IRQ type setting

Cristian Birsan (2):
ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host
ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host

Dae R. Jeong (1):
md: fix a warning caused by a race between concurrent md_ioctl()s

Dan Carpenter (6):
scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains()
media: max2175: fix max2175_set_csm_mode() error code
media: saa7146: fix array overflow in vidioc_s_audio()
ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control()
qlcnic: Fix error code in probe

Dan Williams (1):
libnvdimm/namespace: Fix reaping of invalidated block-window-namespace labels

Daniel Scally (1):
Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks"

Daniel T. Lee (1):
samples: bpf: Fix lwt_len_hist reusing previous BPF map

Dave Kleikamp (1):
jfs: Fix array index bounds check in dbAdjTree

David Hildenbrand (1):
powerpc/powernv/memtrace: Don't leak kernel memory to user space

David Jander (1):
Input: ads7846 - fix race that causes missing releases

Dmitry Osipenko (1):
clk: tegra: Fix duplicated SE clock entry

Dmitry Torokhov (3):
Input: cm109 - do not stomp on control URB
Input: ads7846 - fix unaligned access on 7845
Input: cros_ec_keyb - send 'scancodes' in addition to key events

Dwaipayan Ray (1):
checkpatch: fix unescaped left brace

Eric Biggers (1):
crypto: af_alg - avoid undefined behavior accessing salg_name

Eric Dumazet (1):
mac80211: mesh: fix mesh_pathtbl_init() error path

Evan Green (1):
soc: qcom: smp2p: Safely acquire spinlock without IRQs

Fabio Estevam (1):
usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul

Filipe Manana (1):
Btrfs: fix selftests failure due to uninitialized i_mode in test inodes

Fugang Duan (2):
net: stmmac: free tx skb buffer in stmmac_resume()
net: stmmac: delete the eee_ctrl_timer after napi disabled

Greg Kroah-Hartman (1):

      Linux 4.14.213

Guenter Roeck (1):
watchdog: sirfsoc: Add missing dependency on HAS_IOMEM

Hao Si (1):
soc: fsl: dpio: Get the cpumask through cpumask_of(cpu)

Hui Wang (1):
ACPI: PNP: compare the string length in the matching_id()

Ian Abbott (1):
staging: comedi: mf6x4: Fix AI end-of-conversion detection

Icenowy Zheng (1):
ARM: dts: sun8i: v3s: fix GIC node memory range

Jack Pham (1):
usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus

Jan Kara (2):
quota: Sanity-check quota file headers on load
ext4: fix deadlock with fs freezing and EA inodes

Jason Gunthorpe (1):
vfio-pci: Use io_remap_pfn_range() for PCI IO memory

Jernej Skrabec (1):
clk: sunxi-ng: Make sure divider tables have sentinel

Jing Xiangfeng (2):
HSI: omap_ssi: Don't jump to free ID in ssi_add_controller()
memstick: r592: Fix error return in r592_probe()

Johan Hovold (8):
USB: serial: option: add interface-number sanity check to flag handling
USB: serial: mos7720: fix parallel-port state restore
USB: serial: keyspan_pda: fix dropped unthrottle interrupts
USB: serial: keyspan_pda: fix write deadlock
USB: serial: keyspan_pda: fix stalled writes
USB: serial: keyspan_pda: fix write-wakeup use-after-free
USB: serial: keyspan_pda: fix tx-unthrottle use-after-free
USB: serial: keyspan_pda: fix write unthrottling

Johannes Berg (1):
iwlwifi: pcie: limit memory read spin time

Jonathan Cameron (3):
iio:light:rpr0521: Fix timestamp alignment and prevent data leak. iio:pressure:mpl3115: Force alignment of buffer iio:imu:bmi160: Fix too large a buffer.

Jubin Zhong (1):
PCI: Fix pci_slot_release() NULL pointer dereference

Julian Sax (1):
HID: i2c-hid: add Vero K147 to descriptor override

Kamal Heib (2):
RDMA/bnxt_re: Set queue pair state when being queried RDMA/cxgb4: Validate the number of CQEs

Keita Suzuki (1):
media: siano: fix memory leak of debugfs members in smsdvb_hotplug

Keqian Zhu (1):
clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI

Krzysztof Kozlowski (3):
ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU
ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on Exynos5410
ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU

Leon Romanovsky (2):
RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait net/mlx5: Properly convey driver version to firmware

Li Jun (1):
xhci: Give USB2 ports time to enter U3 in bus suspend

Lokesh Vutla (1):
pwm: lp3943: Dynamically allocate PWM chip base

Luis Henriques (1):
ceph: fix race in concurrent __ceph_remove_cap invocations

Lukas Wunner (8):
spi: bcm2835aux: Fix use-after-free on unbind
media: netup_unidvb: Don't leak SPI master in probe error path
spi: spi-sh: Fix use-after-free on unbind
spi: davinci: Fix use-after-free on unbind
spi: pic32: Don't leak DMA channels in probe error path
spi: rb4xx: Don't leak SPI master in probe error path
spi: sc18is602: Don't leak SPI master in probe error path
spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path

Manivannan Sadhasivam (1):
watchdog: qcom: Avoid context switch in restart handler

Marc Zyngier (3):
genirq/irqdomain: Don't try to free an interrupt that has no mapping irqchip/alpine-msi: Fix freeing of interrupts on allocation error path
KVM: arm64: Introduce handling of AArch32 TTBCR2 traps

Marek Szyprowski (1):
extcon: max77693: Fix modalias string

Markus Reichl (1):
arm64: dts: rockchip: Assign a fixed index to mmc devices on rk3399 boards.

Martin Blumenstingl (1):
net: stmmac: dwmac-meson8b: fix mask definition of the m250_sel mux

Martin Wilck (1):
scsi: core: Fix VPD LUN ID designator priorities

Masami Hiramatsu (1):
x86/kprobes: Restore BTF if the single-stepping is cancelled

Moshe Shemesh (2):
net/mlx4_en: Avoid scheduling restart task if it is already running net/mlx4_en: Handle TX error CQE

Nathan Chancellor (1):
spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe

Nathan Lynch (2):
powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops powerpc/pseries/hibernation: remove redundant cacheinfo update

Neal Cardwell (1):
tcp: fix cwnd-limited bug for TSO deferral where we send nothing

Necip Fazil Yildiran (1):
MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA

NeilBrown (1):
NFS: switch nfsiod to be an UNBOUND workqueue.

Nicholas Piggin (1):
kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling

Nicolas Boichat (1):
soc: mediatek: Check if power domains can be powered on at boot time

Nicolas Ferre (1):
ARM: dts: at91: sama5d2: fix CAN message ram offset and size

Nicolin Chen (1):
soc/tegra: fuse: Fix index bug in get_process_id

Nuno Sá (1):
iio: buffer: Fix demux update

Oleksij Rempel (1):
Input: ads7846 - fix integer overflow on Rt calculation

Olga Kornievskaia (1):
NFSv4.2: condition READDIR's mask for security label based on LSM state

Oliver Neukum (2):
USB: add RESET_RESUME quirk for Snapscan 1212
USB: UAS: introduce a quirk to set no_write_same

Pali Rohár (5):
cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE
cpufreq: st: Add missing MODULE_DEVICE_TABLE
cpufreq: loongson1: Add missing MODULE_ALIAS
cpufreq: scpi: Add missing MODULE_ALIAS

Paul Moore (1):
selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling

Pavel Machek (1):
btrfs: fix return value mixup in btrfs_get_extent

Pawel Wieczorkiewicz (1):

      xen-blkback: set ring->xenblkd to NULL after kthread_stop()

Paweł Chmiel (1):
arm64: dts: exynos: Correct psci compatible used on Exynos7

Peilin Ye (1):
Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt()

Peng Liu (1):
sched/deadline: Fix sched_dl_global_validate()

Qinglang Miao (8):
drm/tegra: sor: Disable clocks on error in tegra_sor_init()
media: solo6x10: fix missing snd_card_free in error handling case
memstick: fix a double-free bug in memstick_check
cw1200: fix missing destroy_workqueue() on error in cw1200_init_common
mips: cdmm: fix use-after-free in mips_cdmm_bus_discover
dm ioctl: fix error return code in target_message
scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe
iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in rockchip_saradc_resume

Rafael J. Wysocki (1):
PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup()

Randy Dunlap (1):
scsi: bnx2i: Requires MMU

Roberto Sassu (1):
ima: Don't modify file descriptor mode on the fly

Sara Sharon (2):
iwlwifi: mvm: fix kernel panic in case of assert during CSA
cfg80211: initialize rekey_data

Sean Young (1):
media: sunxi-cir: ensure IR is handled when it is continuous

Sebastian Andrzej Siewior (1):
orinoco: Move context allocation after processing the skb

SeongJae Park (5):
xen/xenbus: Allow watches discard events before queueing xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path() xen/xenbus/xen_bus_type: Support will_handle watch callback xen/xenbus: Count pending messages for each watch xenbus/xenbus_backend: Disallow pending watch messages

Serge Hallyn (1):
fix namespaced fscaps when !CONFIG_SECURITY

Simon Beginn (1):
Input: goodix - add upside-down quirk for Teclast X98 Pro tablet

Sreekanth Reddy (1):
scsi: mpt3sas: Increase IOCInit request timeout to 30s

Stefan Haberland (3):
s390/dasd: prevent inconsistent LCU device data s390/dasd: fix list corruption of pavgroup group list s390/dasd: fix list corruption of lcu list

Sven Eckelmann (3):
vxlan: Add needed_headroom for lower device
vxlan: Copy needed_tailroom from lowerdev
mtd: parser: cmdline: Fix parsing of part-names with colons

Sven Schnelle (1):
s390/smp: perform initial CPU reset also for SMT siblings

Takashi Iwai (5):
ALSA: usb-audio: Fix potential out-of-bounds shift
ALSA: usb-audio: Fix control 'access overflow' errors from chmap
ALSA: pcm: oss: Fix potential out-of-bounds shift
ALSA: pcm: oss: Fix a few more UBSAN fixes
ALSA: usb-audio: Disable sample read check if firmware doesn't give back

Terry Zhou (1):
clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9

Thomas Gleixner (3):
USB: sisusbvga: Make console support depend on BROKEN dm table: Remove BUG_ON(in_interrupt())
sched: Reenable interrupts in do_sched_yield()

Tianyue Ren (1):
selinux: fix error initialization in inode_doinit_with_dentry()

Timo Witte (1):
platform/x86: acer-wmi: add automatic keyboard background light toggle key as KEY_LIGHTS_TOGGLE

Tom Rix (1):
drm/gma500: fix double free of gma_connector

Trond Myklebust (1):
SUNRPC: xprt_load_transport() needs to support the netid "rdma6"

Tsuchiya Yuto (1):
mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure

Tyrel Datwyler (1):
powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter

Uwe Kleine-König (1):
pwm: zx: Add missing cleanup in error path

Vincent Stehlé (2):
powerpc/ps3: use dma_mapping_error()
net: korina: fix return value

Vineet Gupta (1):
ARC: stack unwinding: don't assume non-current task is sleeping

Will McVicker (2):
USB: gadget: f_midi: setup SuperSpeed Plus descriptors
USB: gadget: f_rndis: fix bitrate for SuperSpeed and above

Xin Xiong (1):
drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi

Yang Yingliang (2):
drm/omap: dmm_tiler: fix return error code in omap_dmm_probe()
speakup: fix uninitialized flush_lock

Yu Kuai (3):
media: mtk-vcodec: add missing put_device() call in mtk_vcodec_release_dec_pm() clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent()
pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe()

Zhang Changzhong (2):
net: bridge: vlan: fix error return code in __vlan_add()
scsi: fnic: Fix error return code in fnic_probe()

Zhang Qilong (18):
can: softing: softing_netdev_open(): fix error handling
spi: img-spfi: fix reference leak in img_spfi_resume
spi: spi-ti-qspi: fix reference leak in ti_qspi_setup
spi: tegra20-slink: fix reference leak in slink ops of tegra20
spi: tegra20-sflash: fix reference leak in tegra_sflash_resume
spi: tegra114: fix reference leak in tegra spi ops
ASoC: wm8998: Fix PM disable depth imbalance on error
ASoC: arizona: Fix a wrong free in wm8997_probe
staging: greybus: codecs: Fix reference counter leak in error handling
crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe
soc: ti: knav_qmss: fix reference leak in knav_queue_probe
soc: ti: Fix reference imbalance in knav_dma_probe
Input: omap4-keypad - fix runtime PM error handling
power: supply: bq24190_charger: fix reference leak
scsi: pm80xx: Fix error return in pm8001_pci_probe()
usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe
usb: oxu210hp-hcd: Fix memory leak in oxu_create
clk: ti: Fix memleak in ti_fapll_synth_setup

Zhao Heming (1):
md/cluster: fix deadlock when node is doing resync job

Zhe Li (1):
jffs2: Fix GC exit abnormally

Zheng Zengkai (1):
perf record: Fix memory leak when using '--user-regs=?' to list registers

Zhihao Cheng (1):
drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe

Zwane Mwaikambo (1):
drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor()

kazuo ito (1):
nfsd: Fix message level for normal termination

taehyun.cho (1):
USB: gadget: f_acm: add support for SuperSpeed Plus

author maintainer
#1 lore raw
Documentation/admin-guide/kernel-parameters.txt +1 -0
index 357c64b53cdc..3a1507362eb1 100644
@@ -4750,6 +4750,7 @@
 					device);
 				j = NO_REPORT_LUNS (don't use report luns
 					command, uas only);
+				k = NO_SAME (do not use WRITE_SAME, uas only)
 				l = NOT_LOCKABLE (don't try to lock and
 					unlock ejectable media, not on uas);
 				m = MAX_SECTORS_64 (don't transfer more
Makefile +1 -1
index 37c1bd221115..d059e257b976 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 4
 PATCHLEVEL = 14
-SUBLEVEL = 212
+SUBLEVEL = 213
 EXTRAVERSION =
 NAME = Petit Gorille
 
arch/arc/kernel/stacktrace.c +15 -8
index b007c06efbea..35d418cde03b 100644
@@ -41,15 +41,15 @@
 
 #ifdef CONFIG_ARC_DW2_UNWIND
 
-static void seed_unwind_frame_info(struct task_struct *tsk,
-				   struct pt_regs *regs,
-				   struct unwind_frame_info *frame_info)
+static int
+seed_unwind_frame_info(struct task_struct *tsk, struct pt_regs *regs,
+		       struct unwind_frame_info *frame_info)
 {
 	/*
 	 * synchronous unwinding (e.g. dump_stack)
 	 *  - uses current values of SP and friends
 	 */
-	if (tsk == NULL && regs == NULL) {
+	if (regs == NULL && (tsk == NULL || tsk == current)) {
 		unsigned long fp, sp, blink, ret;
 		frame_info->task = current;
 
@@ -68,11 +68,15 @@ static void seed_unwind_frame_info(struct task_struct *tsk,
 		frame_info->call_frame = 0;
 	} else if (regs == NULL) {
 		/*
-		 * Asynchronous unwinding of sleeping task
-		 *  - Gets SP etc from task's pt_regs (saved bottom of kernel
-		 *    mode stack of task)
+		 * Asynchronous unwinding of a likely sleeping task
+		 *  - first ensure it is actually sleeping
+		 *  - if so, it will be in __switch_to, kernel mode SP of task
+		 *    is safe-kept and BLINK at a well known location in there
 		 */
 
+		if (tsk->state == TASK_RUNNING)
+			return -1;
+
 		frame_info->task = tsk;
 
 		frame_info->regs.r27 = TSK_K_FP(tsk);
@@ -106,6 +110,8 @@ static void seed_unwind_frame_info(struct task_struct *tsk,
 		frame_info->regs.r63 = regs->ret;
 		frame_info->call_frame = 0;
 	}
+
+	return 0;
 }
 
 #endif
@@ -119,7 +125,8 @@ arc_unwind_core(struct task_struct *tsk, struct pt_regs *regs,
 	unsigned int address;
 	struct unwind_frame_info frame_info;
 
-	seed_unwind_frame_info(tsk, regs, &frame_info);
+	if (seed_unwind_frame_info(tsk, regs, &frame_info))
+		return 0;
 
 	while (1) {
 		address = UNW_PC(&frame_info);
arch/arm/boot/dts/armada-xp-98dx3236.dtsi +0 -5
index bdd4c7a45fbf..8d1356311e3f 100644
@@ -303,11 +303,6 @@
 	reg = <0x11000 0x100>;
 };
 
-&i2c1 {
-	compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
-	reg = <0x11100 0x100>;
-};
-
 &mpic {
 	reg = <0x20a00 0x2d0>, <0x21070 0x58>;
 };
arch/arm/boot/dts/at91-sama5d3_xplained.dts +7 -0
index 3af088d2cba7..ce059f9eaa7d 100644
@@ -231,6 +231,11 @@
 						atmel,pins =
 							<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PE9, conflicts with A9 */
 					};
+					pinctrl_usb_default: usb_default {
+						atmel,pins =
+							<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+							 AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
 				};
 			};
 		};
@@ -248,6 +253,8 @@
 					   &pioE 3 GPIO_ACTIVE_LOW
 					   &pioE 4 GPIO_ACTIVE_LOW
 					  >;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_usb_default>;
 			status = "okay";
 		};
 
arch/arm/boot/dts/at91-sama5d4_xplained.dts +7 -0
index 10f2fb9e0ea6..c271ca960cae 100644
@@ -158,6 +158,11 @@
 						atmel,pins =
 							<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
 					};
+					pinctrl_usb_default: usb_default {
+						atmel,pins =
+							<AT91_PIOE 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+							 AT91_PIOE 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
 					pinctrl_key_gpio: key_gpio_0 {
 						atmel,pins =
 							<AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
@@ -183,6 +188,8 @@
 					   &pioE 11 GPIO_ACTIVE_HIGH
 					   &pioE 14 GPIO_ACTIVE_HIGH
 					  >;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_usb_default>;
 			status = "okay";
 		};
 
arch/arm/boot/dts/at91sam9rl.dtsi +11 -8
index 7768342a6638..64273f943992 100644
@@ -274,23 +274,26 @@
 				atmel,adc-use-res = "highres";
 
 				trigger0 {
-					trigger-name = "timer-counter-0";
+					trigger-name = "external-rising";
 					trigger-value = <0x1>;
+					trigger-external;
 				};
+
 				trigger1 {
-					trigger-name = "timer-counter-1";
-					trigger-value = <0x3>;
+					trigger-name = "external-falling";
+					trigger-value = <0x2>;
+					trigger-external;
 				};
 
 				trigger2 {
-					trigger-name = "timer-counter-2";
-					trigger-value = <0x5>;
+					trigger-name = "external-any";
+					trigger-value = <0x3>;
+					trigger-external;
 				};
 
 				trigger3 {
-					trigger-name = "external";
-					trigger-value = <0x13>;
-					trigger-external;
+					trigger-name = "continuous";
+					trigger-value = <0x6>;
 				};
 			};
 
arch/arm/boot/dts/exynos5410-odroidxu.dts +4 -2
index c4de1353e5df..ba135b255b68 100644
@@ -327,6 +327,8 @@
 				regulator-name = "vddq_lcd";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
+				/* Supplies also GPK and GPJ */
+				regulator-always-on;
 			};
 
 			ldo8_reg: LDO8 {
@@ -629,11 +631,11 @@
 };
 
 &usbdrd_dwc3_0 {
-	dr_mode = "host";
+	dr_mode = "peripheral";
 };
 
 &usbdrd_dwc3_1 {
-	dr_mode = "peripheral";
+	dr_mode = "host";
 };
 
 &usbdrd3_0 {
arch/arm/boot/dts/exynos5410-pinctrl.dtsi +28 -0
index ff46a1c27182..c11fd125d8ae 100644
@@ -563,6 +563,34 @@
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
+
+	usb3_1_oc: usb3-1-oc {
+		samsung,pins = "gpk2-4", "gpk2-5";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb3_1_vbusctrl: usb3-1-vbusctrl {
+		samsung,pins = "gpk2-6", "gpk2-7";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb3_0_oc: usb3-0-oc {
+		samsung,pins = "gpk3-0", "gpk3-1";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb3_0_vbusctrl: usb3-0-vbusctrl {
+		samsung,pins = "gpk3-2", "gpk3-3";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
 };
 
 &pinctrl_2 {
arch/arm/boot/dts/exynos5410.dtsi +4 -0
index 7628bbb02324..4e1aced47eb0 100644
@@ -381,6 +381,8 @@
 &usbdrd3_0 {
 	clocks = <&clock CLK_USBD300>;
 	clock-names = "usbdrd30";
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb3_0_oc>, <&usb3_0_vbusctrl>;
 };
 
 &usbdrd_phy0 {
@@ -392,6 +394,8 @@
 &usbdrd3_1 {
 	clocks = <&clock CLK_USBD301>;
 	clock-names = "usbdrd30";
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb3_1_oc>, <&usb3_1_vbusctrl>;
 };
 
 &usbdrd_dwc3_1 {
arch/arm/boot/dts/sama5d2.dtsi +4 -3
index a8e4b89097d9..d6e3f975323d 100644
@@ -1243,6 +1243,7 @@
 				clocks = <&securam_clk>;
 				#address-cells = <1>;
 				#size-cells = <1>;
+				no-memory-wc;
 				ranges = <0 0xf8044000 0x1420>;
 			};
 
@@ -1293,7 +1294,7 @@
 
 			can0: can@f8054000 {
 				compatible = "bosch,m_can";
-				reg = <0xf8054000 0x4000>, <0x210000 0x4000>;
+				reg = <0xf8054000 0x4000>, <0x210000 0x1c00>;
 				reg-names = "m_can", "message_ram";
 				interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>,
 					     <64 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -1484,7 +1485,7 @@
 
 			can1: can@fc050000 {
 				compatible = "bosch,m_can";
-				reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
+				reg = <0xfc050000 0x4000>, <0x210000 0x3800>;
 				reg-names = "m_can", "message_ram";
 				interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>,
 					     <65 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -1494,7 +1495,7 @@
 				assigned-clocks = <&can1_gclk>;
 				assigned-clock-parents = <&utmi>;
 				assigned-clock-rates = <40000000>;
-				bosch,mram-cfg = <0x1100 0 0 64 0 0 32 32>;
+				bosch,mram-cfg = <0x1c00 0 0 64 0 0 32 32>;
 				status = "disabled";
 			};
 
arch/arm/boot/dts/sun8i-v3s.dtsi +1 -1
index da5823c6fa3e..e31804e448da 100644
@@ -419,7 +419,7 @@
 		gic: interrupt-controller@01c81000 {
 			compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
 			reg = <0x01c81000 0x1000>,
-			      <0x01c82000 0x1000>,
+			      <0x01c82000 0x2000>,
 			      <0x01c84000 0x2000>,
 			      <0x01c86000 0x2000>;
 			interrupt-controller;
arch/arm/kernel/head.S +1 -5
index 6b1148cafffd..90add5ded3f1 100644
@@ -674,12 +674,8 @@ ARM_BE8(rev16	ip, ip)
 	ldrcc	r7, [r4], #4	@ use branch for delay slot
 	bcc	1b
 	bx	lr
-#else
-#ifdef CONFIG_CPU_ENDIAN_BE8
-	moveq	r0, #0x00004000	@ set bit 22, mov to mvn instruction
 #else
 	moveq	r0, #0x400000	@ set bit 22, mov to mvn instruction
-#endif
 	b	2f
 1:	ldr	ip, [r7, r3]
 #ifdef CONFIG_CPU_ENDIAN_BE8
@@ -688,7 +684,7 @@ ARM_BE8(rev16	ip, ip)
 	tst	ip, #0x000f0000	@ check the rotation field
 	orrne	ip, ip, r6, lsl #24 @ mask in offset bits 31-24
 	biceq	ip, ip, #0x00004000 @ clear bit 22
-	orreq	ip, ip, r0      @ mask in offset bits 7-0
+	orreq	ip, ip, r0, ror #8  @ mask in offset bits 7-0
 #else
 	bic	ip, ip, #0x000000ff
 	tst	ip, #0xf00	@ check the rotation field
arch/arm/mach-shmobile/pm-rmobile.c +1 -0
index 3a4ed4c33a68..e312f676a0fd 100644
@@ -336,6 +336,7 @@ static int __init rmobile_init_pm_domains(void)
 
 		pmd = of_get_child_by_name(np, "pm-domains");
 		if (!pmd) {
+			iounmap(base);
 			pr_warn("%pOF lacks pm-domains node\n", np);
 			continue;
 		}
arch/arm64/boot/dts/exynos/exynos7.dtsi +3 -1
index 9a3fbed1765a..875297a470da 100644
@@ -65,8 +65,10 @@
 	};
 
 	psci {
-		compatible = "arm,psci-0.2";
+		compatible = "arm,psci";
 		method = "smc";
+		cpu_off = <0x84000002>;
+		cpu_on = <0xC4000003>;
 	};
 
 	soc: soc {
arch/arm64/boot/dts/rockchip/rk3328.dtsi +8 -8
index c34daae3c37c..6c3684885fac 100644
@@ -1062,8 +1062,8 @@
 
 		uart0 {
 			uart0_xfer: uart0-xfer {
-				rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>,
-						<1 RK_PB0 1 &pcfg_pull_none>;
+				rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>,
+						<1 RK_PB0 1 &pcfg_pull_up>;
 			};
 
 			uart0_cts: uart0-cts {
@@ -1081,8 +1081,8 @@
 
 		uart1 {
 			uart1_xfer: uart1-xfer {
-				rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>,
-						<3 RK_PA6 4 &pcfg_pull_none>;
+				rockchip,pins = <3 RK_PA4 4 &pcfg_pull_none>,
+						<3 RK_PA6 4 &pcfg_pull_up>;
 			};
 
 			uart1_cts: uart1-cts {
@@ -1100,15 +1100,15 @@
 
 		uart2-0 {
 			uart2m0_xfer: uart2m0-xfer {
-				rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>,
-						<1 RK_PA1 2 &pcfg_pull_none>;
+				rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>,
+						<1 RK_PA1 2 &pcfg_pull_up>;
 			};
 		};
 
 		uart2-1 {
 			uart2m1_xfer: uart2m1-xfer {
-				rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>,
-						<2 RK_PA1 1 &pcfg_pull_none>;
+				rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
+						<2 RK_PA1 1 &pcfg_pull_up>;
 			};
 		};
 
arch/arm64/boot/dts/rockchip/rk3399.dtsi +3 -0
index b63d9653ff55..82747048381f 100644
@@ -66,6 +66,9 @@
 		i2c6 = &i2c6;
 		i2c7 = &i2c7;
 		i2c8 = &i2c8;
+		mmc0 = &sdio0;
+		mmc1 = &sdmmc;
+		mmc2 = &sdhci;
 		serial0 = &uart0;
 		serial1 = &uart1;
 		serial2 = &uart2;
arch/arm64/include/asm/kvm_host.h +1 -0
index 02d34caa7bff..8d94404829f0 100644
@@ -158,6 +158,7 @@ enum vcpu_sysreg {
 #define c2_TTBR1	(TTBR1_EL1 * 2)	/* Translation Table Base Register 1 */
 #define c2_TTBR1_high	(c2_TTBR1 + 1)	/* TTBR1 top 32 bits */
 #define c2_TTBCR	(TCR_EL1 * 2)	/* Translation Table Base Control R. */
+#define c2_TTBCR2	(c2_TTBCR + 1)	/* Translation Table Base Control R. 2 */
 #define c3_DACR		(DACR32_EL2 * 2)/* Domain Access Control Register */
 #define c5_DFSR		(ESR_EL1 * 2)	/* Data Fault Status Register */
 #define c5_IFSR		(IFSR32_EL2 * 2)/* Instruction Fault Status Register */
arch/arm64/kvm/sys_regs.c +1 -0
index 1ee4d9216841..c553f9883194 100644
@@ -1286,6 +1286,7 @@ static const struct sys_reg_desc cp15_regs[] = {
 	{ Op1( 0), CRn( 2), CRm( 0), Op2( 0), access_vm_reg, NULL, c2_TTBR0 },
 	{ Op1( 0), CRn( 2), CRm( 0), Op2( 1), access_vm_reg, NULL, c2_TTBR1 },
 	{ Op1( 0), CRn( 2), CRm( 0), Op2( 2), access_vm_reg, NULL, c2_TTBCR },
+	{ Op1( 0), CRn( 2), CRm( 0), Op2( 3), access_vm_reg, NULL, c2_TTBCR2 },
 	{ Op1( 0), CRn( 3), CRm( 0), Op2( 0), access_vm_reg, NULL, c3_DACR },
 	{ Op1( 0), CRn( 5), CRm( 0), Op2( 0), access_vm_reg, NULL, c5_DFSR },
 	{ Op1( 0), CRn( 5), CRm( 0), Op2( 1), access_vm_reg, NULL, c5_IFSR },
arch/mips/bcm47xx/Kconfig +1 -0
index 29471038d817..c6b99845fb37 100644
@@ -27,6 +27,7 @@ config BCM47XX_BCMA
 	select BCMA
 	select BCMA_HOST_SOC
 	select BCMA_DRIVER_MIPS
+	select BCMA_DRIVER_PCI if PCI
 	select BCMA_DRIVER_PCI_HOSTMODE if PCI
 	select BCMA_DRIVER_GPIO
 	default y
arch/powerpc/include/asm/cputable.h +0 -5
index e4451b30d7e3..89a5cdf46ad7 100644
@@ -423,7 +423,6 @@ enum {
 	    CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
 	    CPU_FTR_DEBUG_LVL_EXC | CPU_FTR_EMB_HV | CPU_FTR_ALTIVEC_COMP | \
 	    CPU_FTR_CELL_TB_BUG | CPU_FTR_SMT)
-#define CPU_FTRS_GENERIC_32	(CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)
 
 /* 64-bit CPUs */
 #define CPU_FTRS_POWER4	(CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \
@@ -515,8 +514,6 @@ enum {
 	    CPU_FTRS_7447 | CPU_FTRS_7447A | CPU_FTRS_82XX |
 	    CPU_FTRS_G2_LE | CPU_FTRS_E300 | CPU_FTRS_E300C2 |
 	    CPU_FTRS_CLASSIC32 |
-#else
-	    CPU_FTRS_GENERIC_32 |
 #endif
 #ifdef CONFIG_PPC_8xx
 	    CPU_FTRS_8XX |
@@ -567,8 +564,6 @@ enum {
 	    CPU_FTRS_7447 & CPU_FTRS_7447A & CPU_FTRS_82XX &
 	    CPU_FTRS_G2_LE & CPU_FTRS_E300 & CPU_FTRS_E300C2 &
 	    CPU_FTRS_CLASSIC32 &
-#else
-	    CPU_FTRS_GENERIC_32 &
 #endif
 #ifdef CONFIG_PPC_8xx
 	    CPU_FTRS_8XX &
arch/powerpc/kernel/rtas.c +1 -1
index 96e5a3bd23e8..55b266d7afe1 100644
@@ -1094,7 +1094,7 @@ static struct rtas_filter rtas_filters[] __ro_after_init = {
 	{ "ibm,display-message", -1, 0, -1, -1, -1 },
 	{ "ibm,errinjct", -1, 2, -1, -1, -1, 1024 },
 	{ "ibm,close-errinjct", -1, -1, -1, -1, -1 },
-	{ "ibm,open-errinct", -1, -1, -1, -1, -1 },
+	{ "ibm,open-errinjct", -1, -1, -1, -1, -1 },
 	{ "ibm,get-config-addr-info2", -1, -1, -1, -1, -1 },
 	{ "ibm,get-dynamic-sensor-state", -1, 1, -1, -1, -1 },
 	{ "ibm,get-indices", -1, 2, 3, -1, -1 },
arch/powerpc/perf/core-book3s.c +10 -0
index 78f75e48dfe7..56f16c803590 100644
@@ -2067,6 +2067,16 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
 	local64_set(&event->hw.period_left, left);
 	perf_event_update_userpage(event);
 
+	/*
+	 * Due to hardware limitation, sometimes SIAR could sample a kernel
+	 * address even when freeze on supervisor state (kernel) is set in
+	 * MMCR2. Check attr.exclude_kernel and address to drop the sample in
+	 * these cases.
+	 */
+	if (event->attr.exclude_kernel && record)
+		if (is_kernel_addr(mfspr(SPRN_SIAR)))
+			record = 0;
+
 	/*
 	 * Finally record data if requested.
 	 */
arch/powerpc/platforms/powernv/memtrace.c +22 -0
index cfbd242c3e01..bff8e38a7e9a 100644
@@ -99,6 +99,23 @@ static int change_memblock_state(struct memory_block *mem, void *arg)
 	return 0;
 }
 
+static void memtrace_clear_range(unsigned long start_pfn,
+				 unsigned long nr_pages)
+{
+	unsigned long pfn;
+
+	/*
+	 * As pages are offline, we cannot trust the memmap anymore. As HIGHMEM
+	 * does not apply, avoid passing around "struct page" and use
+	 * clear_page() instead directly.
+	 */
+	for (pfn = start_pfn; pfn < start_pfn + nr_pages; pfn++) {
+		if (IS_ALIGNED(pfn, PAGES_PER_SECTION))
+			cond_resched();
+		clear_page(__va(PFN_PHYS(pfn)));
+	}
+}
+
 /* called with device_hotplug_lock held */
 static bool memtrace_offline_pages(u32 nid, u64 start_pfn, u64 nr_pages)
 {
@@ -143,6 +160,11 @@ static u64 memtrace_alloc_node(u32 nid, u64 size)
 	lock_device_hotplug();
 	for (base_pfn = end_pfn; base_pfn > start_pfn; base_pfn -= nr_pages) {
 		if (memtrace_offline_pages(nid, base_pfn, nr_pages) == true) {
+			/*
+			 * Clear the range while we still have a linear
+			 * mapping.
+			 */
+			memtrace_clear_range(base_pfn, nr_pages);
 			/*
 			 * Remove memory in memory block size chunks so that
 			 * iomem resources are always split to the same size and
arch/powerpc/platforms/pseries/suspend.c +0 -4
index 89726f07d249..b7cdad95584d 100644
@@ -26,7 +26,6 @@
 #include <asm/mmu.h>
 #include <asm/rtas.h>
 #include <asm/topology.h>
-#include "../../kernel/cacheinfo.h"
 
 static u64 stream_id;
 static struct device suspend_dev;
@@ -91,9 +90,7 @@ static void pseries_suspend_enable_irqs(void)
 	 * Update configuration which can be modified based on device tree
 	 * changes during resume.
 	 */
-	cacheinfo_cpu_offline(smp_processor_id());
 	post_mobility_fixup();
-	cacheinfo_cpu_online(smp_processor_id());
 }
 
 /**
@@ -224,7 +221,6 @@ static struct bus_type suspend_subsys = {
 
 static const struct platform_suspend_ops pseries_suspend_ops = {
 	.valid		= suspend_valid_only_mem,
-	.begin		= pseries_suspend_begin,
 	.prepare_late	= pseries_prepare_late,
 	.enter		= pseries_suspend_enter,
 };
arch/powerpc/xmon/nonstdio.c +1 -1
index d00123421e00..eefe1b94e0aa 100644
@@ -182,7 +182,7 @@ void xmon_printf(const char *format, ...)
 
 	if (n && rc == 0) {
 		/* No udbg hooks, fallback to printk() - dangerous */
-		printk("%s", xmon_outbuf);
+		pr_cont("%s", xmon_outbuf);
 	}
 }
 
arch/s390/kernel/smp.c +3 -15
index 808f4fbe869e..40946c8587a5 100644
@@ -864,24 +864,12 @@ static void smp_start_secondary(void *cpuvoid)
 /* Upping and downing of CPUs */
 int __cpu_up(unsigned int cpu, struct task_struct *tidle)
 {
-	struct pcpu *pcpu;
-	int base, i, rc;
+	struct pcpu *pcpu = pcpu_devices + cpu;
+	int rc;
 
-	pcpu = pcpu_devices + cpu;
 	if (pcpu->state != CPU_STATE_CONFIGURED)
 		return -EIO;
-	base = smp_get_base_cpu(cpu);
-	for (i = 0; i <= smp_cpu_mtid; i++) {
-		if (base + i < nr_cpu_ids)
-			if (cpu_online(base + i))
-				break;
-	}
-	/*
-	 * If this is the first CPU of the core to get online
-	 * do an initial CPU reset.
-	 */
-	if (i > smp_cpu_mtid &&
-	    pcpu_sigp_retry(pcpu_devices + base, SIGP_INITIAL_CPU_RESET, 0) !=
+	if (pcpu_sigp_retry(pcpu, SIGP_INITIAL_CPU_RESET, 0) !=
 	    SIGP_CC_ORDER_CODE_ACCEPTED)
 		return -EIO;
 
arch/um/drivers/xterm.c +5 -0
index 20e30be44795..e3b422ebce09 100644
@@ -18,6 +18,7 @@
 struct xterm_chan {
 	int pid;
 	int helper_pid;
+	int chan_fd;
 	char *title;
 	int device;
 	int raw;
@@ -33,6 +34,7 @@ static void *xterm_init(char *str, int device, const struct chan_opts *opts)
 		return NULL;
 	*data = ((struct xterm_chan) { .pid 		= -1,
 				       .helper_pid 	= -1,
+				       .chan_fd		= -1,
 				       .device 		= device,
 				       .title 		= opts->xterm_title,
 				       .raw  		= opts->raw } );
@@ -149,6 +151,7 @@ static int xterm_open(int input, int output, int primary, void *d,
 		goto out_kill;
 	}
 
+	data->chan_fd = fd;
 	new = xterm_fd(fd, &data->helper_pid);
 	if (new < 0) {
 		err = new;
@@ -206,6 +209,8 @@ static void xterm_close(int fd, void *d)
 		os_kill_process(data->helper_pid, 0);
 	data->helper_pid = -1;
 
+	if (data->chan_fd != -1)
+		os_close_file(data->chan_fd);
 	os_close_file(fd);
 }
 
arch/x86/include/asm/pgtable_types.h +1 -0
index e6c870c24065..7b0596b79d71 100644
@@ -148,6 +148,7 @@ enum page_cache_mode {
 #endif
 
 #define _PAGE_CACHE_MASK	(_PAGE_PAT | _PAGE_PCD | _PAGE_PWT)
+#define _PAGE_LARGE_CACHE_MASK	(_PAGE_PWT | _PAGE_PCD | _PAGE_PAT_LARGE)
 #define _PAGE_NOCACHE		(cachemode2protval(_PAGE_CACHE_MODE_UC))
 #define _PAGE_CACHE_WP		(cachemode2protval(_PAGE_CACHE_MODE_WP))
 
arch/x86/kernel/kprobes/core.c +5 -0
index 02665ffef050..700d434f5bda 100644
@@ -1022,6 +1022,11 @@ int kprobe_fault_handler(struct pt_regs *regs, int trapnr)
 		 * So clear it by resetting the current kprobe:
 		 */
 		regs->flags &= ~X86_EFLAGS_TF;
+		/*
+		 * Since the single step (trap) has been cancelled,
+		 * we need to restore BTF here.
+		 */
+		restore_btf();
 
 		/*
 		 * If the TF flag was set before the kprobe hit,
arch/x86/mm/ident_map.c +10 -2
index ab33a32df2a8..407fa1df470e 100644
@@ -62,6 +62,7 @@ static int ident_p4d_init(struct x86_mapping_info *info, p4d_t *p4d_page,
 			  unsigned long addr, unsigned long end)
 {
 	unsigned long next;
+	int result;
 
 	for (; addr < end; addr = next) {
 		p4d_t *p4d = p4d_page + p4d_index(addr);
@@ -73,13 +74,20 @@ static int ident_p4d_init(struct x86_mapping_info *info, p4d_t *p4d_page,
 
 		if (p4d_present(*p4d)) {
 			pud = pud_offset(p4d, 0);
-			ident_pud_init(info, pud, addr, next);
+			result = ident_pud_init(info, pud, addr, next);
+			if (result)
+				return result;
+
 			continue;
 		}
 		pud = (pud_t *)info->alloc_pgt_page(info->context);
 		if (!pud)
 			return -ENOMEM;
-		ident_pud_init(info, pud, addr, next);
+
+		result = ident_pud_init(info, pud, addr, next);
+		if (result)
+			return result;
+
 		set_p4d(p4d, __p4d(__pa(pud) | info->kernpg_flag));
 	}
 
arch/x86/mm/mem_encrypt.c +2 -2
index 48c03c74c7f4..f3ec45afce97 100644
@@ -248,8 +248,8 @@ static void __init sme_clear_pgd(struct sme_populate_pgd_data *ppd)
 #define PMD_FLAGS_LARGE		(__PAGE_KERNEL_LARGE_EXEC & ~_PAGE_GLOBAL)
 
 #define PMD_FLAGS_DEC		PMD_FLAGS_LARGE
-#define PMD_FLAGS_DEC_WP	((PMD_FLAGS_DEC & ~_PAGE_CACHE_MASK) | \
-				 (_PAGE_PAT | _PAGE_PWT))
+#define PMD_FLAGS_DEC_WP	((PMD_FLAGS_DEC & ~_PAGE_LARGE_CACHE_MASK) | \
+				 (_PAGE_PAT_LARGE | _PAGE_PWT))
 
 #define PMD_FLAGS_ENC		(PMD_FLAGS_LARGE | _PAGE_ENC)
 
crypto/af_alg.c +7 -3
index 3f3b57f80bdb..da000a256e91 100644
@@ -151,7 +151,7 @@ static int alg_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
 	const u32 allowed = CRYPTO_ALG_KERN_DRIVER_ONLY;
 	struct sock *sk = sock->sk;
 	struct alg_sock *ask = alg_sk(sk);
-	struct sockaddr_alg *sa = (void *)uaddr;
+	struct sockaddr_alg_new *sa = (void *)uaddr;
 	const struct af_alg_type *type;
 	void *private;
 	int err;
@@ -159,7 +159,11 @@ static int alg_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
 	if (sock->state == SS_CONNECTED)
 		return -EINVAL;
 
-	if (addr_len < sizeof(*sa))
+	BUILD_BUG_ON(offsetof(struct sockaddr_alg_new, salg_name) !=
+		     offsetof(struct sockaddr_alg, salg_name));
+	BUILD_BUG_ON(offsetof(struct sockaddr_alg, salg_name) != sizeof(*sa));
+
+	if (addr_len < sizeof(*sa) + 1)
 		return -EINVAL;
 
 	/* If caller uses non-allowed flag, return error. */
@@ -167,7 +171,7 @@ static int alg_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
 		return -EINVAL;
 
 	sa->salg_type[sizeof(sa->salg_type) - 1] = 0;
-	sa->salg_name[sizeof(sa->salg_name) + addr_len - sizeof(*sa) - 1] = 0;
+	sa->salg_name[addr_len - sizeof(*sa) - 1] = 0;
 
 	type = alg_get_type(sa->salg_type);
 	if (IS_ERR(type) && PTR_ERR(type) == -ENOENT) {
crypto/ecdh.c +5 -4
index 4271fc77d261..3919b59ada25 100644
@@ -57,12 +57,13 @@ static int ecdh_set_secret(struct crypto_kpp *tfm, const void *buf,
 		return ecc_gen_privkey(ctx->curve_id, ctx->ndigits,
 				       ctx->private_key);
 
-	if (ecc_is_key_valid(ctx->curve_id, ctx->ndigits,
-			     (const u64 *)params.key, params.key_size) < 0)
-		return -EINVAL;
-
 	memcpy(ctx->private_key, params.key, params.key_size);
 
+	if (ecc_is_key_valid(ctx->curve_id, ctx->ndigits,
+			     ctx->private_key, params.key_size) < 0) {
+		memzero_explicit(ctx->private_key, params.key_size);
+		return -EINVAL;
+	}
 	return 0;
 }
 
drivers/acpi/acpi_pnp.c +3 -0
index 67d97c0090a2..5d72baf60ac8 100644
@@ -320,6 +320,9 @@ static bool matching_id(const char *idstr, const char *list_id)
 {
 	int i;
 
+	if (strlen(idstr) != strlen(list_id))
+		return false;
+
 	if (memcmp(idstr, list_id, 3))
 		return false;
 
drivers/acpi/device_pm.c +12 -29

79 lines not on this page · raw message

drivers/acpi/resource.c +1 -1
index d85e010ee2cc..39ab333910dd 100644
@@ -548,7 +548,7 @@ static acpi_status acpi_dev_process_resource(struct acpi_resource *ares,
 		ret = c->preproc(ares, c->preproc_data);
 		if (ret < 0) {
 			c->error = ret;
-			return AE_CTRL_TERMINATE;
+			return AE_ABORT_METHOD;
 		} else if (ret > 0) {
 			return AE_OK;
 		}
drivers/block/xen-blkback/xenbus.c +3 -1
index d19adf1db1f1..0dc642f13b0e 100644
@@ -263,6 +263,7 @@ static int xen_blkif_disconnect(struct xen_blkif *blkif)
 
 		if (ring->xenblkd) {
 			kthread_stop(ring->xenblkd);
+			ring->xenblkd = NULL;
 			wake_up(&ring->shutdown_wq);
 		}
 
@@ -650,7 +651,8 @@ static int xen_blkbk_probe(struct xenbus_device *dev,
 	/* setup back pointer */
 	be->blkif->be = be;
 
-	err = xenbus_watch_pathfmt(dev, &be->backend_watch, backend_changed,
+	err = xenbus_watch_pathfmt(dev, &be->backend_watch, NULL,
+				   backend_changed,
 				   "%s/%s", dev->nodename, "physical-device");
 	if (err)
 		goto fail;
drivers/bus/mips_cdmm.c +1 -3
index 1b14256376d2..7c1da45be166 100644
@@ -544,10 +544,8 @@ static void mips_cdmm_bus_discover(struct mips_cdmm_bus *bus)
 		dev_set_name(&dev->dev, "cdmm%u-%u", cpu, id);
 		++id;
 		ret = device_register(&dev->dev);
-		if (ret) {
+		if (ret)
 			put_device(&dev->dev);
-			kfree(dev);
-		}
 	}
 }
 
drivers/clk/clk-s2mps11.c +1 -0
index f5d74e8db432..1803af6230b2 100644
@@ -211,6 +211,7 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
 	return ret;
 
 err_reg:
+	of_node_put(s2mps11_clks[0].clk_np);
 	while (--i >= 0)
 		clkdev_drop(s2mps11_clks[i].lookup);
 
drivers/clk/mvebu/armada-37xx-xtal.c +2 -2
index 612d65ede10a..5370514959e1 100644
@@ -15,8 +15,8 @@
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 
-#define NB_GPIO1_LATCH	0xC
-#define XTAL_MODE	    BIT(31)
+#define NB_GPIO1_LATCH	0x8
+#define XTAL_MODE	    BIT(9)
 
 static int armada_3700_xtal_clock_probe(struct platform_device *pdev)
 {
drivers/clk/sunxi-ng/ccu-sun50i-a64.c +1 -0
index 183985c8c9ba..7e3cd0bd597d 100644
@@ -381,6 +381,7 @@ static struct clk_div_table ths_div_table[] = {
 	{ .val = 1, .div = 2 },
 	{ .val = 2, .div = 4 },
 	{ .val = 3, .div = 6 },
+	{ /* Sentinel */ },
 };
 static const char * const ths_parents[] = { "osc24M" };
 static struct ccu_div ths_clk = {
drivers/clk/sunxi-ng/ccu-sun8i-h3.c +1 -0
index b09acda71abe..aa44602896fa 100644
@@ -315,6 +315,7 @@ static struct clk_div_table ths_div_table[] = {
 	{ .val = 1, .div = 2 },
 	{ .val = 2, .div = 4 },
 	{ .val = 3, .div = 6 },
+	{ /* Sentinel */ },
 };
 static SUNXI_CCU_DIV_TABLE_WITH_GATE(ths_clk, "ths", "osc24M",
 				     0x074, 0, 2, ths_div_table, BIT(31), 0);
drivers/clk/tegra/clk-id.h +1 -0
index 11ee5f9ce99e..4374e4a6b5be 100644
@@ -234,6 +234,7 @@ enum clk_id {
 	tegra_clk_sdmmc4_8,
 	tegra_clk_sdmmc4_9,
 	tegra_clk_se,
+	tegra_clk_se_10,
 	tegra_clk_soc_therm,
 	tegra_clk_soc_therm_8,
 	tegra_clk_sor0,
drivers/clk/tegra/clk-tegra-periph.c +1 -1
index d300a256fcac..ca0735dc70ec 100644
@@ -673,7 +673,7 @@ static struct tegra_periph_init_data periph_clks[] = {
 	INT8("host1x", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_HOST1X, 28, 0, tegra_clk_host1x_8),
 	INT8("host1x", mux_pllc4_out1_pllc_pllc4_out2_pllp_clkm_plla_pllc4_out0, CLK_SOURCE_HOST1X, 28, 0, tegra_clk_host1x_9),
 	INT8("se", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, tegra_clk_se),
-	INT8("se", mux_pllp_pllc2_c_c3_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, tegra_clk_se),
+	INT8("se", mux_pllp_pllc2_c_c3_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, tegra_clk_se_10),
 	INT8("2d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_2D, 21, 0, tegra_clk_gr2d_8),
 	INT8("3d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_3D, 24, 0, tegra_clk_gr3d_8),
 	INT8("vic03", mux_pllm_pllc_pllp_plla_pllc2_c3_clkm, CLK_SOURCE_VIC03, 178, 0, tegra_clk_vic03),
drivers/clk/ti/fapll.c +9 -2
index 071af44b1ba8..e33ce851837e 100644
@@ -497,6 +497,7 @@ static struct clk * __init ti_fapll_synth_setup(struct fapll_data *fd,
 {
 	struct clk_init_data *init;
 	struct fapll_synth *synth;
+	struct clk *clk = ERR_PTR(-ENOMEM);
 
 	init = kzalloc(sizeof(*init), GFP_KERNEL);
 	if (!init)
@@ -519,13 +520,19 @@ static struct clk * __init ti_fapll_synth_setup(struct fapll_data *fd,
 	synth->hw.init = init;
 	synth->clk_pll = pll_clk;
 
-	return clk_register(NULL, &synth->hw);
+	clk = clk_register(NULL, &synth->hw);
+	if (IS_ERR(clk)) {
+		pr_err("failed to register clock\n");
+		goto free;
+	}
+
+	return clk;
 
 free:
 	kfree(synth);
 	kfree(init);
 
-	return ERR_PTR(-ENOMEM);
+	return clk;
 }
 
 static void __init ti_fapll_setup(struct device_node *node)
drivers/clocksource/arm_arch_timer.c +16 -7
index 14e2419063e9..2c5913057b87 100644
@@ -744,15 +744,24 @@ static void arch_timer_evtstrm_enable(int divider)
 
 static void arch_timer_configure_evtstream(void)
 {
-	int evt_stream_div, pos;
+	int evt_stream_div, lsb;
+
+	/*
+	 * As the event stream can at most be generated at half the frequency
+	 * of the counter, use half the frequency when computing the divider.
+	 */
+	evt_stream_div = arch_timer_rate / ARCH_TIMER_EVT_STREAM_FREQ / 2;
+
+	/*
+	 * Find the closest power of two to the divisor. If the adjacent bit
+	 * of lsb (last set bit, starts from 0) is set, then we use (lsb + 1).
+	 */
+	lsb = fls(evt_stream_div) - 1;
+	if (lsb > 0 && (evt_stream_div & BIT(lsb - 1)))
+		lsb++;
 
-	/* Find the closest power of two to the divisor */
-	evt_stream_div = arch_timer_rate / ARCH_TIMER_EVT_STREAM_FREQ;
-	pos = fls(evt_stream_div);
-	if (pos > 1 && !(evt_stream_div & (1 << (pos - 2))))
-		pos--;
 	/* enable event stream */
-	arch_timer_evtstrm_enable(min(pos, 15));
+	arch_timer_evtstrm_enable(max(0, min(lsb, 15)));
 }
 
 static void arch_counter_set_user_access(void)
drivers/clocksource/cadence_ttc_timer.c +9 -9
index 29d51755e18b..a7eb858a84a0 100644
@@ -419,10 +419,8 @@ static int __init ttc_setup_clockevent(struct clk *clk,
 	ttcce->ttc.clk = clk;
 
 	err = clk_prepare_enable(ttcce->ttc.clk);
-	if (err) {
-		kfree(ttcce);
-		return err;
-	}
+	if (err)
+		goto out_kfree;
 
 	ttcce->ttc.clk_rate_change_nb.notifier_call =
 		ttc_rate_change_clockevent_cb;
@@ -432,7 +430,7 @@ static int __init ttc_setup_clockevent(struct clk *clk,
 				    &ttcce->ttc.clk_rate_change_nb);
 	if (err) {
 		pr_warn("Unable to register clock notifier.\n");
-		return err;
+		goto out_kfree;
 	}
 
 	ttcce->ttc.freq = clk_get_rate(ttcce->ttc.clk);
@@ -461,15 +459,17 @@ static int __init ttc_setup_clockevent(struct clk *clk,
 
 	err = request_irq(irq, ttc_clock_event_interrupt,
 			  IRQF_TIMER, ttcce->ce.name, ttcce);
-	if (err) {
-		kfree(ttcce);
-		return err;
-	}
+	if (err)
+		goto out_kfree;
 
 	clockevents_config_and_register(&ttcce->ce,
 			ttcce->ttc.freq / PRESCALE, 1, 0xfffe);
 
 	return 0;
+
+out_kfree:
+	kfree(ttcce);
+	return err;
 }
 
 /**
drivers/cpufreq/highbank-cpufreq.c +7 -0
index 1608f7105c9f..ad743f2f31e7 100644
@@ -104,6 +104,13 @@ static int hb_cpufreq_driver_init(void)
 }
 module_init(hb_cpufreq_driver_init);
 
+static const struct of_device_id __maybe_unused hb_cpufreq_of_match[] = {
+	{ .compatible = "calxeda,highbank" },
+	{ .compatible = "calxeda,ecx-2000" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, hb_cpufreq_of_match);
+
 MODULE_AUTHOR("Mark Langsdorf <[email protected]>");
 MODULE_DESCRIPTION("Calxeda Highbank cpufreq driver");
 MODULE_LICENSE("GPL");
drivers/cpufreq/loongson1-cpufreq.c +1 -0
index be89416e2358..9d902f67f871 100644
@@ -217,6 +217,7 @@ static struct platform_driver ls1x_cpufreq_platdrv = {
 
 module_platform_driver(ls1x_cpufreq_platdrv);
 
+MODULE_ALIAS("platform:ls1x-cpufreq");
 MODULE_AUTHOR("Kelvin Cheung <[email protected]>");
 MODULE_DESCRIPTION("Loongson1 CPUFreq driver");
 MODULE_LICENSE("GPL");
drivers/cpufreq/mediatek-cpufreq.c +1 -0
index 18c4bd9a5c65..993cd461e34c 100644
@@ -582,6 +582,7 @@ static const struct of_device_id mtk_cpufreq_machines[] __initconst = {
 
 	{ }
 };
+MODULE_DEVICE_TABLE(of, mtk_cpufreq_machines);
 
 static int __init mtk_cpufreq_driver_init(void)
 {
drivers/cpufreq/scpi-cpufreq.c +1 -0
index 8de2364b5995..df6617b19de2 100644
@@ -85,6 +85,7 @@ static struct platform_driver scpi_cpufreq_platdrv = {
 };
 module_platform_driver(scpi_cpufreq_platdrv);
 
+MODULE_ALIAS("platform:scpi-cpufreq");
 MODULE_AUTHOR("Sudeep Holla <[email protected]>");
 MODULE_DESCRIPTION("ARM SCPI CPUFreq interface driver");
 MODULE_LICENSE("GPL v2");
drivers/cpufreq/sti-cpufreq.c +7 -0
index 6b5d241c30b7..2d09960afa59 100644
@@ -295,6 +295,13 @@ static int sti_cpufreq_init(void)
 }
 module_init(sti_cpufreq_init);
 
+static const struct of_device_id __maybe_unused sti_cpufreq_of_match[] = {
+	{ .compatible = "st,stih407" },
+	{ .compatible = "st,stih410" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, sti_cpufreq_of_match);
+
 MODULE_DESCRIPTION("STMicroelectronics CPUFreq/OPP driver");
 MODULE_AUTHOR("Ajitpal Singh <[email protected]>");
 MODULE_AUTHOR("Lee Jones <[email protected]>");
drivers/crypto/omap-aes.c +2 -1
index c376a3ee7c2c..41c411ee0da5 100644
@@ -1071,7 +1071,7 @@ static int omap_aes_probe(struct platform_device *pdev)
 	if (err < 0) {
 		dev_err(dev, "%s: failed to get_sync(%d)\n",
 			__func__, err);
-		goto err_res;
+		goto err_pm_disable;
 	}
 
 	omap_aes_dma_stop(dd);
@@ -1180,6 +1180,7 @@ static int omap_aes_probe(struct platform_device *pdev)
 	omap_aes_dma_cleanup(dd);
 err_irq:
 	tasklet_kill(&dd->done_task);
+err_pm_disable:
 	pm_runtime_disable(dev);
 err_res:
 	dd = NULL;
drivers/crypto/talitos.c +3 -3
index 6c8a03a1132f..8028fbd5cda4 100644
@@ -447,7 +447,7 @@ DEF_TALITOS2_DONE(ch1_3, TALITOS2_ISR_CH_1_3_DONE)
 /*
  * locate current (offending) descriptor
  */
-static u32 current_desc_hdr(struct device *dev, int ch)
+static __be32 current_desc_hdr(struct device *dev, int ch)
 {
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	int tail, iter;
@@ -478,13 +478,13 @@ static u32 current_desc_hdr(struct device *dev, int ch)
 /*
  * user diagnostics; report root cause of error based on execution unit status
  */
-static void report_eu_error(struct device *dev, int ch, u32 desc_hdr)
+static void report_eu_error(struct device *dev, int ch, __be32 desc_hdr)
 {
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	int i;
 
 	if (!desc_hdr)
-		desc_hdr = in_be32(priv->chan[ch].reg + TALITOS_DESCBUF);
+		desc_hdr = cpu_to_be32(in_be32(priv->chan[ch].reg + TALITOS_DESCBUF));
 
 	switch (desc_hdr & DESC_HDR_SEL0_MASK) {
 	case DESC_HDR_SEL0_AFEU:
drivers/edac/amd64_edac.c +14 -12
index 21c5f95596be..b757291f9dee 100644
@@ -18,6 +18,9 @@ static struct msr __percpu *msrs;
 /* Per-node stuff */
 static struct ecc_settings **ecc_stngs;
 
+/* Device for the PCI component */
+static struct device *pci_ctl_dev;
+
 /*
  * Valid scrub rates for the K8 hardware memory scrubber. We map the scrubbing
  * bandwidth to a valid bit pattern. The 'set' operation finds the 'matching-
@@ -2554,6 +2557,9 @@ reserve_mc_sibling_devs(struct amd64_pvt *pvt, u16 pci_id1, u16 pci_id2)
 			return -ENODEV;
 		}
 
+		if (!pci_ctl_dev)
+			pci_ctl_dev = &pvt->F0->dev;
+
 		edac_dbg(1, "F0: %s\n", pci_name(pvt->F0));
 		edac_dbg(1, "F3: %s\n", pci_name(pvt->F3));
 		edac_dbg(1, "F6: %s\n", pci_name(pvt->F6));
@@ -2578,6 +2584,9 @@ reserve_mc_sibling_devs(struct amd64_pvt *pvt, u16 pci_id1, u16 pci_id2)
 		return -ENODEV;
 	}
 
+	if (!pci_ctl_dev)
+		pci_ctl_dev = &pvt->F2->dev;
+
 	edac_dbg(1, "F1: %s\n", pci_name(pvt->F1));
 	edac_dbg(1, "F2: %s\n", pci_name(pvt->F2));
 	edac_dbg(1, "F3: %s\n", pci_name(pvt->F3));
@@ -3428,21 +3437,10 @@ static void remove_one_instance(unsigned int nid)
 
 static void setup_pci_device(void)
 {
-	struct mem_ctl_info *mci;
-	struct amd64_pvt *pvt;
-
 	if (pci_ctl)
 		return;
 
-	mci = edac_mc_find(0);
-	if (!mci)
-		return;
-
-	pvt = mci->pvt_info;
-	if (pvt->umc)
-		pci_ctl = edac_pci_create_generic_ctl(&pvt->F0->dev, EDAC_MOD_STR);
-	else
-		pci_ctl = edac_pci_create_generic_ctl(&pvt->F2->dev, EDAC_MOD_STR);
+	pci_ctl = edac_pci_create_generic_ctl(pci_ctl_dev, EDAC_MOD_STR);
 	if (!pci_ctl) {
 		pr_warn("%s(): Unable to create PCI control\n", __func__);
 		pr_warn("%s(): PCI error report via EDAC not set\n", __func__);
@@ -3517,6 +3515,8 @@ static int __init amd64_edac_init(void)
 	return 0;
 
 err_pci:
+	pci_ctl_dev = NULL;
+
 	msrs_free(msrs);
 	msrs = NULL;
 
@@ -3548,6 +3548,8 @@ static void __exit amd64_edac_exit(void)
 	kfree(ecc_stngs);
 	ecc_stngs = NULL;
 
+	pci_ctl_dev = NULL;
+
 	msrs_free(msrs);
 	msrs = NULL;
 }
drivers/extcon/extcon-max77693.c +1 -1
index 7a5856809047..8ea33946b4b2 100644
@@ -1275,4 +1275,4 @@ module_platform_driver(max77693_muic_driver);
 MODULE_DESCRIPTION("Maxim MAX77693 Extcon driver");
 MODULE_AUTHOR("Chanwoo Choi <[email protected]>");
 MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:extcon-max77693");
+MODULE_ALIAS("platform:max77693-muic");
drivers/gpio/gpio-mvebu.c +11 -5
index be85d4b39e99..fc762b4adcb2 100644
@@ -1195,6 +1195,13 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
 
 	devm_gpiochip_add_data(&pdev->dev, &mvchip->chip, mvchip);
 
+	/* Some MVEBU SoCs have simple PWM support for GPIO lines */
+	if (IS_ENABLED(CONFIG_PWM)) {
+		err = mvebu_pwm_probe(pdev, mvchip, id);
+		if (err)
+			return err;
+	}
+
 	/* Some gpio controllers do not provide irq support */
 	if (!have_irqs)
 		return 0;
@@ -1204,7 +1211,8 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
 	if (!mvchip->domain) {
 		dev_err(&pdev->dev, "couldn't allocate irq domain %s (DT).\n",
 			mvchip->chip.label);
-		return -ENODEV;
+		err = -ENODEV;
+		goto err_pwm;
 	}
 
 	err = irq_alloc_domain_generic_chips(
@@ -1252,14 +1260,12 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
 						 mvchip);
 	}
 
-	/* Some MVEBU SoCs have simple PWM support for GPIO lines */
-	if (IS_ENABLED(CONFIG_PWM))
-		return mvebu_pwm_probe(pdev, mvchip, id);
-
 	return 0;
 
 err_domain:
 	irq_domain_remove(mvchip->domain);
+err_pwm:
+	pwmchip_remove(&mvchip->mvpwm->chip);
 
 	return err;
 }
drivers/gpu/drm/drm_dp_aux_dev.c +1 -1
index d34e5096887a..7bb32a890516 100644
@@ -60,7 +60,7 @@ static struct drm_dp_aux_dev *drm_dp_aux_dev_get_by_minor(unsigned index)
 
 	mutex_lock(&aux_idr_mutex);
 	aux_dev = idr_find(&aux_idr, index);
-	if (!kref_get_unless_zero(&aux_dev->refcount))
+	if (aux_dev && !kref_get_unless_zero(&aux_dev->refcount))
 		aux_dev = NULL;
 	mutex_unlock(&aux_idr_mutex);
 
drivers/gpu/drm/drm_dp_mst_topology.c +4 -3
index e52381c9d04e..ceac9aaf4fe9 100644
@@ -2629,11 +2629,11 @@ bool drm_dp_mst_allocate_vcpi(struct drm_dp_mst_topology_mgr *mgr,
 {
 	int ret;
 
-	port = drm_dp_get_validated_port_ref(mgr, port);
-	if (!port)
+	if (slots < 0)
 		return false;
 
-	if (slots < 0)
+	port = drm_dp_get_validated_port_ref(mgr, port);
+	if (!port)
 		return false;
 
 	if (port->vcpi.vcpi > 0) {
@@ -2648,6 +2648,7 @@ bool drm_dp_mst_allocate_vcpi(struct drm_dp_mst_topology_mgr *mgr,
 	if (ret) {
 		DRM_DEBUG_KMS("failed to init vcpi slots=%d max=63 ret=%d\n",
 				DIV_ROUND_UP(pbn, mgr->pbn_div), ret);
+		drm_dp_put_port(port);
 		goto out;
 	}
 	DRM_DEBUG_KMS("initing vcpi for pbn=%d slots=%d\n",
drivers/gpu/drm/gma500/cdv_intel_dp.c +1 -1
index 7ec4e3fbafd8..ec6ea202cf5d 100644
@@ -2126,7 +2126,7 @@ cdv_intel_dp_init(struct drm_device *dev, struct psb_intel_mode_device *mode_dev
 			DRM_INFO("failed to retrieve link info, disabling eDP\n");
 			cdv_intel_dp_encoder_destroy(encoder);
 			cdv_intel_dp_destroy(connector);
-			goto err_priv;
+			goto err_connector;
 		} else {
         		DRM_DEBUG_KMS("DPCD: Rev=%x LN_Rate=%x LN_CNT=%x LN_DOWNSP=%x\n",
 				intel_dp->dpcd[0], intel_dp->dpcd[1], 
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c +1 -0
index 32901c6fe3df..6d0c0405e736 100644
@@ -751,6 +751,7 @@ static int omap_dmm_probe(struct platform_device *dev)
 					   &omap_dmm->refill_pa, GFP_KERNEL);
 	if (!omap_dmm->refill_va) {
 		dev_err(&dev->dev, "could not allocate refill memory\n");
+		ret = -ENOMEM;
 		goto fail;
 	}
 
drivers/gpu/drm/tegra/sor.c +8 -2
index 7ab1d1dc7cd7..352ae52be341 100644
@@ -2378,17 +2378,23 @@ static int tegra_sor_init(struct host1x_client *client)
 		if (err < 0) {
 			dev_err(sor->dev, "failed to deassert SOR reset: %d\n",
 				err);
+			clk_disable_unprepare(sor->clk);
 			return err;
 		}
 	}
 
 	err = clk_prepare_enable(sor->clk_safe);
-	if (err < 0)
+	if (err < 0) {
+		clk_disable_unprepare(sor->clk);
 		return err;
+	}
 
 	err = clk_prepare_enable(sor->clk_dp);
-	if (err < 0)
+	if (err < 0) {
+		clk_disable_unprepare(sor->clk_safe);
+		clk_disable_unprepare(sor->clk);
 		return err;
+	}
 
 	return 0;
 }
drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c +8 -0
index f98c1e1b1dbd..58a753ef2717 100644
@@ -397,6 +397,14 @@ static const struct dmi_system_id i2c_hid_dmi_desc_override_table[] = {
 		},
 		.driver_data = (void *)&sipodev_desc
 	},
+	{
+		.ident = "Vero K147",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "VERO"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "K147"),
+		},
+		.driver_data = (void *)&sipodev_desc
+	},
 	{ }	/* Terminate list */
 };
 
drivers/hsi/controllers/omap_ssi_core.c +1 -1
index 88e48b346916..3554443a609c 100644
@@ -389,7 +389,7 @@ static int ssi_add_controller(struct hsi_controller *ssi,
 
 	err = ida_simple_get(&platform_omap_ssi_ida, 0, 0, GFP_KERNEL);
 	if (err < 0)
-		goto out_err;
+		return err;
 	ssi->id = err;
 
 	ssi->owner = THIS_MODULE;
drivers/iio/adc/rockchip_saradc.c +1 -1
index 5f612d694b33..671ddbc97e79 100644
@@ -384,7 +384,7 @@ static int rockchip_saradc_resume(struct device *dev)
 
 	ret = clk_prepare_enable(info->clk);
 	if (ret)
-		return ret;
+		clk_disable_unprepare(info->pclk);
 
 	return ret;
 }
drivers/iio/imu/bmi160/bmi160_core.c +2 -2
index cfd225ed1c8d..01fcd715485c 100644
@@ -385,8 +385,8 @@ static irqreturn_t bmi160_trigger_handler(int irq, void *p)
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct bmi160_data *data = iio_priv(indio_dev);
-	__le16 buf[16];
-	/* 3 sens x 3 axis x __le16 + 3 x __le16 pad + 4 x __le16 tstamp */
+	__le16 buf[12];
+	/* 2 sens x 3 axis x __le16 + 2 x __le16 pad + 4 x __le16 tstamp */
 	int i, ret, j = 0, base = BMI160_REG_DATA_MAGN_XOUT_L;
 	__le16 sample;
 
drivers/iio/industrialio-buffer.c +3 -3
index c3badf634378..623fc4850af6 100644
@@ -850,12 +850,12 @@ static int iio_buffer_update_demux(struct iio_dev *indio_dev,
 				       indio_dev->masklength,
 				       in_ind + 1);
 		while (in_ind != out_ind) {
-			in_ind = find_next_bit(indio_dev->active_scan_mask,
-					       indio_dev->masklength,
-					       in_ind + 1);
 			length = iio_storage_bytes_for_si(indio_dev, in_ind);
 			/* Make sure we are aligned */
 			in_loc = roundup(in_loc, length) + length;
+			in_ind = find_next_bit(indio_dev->active_scan_mask,
+					       indio_dev->masklength,
+					       in_ind + 1);
 		}
 		length = iio_storage_bytes_for_si(indio_dev, in_ind);
 		out_loc = roundup(out_loc, length);
drivers/iio/light/rpr0521.c +13 -4
index a6efa12613a2..f635c607b309 100644
@@ -197,6 +197,17 @@ struct rpr0521_data {
 	bool pxs_need_dis;
 
 	struct regmap *regmap;
+
+	/*
+	 * Ensure correct naturally aligned timestamp.
+	 * Note that the read will put garbage data into
+	 * the padding but this should not be a problem
+	 */
+	struct {
+		__le16 channels[3];
+		u8 garbage;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static IIO_CONST_ATTR(in_intensity_scale_available, RPR0521_ALS_SCALE_AVAIL);
@@ -452,8 +463,6 @@ static irqreturn_t rpr0521_trigger_consumer_handler(int irq, void *p)
 	struct rpr0521_data *data = iio_priv(indio_dev);
 	int err;
 
-	u8 buffer[16]; /* 3 16-bit channels + padding + ts */
-
 	/* Use irq timestamp when reasonable. */
 	if (iio_trigger_using_own(indio_dev) && data->irq_timestamp) {
 		pf->timestamp = data->irq_timestamp;
@@ -464,11 +473,11 @@ static irqreturn_t rpr0521_trigger_consumer_handler(int irq, void *p)
 		pf->timestamp = iio_get_time_ns(indio_dev);
 
 	err = regmap_bulk_read(data->regmap, RPR0521_REG_PXS_DATA,
-		&buffer,
+		data->scan.channels,
 		(3 * 2) + 1);	/* 3 * 16-bit + (discarded) int clear reg. */
 	if (!err)
 		iio_push_to_buffers_with_timestamp(indio_dev,
-						   buffer, pf->timestamp);
+						   &data->scan, pf->timestamp);
 	else
 		dev_err(&data->client->dev,
 			"Trigger consumer can't read from sensor.\n");
drivers/iio/pressure/mpl3115.c +8 -1
index 619b963714c7..1799eebe4ecd 100644
@@ -147,7 +147,14 @@ static irqreturn_t mpl3115_trigger_handler(int irq, void *p)
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mpl3115_data *data = iio_priv(indio_dev);
-	u8 buffer[16]; /* 32-bit channel + 16-bit channel + padding + ts */
+	/*
+	 * 32-bit channel + 16-bit channel + padding + ts
+	 * Note that it is possible for only one of the first 2
+	 * channels to be enabled. If that happens, the first element
+	 * of the buffer may be either 16 or 32-bits.  As such we cannot
+	 * use a simple structure definition to express this data layout.
+	 */
+	u8 buffer[16] __aligned(8);
 	int ret, pos = 0;
 
 	mutex_lock(&data->lock);
drivers/infiniband/core/cm.c +2 -0
index 80a8eb7e5d6e..3ddc556df809 100644
@@ -1349,6 +1349,7 @@ int ib_send_cm_req(struct ib_cm_id *cm_id,
 							    id.local_id);
 	if (IS_ERR(cm_id_priv->timewait_info)) {
 		ret = PTR_ERR(cm_id_priv->timewait_info);
+		cm_id_priv->timewait_info = NULL;
 		goto out;
 	}
 
@@ -1836,6 +1837,7 @@ static int cm_req_handler(struct cm_work *work)
 							    id.local_id);
 	if (IS_ERR(cm_id_priv->timewait_info)) {
 		ret = PTR_ERR(cm_id_priv->timewait_info);
+		cm_id_priv->timewait_info = NULL;
 		goto destroy;
 	}
 	cm_id_priv->timewait_info->work.remote_id = req_msg->local_comm_id;
drivers/infiniband/hw/bnxt_re/ib_verbs.c +1 -0
index ef9135aa392c..ab218767bf05 100644
@@ -1590,6 +1590,7 @@ int bnxt_re_query_qp(struct ib_qp *ib_qp, struct ib_qp_attr *qp_attr,
 		goto out;
 	}
 	qp_attr->qp_state = __to_ib_qp_state(qplib_qp->state);
+	qp_attr->cur_qp_state = __to_ib_qp_state(qplib_qp->cur_qp_state);
 	qp_attr->en_sqd_async_notify = qplib_qp->en_sqd_async_notify ? 1 : 0;
 	qp_attr->qp_access_flags = __to_ib_access_flags(qplib_qp->access);
 	qp_attr->pkey_index = qplib_qp->pkey_index;
drivers/infiniband/hw/cxgb4/cq.c +3 -0
index 6b15508ce17e..24d4c9d9a4ee 100644
@@ -906,6 +906,9 @@ struct ib_cq *c4iw_create_cq(struct ib_device *ibdev,
 
 	rhp = to_c4iw_dev(ibdev);
 
+	if (entries < 1 || entries > ibdev->attrs.max_cqe)
+		return ERR_PTR(-EINVAL);
+
 	if (vector >= rhp->rdev.lldi.nciq)
 		return ERR_PTR(-EINVAL);
 
drivers/infiniband/hw/mthca/mthca_cq.c +1 -1
index a5694dec3f2e..098653b8157e 100644
@@ -609,7 +609,7 @@ static inline int mthca_poll_one(struct mthca_dev *dev,
 			entry->byte_len  = MTHCA_ATOMIC_BYTE_LEN;
 			break;
 		default:
-			entry->opcode    = MTHCA_OPCODE_INVALID;
+			entry->opcode = 0xFF;
 			break;
 		}
 	} else {
drivers/infiniband/hw/mthca/mthca_dev.h +0 -1
index 5508afbf1c67..b487e1339c7f 100644
@@ -105,7 +105,6 @@ enum {
 	MTHCA_OPCODE_ATOMIC_CS      = 0x11,
 	MTHCA_OPCODE_ATOMIC_FA      = 0x12,
 	MTHCA_OPCODE_BIND_MW        = 0x18,
-	MTHCA_OPCODE_INVALID        = 0xff
 };
 
 enum {
drivers/infiniband/sw/rxe/rxe_req.c +2 -1
index e6785b1ea85f..693884160f00 100644
@@ -664,7 +664,8 @@ int rxe_requester(void *arg)
 	}
 
 	if (unlikely(qp_type(qp) == IB_QPT_RC &&
-		     qp->req.psn > (qp->comp.psn + RXE_MAX_UNACKED_PSNS))) {
+		psn_compare(qp->req.psn, (qp->comp.psn +
+				RXE_MAX_UNACKED_PSNS)) > 0)) {
 		qp->req.wait_psn = 1;
 		goto exit;
 	}
drivers/input/keyboard/cros_ec_keyb.c +1 -0
index 0993b3f12df6..149f4045f0f1 100644
@@ -196,6 +196,7 @@ static void cros_ec_keyb_process(struct cros_ec_keyb *ckdev,
 					"changed: [r%d c%d]: byte %02x\n",
 					row, col, new_state);
 
+				input_event(idev, EV_MSC, MSC_SCAN, pos);
 				input_report_key(idev, keycodes[pos],
 						 new_state);
 			}
drivers/input/keyboard/omap4-keypad.c +53 -36

154 lines not on this page · raw message

drivers/input/misc/cm109.c +5 -2
index 23c191a2a071..cf4d507efaf6 100644
@@ -571,12 +571,15 @@ static int cm109_input_open(struct input_dev *idev)
 	dev->ctl_data->byte[HID_OR2] = dev->keybit;
 	dev->ctl_data->byte[HID_OR3] = 0x00;
 
+	dev->ctl_urb_pending = 1;
 	error = usb_submit_urb(dev->urb_ctl, GFP_KERNEL);
-	if (error)
+	if (error) {
+		dev->ctl_urb_pending = 0;
 		dev_err(&dev->intf->dev, "%s: usb_submit_urb (urb_ctl) failed %d\n",
 			__func__, error);
-	else
+	} else {
 		dev->open = 1;
+	}
 
 	mutex_unlock(&dev->pm_mutex);
 
drivers/input/mouse/cyapa_gen6.c +1 -1
index 016397850b1b..9c1f10491ab1 100644
@@ -573,7 +573,7 @@ static int cyapa_pip_retrieve_data_structure(struct cyapa *cyapa,
 
 	memset(&cmd, 0, sizeof(cmd));
 	put_unaligned_le16(PIP_OUTPUT_REPORT_ADDR, &cmd.head.addr);
-	put_unaligned_le16(sizeof(cmd), &cmd.head.length - 2);
+	put_unaligned_le16(sizeof(cmd) - 2, &cmd.head.length);
 	cmd.head.report_id = PIP_APP_CMD_REPORT_ID;
 	cmd.head.cmd_code = PIP_RETRIEVE_DATA_STRUCTURE;
 	put_unaligned_le16(read_offset, &cmd.read_offset);
drivers/input/serio/i8042-x86ia64io.h +42 -0

48 lines not on this page · raw message

drivers/input/touchscreen/ads7846.c +31 -21

96 lines not on this page · raw message

drivers/input/touchscreen/goodix.c +12 -0
index 777dd5b159d3..87f5722a6782 100644
@@ -101,6 +101,18 @@ static const struct dmi_system_id rotated_screen[] = {
 			DMI_MATCH(DMI_BIOS_DATE, "12/19/2014"),
 		},
 	},
+	{
+		.ident = "Teclast X98 Pro",
+		.matches = {
+			/*
+			 * Only match BIOS date, because the manufacturers
+			 * BIOS does not report the board name at all
+			 * (sometimes)...
+			 */
+			DMI_MATCH(DMI_BOARD_VENDOR, "TECLAST"),
+			DMI_MATCH(DMI_BIOS_DATE, "10/28/2015"),
+		},
+	},
 	{
 		.ident = "WinBook TW100",
 		.matches = {
drivers/irqchip/irq-alpine-msi.c +1 -2
index 63d980995d17..ac431697ebe1 100644
@@ -165,8 +165,7 @@ static int alpine_msix_middle_domain_alloc(struct irq_domain *domain,
 	return 0;
 
 err_sgi:
-	while (--i >= 0)
-		irq_domain_free_irqs_parent(domain, virq, i);
+	irq_domain_free_irqs_parent(domain, virq, i - 1);
 	alpine_msix_free_sgi(priv, sgi, nr_irqs);
 	return err;
 }
drivers/md/dm-ioctl.c +1 -0
index ca948155191a..469453e106d1 100644
@@ -1574,6 +1574,7 @@ static int target_message(struct file *filp, struct dm_ioctl *param, size_t para
 
 	if (!argc) {
 		DMWARN("Empty message received.");
+		r = -EINVAL;
 		goto out_argv;
 	}
 
drivers/md/dm-table.c +0 -6
index 777343cff5f1..78d4e7347e2f 100644
@@ -1295,12 +1295,6 @@ void dm_table_event_callback(struct dm_table *t,
 
 void dm_table_event(struct dm_table *t)
 {
-	/*
-	 * You can no longer call dm_table_event() from interrupt
-	 * context, use a bottom half instead.
-	 */
-	BUG_ON(in_interrupt());
-
 	mutex_lock(&_event_lock);
 	if (t->event_fn)
 		t->event_fn(t->event_context);
drivers/md/md-cluster.c +38 -29

111 lines not on this page · raw message

drivers/md/md.c +9 -4
index 702a7d2c7e1e..bda2dba8433a 100644
@@ -6537,8 +6537,10 @@ static int hot_remove_disk(struct mddev *mddev, dev_t dev)
 		goto busy;
 
 kick_rdev:
-	if (mddev_is_clustered(mddev))
-		md_cluster_ops->remove_disk(mddev, rdev);
+	if (mddev_is_clustered(mddev)) {
+		if (md_cluster_ops->remove_disk(mddev, rdev))
+			goto busy;
+	}
 
 	md_kick_rdev_from_array(rdev);
 	set_bit(MD_SB_CHANGE_DEVS, &mddev->sb_flags);
@@ -7187,8 +7189,11 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,
 			err = -EBUSY;
 			goto out;
 		}
-		WARN_ON_ONCE(test_bit(MD_CLOSING, &mddev->flags));
-		set_bit(MD_CLOSING, &mddev->flags);
+		if (test_and_set_bit(MD_CLOSING, &mddev->flags)) {
+			mutex_unlock(&mddev->open_mutex);
+			err = -EBUSY;
+			goto out;
+		}
 		did_set_md_closing = true;
 		mutex_unlock(&mddev->open_mutex);
 		sync_blockdev(bdev);
drivers/media/common/siano/smsdvb-main.c +4 -1
index affde1426b7a..15e895c9f2e0 100644
@@ -1180,12 +1180,15 @@ static int smsdvb_hotplug(struct smscore_device_t *coredev,
 	rc = dvb_create_media_graph(&client->adapter, true);
 	if (rc < 0) {
 		pr_err("dvb_create_media_graph failed %d\n", rc);
-		goto client_error;
+		goto media_graph_error;
 	}
 
 	pr_info("DVB interface registered.\n");
 	return 0;
 
+media_graph_error:
+	smsdvb_debugfs_release(client);
+
 client_error:
 	dvb_unregister_frontend(&client->frontend);
 
drivers/media/i2c/max2175.c +1 -1
index bf0e821a2b93..5cd09501ca7d 100644
@@ -511,7 +511,7 @@ static void max2175_set_bbfilter(struct max2175 *ctx)
 	}
 }
 
-static bool max2175_set_csm_mode(struct max2175 *ctx,
+static int max2175_set_csm_mode(struct max2175 *ctx,
 			  enum max2175_csm_mode new_mode)
 {
 	int ret = max2175_poll_csm_ready(ctx);
drivers/media/pci/netup_unidvb/netup_unidvb_spi.c +3 -2
index f33c0de3e849..019bbc18cede 100644
@@ -184,7 +184,7 @@ int netup_spi_init(struct netup_unidvb_dev *ndev)
 	struct spi_master *master;
 	struct netup_spi *nspi;
 
-	master = spi_alloc_master(&ndev->pci_dev->dev,
+	master = devm_spi_alloc_master(&ndev->pci_dev->dev,
 		sizeof(struct netup_spi));
 	if (!master) {
 		dev_err(&ndev->pci_dev->dev,
@@ -217,6 +217,7 @@ int netup_spi_init(struct netup_unidvb_dev *ndev)
 		ndev->pci_slot,
 		ndev->pci_func);
 	if (!spi_new_device(master, &netup_spi_board)) {
+		spi_unregister_master(master);
 		ndev->spi = NULL;
 		dev_err(&ndev->pci_dev->dev,
 			"%s(): unable to create SPI device\n", __func__);
@@ -235,13 +236,13 @@ void netup_spi_release(struct netup_unidvb_dev *ndev)
 	if (!spi)
 		return;
 
+	spi_unregister_master(spi->master);
 	spin_lock_irqsave(&spi->lock, flags);
 	reg = readw(&spi->regs->control_stat);
 	writew(reg | NETUP_SPI_CTRL_IRQ, &spi->regs->control_stat);
 	reg = readw(&spi->regs->control_stat);
 	writew(reg & ~NETUP_SPI_CTRL_IMASK, &spi->regs->control_stat);
 	spin_unlock_irqrestore(&spi->lock, flags);
-	spi_unregister_master(spi->master);
 	ndev->spi = NULL;
 }
 
drivers/media/pci/saa7146/mxb.c +10 -9
index 930218cc2de1..2e7bd82282ca 100644
@@ -652,16 +652,17 @@ static int vidioc_s_audio(struct file *file, void *fh, const struct v4l2_audio *
 	struct mxb *mxb = (struct mxb *)dev->ext_priv;
 
 	DEB_D("VIDIOC_S_AUDIO %d\n", a->index);
-	if (mxb_inputs[mxb->cur_input].audioset & (1 << a->index)) {
-		if (mxb->cur_audinput != a->index) {
-			mxb->cur_audinput = a->index;
-			tea6420_route(mxb, a->index);
-			if (mxb->cur_audinput == 0)
-				mxb_update_audmode(mxb);
-		}
-		return 0;
+	if (a->index >= 32 ||
+	    !(mxb_inputs[mxb->cur_input].audioset & (1 << a->index)))
+		return -EINVAL;
+
+	if (mxb->cur_audinput != a->index) {
+		mxb->cur_audinput = a->index;
+		tea6420_route(mxb, a->index);
+		if (mxb->cur_audinput == 0)
+			mxb_update_audmode(mxb);
 	}
-	return -EINVAL;
+	return 0;
 }
 
 #ifdef CONFIG_VIDEO_ADV_DEBUG
drivers/media/pci/solo6x10/solo6x10-g723.c +1 -1
index 81be1b8df758..0cbb3ee96e1e 100644
@@ -401,7 +401,7 @@ int solo_g723_init(struct solo_dev *solo_dev)
 
 	ret = snd_ctl_add(card, snd_ctl_new1(&kctl, solo_dev));
 	if (ret < 0)
-		return ret;
+		goto snd_error;
 
 	ret = solo_snd_pcm_init(solo_dev);
 	if (ret < 0)
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c +1 -0
index 79ca03ac449c..3f64119e8c08 100644
@@ -103,6 +103,7 @@ int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *mtkdev)
 void mtk_vcodec_release_dec_pm(struct mtk_vcodec_dev *dev)
 {
 	pm_runtime_disable(dev->pm.dev);
+	put_device(dev->pm.larbvdec);
 }
 
 void mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm)
drivers/media/rc/sunxi-cir.c +2 -0
index 97f367b446c4..bc026a7116ec 100644
@@ -132,6 +132,8 @@ static irqreturn_t sunxi_ir_irq(int irqno, void *dev_id)
 	} else if (status & REG_RXINT_RPEI_EN) {
 		ir_raw_event_set_idle(ir->rc, true);
 		ir_raw_event_handle(ir->rc);
+	} else {
+		ir_raw_event_handle(ir->rc);
 	}
 
 	spin_unlock(&ir->ir_lock);
drivers/media/usb/gspca/gspca.c +1 -0
index 87582be4a39d..66543518938b 100644
@@ -2140,6 +2140,7 @@ int gspca_dev_probe2(struct usb_interface *intf,
 		input_unregister_device(gspca_dev->input_dev);
 #endif
 	v4l2_ctrl_handler_free(gspca_dev->vdev.ctrl_handler);
+	v4l2_device_unregister(&gspca_dev->v4l2_dev);
 	kfree(gspca_dev->usb_buf);
 	kfree(gspca_dev);
 	return ret;
drivers/media/usb/msi2500/msi2500.c +1 -1
index a097d3dbc141..9ca5e0c101b6 100644
@@ -1250,7 +1250,7 @@ static int msi2500_probe(struct usb_interface *intf,
 	}
 
 	dev->master = master;
-	master->bus_num = 0;
+	master->bus_num = -1;
 	master->num_chipselect = 1;
 	master->transfer_one_message = msi2500_transfer_one_message;
 	spi_master_set_devdata(master, dev);
drivers/memstick/core/memstick.c +0 -1
index b1564cacd19e..20ae8652adf4 100644
@@ -469,7 +469,6 @@ static void memstick_check(struct work_struct *work)
 			host->card = card;
 			if (device_register(&card->dev)) {
 				put_device(&card->dev);
-				kfree(host->card);
 				host->card = NULL;
 			}
 		} else
drivers/memstick/host/r592.c +8 -4
index d5cfb503b9d6..2539984c1db1 100644
@@ -762,8 +762,10 @@ static int r592_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 		goto error3;
 
 	dev->mmio = pci_ioremap_bar(pdev, 0);
-	if (!dev->mmio)
+	if (!dev->mmio) {
+		error = -ENOMEM;
 		goto error4;
+	}
 
 	dev->irq = pdev->irq;
 	spin_lock_init(&dev->irq_lock);
@@ -790,12 +792,14 @@ static int r592_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 		&dev->dummy_dma_page_physical_address, GFP_KERNEL);
 	r592_stop_dma(dev , 0);
 
-	if (request_irq(dev->irq, &r592_irq, IRQF_SHARED,
-			  DRV_NAME, dev))
+	error = request_irq(dev->irq, &r592_irq, IRQF_SHARED,
+			  DRV_NAME, dev);
+	if (error)
 		goto error6;
 
 	r592_update_card_detect(dev);
-	if (memstick_add_host(host))
+	error = memstick_add_host(host);
+	if (error)
 		goto error7;
 
 	message("driver successfully loaded");
drivers/mtd/cmdlinepart.c +13 -1
index 04fd845de05f..67b71c476c5b 100644
@@ -228,7 +228,7 @@ static int mtdpart_setup_real(char *s)
 		struct cmdline_mtd_partition *this_mtd;
 		struct mtd_partition *parts;
 		int mtd_id_len, num_parts;
-		char *p, *mtd_id, *semicol;
+		char *p, *mtd_id, *semicol, *open_parenth;
 
 		/*
 		 * Replace the first ';' by a NULL char so strrchr can work
@@ -238,6 +238,14 @@ static int mtdpart_setup_real(char *s)
 		if (semicol)
 			*semicol = '\0';
 
+		/*
+		 * make sure that part-names with ":" will not be handled as
+		 * part of the mtd-id with an ":"
+		 */
+		open_parenth = strchr(s, '(');
+		if (open_parenth)
+			*open_parenth = '\0';
+
 		mtd_id = s;
 
 		/*
@@ -247,6 +255,10 @@ static int mtdpart_setup_real(char *s)
 		 */
 		p = strrchr(s, ':');
 
+		/* Restore the '(' now. */
+		if (open_parenth)
+			*open_parenth = '(';
+
 		/* Restore the ';' now. */
 		if (semicol)
 			*semicol = ';';
drivers/net/can/softing/softing_main.c +7 -2
index 5f64deec9f6c..26b3072daabd 100644
@@ -393,8 +393,13 @@ static int softing_netdev_open(struct net_device *ndev)
 
 	/* check or determine and set bittime */
 	ret = open_candev(ndev);
-	if (!ret)
-		ret = softing_startstop(ndev, 1);
+	if (ret)
+		return ret;
+
+	ret = softing_startstop(ndev, 1);
+	if (ret < 0)
+		close_candev(ndev);
+
 	return ret;
 }
 
drivers/net/ethernet/allwinner/sun4i-emac.c +5 -2
index c458b81ba63a..d249a4309da2 100644
@@ -847,13 +847,13 @@ static int emac_probe(struct platform_device *pdev)
 	db->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(db->clk)) {
 		ret = PTR_ERR(db->clk);
-		goto out_iounmap;
+		goto out_dispose_mapping;
 	}
 
 	ret = clk_prepare_enable(db->clk);
 	if (ret) {
 		dev_err(&pdev->dev, "Error couldn't enable clock (%d)\n", ret);
-		goto out_iounmap;
+		goto out_dispose_mapping;
 	}
 
 	ret = sunxi_sram_claim(&pdev->dev);
@@ -910,6 +910,8 @@ static int emac_probe(struct platform_device *pdev)
 	sunxi_sram_release(&pdev->dev);
 out_clk_disable_unprepare:
 	clk_disable_unprepare(db->clk);
+out_dispose_mapping:
+	irq_dispose_mapping(ndev->irq);
 out_iounmap:
 	iounmap(db->membase);
 out:
@@ -928,6 +930,7 @@ static int emac_remove(struct platform_device *pdev)
 	unregister_netdev(ndev);
 	sunxi_sram_release(&pdev->dev);
 	clk_disable_unprepare(db->clk);
+	irq_dispose_mapping(ndev->irq);
 	iounmap(db->membase);
 	free_netdev(ndev);
 
drivers/net/ethernet/broadcom/genet/bcmgenet.c +3 -1
index 8bfa2523e253..5855ffec4952 100644
@@ -3593,8 +3593,10 @@ static int bcmgenet_probe(struct platform_device *pdev)
 	clk_disable_unprepare(priv->clk);
 
 	err = register_netdev(dev);
-	if (err)
+	if (err) {
+		bcmgenet_mii_exit(dev);
 		goto err;
+	}
 
 	return err;
 
drivers/net/ethernet/korina.c +1 -1
index 1eccdbaa9a51..ec1c14e3eace 100644
@@ -216,7 +216,7 @@ static int korina_send_packet(struct sk_buff *skb, struct net_device *dev)
 			dev_kfree_skb_any(skb);
 			spin_unlock_irqrestore(&lp->lock, flags);
 
-			return NETDEV_TX_BUSY;
+			return NETDEV_TX_OK;
 		}
 	}
 
drivers/net/ethernet/mellanox/mlx4/en_netdev.c +14 -7
index 0fb85d71c11b..b8eb622743ce 100644
@@ -1389,8 +1389,10 @@ static void mlx4_en_tx_timeout(struct net_device *dev)
 	}
 
 	priv->port_stats.tx_timeout++;
-	en_dbg(DRV, priv, "Scheduling watchdog\n");
-	queue_work(mdev->workqueue, &priv->watchdog_task);
+	if (!test_and_set_bit(MLX4_EN_STATE_FLAG_RESTARTING, &priv->state)) {
+		en_dbg(DRV, priv, "Scheduling port restart\n");
+		queue_work(mdev->workqueue, &priv->restart_task);
+	}
 }
 
 
@@ -1744,6 +1746,7 @@ int mlx4_en_start_port(struct net_device *dev)
 				mlx4_en_deactivate_cq(priv, cq);
 				goto tx_err;
 			}
+			clear_bit(MLX4_EN_TX_RING_STATE_RECOVERING, &tx_ring->state);
 			if (t != TX_XDP) {
 				tx_ring->tx_queue = netdev_get_tx_queue(dev, i);
 				tx_ring->recycle_ring = NULL;
@@ -1839,6 +1842,7 @@ int mlx4_en_start_port(struct net_device *dev)
 		local_bh_enable();
 	}
 
+	clear_bit(MLX4_EN_STATE_FLAG_RESTARTING, &priv->state);
 	netif_tx_start_all_queues(dev);
 	netif_device_attach(dev);
 
@@ -2009,7 +2013,7 @@ void mlx4_en_stop_port(struct net_device *dev, int detach)
 static void mlx4_en_restart(struct work_struct *work)
 {
 	struct mlx4_en_priv *priv = container_of(work, struct mlx4_en_priv,
-						 watchdog_task);
+						 restart_task);
 	struct mlx4_en_dev *mdev = priv->mdev;
 	struct net_device *dev = priv->dev;
 
@@ -2388,7 +2392,7 @@ static int mlx4_en_change_mtu(struct net_device *dev, int new_mtu)
 	if (netif_running(dev)) {
 		mutex_lock(&mdev->state_lock);
 		if (!mdev->device_up) {
-			/* NIC is probably restarting - let watchdog task reset
+			/* NIC is probably restarting - let restart task reset
 			 * the port */
 			en_dbg(DRV, priv, "Change MTU called with card down!?\n");
 		} else {
@@ -2397,7 +2401,9 @@ static int mlx4_en_change_mtu(struct net_device *dev, int new_mtu)
 			if (err) {
 				en_err(priv, "Failed restarting port:%d\n",
 					 priv->port);
-				queue_work(mdev->workqueue, &priv->watchdog_task);
+				if (!test_and_set_bit(MLX4_EN_STATE_FLAG_RESTARTING,
+						      &priv->state))
+					queue_work(mdev->workqueue, &priv->restart_task);
 			}
 		}
 		mutex_unlock(&mdev->state_lock);
@@ -2883,7 +2889,8 @@ static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog)
 		if (err) {
 			en_err(priv, "Failed starting port %d for XDP change\n",
 			       priv->port);
-			queue_work(mdev->workqueue, &priv->watchdog_task);
+			if (!test_and_set_bit(MLX4_EN_STATE_FLAG_RESTARTING, &priv->state))
+				queue_work(mdev->workqueue, &priv->restart_task);
 		}
 	}
 
@@ -3284,7 +3291,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
 	priv->counter_index = MLX4_SINK_COUNTER_INDEX(mdev->dev);
 	spin_lock_init(&priv->stats_lock);
 	INIT_WORK(&priv->rx_mode_task, mlx4_en_do_set_rx_mode);
-	INIT_WORK(&priv->watchdog_task, mlx4_en_restart);
+	INIT_WORK(&priv->restart_task, mlx4_en_restart);
 	INIT_WORK(&priv->linkstate_task, mlx4_en_linkstate);
 	INIT_DELAYED_WORK(&priv->stats_task, mlx4_en_do_get_stats);
 	INIT_DELAYED_WORK(&priv->service_task, mlx4_en_service_task);
drivers/net/ethernet/mellanox/mlx4/en_tx.c +33 -7
index 777e22d42c0f..9a561d694784 100644
@@ -385,6 +385,35 @@ int mlx4_en_free_tx_buf(struct net_device *dev, struct mlx4_en_tx_ring *ring)
 	return cnt;
 }
 
+static void mlx4_en_handle_err_cqe(struct mlx4_en_priv *priv, struct mlx4_err_cqe *err_cqe,
+				   u16 cqe_index, struct mlx4_en_tx_ring *ring)
+{
+	struct mlx4_en_dev *mdev = priv->mdev;
+	struct mlx4_en_tx_info *tx_info;
+	struct mlx4_en_tx_desc *tx_desc;
+	u16 wqe_index;
+	int desc_size;
+
+	en_err(priv, "CQE error - cqn 0x%x, ci 0x%x, vendor syndrome: 0x%x syndrome: 0x%x\n",
+	       ring->sp_cqn, cqe_index, err_cqe->vendor_err_syndrome, err_cqe->syndrome);
+	print_hex_dump(KERN_WARNING, "", DUMP_PREFIX_OFFSET, 16, 1, err_cqe, sizeof(*err_cqe),
+		       false);
+
+	wqe_index = be16_to_cpu(err_cqe->wqe_index) & ring->size_mask;
+	tx_info = &ring->tx_info[wqe_index];
+	desc_size = tx_info->nr_txbb << LOG_TXBB_SIZE;
+	en_err(priv, "Related WQE - qpn 0x%x, wqe index 0x%x, wqe size 0x%x\n", ring->qpn,
+	       wqe_index, desc_size);
+	tx_desc = ring->buf + (wqe_index << LOG_TXBB_SIZE);
+	print_hex_dump(KERN_WARNING, "", DUMP_PREFIX_OFFSET, 16, 1, tx_desc, desc_size, false);
+
+	if (test_and_set_bit(MLX4_EN_STATE_FLAG_RESTARTING, &priv->state))
+		return;
+
+	en_err(priv, "Scheduling port restart\n");
+	queue_work(mdev->workqueue, &priv->restart_task);
+}
+
 bool mlx4_en_process_tx_cq(struct net_device *dev,
 			   struct mlx4_en_cq *cq, int napi_budget)
 {
@@ -431,13 +460,10 @@ bool mlx4_en_process_tx_cq(struct net_device *dev,
 		dma_rmb();
 
 		if (unlikely((cqe->owner_sr_opcode & MLX4_CQE_OPCODE_MASK) ==
-			     MLX4_CQE_OPCODE_ERROR)) {
-			struct mlx4_err_cqe *cqe_err = (struct mlx4_err_cqe *)cqe;
-
-			en_err(priv, "CQE error - vendor syndrome: 0x%x syndrome: 0x%x\n",
-			       cqe_err->vendor_err_syndrome,
-			       cqe_err->syndrome);
-		}
+			     MLX4_CQE_OPCODE_ERROR))
+			if (!test_and_set_bit(MLX4_EN_TX_RING_STATE_RECOVERING, &ring->state))
+				mlx4_en_handle_err_cqe(priv, (struct mlx4_err_cqe *)cqe, index,
+						       ring);
 
 		/* Skip over last polled CQE */
 		new_index = be16_to_cpu(cqe->wqe_index) & size_mask;
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h +11 -1
index bdd87438a354..da0cab487da4 100644
@@ -267,6 +267,10 @@ struct mlx4_en_page_cache {
 	} buf[MLX4_EN_CACHE_SIZE];
 };
 
+enum {
+	MLX4_EN_TX_RING_STATE_RECOVERING,
+};
+
 struct mlx4_en_priv;
 
 struct mlx4_en_tx_ring {
@@ -313,6 +317,7 @@ struct mlx4_en_tx_ring {
 	 * Only queue_stopped might be used if BQL is not properly working.
 	 */
 	unsigned long		queue_stopped;
+	unsigned long		state;
 	struct mlx4_hwq_resources sp_wqres;
 	struct mlx4_qp		sp_qp;
 	struct mlx4_qp_context	sp_context;
@@ -525,6 +530,10 @@ struct mlx4_en_stats_bitmap {
 	struct mutex mutex; /* for mutual access to stats bitmap */
 };
 
+enum {
+	MLX4_EN_STATE_FLAG_RESTARTING,
+};
+
 struct mlx4_en_priv {
 	struct mlx4_en_dev *mdev;
 	struct mlx4_en_port_profile *prof;
@@ -590,7 +599,7 @@ struct mlx4_en_priv {
 	struct mlx4_en_cq *rx_cq[MAX_RX_RINGS];
 	struct mlx4_qp drop_qp;
 	struct work_struct rx_mode_task;
-	struct work_struct watchdog_task;
+	struct work_struct restart_task;
 	struct work_struct linkstate_task;
 	struct delayed_work stats_task;
 	struct delayed_work service_task;
@@ -637,6 +646,7 @@ struct mlx4_en_priv {
 	u32 pflags;
 	u8 rss_key[MLX4_EN_RSS_KEY_SIZE];
 	u8 rss_hash_fn;
+	unsigned long state;
 };
 
 enum mlx4_en_wol {
drivers/net/ethernet/mellanox/mlx5/core/main.c +5 -1
index 1ac0e173da12..049d9d19c66d 100644
@@ -51,6 +51,7 @@
 #ifdef CONFIG_RFS_ACCEL
 #include <linux/cpu_rmap.h>
 #endif
+#include <linux/version.h>
 #include <net/devlink.h>
 #include "mlx5_core.h"
 #include "fs_core.h"
@@ -204,7 +205,10 @@ static void mlx5_set_driver_version(struct mlx5_core_dev *dev)
 	strncat(string, ",", remaining_size);
 
 	remaining_size = max_t(int, 0, driver_ver_sz - strlen(string));
-	strncat(string, DRIVER_VERSION, remaining_size);
+
+	snprintf(string + strlen(string), remaining_size, "%u.%u.%u",
+		 (u8)((LINUX_VERSION_CODE >> 16) & 0xff), (u8)((LINUX_VERSION_CODE >> 8) & 0xff),
+		 (u16)(LINUX_VERSION_CODE & 0xffff));
 
 	/*Send the command*/
 	MLX5_SET(set_driver_version_in, in, opcode,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +1 -0
index 1b5f7d57b6f8..6684a4cb8b88 100644
@@ -2511,6 +2511,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 		qlcnic_sriov_vf_register_map(ahw);
 		break;
 	default:
+		err = -EINVAL;
 		goto err_out_free_hw_res;
 	}
 
drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c +3 -3
index d71d3c1c85ee..7521ef5383f1 100644
@@ -30,7 +30,6 @@
 #define PRG_ETH0_RGMII_MODE		BIT(0)
 
 /* mux to choose between fclk_div2 (bit unset) and mpll2 (bit set) */
-#define PRG_ETH0_CLK_M250_SEL_SHIFT	4
 #define PRG_ETH0_CLK_M250_SEL_MASK	GENMASK(4, 4)
 
 #define PRG_ETH0_TXDLY_SHIFT		5
@@ -121,8 +120,9 @@ static int meson8b_init_clk(struct meson8b_dwmac *dwmac)
 	init.num_parents = MUX_CLK_NUM_PARENTS;
 
 	dwmac->m250_mux.reg = dwmac->regs + PRG_ETH0;
-	dwmac->m250_mux.shift = PRG_ETH0_CLK_M250_SEL_SHIFT;
-	dwmac->m250_mux.mask = PRG_ETH0_CLK_M250_SEL_MASK;
+	dwmac->m250_mux.shift = __ffs(PRG_ETH0_CLK_M250_SEL_MASK);
+	dwmac->m250_mux.mask = PRG_ETH0_CLK_M250_SEL_MASK >>
+			       dwmac->m250_mux.shift;
 	dwmac->m250_mux.flags = 0;
 	dwmac->m250_mux.table = NULL;
 	dwmac->m250_mux.hw.init = &init;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +24 -3
index b4c8e673fe25..d5ebaf62d12f 100644
@@ -1428,6 +1428,19 @@ static void dma_free_tx_skbufs(struct stmmac_priv *priv, u32 queue)
 		stmmac_free_tx_buffer(priv, queue, i);
 }
 
+/**
+ * stmmac_free_tx_skbufs - free TX skb buffers
+ * @priv: private structure
+ */
+static void stmmac_free_tx_skbufs(struct stmmac_priv *priv)
+{
+	u32 tx_queue_cnt = priv->plat->tx_queues_to_use;
+	u32 queue;
+
+	for (queue = 0; queue < tx_queue_cnt; queue++)
+		dma_free_tx_skbufs(priv, queue);
+}
+
 /**
  * free_dma_rx_desc_resources - free RX dma desc resources
  * @priv: private structure
@@ -2692,9 +2705,6 @@ static int stmmac_release(struct net_device *dev)
 {
 	struct stmmac_priv *priv = netdev_priv(dev);
 
-	if (priv->eee_enabled)
-		del_timer_sync(&priv->eee_ctrl_timer);
-
 	/* Stop and disconnect the PHY */
 	if (dev->phydev) {
 		phy_stop(dev->phydev);
@@ -2714,6 +2724,11 @@ static int stmmac_release(struct net_device *dev)
 	if (priv->lpi_irq > 0)
 		free_irq(priv->lpi_irq, dev);
 
+	if (priv->eee_enabled) {
+		priv->tx_path_in_lpi_mode = false;
+		del_timer_sync(&priv->eee_ctrl_timer);
+	}
+
 	/* Stop TX/RX DMA and clear the descriptors */
 	stmmac_stop_all_dma(priv);
 
@@ -4405,6 +4420,11 @@ int stmmac_suspend(struct device *dev)
 
 	stmmac_disable_all_queues(priv);
 
+	if (priv->eee_enabled) {
+		priv->tx_path_in_lpi_mode = false;
+		del_timer_sync(&priv->eee_ctrl_timer);
+	}
+
 	/* Stop TX/RX DMA */
 	stmmac_stop_all_dma(priv);
 
@@ -4503,6 +4523,7 @@ int stmmac_resume(struct device *dev)
 	 */
 	priv->mss = 0;
 
+	stmmac_free_tx_skbufs(priv);
 	stmmac_clear_descriptors(priv);
 
 	stmmac_hw_setup(ndev, false);
drivers/net/vxlan.c +3 -0
index 82efa5bbf568..94a9add2fc87 100644
@@ -3184,6 +3184,9 @@ static void vxlan_config_apply(struct net_device *dev,
 		dev->gso_max_segs = lowerdev->gso_max_segs;
 
 		needed_headroom = lowerdev->hard_header_len;
+		needed_headroom += lowerdev->needed_headroom;
+
+		dev->needed_tailroom = lowerdev->needed_tailroom;
 
 		max_mtu = lowerdev->mtu - (use_ipv6 ? VXLAN6_HEADROOM :
 					   VXLAN_HEADROOM);
drivers/net/wireless/ath/ath10k/usb.c +6 -1
index c64a03f164c0..16d5fe6d1e2e 100644
@@ -1019,6 +1019,8 @@ static int ath10k_usb_probe(struct usb_interface *interface,
 
 	ar_usb = ath10k_usb_priv(ar);
 	ret = ath10k_usb_create(ar, interface);
+	if (ret)
+		goto err;
 	ar_usb->ar = ar;
 
 	ar->dev_id = product_id;
@@ -1030,7 +1032,7 @@ static int ath10k_usb_probe(struct usb_interface *interface,
 	ret = ath10k_core_register(ar, chip_id);
 	if (ret) {
 		ath10k_warn(ar, "failed to register driver core: %d\n", ret);
-		goto err;
+		goto err_usb_destroy;
 	}
 
 	/* TODO: remove this once USB support is fully implemented */
@@ -1038,6 +1040,9 @@ static int ath10k_usb_probe(struct usb_interface *interface,
 
 	return 0;
 
+err_usb_destroy:
+	ath10k_usb_destroy(ar);
+
 err:
 	ath10k_core_destroy(ar);
 
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +1 -1
index ec2ecdd1cc4e..9aab9a026954 100644
@@ -2654,7 +2654,7 @@ static int iwl_mvm_mac_sta_state(struct ieee80211_hw *hw,
 
 	/* this would be a mac80211 bug ... but don't crash */
 	if (WARN_ON_ONCE(!mvmvif->phy_ctxt))
-		return -EINVAL;
+		return test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED, &mvm->status) ? 0 : -EINVAL;
 
 	/*
 	 * If we are in a STA removal flow and in DQA mode:
drivers/net/wireless/intel/iwlwifi/pcie/trans.c +27 -9
index 8a074a516fb2..910edd034fe3 100644
@@ -1927,18 +1927,36 @@ static int iwl_trans_pcie_read_mem(struct iwl_trans *trans, u32 addr,
 				   void *buf, int dwords)
 {
 	unsigned long flags;
-	int offs, ret = 0;
+	int offs = 0;
 	u32 *vals = buf;
 
-	if (iwl_trans_grab_nic_access(trans, &flags)) {
-		iwl_write32(trans, HBUS_TARG_MEM_RADDR, addr);
-		for (offs = 0; offs < dwords; offs++)
-			vals[offs] = iwl_read32(trans, HBUS_TARG_MEM_RDAT);
-		iwl_trans_release_nic_access(trans, &flags);
-	} else {
-		ret = -EBUSY;
+	while (offs < dwords) {
+		/* limit the time we spin here under lock to 1/2s */
+		ktime_t timeout = ktime_add_us(ktime_get(), 500 * USEC_PER_MSEC);
+
+		if (iwl_trans_grab_nic_access(trans, &flags)) {
+			iwl_write32(trans, HBUS_TARG_MEM_RADDR,
+				    addr + 4 * offs);
+
+			while (offs < dwords) {
+				vals[offs] = iwl_read32(trans,
+							HBUS_TARG_MEM_RDAT);
+				offs++;
+
+				/* calling ktime_get is expensive so
+				 * do it once in 128 reads
+				 */
+				if (offs % 128 == 0 && ktime_after(ktime_get(),
+								   timeout))
+					break;
+			}
+			iwl_trans_release_nic_access(trans, &flags);
+		} else {
+			return -EBUSY;
+		}
 	}
-	return ret;
+
+	return 0;
 }
 
 static int iwl_trans_pcie_write_mem(struct iwl_trans *trans, u32 addr,
drivers/net/wireless/intersil/orinoco/orinoco_usb.c +7 -7
index 5a64674a5c8d..74a313e6d98f 100644
@@ -1237,13 +1237,6 @@ static netdev_tx_t ezusb_xmit(struct sk_buff *skb, struct net_device *dev)
 	if (skb->len < ETH_HLEN)
 		goto drop;
 
-	ctx = ezusb_alloc_ctx(upriv, EZUSB_RID_TX, 0);
-	if (!ctx)
-		goto busy;
-
-	memset(ctx->buf, 0, BULK_BUF_SIZE);
-	buf = ctx->buf->data;
-
 	tx_control = 0;
 
 	err = orinoco_process_xmit_skb(skb, dev, priv, &tx_control,
@@ -1251,6 +1244,13 @@ static netdev_tx_t ezusb_xmit(struct sk_buff *skb, struct net_device *dev)
 	if (err)
 		goto drop;
 
+	ctx = ezusb_alloc_ctx(upriv, EZUSB_RID_TX, 0);
+	if (!ctx)
+		goto drop;
+
+	memset(ctx->buf, 0, BULK_BUF_SIZE);
+	buf = ctx->buf->data;
+
 	{
 		__le16 *tx_cntl = (__le16 *)buf;
 		*tx_cntl = cpu_to_le16(tx_control);
drivers/net/wireless/marvell/mwifiex/main.c +2 -0
index ee40b739b289..cd668e5427d0 100644
@@ -1447,6 +1447,8 @@ int mwifiex_shutdown_sw(struct mwifiex_adapter *adapter)
 	priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY);
 	mwifiex_deauthenticate(priv, NULL);
 
+	mwifiex_init_shutdown_fw(priv, MWIFIEX_FUNC_SHUTDOWN);
+
 	mwifiex_uninit_sw(adapter);
 
 	if (adapter->if_ops.down_dev)
drivers/net/wireless/st/cw1200/main.c +2 -0
index 84624c812a15..f4338bce78f4 100644
@@ -385,6 +385,7 @@ static struct ieee80211_hw *cw1200_init_common(const u8 *macaddr,
 				    CW1200_LINK_ID_MAX,
 				    cw1200_skb_dtor,
 				    priv)) {
+		destroy_workqueue(priv->workqueue);
 		ieee80211_free_hw(hw);
 		return NULL;
 	}
@@ -396,6 +397,7 @@ static struct ieee80211_hw *cw1200_init_common(const u8 *macaddr,
 			for (; i > 0; i--)
 				cw1200_queue_deinit(&priv->tx_queue[i - 1]);
 			cw1200_queue_stats_deinit(&priv->tx_queue_stats);
+			destroy_workqueue(priv->workqueue);
 			ieee80211_free_hw(hw);
 			return NULL;
 		}
drivers/net/xen-netback/xenbus.c +5 -1
index a56d3eab35dd..910322b442bd 100644
@@ -777,12 +777,14 @@ static int xen_register_credit_watch(struct xenbus_device *dev,
 		return -ENOMEM;
 	snprintf(node, maxlen, "%s/rate", dev->nodename);
 	vif->credit_watch.node = node;
+	vif->credit_watch.will_handle = NULL;
 	vif->credit_watch.callback = xen_net_rate_changed;
 	err = register_xenbus_watch(&vif->credit_watch);
 	if (err) {
 		pr_err("Failed to set watcher %s\n", vif->credit_watch.node);
 		kfree(node);
 		vif->credit_watch.node = NULL;
+		vif->credit_watch.will_handle = NULL;
 		vif->credit_watch.callback = NULL;
 	}
 	return err;
@@ -829,6 +831,7 @@ static int xen_register_mcast_ctrl_watch(struct xenbus_device *dev,
 	snprintf(node, maxlen, "%s/request-multicast-control",
 		 dev->otherend);
 	vif->mcast_ctrl_watch.node = node;
+	vif->mcast_ctrl_watch.will_handle = NULL;
 	vif->mcast_ctrl_watch.callback = xen_mcast_ctrl_changed;
 	err = register_xenbus_watch(&vif->mcast_ctrl_watch);
 	if (err) {
@@ -836,6 +839,7 @@ static int xen_register_mcast_ctrl_watch(struct xenbus_device *dev,
 		       vif->mcast_ctrl_watch.node);
 		kfree(node);
 		vif->mcast_ctrl_watch.node = NULL;
+		vif->mcast_ctrl_watch.will_handle = NULL;
 		vif->mcast_ctrl_watch.callback = NULL;
 	}
 	return err;
@@ -1039,7 +1043,7 @@ static void connect(struct backend_info *be)
 	xenvif_carrier_on(be->vif);
 
 	unregister_hotplug_status_watch(be);
-	err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch,
+	err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch, NULL,
 				   hotplug_status_changed,
 				   "%s/%s", dev->nodename, "hotplug-status");
 	if (!err)
drivers/nfc/s3fwrn5/firmware.c +3 -1
index 38548bd970cd..43c801e725b6 100644
@@ -304,8 +304,10 @@ static int s3fwrn5_fw_request_firmware(struct s3fwrn5_fw_info *fw_info)
 	if (ret < 0)
 		return ret;
 
-	if (fw->fw->size < S3FWRN5_FW_IMAGE_HEADER_SIZE)
+	if (fw->fw->size < S3FWRN5_FW_IMAGE_HEADER_SIZE) {
+		release_firmware(fw->fw);
 		return -EINVAL;
+	}
 
 	memcpy(fw->date, fw->fw->data + 0x00, 12);
 	fw->date[12] = '\0';
drivers/nvdimm/label.c +9 -0
index 1fb3a2491131..84eb510456fd 100644
@@ -852,6 +852,15 @@ static int __blk_label_update(struct nd_region *nd_region,
 		}
 	}
 
+	/* release slots associated with any invalidated UUIDs */
+	mutex_lock(&nd_mapping->lock);
+	list_for_each_entry_safe(label_ent, e, &nd_mapping->labels, list)
+		if (test_and_clear_bit(ND_LABEL_REAP, &label_ent->flags)) {
+			reap_victim(nd_mapping, label_ent);
+			list_move(&label_ent->list, &list);
+		}
+	mutex_unlock(&nd_mapping->lock);
+
 	/*
 	 * Find the resource associated with the first label in the set
 	 * per the v1.2 namespace specification.
drivers/pci/dwc/pcie-qcom.c +12 -0
index ce7ba5b7552a..b84603f52dc1 100644
@@ -96,6 +96,7 @@ struct qcom_pcie_resources_2_1_0 {
 	struct reset_control *ahb_reset;
 	struct reset_control *por_reset;
 	struct reset_control *phy_reset;
+	struct reset_control *ext_reset;
 	struct regulator *vdda;
 	struct regulator *vdda_phy;
 	struct regulator *vdda_refclk;
@@ -265,6 +266,10 @@ static int qcom_pcie_get_resources_2_1_0(struct qcom_pcie *pcie)
 	if (IS_ERR(res->por_reset))
 		return PTR_ERR(res->por_reset);
 
+	res->ext_reset = devm_reset_control_get_optional_exclusive(dev, "ext");
+	if (IS_ERR(res->ext_reset))
+		return PTR_ERR(res->ext_reset);
+
 	res->phy_reset = devm_reset_control_get_exclusive(dev, "phy");
 	return PTR_ERR_OR_ZERO(res->phy_reset);
 }
@@ -277,6 +282,7 @@ static void qcom_pcie_deinit_2_1_0(struct qcom_pcie *pcie)
 	reset_control_assert(res->axi_reset);
 	reset_control_assert(res->ahb_reset);
 	reset_control_assert(res->por_reset);
+	reset_control_assert(res->ext_reset);
 	reset_control_assert(res->pci_reset);
 	clk_disable_unprepare(res->iface_clk);
 	clk_disable_unprepare(res->core_clk);
@@ -342,6 +348,12 @@ static int qcom_pcie_init_2_1_0(struct qcom_pcie *pcie)
 		goto err_deassert_ahb;
 	}
 
+	ret = reset_control_deassert(res->ext_reset);
+	if (ret) {
+		dev_err(dev, "cannot deassert ext reset\n");
+		goto err_deassert_ahb;
+	}
+
 	/* enable PCIe clocks and resets */
 	val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL);
 	val &= ~BIT(0);
drivers/pci/host/pcie-iproc.c +5 -5
index 8f8dac0155d6..2565abbe1a91 100644
@@ -306,7 +306,7 @@ enum iproc_pcie_reg {
 };
 
 /* iProc PCIe PAXB BCMA registers */
-static const u16 iproc_pcie_reg_paxb_bcma[] = {
+static const u16 iproc_pcie_reg_paxb_bcma[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_CLK_CTRL]		= 0x000,
 	[IPROC_PCIE_CFG_IND_ADDR]	= 0x120,
 	[IPROC_PCIE_CFG_IND_DATA]	= 0x124,
@@ -317,7 +317,7 @@ static const u16 iproc_pcie_reg_paxb_bcma[] = {
 };
 
 /* iProc PCIe PAXB registers */
-static const u16 iproc_pcie_reg_paxb[] = {
+static const u16 iproc_pcie_reg_paxb[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_CLK_CTRL]		= 0x000,
 	[IPROC_PCIE_CFG_IND_ADDR]	= 0x120,
 	[IPROC_PCIE_CFG_IND_DATA]	= 0x124,
@@ -333,7 +333,7 @@ static const u16 iproc_pcie_reg_paxb[] = {
 };
 
 /* iProc PCIe PAXB v2 registers */
-static const u16 iproc_pcie_reg_paxb_v2[] = {
+static const u16 iproc_pcie_reg_paxb_v2[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_CLK_CTRL]		= 0x000,
 	[IPROC_PCIE_CFG_IND_ADDR]	= 0x120,
 	[IPROC_PCIE_CFG_IND_DATA]	= 0x124,
@@ -361,7 +361,7 @@ static const u16 iproc_pcie_reg_paxb_v2[] = {
 };
 
 /* iProc PCIe PAXC v1 registers */
-static const u16 iproc_pcie_reg_paxc[] = {
+static const u16 iproc_pcie_reg_paxc[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_CLK_CTRL]		= 0x000,
 	[IPROC_PCIE_CFG_IND_ADDR]	= 0x1f0,
 	[IPROC_PCIE_CFG_IND_DATA]	= 0x1f4,
@@ -370,7 +370,7 @@ static const u16 iproc_pcie_reg_paxc[] = {
 };
 
 /* iProc PCIe PAXC v2 registers */
-static const u16 iproc_pcie_reg_paxc_v2[] = {
+static const u16 iproc_pcie_reg_paxc_v2[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_MSI_GIC_MODE]	= 0x050,
 	[IPROC_PCIE_MSI_BASE_ADDR]	= 0x074,
 	[IPROC_PCIE_MSI_WINDOW_SIZE]	= 0x078,
drivers/pci/pci-acpi.c +2 -2
index a3cedf8de863..fa44e1506357 100644
@@ -573,7 +573,7 @@ static int acpi_pci_propagate_wakeup(struct pci_bus *bus, bool enable)
 {
 	while (bus->parent) {
 		if (acpi_pm_device_can_wakeup(&bus->self->dev))
-			return acpi_pm_set_bridge_wakeup(&bus->self->dev, enable);
+			return acpi_pm_set_device_wakeup(&bus->self->dev, enable);
 
 		bus = bus->parent;
 	}
@@ -581,7 +581,7 @@ static int acpi_pci_propagate_wakeup(struct pci_bus *bus, bool enable)
 	/* We have reached the root bus. */
 	if (bus->bridge) {
 		if (acpi_pm_device_can_wakeup(bus->bridge))
-			return acpi_pm_set_bridge_wakeup(bus->bridge, enable);
+			return acpi_pm_set_device_wakeup(bus->bridge, enable);
 	}
 	return 0;
 }
drivers/pci/slot.c +3 -3
index 379925fc49d4..e5c3a27eaea2 100644
@@ -307,6 +307,9 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,
 		goto err;
 	}
 
+	INIT_LIST_HEAD(&slot->list);
+	list_add(&slot->list, &parent->slots);
+
 	err = kobject_init_and_add(&slot->kobj, &pci_slot_ktype, NULL,
 				   "%s", slot_name);
 	if (err) {
@@ -314,9 +317,6 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,
 		goto err;
 	}
 
-	INIT_LIST_HEAD(&slot->list);
-	list_add(&slot->list, &parent->slots);
-
 	down_read(&pci_bus_sem);
 	list_for_each_entry(dev, &parent->devices, bus_list)
 		if (PCI_SLOT(dev->devfn) == slot_nr)
drivers/pinctrl/intel/pinctrl-baytrail.c +7 -1
index 62eac76be9f6..519758d4297e 100644
@@ -1266,7 +1266,6 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
 			break;
 		case PIN_CONFIG_INPUT_DEBOUNCE:
 			debounce = readl(db_reg);
-			debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 
 			if (arg)
 				conf |= BYT_DEBOUNCE_EN;
@@ -1275,24 +1274,31 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
 
 			switch (arg) {
 			case 375:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_375US;
 				break;
 			case 750:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_750US;
 				break;
 			case 1500:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_1500US;
 				break;
 			case 3000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_3MS;
 				break;
 			case 6000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_6MS;
 				break;
 			case 12000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_12MS;
 				break;
 			case 24000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_24MS;
 				break;
 			default:
drivers/pinctrl/intel/pinctrl-merrifield.c +8 -0
index 86c4b3fab7b0..5aa6d1dbc70a 100644
@@ -731,6 +731,10 @@ static int mrfld_config_set_pin(struct mrfld_pinctrl *mp, unsigned int pin,
 		mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK;
 		bits |= BUFCFG_PU_EN;
 
+		/* Set default strength value in case none is given */
+		if (arg == 1)
+			arg = 20000;
+
 		switch (arg) {
 		case 50000:
 			bits |= BUFCFG_PUPD_VAL_50K << BUFCFG_PUPD_VAL_SHIFT;
@@ -751,6 +755,10 @@ static int mrfld_config_set_pin(struct mrfld_pinctrl *mp, unsigned int pin,
 		mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK;
 		bits |= BUFCFG_PD_EN;
 
+		/* Set default strength value in case none is given */
+		if (arg == 1)
+			arg = 20000;
+
 		switch (arg) {
 		case 50000:
 			bits |= BUFCFG_PUPD_VAL_50K << BUFCFG_PUPD_VAL_SHIFT;
drivers/pinctrl/pinctrl-amd.c +0 -7
index d4cd24ad077c..cfa4a833304a 100644
@@ -426,7 +426,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type)
 		pin_reg &= ~BIT(LEVEL_TRIG_OFF);
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= ACTIVE_HIGH << ACTIVE_LEVEL_OFF;
-		pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_edge_irq);
 		break;
 
@@ -434,7 +433,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type)
 		pin_reg &= ~BIT(LEVEL_TRIG_OFF);
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= ACTIVE_LOW << ACTIVE_LEVEL_OFF;
-		pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_edge_irq);
 		break;
 
@@ -442,7 +440,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type)
 		pin_reg &= ~BIT(LEVEL_TRIG_OFF);
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= BOTH_EADGE << ACTIVE_LEVEL_OFF;
-		pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_edge_irq);
 		break;
 
@@ -450,8 +447,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type)
 		pin_reg |= LEVEL_TRIGGER << LEVEL_TRIG_OFF;
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= ACTIVE_HIGH << ACTIVE_LEVEL_OFF;
-		pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF);
-		pin_reg |= DB_TYPE_PRESERVE_LOW_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_level_irq);
 		break;
 
@@ -459,8 +454,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type)
 		pin_reg |= LEVEL_TRIGGER << LEVEL_TRIG_OFF;
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= ACTIVE_LOW << ACTIVE_LEVEL_OFF;
-		pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF);
-		pin_reg |= DB_TYPE_PRESERVE_HIGH_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_level_irq);
 		break;
 
drivers/pinctrl/pinctrl-falcon.c +9 -5
index fb73dcbb5ef3..68dcf53aaac3 100644
@@ -438,24 +438,28 @@ static int pinctrl_falcon_probe(struct platform_device *pdev)
 
 	/* load and remap the pad resources of the different banks */
 	for_each_compatible_node(np, NULL, "lantiq,pad-falcon") {
-		struct platform_device *ppdev = of_find_device_by_node(np);
 		const __be32 *bank = of_get_property(np, "lantiq,bank", NULL);
 		struct resource res;
+		struct platform_device *ppdev;
 		u32 avail;
 		int pins;
 
 		if (!of_device_is_available(np))
 			continue;
 
-		if (!ppdev) {
-			dev_err(&pdev->dev, "failed to find pad pdev\n");
-			continue;
-		}
 		if (!bank || *bank >= PORTS)
 			continue;
 		if (of_address_to_resource(np, 0, &res))
 			continue;
+
+		ppdev = of_find_device_by_node(np);
+		if (!ppdev) {
+			dev_err(&pdev->dev, "failed to find pad pdev\n");
+			continue;
+		}
+
 		falcon_info.clk[*bank] = clk_get(&ppdev->dev, NULL);
+		put_device(&ppdev->dev);
 		if (IS_ERR(falcon_info.clk[*bank])) {
 			dev_err(&ppdev->dev, "failed to get clock\n");
 			return PTR_ERR(falcon_info.clk[*bank]);
drivers/platform/x86/acer-wmi.c +1 -0
index 1be71f956d5c..29f6f2bbb5ff 100644
@@ -124,6 +124,7 @@ static const struct key_entry acer_wmi_keymap[] __initconst = {
 	{KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} },	/* Display Switch */
 	{KE_IGNORE, 0x81, {KEY_SLEEP} },
 	{KE_KEY, 0x82, {KEY_TOUCHPAD_TOGGLE} },	/* Touch Pad Toggle */
+	{KE_IGNORE, 0x84, {KEY_KBDILLUMTOGGLE} }, /* Automatic Keyboard background light toggle */
 	{KE_KEY, KEY_TOUCHPAD_ON, {KEY_TOUCHPAD_ON} },
 	{KE_KEY, KEY_TOUCHPAD_OFF, {KEY_TOUCHPAD_OFF} },
 	{KE_IGNORE, 0x83, {KEY_TOUCHPAD_TOGGLE} },
drivers/power/supply/bq24190_charger.c +15 -5
index 35ff406aca48..0906f6b562bc 100644
@@ -450,8 +450,10 @@ static ssize_t bq24190_sysfs_show(struct device *dev,
 		return -EINVAL;
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	ret = bq24190_read_mask(bdi, info->reg, info->mask, info->shift, &v);
 	if (ret)
@@ -1086,8 +1088,10 @@ static int bq24190_charger_get_property(struct power_supply *psy,
 	dev_dbg(bdi->dev, "prop: %d\n", psp);
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	switch (psp) {
 	case POWER_SUPPLY_PROP_CHARGE_TYPE:
@@ -1158,8 +1162,10 @@ static int bq24190_charger_set_property(struct power_supply *psy,
 	dev_dbg(bdi->dev, "prop: %d\n", psp);
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	switch (psp) {
 	case POWER_SUPPLY_PROP_ONLINE:
@@ -1424,8 +1430,10 @@ static int bq24190_battery_get_property(struct power_supply *psy,
 	dev_dbg(bdi->dev, "prop: %d\n", psp);
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	switch (psp) {
 	case POWER_SUPPLY_PROP_STATUS:
@@ -1470,8 +1478,10 @@ static int bq24190_battery_set_property(struct power_supply *psy,
 	dev_dbg(bdi->dev, "prop: %d\n", psp);
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	switch (psp) {
 	case POWER_SUPPLY_PROP_ONLINE:
drivers/ps3/ps3stor_lib.c +1 -1
index 8c3f5adf1bc6..2d7618375662 100644
@@ -201,7 +201,7 @@ int ps3stor_setup(struct ps3_storage_device *dev, irq_handler_t handler)
 	dev->bounce_lpar = ps3_mm_phys_to_lpar(__pa(dev->bounce_buf));
 	dev->bounce_dma = dma_map_single(&dev->sbd.core, dev->bounce_buf,
 					 dev->bounce_size, DMA_BIDIRECTIONAL);
-	if (!dev->bounce_dma) {
+	if (dma_mapping_error(&dev->sbd.core, dev->bounce_dma)) {
 		dev_err(&dev->sbd.core, "%s:%u: map DMA region failed\n",
 			__func__, __LINE__);
 		error = -ENODEV;
drivers/pwm/pwm-lp3943.c +1 -0
index 52584e9962ed..fc446d5c19f9 100644
@@ -278,6 +278,7 @@ static int lp3943_pwm_probe(struct platform_device *pdev)
 	lp3943_pwm->chip.dev = &pdev->dev;
 	lp3943_pwm->chip.ops = &lp3943_pwm_ops;
 	lp3943_pwm->chip.npwm = LP3943_NUM_PWMS;
+	lp3943_pwm->chip.base = -1;
 
 	platform_set_drvdata(pdev, lp3943_pwm);
 
drivers/pwm/pwm-zx.c +1 -0
index 5d27c16edfb1..0d4112410b69 100644
@@ -241,6 +241,7 @@ static int zx_pwm_probe(struct platform_device *pdev)
 	ret = pwmchip_add(&zpc->chip);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "failed to add PWM chip: %d\n", ret);
+		clk_disable_unprepare(zpc->pclk);
 		return ret;
 	}
 
drivers/s390/block/dasd_alias.c +11 -1
index fd1dff2bed21..487b16ace006 100644
@@ -256,7 +256,6 @@ void dasd_alias_disconnect_device_from_lcu(struct dasd_device *device)
 		return;
 	device->discipline->get_uid(device, &uid);
 	spin_lock_irqsave(&lcu->lock, flags);
-	list_del_init(&device->alias_list);
 	/* make sure that the workers don't use this device */
 	if (device == lcu->suc_data.device) {
 		spin_unlock_irqrestore(&lcu->lock, flags);
@@ -283,6 +282,7 @@ void dasd_alias_disconnect_device_from_lcu(struct dasd_device *device)
 
 	spin_lock_irqsave(&aliastree.lock, flags);
 	spin_lock(&lcu->lock);
+	list_del_init(&device->alias_list);
 	if (list_empty(&lcu->grouplist) &&
 	    list_empty(&lcu->active_devices) &&
 	    list_empty(&lcu->inactive_devices)) {
@@ -503,6 +503,14 @@ static int _lcu_update(struct dasd_device *refdev, struct alias_lcu *lcu)
 		return rc;
 
 	spin_lock_irqsave(&lcu->lock, flags);
+	/*
+	 * there is another update needed skip the remaining handling
+	 * the data might already be outdated
+	 * but especially do not add the device to an LCU with pending
+	 * update
+	 */
+	if (lcu->flags & NEED_UAC_UPDATE)
+		goto out;
 	lcu->pav = NO_PAV;
 	for (i = 0; i < MAX_DEVICES_PER_LCU; ++i) {
 		switch (lcu->uac->unit[i].ua_type) {
@@ -521,6 +529,7 @@ static int _lcu_update(struct dasd_device *refdev, struct alias_lcu *lcu)
 				 alias_list) {
 		_add_device_to_lcu(lcu, device, refdev);
 	}
+out:
 	spin_unlock_irqrestore(&lcu->lock, flags);
 	return 0;
 }
@@ -625,6 +634,7 @@ int dasd_alias_add_device(struct dasd_device *device)
 	}
 	if (lcu->flags & UPDATE_PENDING) {
 		list_move(&device->alias_list, &lcu->active_devices);
+		private->pavgroup = NULL;
 		_schedule_lcu_update(lcu, device);
 	}
 	spin_unlock_irqrestore(&lcu->lock, flags);
drivers/scsi/be2iscsi/be_main.c +2 -2
index 86e1eac3a470..b4542e7e2ad5 100644
@@ -3013,7 +3013,6 @@ static int beiscsi_create_eqs(struct beiscsi_hba *phba,
 			goto create_eq_error;
 		}
 
-		mem->dma = paddr;
 		mem->va = eq_vaddress;
 		ret = be_fill_queue(eq, phba->params.num_eq_entries,
 				    sizeof(struct be_eq_entry), eq_vaddress);
@@ -3023,6 +3022,7 @@ static int beiscsi_create_eqs(struct beiscsi_hba *phba,
 			goto create_eq_error;
 		}
 
+		mem->dma = paddr;
 		ret = beiscsi_cmd_eq_create(&phba->ctrl, eq,
 					    phwi_context->cur_eqd);
 		if (ret) {
@@ -3079,7 +3079,6 @@ static int beiscsi_create_cqs(struct beiscsi_hba *phba,
 			goto create_cq_error;
 		}
 
-		mem->dma = paddr;
 		ret = be_fill_queue(cq, phba->params.num_cq_entries,
 				    sizeof(struct sol_cqe), cq_vaddress);
 		if (ret) {
@@ -3089,6 +3088,7 @@ static int beiscsi_create_cqs(struct beiscsi_hba *phba,
 			goto create_cq_error;
 		}
 
+		mem->dma = paddr;
 		ret = beiscsi_cmd_cq_create(&phba->ctrl, cq, eq, false,
 					    false, 0);
 		if (ret) {
drivers/scsi/bnx2i/Kconfig +1 -0
index ba30ff86d581..b27a3738d940 100644
@@ -3,6 +3,7 @@ config SCSI_BNX2_ISCSI
 	depends on NET
 	depends on PCI
 	depends on (IPV6 || IPV6=n)
+	depends on MMU
 	select SCSI_ISCSI_ATTRS
 	select NETDEVICES
 	select ETHERNET
drivers/scsi/fnic/fnic_main.c +1 -0
index aacadbf20b69..878e48676272 100644
@@ -746,6 +746,7 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	for (i = 0; i < FNIC_IO_LOCKS; i++)
 		spin_lock_init(&fnic->io_req_lock[i]);
 
+	err = -ENOMEM;
 	fnic->io_req_pool = mempool_create_slab_pool(2, fnic_io_req_cache);
 	if (!fnic->io_req_pool)
 		goto err_out_free_resources;
drivers/scsi/mpt3sas/mpt3sas_base.c +1 -1
index 556971c5f0b0..20bf1fa7f273 100644
@@ -4575,7 +4575,7 @@ _base_send_ioc_init(struct MPT3SAS_ADAPTER *ioc)
 
 	r = _base_handshake_req_reply_wait(ioc,
 	    sizeof(Mpi2IOCInitRequest_t), (u32 *)&mpi_request,
-	    sizeof(Mpi2IOCInitReply_t), (u16 *)&mpi_reply, 10);
+	    sizeof(Mpi2IOCInitReply_t), (u16 *)&mpi_reply, 30);
 
 	if (r != 0) {
 		pr_err(MPT3SAS_FMT "%s: handshake failed (r=%d)\n",
drivers/scsi/pm8001/pm8001_init.c +2 -1
index 0e013f76b582..30e49b4acaea 100644
@@ -1054,7 +1054,8 @@ static int pm8001_pci_probe(struct pci_dev *pdev,
 
 	pm8001_init_sas_add(pm8001_ha);
 	/* phy setting support for motherboard controller */
-	if (pm8001_configure_phy_settings(pm8001_ha))
+	rc = pm8001_configure_phy_settings(pm8001_ha);
+	if (rc)
 		goto err_out_shost;
 
 	pm8001_post_sas_ha_init(shost, chip);
drivers/scsi/qedi/qedi_main.c +3 -1
index 24b945b555ba..a742b8856776 100644
@@ -2387,7 +2387,7 @@ static int __qedi_probe(struct pci_dev *pdev, int mode)
 			QEDI_ERR(&qedi->dbg_ctx,
 				 "Unable to start offload thread!\n");
 			rc = -ENODEV;
-			goto free_cid_que;
+			goto free_tmf_thread;
 		}
 
 		/* F/w needs 1st task context memory entry for performance */
@@ -2407,6 +2407,8 @@ static int __qedi_probe(struct pci_dev *pdev, int mode)
 
 	return 0;
 
+free_tmf_thread:
+	destroy_workqueue(qedi->tmf_thread);
 free_cid_que:
 	qedi_release_cid_que(qedi);
 free_uio:
drivers/scsi/scsi_lib.c +86 -40

9 lines not on this page · raw message

drivers/scsi/ufs/ufshcd.c +7 -0
index a3a3ee6e2a00..342e086e4199 100644

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

drivers/soc/mediatek/mtk-scpsys.c +3 -2
index fb2a8b1e7979..d0b18cc7e61b 100644

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

drivers/soc/qcom/smp2p.c +3 -2
index f51fb2ea7200..4c5767c73b7a 100644

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

drivers/soc/tegra/fuse/speedo-tegra210.c +1 -1
index 5373f4c16b54..4403b89561fd 100644

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

drivers/soc/ti/knav_dma.c +11 -2
index 026182d3b27c..6d137b1f43ae 100644

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

drivers/soc/ti/knav_qmss_queue.c +3 -1
index 9879ca5f8c5f..25baf13d6dfd 100644

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

drivers/spi/spi-bcm2835aux.c +6 -11
index b7f78e6d9bec..88772efda830 100644

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

drivers/spi/spi-davinci.c +1 -1
index c5bbe08771a4..04e891cda169 100644

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

drivers/spi/spi-img-spfi.c +3 -1
index 2e65b70c7879..2a340234c85c 100644

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

drivers/spi/spi-pic32.c +1 -0
index 288002f6c613..661a40c653e9 100644

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

drivers/spi/spi-rb4xx.c +1 -1
index 3641d0e20135..1d7fd6dbaf87 100644

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

drivers/spi/spi-sc18is602.c +2 -11
index 52cf0e9189c2..64cf1f572b6d 100644

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

drivers/spi/spi-sh.c +4 -9
index 50e0ea9acf8b..cba49a65ed2b 100644

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

drivers/spi/spi-st-ssc4.c +3 -2
index 5df01ffdef46..b46502db7f12 100644

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

drivers/spi/spi-tegra114.c +2 -0
index 84ff0c507f0b..0e1a8d7aa322 100644

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

drivers/spi/spi-tegra20-sflash.c +1 -0
index 22893a7e0aa0..749288310c36 100644

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

drivers/spi/spi-tegra20-slink.c +2 -0
index 62b074b167a9..c39bfcbda5f2 100644

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

drivers/spi/spi-ti-qspi.c +1 -0
index d0ea62d151c0..29c1b5d3ae7a 100644

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

drivers/staging/comedi/drivers/mf6x4.c +2 -1
index fbdf181d8ccc..40aa24a9b2c3 100644

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

drivers/staging/fsl-mc/bus/dpio/dpio-driver.c +1 -4
index e36da20a2796..e7856a9e685f 100644

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

drivers/staging/greybus/audio_codec.c +2 -0
index a6d01f0761f3..6ba5a34fcdf2 100644

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

drivers/staging/speakup/speakup_dectlk.c +1 -1
index f06995480022..53316b0c0b13 100644

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

drivers/tty/serial/8250/8250_omap.c +0 -5
index 726852ebef85..e32afaa94d36 100644

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

drivers/tty/serial/serial_core.c +4 -0
index 0ff8de7725cf..3a9e27dd171e 100644

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

drivers/usb/chipidea/ci_hdrc_imx.c +2 -1
index 5f4a8157fad8..580468c44961 100644

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

drivers/usb/core/quirks.c +3 -0
index 34d8cece6dd3..5d109717ac4e 100644

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

drivers/usb/gadget/function/f_acm.c +1 -1
index 5e3828d9dac7..7a135a36d1a2 100644

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

drivers/usb/gadget/function/f_fs.c +4 -1
index 2f98161d062e..9f1bb8ed99bc 100644

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

drivers/usb/gadget/function/f_midi.c +6 -0
index 34c0a385516e..10ab13136cd1 100644

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

drivers/usb/gadget/function/f_rndis.c +3 -1
index 2bde68f5d246..b35c1d27dc52 100644

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

drivers/usb/gadget/udc/dummy_hcd.c +1 -1
index a0c1d77a7e38..df27b174b4d0 100644

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

drivers/usb/host/ehci-omap.c +1 -0
index 4d308533bc83..a6b738139cd2 100644

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

drivers/usb/host/oxu210hp-hcd.c +3 -1
index ed20fb34c897..1d3a79c2eba2 100644

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

drivers/usb/host/xhci-hub.c +4 -0
index 592f8183af28..7f1685a54514 100644

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

drivers/usb/misc/sisusbvga/Kconfig +1 -1
index 36bc28c884ad..47dabccafef4 100644

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

drivers/usb/serial/keyspan_pda.c +34 -29

63 lines not on this page · raw message

drivers/usb/serial/mos7720.c +2 -0
index 37967f4d93fd..6dace4800a06 100644

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

drivers/usb/serial/option.c +21 -2
index 0a4b0c3839b5..9e5fe0d2ae66 100644

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

drivers/usb/storage/uas.c +3 -0
index 6234cee50a88..e9ca6f13dbf2 100644

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

drivers/usb/storage/unusual_uas.h +5 -2
index 018b0663d610..61891c2dc9fc 100644

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

drivers/usb/storage/usb.c +3 -0
index 0dceb9fa3a06..2b6f8600c594 100644

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

drivers/vfio/pci/vfio_pci.c +2 -2
index ac1c54bcfe8f..6fceefcab81d 100644

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

drivers/watchdog/Kconfig +2 -1
index fa15a683ae2d..de228669a2c8 100644

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

drivers/watchdog/qcom-wdt.c +1 -1
index 780971318810..1a0005a8fadb 100644

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

drivers/xen/xen-pciback/xenbus.c +1 -1
index 3bbed47da3fa..1e2a996c7515 100644

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

drivers/xen/xenbus/xenbus.h +2 -0
index 092981171df1..139539b0ab20 100644

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

drivers/xen/xenbus/xenbus_client.c +7 -1
index f7b553faadb1..e35bb6b87449 100644

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

drivers/xen/xenbus/xenbus_probe.c +1 -0
index ec9eb4fba59c..217bcc092a96 100644

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

drivers/xen/xenbus/xenbus_probe_backend.c +7 -0
index b0bed4faf44c..4bb603051d5b 100644

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

drivers/xen/xenbus/xenbus_xs.c +22 -12
index b609c6e08796..a0c61561bec6 100644

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

fs/btrfs/inode.c +1 -1
index c5ae2f4a7ec3..9769a5db7d5e 100644

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

fs/btrfs/tests/btrfs-tests.c +7 -1
index 6c92101e8092..eb6ae2450fed 100644

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

fs/ceph/caps.c +9 -2
index ce94d09f6abf..382cf85fd574 100644

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

fs/ext4/inode.c +14 -5
index 1d8638ee5442..898f962d3a06 100644

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

fs/ext4/mballoc.c +1 -0
index d7cedfaa1cc0..4cafe41ab524 100644

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

fs/jffs2/readinode.c +16 -0
index bccfc40b3a74..d19483fa1fe8 100644

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

fs/jfs/jfs_dmap.h +1 -1
index 562b9a7e4311..f502a15c6c98 100644

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

fs/lockd/host.c +11 -9
index c4504ed9f680..9c39e13a28df 100644

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

fs/nfs/inode.c +1 -1
index 71a399f6805a..f0534b356f07 100644

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

fs/nfs/nfs4proc.c +8 -2
index bb899a6fe8ac..9f2ba4874f10 100644

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

fs/nfs_common/grace.c +5 -1
index 3b13fb3b0553..63c9c2a70937 100644

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

fs/nfsd/nfssvc.c +1 -2
index 4a9e0fb634b6..67e85a752d3a 100644

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

fs/quota/quota_v2.c +19 -0
index 5d4dc0f84f20..d99710270a37 100644

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

include/acpi/acpi_bus.h +0 -5
index 324a04df3785..67f4fce22209 100644

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

include/linux/build_bug.h +5 -0
index 3efed0d742a0..969904a01dac 100644

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

include/linux/security.h +1 -1
index ce6265960d6c..dab093af4ee8 100644

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

include/linux/seq_buf.h +1 -1
index aa5deb041c25..7cc952282e8b 100644

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

include/linux/sunrpc/xprt.h +1 -0
index 7fad83881ce1..9785715eea14 100644

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

include/linux/trace_seq.h +2 -2
index 6609b39a7232..6db257466af6 100644

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

include/linux/usb_usual.h +2 -0
index 000a5954b2e8..a7f7ebdd3069 100644

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

include/uapi/linux/if_alg.h +16 -0
index bc2bcdec377b..769050771423 100644

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

include/xen/xenbus.h +14 -1
index 869c816d5f8c..eba01ab5a55e 100644

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

kernel/cpu.c +5 -1
index d8c77bfb6e7e..e1d10629022a 100644

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

kernel/irq/irqdomain.c +9 -2
index 0d54f8256b9f..cafea68749e0 100644

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

kernel/sched/core.c +1 -5
index c5599174e745..7cedada731c1 100644

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

kernel/sched/deadline.c +3 -2
index 22770168bff8..06a6bcd6cfa6 100644

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

kernel/sched/sched.h +18 -24

42 lines not on this page · raw message

net/bluetooth/hci_event.c +10 -7
index ba12bf8de826..5e05a96e0646 100644

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

net/bridge/br_vlan.c +3 -1
index e24a74884768..830ff7bba5e3 100644

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

net/ipv4/tcp_output.c +6 -3
index 355ebae883c1..90827c386b5b 100644

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

net/mac80211/mesh_pathtbl.c +1 -3
index 933f26e2ff8b..54d44836dd28 100644

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

net/sunrpc/xprt.c +49 -16

65 lines not on this page · raw message

net/sunrpc/xprtrdma/module.c +1 -0
index 560712bd9fa2..dd227de31a58 100644

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

net/sunrpc/xprtrdma/transport.c +1 -0
index b1b40a1be8c5..ead20e6754ab 100644

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

net/sunrpc/xprtsock.c +4 -0
index f75b5b7c1fc2..5124a21ecfa3 100644

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

net/wireless/nl80211.c +1 -1
index 6bd4f6c8fc2e..f630fa2e3164 100644

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

samples/bpf/lwt_len_hist.sh +2 -0
old mode 100644
new mode 100755
index 090b96eaf7f7..0eda9754f50b

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

samples/bpf/test_lwt_bpf.sh +0 -0
old mode 100644
new mode 100755
scripts/checkpatch.pl +1 -1
index d702bdf19eb1..0f24a6f3af99 100755

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

security/integrity/ima/ima_crypto.c +5 -15
index 2c8fd4e90700..1b61dbb3a319 100644

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

security/selinux/hooks.c +12 -4
index 5def19ec1179..895d369bc410 100644

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

sound/core/oss/pcm_oss.c +19 -9
index bb0ab0f6ce9d..f855c40b0567 100644

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

sound/pci/hda/patch_realtek.c +1 -0
index 331a62b85987..a18be8394715 100644

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

sound/soc/codecs/wm8997.c +2 -0
index 49401a8aae64..19c963801e26 100644

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

sound/soc/codecs/wm8998.c +3 -1
index 44f447136e22..a94e0aeb2e19 100644

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

sound/soc/codecs/wm_adsp.c +3 -2
index 158ce68bc9bf..1516252aa0a5 100644

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

sound/soc/jz4740/jz4740-i2s.c +4 -0
index e099c0505b76..2c6b0ac97c68 100644

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

sound/soc/soc-pcm.c +2 -0
index fd4b71729eed..e995e96ab903 100644

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

sound/usb/clock.c +6 -0
index eb3396ffba4c..70e74895b113 100644

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

sound/usb/format.c +2 -0
index eeb56d6fe8aa..06190e3fd919 100644

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

sound/usb/stream.c +3 -3
index 452646959586..7b86bf38f10e 100644

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

tools/perf/util/parse-regs-options.c +1 -1
index e6599e290f46..e5ad120e7f69 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.