Skip to contentSkip to conversation

Linux 4.19.207

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Sep 22, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 4.19.207 kernel.

All users of the 4.19 kernel series must upgrade.

The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/admin-guide/devices.txt                      |    6 
 Documentation/devicetree/bindings/mtd/gpmc-nand.txt        |    2 
 Makefile                                                   |    2 
 arch/arc/mm/cache.c                                        |    2 
 arch/arm/boot/compressed/Makefile                          |    2 
 arch/arm/boot/dts/imx53-ppd.dts                            |   23 
 arch/arm/boot/dts/qcom-apq8064.dtsi                        |    6 
 arch/arm/boot/dts/tegra20-tamonten.dtsi                    |   14 
 arch/arm/kernel/Makefile                                   |    6 
 arch/arm/kernel/return_address.c                           |    4 
 arch/arm/mach-imx/mmdc.c                                   |   14 
 arch/arm/net/bpf_jit_32.c                                  |    3 
 arch/arm64/boot/dts/exynos/exynos7.dtsi                    |    2 
 arch/arm64/boot/dts/qcom/ipq8074-hk01.dts                  |    2 
 arch/arm64/include/asm/kernel-pgtable.h                    |    4 
 arch/arm64/kernel/fpsimd.c                                 |    2 
 arch/arm64/kernel/head.S                                   |   11 
 arch/arm64/net/bpf_jit_comp.c                              |   13 
 arch/m68k/emu/nfeth.c                                      |    4 
 arch/mips/mti-malta/malta-dtshim.c                         |    2 
 arch/mips/net/ebpf_jit.c                                   |    3 
 arch/openrisc/kernel/entry.S                               |    2 
 arch/parisc/kernel/signal.c                                |    6 
 arch/powerpc/boot/crt0.S                                   |    3 
 arch/powerpc/kernel/module_64.c                            |    2 
 arch/powerpc/kernel/stacktrace.c                           |    1 
 arch/powerpc/net/bpf_jit_comp64.c                          |    6 
 arch/powerpc/perf/hv-gpci.c                                |    2 
 arch/s390/kernel/jump_label.c                              |    2 
 arch/s390/kvm/interrupt.c                                  |    4 
 arch/s390/kvm/kvm-s390.h                                   |    2 
 arch/s390/net/bpf_jit_comp.c                               |   14 
 arch/sparc/net/bpf_jit_comp_64.c                           |    3 
 arch/x86/events/amd/ibs.c                                  |    8 
 arch/x86/events/intel/pt.c                                 |    2 
 arch/x86/kernel/cpu/intel_rdt_monitor.c                    |    6 
 arch/x86/kernel/reboot.c                                   |    3 
 arch/x86/kvm/x86.c                                         |    4 
 arch/x86/mm/init_64.c                                      |    6 
 arch/x86/net/bpf_jit_comp.c                                |    7 
 arch/x86/net/bpf_jit_comp32.c                              |    6 
 arch/x86/xen/enlighten_pv.c                                |    7 
 arch/x86/xen/p2m.c                                         |    4 
 arch/xtensa/Kconfig                                        |    2 
 arch/xtensa/platforms/iss/console.c                        |   17 
 block/bfq-iosched.c                                        |   18 
 block/blk-zoned.c                                          |    6 
 certs/Makefile                                             |    8 
 drivers/ata/libata-core.c                                  |    6 
 drivers/ata/sata_dwc_460ex.c                               |   12 
 drivers/base/power/trace.c                                 |   10 
 drivers/base/regmap/regmap.c                               |    2 
 drivers/bcma/main.c                                        |    6 
 drivers/block/Kconfig                                      |    4 
 drivers/block/cryptoloop.c                                 |    2 
 drivers/clk/clk.c                                          |   10 
 drivers/clk/mvebu/kirkwood.c                               |    1 
 drivers/clocksource/sh_cmt.c                               |   30 
 drivers/cpufreq/powernv-cpufreq.c                          |   16 
 drivers/crypto/mxs-dcp.c                                   |   81 +-
 drivers/crypto/omap-sham.c                                 |    2 
 drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c       |    4 
 drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c         |    4 
 drivers/crypto/qat/qat_common/adf_common_drv.h             |    8 
 drivers/crypto/qat/qat_common/adf_init.c                   |    5 
 drivers/crypto/qat/qat_common/adf_isr.c                    |    7 
 drivers/crypto/qat/qat_common/adf_pf2vf_msg.c              |    3 
 drivers/crypto/qat/qat_common/adf_vf2pf_msg.c              |   12 
 drivers/crypto/qat/qat_common/adf_vf_isr.c                 |    7 
 drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c |    4 
 drivers/crypto/talitos.c                                   |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c                    |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c                 |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c  |   16 
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c                 |   10 
 drivers/gpu/drm/msm/dsi/dsi.c                              |    6 
 drivers/gpu/ipu-v3/ipu-cpmem.c                             |   30 
 drivers/hid/hid-input.c                                    |    2 
 drivers/i2c/busses/i2c-highlander.c                        |    2 
 drivers/i2c/busses/i2c-iop3xx.c                            |    6 
 drivers/i2c/busses/i2c-mt65xx.c                            |    2 
 drivers/i2c/busses/i2c-s3c2410.c                           |    2 
 drivers/iio/dac/ad5624r_spi.c                              |   18 
 drivers/infiniband/core/iwcm.c                             |   19 
 drivers/md/bcache/super.c                                  |   16 
 drivers/md/dm-crypt.c                                      |    7 
 drivers/md/dm-thin-metadata.c                              |    2 
 drivers/md/persistent-data/dm-block-manager.c              |   14 
 drivers/media/dvb-frontends/dib8000.c                      |   58 +
 drivers/media/i2c/imx258.c                                 |    4 
 drivers/media/i2c/tda1997x.c                               |    6 
 drivers/media/platform/qcom/venus/venc.c                   |    2 
 drivers/media/platform/tegra-cec/tegra_cec.c               |   10 
 drivers/media/rc/rc-loopback.c                             |    2 
 drivers/media/usb/dvb-usb/nova-t-usb2.c                    |    6 
 drivers/media/usb/dvb-usb/vp702x.c                         |   12 
 drivers/media/usb/em28xx/em28xx-input.c                    |    1 
 drivers/media/usb/go7007/go7007-driver.c                   |   26 
 drivers/media/usb/stkwebcam/stk-webcam.c                   |    6 
 drivers/media/usb/uvc/uvc_v4l2.c                           |   34 
 drivers/media/v4l2-core/v4l2-dv-timings.c                  |    4 
 drivers/mfd/ab8500-core.c                                  |    2 
 drivers/mfd/axp20x.c                                       |    3 
 drivers/mfd/stmpe.c                                        |    4 
 drivers/mfd/tc3589x.c                                      |    2 
 drivers/mfd/wm8994-irq.c                                   |    2 
 drivers/misc/aspeed-lpc-ctrl.c                             |    2 
 drivers/misc/vmw_vmci/vmci_queue_pair.c                    |    6 
 drivers/mmc/core/block.c                                   |    3 
 drivers/mmc/host/dw_mmc.c                                  |    1 
 drivers/mmc/host/moxart-mmc.c                              |    1 
 drivers/mmc/host/rtsx_pci_sdmmc.c                          |   36 
 drivers/mmc/host/sdhci-of-arasan.c                         |   18 
 drivers/mtd/nand/raw/cafe_nand.c                           |    4 
 drivers/net/bonding/bond_main.c                            |    3 
 drivers/net/dsa/b53/b53_common.c                           |    3 
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c          |    2 
 drivers/net/ethernet/cadence/macb_ptp.c                    |   11 
 drivers/net/ethernet/chelsio/cxgb/cxgb2.c                  |    1 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c            |    9 
 drivers/net/ethernet/ibm/ibmvnic.c                         |    8 
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c          |    5 
 drivers/net/ethernet/qlogic/qed/qed_main.c                 |    7 
 drivers/net/ethernet/qlogic/qed/qed_mcp.c                  |    6 
 drivers/net/ethernet/qlogic/qede/qede_main.c               |    2 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c           |    1 
 drivers/net/ethernet/qualcomm/qca_spi.c                    |    2 
 drivers/net/ethernet/qualcomm/qca_uart.c                   |    2 
 drivers/net/ethernet/rdc/r6040.c                           |    9 
 drivers/net/ethernet/renesas/sh_eth.c                      |    1 
 drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c        |   18 
 drivers/net/ethernet/wiznet/w5100.c                        |    2 
 drivers/net/ethernet/xilinx/ll_temac_main.c                |    4 
 drivers/net/phy/dp83640_reg.h                              |    2 
 drivers/net/usb/cdc_mbim.c                                 |    5 
 drivers/net/wireless/ath/ath6kl/wmi.c                      |    4 
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c             |    3 
 drivers/net/wireless/ath/ath9k/hw.c                        |   12 
 drivers/ntb/test/ntb_perf.c                                |    1 
 drivers/nvme/host/rdma.c                                   |    4 
 drivers/of/kobj.c                                          |    2 
 drivers/parport/ieee1284_ops.c                             |    2 
 drivers/pci/controller/pci-aardvark.c                      |   11 
 drivers/pci/controller/pcie-xilinx-nwl.c                   |   12 
 drivers/pci/msi.c                                          |    3 
 drivers/pci/pci.c                                          |   33 
 drivers/pci/quirks.c                                       |   26 
 drivers/pci/syscall.c                                      |    4 
 drivers/pinctrl/pinctrl-single.c                           |    1 
 drivers/pinctrl/samsung/pinctrl-samsung.c                  |    2 
 drivers/platform/chrome/cros_ec_proto.c                    |    9 
 drivers/platform/x86/dell-smbios-wmi.c                     |    1 
 drivers/power/supply/axp288_fuel_gauge.c                   |    4 
 drivers/power/supply/max17042_battery.c                    |    8 
 drivers/rtc/rtc-tps65910.c                                 |    2 
 drivers/s390/cio/css.c                                     |   17 
 drivers/scsi/BusLogic.c                                    |    4 
 drivers/scsi/qedi/qedi_main.c                              |   14 
 drivers/scsi/qla2xxx/qla_nvme.c                            |    5 
 drivers/soc/qcom/smsm.c                                    |   11 
 drivers/soc/rockchip/Kconfig                               |    4 
 drivers/spi/spi-fsl-dspi.c                                 |    1 
 drivers/spi/spi-pic32.c                                    |    1 
 drivers/spi/spi-sprd-adi.c                                 |    2 
 drivers/staging/board/board.c                              |    7 
 drivers/staging/ks7010/ks7010_sdio.c                       |    2 
 drivers/staging/rts5208/rtsx_scsi.c                        |   10 
 drivers/tty/hvc/hvsi.c                                     |   19 
 drivers/tty/serial/8250/8250_pci.c                         |    2 
 drivers/tty/serial/8250/8250_port.c                        |    3 
 drivers/tty/serial/fsl_lpuart.c                            |    2 
 drivers/tty/serial/jsm/jsm_neo.c                           |    2 
 drivers/tty/serial/jsm/jsm_tty.c                           |    3 
 drivers/tty/serial/sh-sci.c                                |    7 
 drivers/tty/tty_io.c                                       |    4 
 drivers/usb/gadget/composite.c                             |    8 
 drivers/usb/gadget/function/u_ether.c                      |    5 
 drivers/usb/gadget/udc/at91_udc.c                          |    4 
 drivers/usb/gadget/udc/bdc/bdc_core.c                      |    3 
 drivers/usb/gadget/udc/mv_u3d_core.c                       |   19 
 drivers/usb/host/ehci-orion.c                              |    8 
 drivers/usb/host/fotg210-hcd.c                             |   41 -
 drivers/usb/host/fotg210.h                                 |    5 
 drivers/usb/host/ohci-tmio.c                               |    3 
 drivers/usb/host/xhci-rcar.c                               |    7 
 drivers/usb/host/xhci.c                                    |   24 
 drivers/usb/mtu3/mtu3_gadget.c                             |    6 
 drivers/usb/musb/musb_dsps.c                               |   13 
 drivers/usb/phy/phy-fsl-usb.c                              |    2 
 drivers/usb/phy/phy-tahvo.c                                |    4 
 drivers/usb/phy/phy-twl6030-usb.c                          |    5 
 drivers/usb/serial/mos7720.c                               |    4 
 drivers/usb/usbip/vhci_hcd.c                               |   32 
 drivers/vfio/Kconfig                                       |    2 
 drivers/video/backlight/pwm_bl.c                           |   54 -
 drivers/video/fbdev/asiliantfb.c                           |    3 
 drivers/video/fbdev/core/fbmem.c                           |    6 
 drivers/video/fbdev/kyro/fbdev.c                           |    8 
 drivers/video/fbdev/riva/fbdev.c                           |    3 
 fs/btrfs/inode.c                                           |    2 
 fs/btrfs/volumes.c                                         |    3 
 fs/cifs/cifs_unicode.c                                     |    9 
 fs/cifs/sess.c                                             |    2 
 fs/crypto/hooks.c                                          |   44 +
 fs/ext4/inline.c                                           |    6 
 fs/ext4/symlink.c                                          |   11 
 fs/f2fs/file.c                                             |    4 
 fs/f2fs/gc.c                                               |    4 
 fs/f2fs/namei.c                                            |   11 
 fs/fcntl.c                                                 |    5 
 fs/fscache/cookie.c                                        |   14 
 fs/fscache/internal.h                                      |    2 
 fs/fscache/main.c                                          |   39 +
 fs/gfs2/lock_dlm.c                                         |    5 
 fs/isofs/inode.c                                           |   27 
 fs/isofs/isofs.h                                           |    1 
 fs/isofs/joliet.c                                          |    4 
 fs/nfs/callback_xdr.c                                      |    2 
 fs/overlayfs/dir.c                                         |    6 
 fs/ubifs/file.c                                            |   12 
 fs/udf/misc.c                                              |   13 
 fs/udf/super.c                                             |   25 
 fs/userfaultfd.c                                           |   93 +-
 include/crypto/public_key.h                                |    4 
 include/linux/bpf_verifier.h                               |   19 
 include/linux/filter.h                                     |   15 
 include/linux/fscrypt_notsupp.h                            |    6 
 include/linux/fscrypt_supp.h                               |    1 
 include/linux/hugetlb.h                                    |    9 
 include/linux/list.h                                       |   29 
 include/linux/memory_hotplug.h                             |    4 
 include/linux/pci.h                                        |    5 
 include/linux/power/max17042_battery.h                     |    2 
 include/linux/skbuff.h                                     |    2 
 include/linux/sunrpc/svc.h                                 |    2 
 include/uapi/linux/pkt_sched.h                             |    2 
 include/uapi/linux/serial_reg.h                            |    1 
 kernel/bpf/core.c                                          |   18 
 kernel/bpf/disasm.c                                        |   16 
 kernel/bpf/verifier.c                                      |  498 ++++++-------
 kernel/events/core.c                                       |    2 
 kernel/fork.c                                              |    1 
 kernel/locking/mutex.c                                     |   15 
 kernel/pid_namespace.c                                     |    3 
 kernel/sched/deadline.c                                    |    8 
 kernel/sched/sched.h                                       |    2 
 kernel/time/hrtimer.c                                      |   60 +
 lib/mpi/mpiutil.c                                          |    2 
 lib/test_bpf.c                                             |   13 
 mm/memory_hotplug.c                                        |    4 
 mm/page_alloc.c                                            |    8 
 net/9p/trans_xen.c                                         |    4 
 net/bluetooth/cmtp/cmtp.h                                  |    2 
 net/bluetooth/hci_core.c                                   |   14 
 net/bluetooth/hci_event.c                                  |  108 ++
 net/bluetooth/sco.c                                        |   85 +-
 net/caif/chnl_net.c                                        |   19 
 net/core/flow_dissector.c                                  |   12 
 net/core/net_namespace.c                                   |   18 
 net/dccp/minisocks.c                                       |    2 
 net/dsa/slave.c                                            |   12 
 net/ipv4/icmp.c                                            |   23 
 net/ipv4/igmp.c                                            |    2 
 net/ipv4/ip_gre.c                                          |    9 
 net/ipv4/ip_output.c                                       |    5 
 net/ipv4/route.c                                           |   48 -
 net/ipv4/tcp_fastopen.c                                    |    3 
 net/ipv4/tcp_input.c                                       |    2 
 net/ipv4/tcp_ipv4.c                                        |    5 
 net/ipv6/netfilter/nf_socket_ipv6.c                        |    4 
 net/l2tp/l2tp_core.c                                       |    4 
 net/mac80211/tx.c                                          |    4 
 net/netlabel/netlabel_cipso_v4.c                           |   12 
 net/netlink/af_netlink.c                                   |    4 
 net/sched/sch_cbq.c                                        |    2 
 net/sched/sch_fq_codel.c                                   |   12 
 net/sunrpc/auth_gss/svcauth_gss.c                          |    2 
 net/sunrpc/svc.c                                           |   27 
 net/tipc/socket.c                                          |   36 
 net/unix/af_unix.c                                         |    2 
 samples/bpf/test_override_return.sh                        |    1 
 samples/bpf/tracex7_user.c                                 |    5 
 security/integrity/ima/Kconfig                             |    1 
 security/integrity/ima/ima_mok.c                           |    2 
 security/smack/smack_access.c                              |   17 
 sound/core/pcm_lib.c                                       |    2 
 sound/soc/intel/boards/bytcr_rt5640.c                      |    9 
 sound/soc/rockchip/rockchip_i2s.c                          |   35 
 sound/usb/quirks.c                                         |    1 
 tools/perf/util/machine.c                                  |    1 
 tools/testing/selftests/bpf/test_maps.c                    |    2 
 tools/testing/selftests/bpf/test_verifier.c                |  144 +++
 tools/thermal/tmon/Makefile                                |    2 
 virt/kvm/arm/arm.c                                         |    8 
 294 files changed, 2188 insertions(+), 1184 deletions(-)

Adrian Bunk (1):
bnx2x: Fix enabling network interfaces without VFs

Alexander Tsoy (1):
ALSA: usb-audio: Add registration quirk for JBL Quantum 800

Alexei Starovoitov (2):
bpf: track spill/fill of constants selftests/bpf: fix tests due to const spill/fill

Andreas Obergschwandtner (1):
ARM: tegra: tamonten: Fix UART pad setting

Andrey Grodzovsky (1):
drm/amdgpu: Fix BUG_ON assert

Andrey Ignatov (5):
bpf: Support variable offset stack access from helpers
bpf: Reject indirect var_off stack access in raw mode
bpf: Reject indirect var_off stack access in unpriv mode
bpf: Sanity check max value for var_off stack access selftests/bpf: Test variable offset stack access

Andy Duan (1):
tty: serial: fsl_lpuart: fix the wrong mapbase value

Andy Shevchenko (3):
include/linux/list.h: add a macro to test if entry is pointing to the head
ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init()
PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n

Anirudh Rayabharam (1):
usbip: give back URBs for unsent unlink requests during cleanup

Anson Jacob (1):
drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex

Arne Welzel (1):
dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()

Austin Kim (1):
IMA: remove -Wmissing-prototypes warning

Babu Moger (1):
x86/resctrl: Fix a maybe-uninitialized build warning treated as error

Baptiste Lepers (1):
events: Reuse value read using READ_ONCE instead of re-reading it

Ben Dooks (1):
ARM: 8918/2: only build return_address() if needed

Benjamin Hesmans (1):
netfilter: socket: icmp6: fix use-after-scope

Bob Peterson (1):
gfs2: Don't call dlm after protocol is unmounted

Chao Yu (2):
f2fs: fix to account missing .skipped_gc_rwsem
f2fs: fix to unmap pages from userspace process in punch_hole()

Chih-Kang Chang (1):
mac80211: Fix insufficient headroom issue for AMSDU

Christoph Hellwig (2):
cryptoloop: add a deprecation warning
bcache: add proper error unwinding in bcache_device_init

Christophe JAILLET (4):
drm/msm/dsi: Fix some reference counted resource leaks
usb: bdc: Fix an error handling path in 'bdc_probe()' when no suitable DMA config is available
staging: ks7010: Fix the initialization of the 'sleep_status' structure
mtd: rawnand: cafe: Fix a resource leak in the error handling path of 'cafe_nand_probe()'

Christophe Leroy (1):
crypto: talitos - reduce max key size for SEC1

Chunfeng Yun (2):
usb: mtu3: use @mult for HS isoc or intr
usb: mtu3: fix the wrong HS mult value

Chunyan Zhang (1):
spi: sprd: Fix the wrong WDG_LOAD_VAL

Colin Ian King (4):
ARM: imx: fix missing 3rd argument in macro imx_mmdc_perf_init
media: venus: venc: Fix potential null pointer dereference on pointer fmt
Bluetooth: increase BTNAMSIZ to 21 chars to fix potential buffer overflow
parport: remove non-zero check on count

Damien Le Moal (2):
libata: fix ata_host_start()
block: bfq: fix bfq_set_next_ioprio_data()

Dan Carpenter (4):
Bluetooth: sco: prevent information leak in sco_conn_defer_accept()
ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point()
scsi: qedi: Fix error codes in qedi_alloc_global_queues()
PCI: Fix pci_dev_str_match_path() alloc while atomic bug

Daniel Borkmann (3):
bpf: Introduce BPF nospec instruction for mitigating Spectre v4
bpf: Fix leakage due to insufficient speculative store bypass mitigation
bpf: Fix pointer arithmetic mask tightening under state pruning

Daniel Thompson (1):
backlight: pwm_bl: Improve bootloader/kernel device handover

Daniele Palmas (1):
net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920

David Heidelberg (2):
ARM: 9105/1: atags_to_fdt: don't warn about stack size
ARM: dts: qcom: apq8064: correct clock names

David Hildenbrand (1):
mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()

David Howells (1):
fscache: Fix cookie key hashing

Desmond Cheong Zhi Xi (6):
fcntl: fix potential deadlock for &fasync_struct.fa_lock
Bluetooth: fix repeated calls to sco_sock_kill
btrfs: reset replace target device to allocation state on close
Bluetooth: skip invalid hci_sync_conn_complete_evt
Bluetooth: schedule SCO timeouts with delayed_work
Bluetooth: avoid circular locks in sco_sock_connect

Dietmar Eggemann (1):
sched/deadline: Fix missing clock update in migrate_task_rq_dl()

Ding Hui (1):
cifs: fix wrong release in sess_alloc_buffer() failed path

Dinghao Liu (1):
qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom

Dmitry Baryshkov (1):
drm/msm/dpu: make dpu_hw_ctl_clear_all_blendstages clear necessary LMs

Dmitry Osipenko (1):
rtc: tps65910: Correct driver module alias

Dmitry Torokhov (1):
HID: input: do not report stylus battery state as "full"

Dongliang Mu (3):
media: dvb-usb: fix uninit-value in dvb_usb_adapter_dvb_init
media: dvb-usb: fix uninit-value in vp702x_read_mac_addr
media: em28xx-input: fix refcount bug in em28xx_usb_disconnect

Edward Cree (1):
bpf/verifier: per-register parent pointers

Eric Biggers (4):
fscrypt: add fscrypt_symlink_getattr() for computing st_size
ext4: report correct st_size for encrypted symlinks
f2fs: report correct st_size for encrypted symlinks
ubifs: report correct st_size for encrypted symlinks

Eric Dumazet (5):
ipv4: make exception cache less predictible
ipv4: fix endianness issue in inet_rtm_getroute_build_skb()
net-caif: avoid user-triggerable WARN_ON(1) net/af_unix: fix a data-race in unix_dgram_poll
fq_codel: reject silly quantum parameters

Esben Haabendal (1):
net: ll_temac: Remove left-over debug message

Evan Quan (1):
PCI: Add AMD GPU multi-function power dependencies

Evgeny Novikov (2):
usb: ehci-orion: Handle errors of clk_prepare_enable() in probe
media: tegra-cec: Handle errors of clk_prepare_enable()

Fangrui Song (1):
powerpc/boot: Delete unneeded .globl _zimage_start

Florian Fainelli (1):
r6040: Restore MDIO clock frequency after MAC reset

Geert Uytterhoeven (2):
soc: rockchip: ROCKCHIP_GRF should not default to y, unconditionally
staging: board: Fix uninitialized spinlock when attaching genpd

George Cherian (1):
PCI: Add ACS quirks for Cavium multi-function devices

Giovanni Cabiddu (4):
crypto: qat - do not ignore errors from enable_vf2pf_comms()
crypto: qat - handle both source of interrupt in VF ISR
crypto: qat - do not export adf_iov_putmsg()
crypto: qat - use proper type for vf_mask

Greg Kroah-Hartman (3):
clk: fix build warning for orphan_list
serial: 8250_pci: make setup_port() parameters explicitly unsigned Linux 4.19.207

Guillaume Nault (1):
netns: protect netns ID lookups with RCU

Gustavo A. R. Silva (2):
ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
flow_dissector: Fix out-of-bounds warnings

Halil Pasic (1):

      KVM: s390: index kvm->arch.idle_mask by vcpu_idx

Hans Verkuil (1):
media: v4l2-dv-timings.c: fix wrong condition in two for-loops

Hans de Goede (5):
power: supply: axp288_fuel_gauge: Report register-address on readb / writeb errors
libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs
platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call
ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the matching in-/output
mfd: axp20x: Update AXP288 volatile ranges

Harini Katakam (1):
net: macb: Add a NULL check on desc_ptp

Harshvardhan Jha (1):
9p/xen: Fix end of loop tests for list_for_each_entry

Heiko Carstens (1):
s390/jump_label: print real address in a case of a jump label bug

Hoang Le (1):
tipc: increase timeout in tipc_sk_enqueue()

Hongbo Li (1):
lib/mpi: use kcalloc in mpi_resize

Hyun Kwon (1):
PCI: xilinx-nwl: Enable the clock through CCF

Ilya Leoshkevich (1):

      s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant

Iwona Winiarska (1):
soc: aspeed: lpc-ctrl: Fix boundary check for mmap

J. Bruce Fields (1):
rpc: fix gss_svc_init cleanup on failure

Jack Pham (1):
usb: gadget: composite: Allow bMaxPower=0 if self-powered

Jaehyoung Choi (1):
pinctrl: samsung: Fix pinctrl bank pin count

Jan Kara (1):
udf: Check LVID earlier

Jason Gunthorpe (1):
vfio: Use config not menuconfig for VFIO_NOIOMMU

Jeongtae Park (1):
regmap: fix the offset of register error log

Jiong Wang (1):
bpf: correct slot_type marking logic to allow more stack slot sharing

Jiri Slaby (2):
xtensa: ISS: don't panic in rs_init
hvsi: don't panic on tty_register_driver failure

Johan Almbladh (2):
bpf/tests: Fix copy-and-paste error in double word test bpf/tests: Do not PASS tests without actually testing the result

Jonathan Cameron (1):
iio: dac: ad5624r: Fix incorrect handling of an optional regulator.

Juergen Gross (3):
xen: fix setting of max_pfn in shared_info
xen: reset legacy rtc flag for PV domU
PM: base: power: don't try to use non-existing RTC for storing data

Juhee Kang (1):
samples: bpf: Fix tracex7 error raised on the missing argument

Kai-Heng Feng (1):
Bluetooth: Move shutdown callback before flushing tx and rx queue

Kajol Jain (1):
powerpc/perf/hv-gpci: Fix counter value parsing

Kees Cook (1):
staging: rts5208: Fix get_ms_information() heap buffer size

Kelly Devilliv (2):
usb: host: fotg210: fix the endpoint's transactional opportunities calculation
usb: host: fotg210: fix the actual_length of an iso packet

Kim Phillips (1):

      perf/x86/amd/ibs: Work around erratum #1197

Krzysztof Hałasa (3):
gpu: ipu-v3: Fix i.MX IPU-v3 offset calculations for (semi)planar U/V formats
media: TDA1997x: enable EDID support
media: TDA1997x: fix tda1997x_query_dv_timings() return value

Krzysztof Kozlowski (2):
arm64: dts: exynos: correct GIC CPU interfaces address range on Exynos7
power: supply: max17042: handle fails of reading status register

Krzysztof Wilczyński (1):
PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure

Laurent Pinchart (1):
media: imx258: Rectify mismatch of VTS value

Len Baker (1):
CIFS: Fix a potencially linear read overflow

Leon Romanovsky (2):
RDMA/iwcm: Release resources if iw_cm module initialization fails
docs: Fix infiniband uverbs minor number

Li Zhijian (1):
selftests/bpf: Enlarge select() timeout for test_maps

Lin, Zhenpeng (1):
dccp: don't duplicate ccid when cloning dccp sock

Linus Walleij (1):
clk: kirkwood: Fix a clocking boot regression

Liu Jian (1):
igmp: Add ip_mc_list lock in ip_check_mc_rcu

Liu Zixian (1):
mm/hugetlb: initialize hugetlb_usage in mm_init

Lorenz Bauer (1):
bpf: verifier: Allocate idmap scratch in verifier env

Luiz Augusto von Dentz (1):
Bluetooth: Fix handling of LE Enhanced Connection Complete

Luke Hsiao (1):
tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD

Maciej W. Rozycki (2):
serial: 8250: Define RX trigger levels for OxSemi 950 devices
scsi: BusLogic: Fix missing pr_cont() use

Maciej Żenczykowski (1):
usb: gadget: u_ether: fix a potential null pointer dereference

Manish Narani (1):
mmc: sdhci-of-arasan: Check return value of non-void funtions

Maor Gottlieb (1):
net/mlx5: Fix potential sleeping in atomic context

Marc Zyngier (2):
of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS
mfd: Don't use irq_create_mapping() to resolve a mapping

Marco Chiappero (2):
crypto: qat - fix reuse of completion variable
crypto: qat - fix naming for init/shutdown VF to PF notifications

Marek Behún (2):
PCI: Call Max Payload Size-related fixup quirks early
PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported

Marek Marczykowski-Górecki (1):
PCI/MSI: Skip masking MSI-X on Xen PV

Mark Brown (1):
arm64/sve: Use correct size when reinitialising SVE state

Mark Rutland (1):
arm64: head: avoid over-mapping in map_memory

Martin KaFai Lau (1):
tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos

Mathias Nyman (1):
Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set"

Mathieu Desnoyers (1):
ipv4/icmp: l3mdev: Perform icmp error route lookup on source device routing table (v2)

Mauro Carvalho Chehab (2):
media: uvc: don't do DMA on stack
media: dib8000: rewrite the init prbs logic

Miaoqing Pan (1):
ath9k: fix sleeping in atomic context

Michael Ellerman (1):
powerpc/module64: Fix comment in R_PPC64_ENTRY handling

Michael Petlan (1):
perf machine: Initialize srcline string member in add_location struct

Michal Suchanek (1):
powerpc/stacktrace: Include linux/delay.h

Mike Rapoport (1):
x86/mm: Fix kern_addr_valid() to cope with existing but not present entries

Mikulas Patocka (1):
parisc: fix crash with signals and alloca

Miquel Raynal (1):
dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation

Muchun Song (1):
mm/page_alloc: speed up the iteration of max_order

Nadav Amit (1):
userfaultfd: prevent concurrent API initialization

Nadezda Lutovinova (2):
usb: gadget: mv_u3d: request_irq() after initializing UDC
usb: musb: musb_dsps: request_irq() after initializing musb

Nathan Chancellor (1):
net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe()

Nguyen Dinh Phi (1):
tty: Fix data race between tiocsti() and flush_to_ldisc()

Niklas Cassel (2):
blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN

Nishad Kamdar (1):
mmc: core: Return correct emmc response in case of ioctl error

Oleksij Rempel (1):
MIPS: Malta: fix alignment of the devicetree buffer

Oliver Upton (1):
KVM: arm64: Handle PSCI resets before userspace touches vCPU state

Pali Rohár (3):
isofs: joliet: Fix iocharset=utf8 mount option
PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response
PCI: aardvark: Fix masking and unmasking legacy INTx interrupts

Paolo Valente (1):
block, bfq: honor already-setup queue merges

Patryk Duda (1):
platform/chrome: cros_ec_proto: Send command again when timeout occurs

Paul Gortmaker (1):
x86/reboot: Limit Dell Optiplex 990 quirk to early BIOS versions

Pavel Skripkin (5):
media: stkwebcam: fix memory leak in stk_camera_probe
m68k: emu: Fix invalid free in nfeth_cleanup()
media: go7007: remove redundant initialization
net: cipso: fix warnings in netlbl_cipsov4_add_std
Bluetooth: add timeout sanity check to hci_inquiry

Peter Zijlstra (1):
locking/mutex: Fix HANDOFF condition

Phong Hoang (1):
clocksource/drivers/sh_cmt: Fix wrong setting if don't request IRQ for clock source channel

Pratik R. Sampat (1):
cpufreq: powernv: Fix init_chip_info initialization in numa=off

Qu Wenruo (1):
Revert "btrfs: compression: don't try to compress if we don't have enough pages"

Quentin Perret (1):
sched/deadline: Fix reset_on_fork reporting of DL tasks

Rafael J. Wysocki (3):
PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently
PCI: PM: Enable PME if it can be signaled from D3cold
PCI: Use pci_update_current_state() in pci_enable_device_flags()

Rafał Miłecki (1):
net: dsa: b53: Fix calculating number of switch ports

Randy Dunlap (4):
xtensa: fix kconfig unmet dependency warning for HAVE_FUTEX_CMPXCHG
openrisc: don't printk() unconditionally
ptp: dp83640: don't define PAGE0
ARC: export clear_user_page() for modules

Rolf Eike Beer (1):
tools/thermal/tmon: Add cross compiling support

Ruozhu Li (1):
nvme-rdma: don't update queue count when failing to set io queues

Saurav Kashyap (1):
scsi: qla2xxx: Sync queue idx with queue_pair_map idx

Sean Anderson (2):
crypto: mxs-dcp - Check for DMA mapping errors
crypto: mxs-dcp - Use sg_mapping_iter to copy data

Sean Young (1):
media: rc-loopback: return number of emitters rather than error

Sebastian Krzyszkowiak (1):

      power: supply: max17042_battery: fix typo in MAx17042_TOFF

Sebastian Reichel (1):
ARM: dts: imx53-ppd: Fix ACHC entry

Sergey Shtylyov (9):
i2c: highlander: add IRQ check
usb: gadget: udc: at91: add IRQ check
usb: phy: fsl-usb: add IRQ check
usb: phy: twl6030: add IRQ checks
usb: host: ohci-tmio: add IRQ check
usb: phy: tahvo: add IRQ check
i2c: iop3xx: fix deferred probing
i2c: s3c2410: fix IRQ check
i2c: mt65xx: fix IRQ check

Shai Malin (3):
qed: Fix the VF msix vectors flow
qede: Fix memset corruption
qed: Handle management FW error

Shuah Khan (1):
usbip:vhci_hcd USB port can get stuck in the disabled state

Stefan Berger (1):
certs: Trigger creation of RSA module signing key if it's not an RSA key

Stefan Wahren (1):
net: qualcomm: fix QCA7000 checksum handling

Stephan Gerhold (1):
soc: qcom: smsm: Fix missed interrupts if state changes while masked

Stian Skjelstad (1):
udf_get_extendedattr() had no boundary checks.

Sugar Zhang (1):
ASoC: rockchip: i2s: Fix regmap_ops hang

Sukadev Bhattiprolu (1):
ibmvnic: check failover_pending in login response

THOBY Simon (1):
IMA: remove the dependency on CRYPTO_MD5

Tetsuo Handa (1):
fbmem: don't allow too huge resolutions

Theodore Ts'o (1):
ext4: fix race writing to an inline_data file while its xattrs are changing

Thomas Gleixner (1):
hrtimer: Avoid double reprogramming in __hrtimer_start_range_ns()

Thomas Hebb (1):
mmc: rtsx_pci: Fix long reads when clock is prescaled

Tianjia Zhang (1):
Smack: Fix wrong semantics in smk_access_entry()

Tom Rix (1):
USB: serial: mos7720: improve OOM-handling in read_mos_reg()

Tony Lindgren (5):
crypto: omap-sham - clear dma flags only after omap_sham_update_dma_stop()
spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config
spi: spi-pic32: Fix issue with uninitialized dma_slave_config
mmc: dw_mmc: Fix issue with uninitialized dma_slave_config
mmc: moxart: Fix issue with uninitialized dma_slave_config

Trond Myklebust (1):
SUNRPC/nfs: Fix return value for nfs4_callback_compound()

Tuo Li (1):
gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable access in amdgpu_i2c_router_select_ddc_port()

Ulrich Hecht (1):
serial: sh-sci: fix break handling for sysrq

Umang Jain (1):
media: imx258: Limit the max analogue gain to 480

Vasily Averin (1):
memcg: enable accounting for pids in nested pid namespaces

Vineeth Vijayan (1):
s390/cio: add dev_busid sysfs entry for each subchannel

Vinod Koul (1):
arm64: dts: qcom: sdm660: use reg value for memory node

Vladimir Oltean (1):
net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup

Wang Hai (1):
VMCI: fix NULL pointer dereference when unmapping queue pair

Willem de Bruijn (1):
ip_gre: validate csum_start only on pull

Xiaotan Luo (1):
ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B

Xiaoyao Li (1):
perf/x86/intel/pt: Fix mask of num_address_ranges

Xin Long (2):
tipc: keep the skb in rcv queue until the whole data is read
tipc: fix an use-after-free issue in tipc_recvmsg

Xiyu Yang (2):
net: sched: Fix qdisc_rate_table refcount leak when get tcf_block failed net/l2tp: Fix reference count leak in l2tp_udp_recv_core

Yajun Deng (1):
netlink: Deal with ESRCH error in nlmsg_notify()

Yang Li (2):
ethtool: Fix an error code in cxgb2.c
NTB: perf: Fix an error code in perf_setup_inbuf()

Yang Yingliang (2):
ARM: imx: add missing clk_disable_unprepare()
net: w5100: check return value after calling platform_get_resource()

Ye Bin (1):
dm thin metadata: Fix use-after-free in dm_bm_set_read_only

Yoshihiro Shimoda (2):
usb: host: xhci-rcar: Don't reload firmware after the completion
net: renesas: sh_eth: Fix freeing wrong tx descriptor

Yufeng Mo (2):
bonding: 3ad: fix the concurrency between __bond_release_one() and bond_3ad_state_machine_handler()
net: hns3: pad the short tunnel frame before sending to hardware

Zekun Shen (1):
ath9k: fix OOB read ar9300_eeprom_restore_internal

Zelin Deng (1):
KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is adjusted

Zenghui Yu (1):
bcma: Fix memory leak for internally-handled cores

Zhen Lei (1):
pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()

Zheyu Ma (5):
video: fbdev: kyro: fix a DoS bug by restricting user input
tty: serial: jsm: hold port lock when reporting modem line changes
video: fbdev: asiliantfb: Error out if 'pixclock' equals zero
video: fbdev: kyro: Error out if 'pixclock' equals zero
video: fbdev: riva: Error out if 'pixclock' equals zero

Zubin Mithra (1):
ALSA: pcm: fix divide error in snd_pcm_lib_ioctl

chenying (1):
ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()

zhenggy (1):

      tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()

zhenwei pi (1):
crypto: public_key: fix overflow during implicit conversion

王贇 (1):
net: fix NULL pointer reference in cipso_v4_doi_free

author maintainer
#1 lore raw
Documentation/admin-guide/devices.txt +3 -3
index 1649117e6087..9cd7926c8781 100644
@@ -2993,10 +2993,10 @@
 		65 = /dev/infiniband/issm1     Second InfiniBand IsSM device
 		  ...
 		127 = /dev/infiniband/issm63    63rd InfiniBand IsSM device
-		128 = /dev/infiniband/uverbs0   First InfiniBand verbs device
-		129 = /dev/infiniband/uverbs1   Second InfiniBand verbs device
+		192 = /dev/infiniband/uverbs0   First InfiniBand verbs device
+		193 = /dev/infiniband/uverbs1   Second InfiniBand verbs device
 		  ...
-		159 = /dev/infiniband/uverbs31  31st InfiniBand verbs device
+		223 = /dev/infiniband/uverbs31  31st InfiniBand verbs device
 
  232 char	Biometric Devices
 		0 = /dev/biometric/sensor0/fingerprint	first fingerprint sensor on first device
Documentation/devicetree/bindings/mtd/gpmc-nand.txt +1 -1
index c059ab74ed88..a4a75fa79524 100644
@@ -122,7 +122,7 @@ on various other factors also like;
 	so the device should have enough free bytes available its OOB/Spare
 	area to accommodate ECC for entire page. In general following expression
 	helps in determining if given device can accommodate ECC syndrome:
-	"2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE"
+	"2 + (PAGESIZE / 512) * ECC_BYTES" <= OOBSIZE"
 	where
 		OOBSIZE		number of bytes in OOB/spare area
 		PAGESIZE	number of bytes in main-area of device page
Makefile +1 -1
index 3a3eea3ab10a..77dd62aa0bbe 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 4
 PATCHLEVEL = 19
-SUBLEVEL = 206
+SUBLEVEL = 207
 EXTRAVERSION =
 NAME = "People's Front"
 
arch/arc/mm/cache.c +1 -1
index cf9619d4efb4..c5254c5967ed 100644
@@ -1112,7 +1112,7 @@ void clear_user_page(void *to, unsigned long u_vaddr, struct page *page)
 	clear_page(to);
 	clear_bit(PG_dc_clean, &page->flags);
 }
-
+EXPORT_SYMBOL(clear_user_page);
 
 /**********************************************************************
  * Explicit Cache flush request from user space via syscall
arch/arm/boot/compressed/Makefile +2 -0
index ec2327a3796d..1b3a4144646b 100644
@@ -90,6 +90,8 @@ $(addprefix $(obj)/,$(libfdt_objs) atags_to_fdt.o): \
 	$(addprefix $(obj)/,$(libfdt_hdrs))
 
 ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y)
+CFLAGS_REMOVE_atags_to_fdt.o += -Wframe-larger-than=${CONFIG_FRAME_WARN}
+CFLAGS_atags_to_fdt.o += -Wframe-larger-than=1280
 OBJS	+= $(libfdt_objs) atags_to_fdt.o
 endif
 
arch/arm/boot/dts/imx53-ppd.dts +13 -10
index f202396e3f2a..f346673d34ea 100644
@@ -70,6 +70,12 @@
 		clock-frequency = <11289600>;
 	};
 
+	achc_24M: achc-clock {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <24000000>;
+	};
+
 	sgtlsound: sound {
 		compatible = "fsl,imx53-cpuvo-sgtl5000",
 			     "fsl,imx-audio-sgtl5000";
@@ -287,16 +293,13 @@
 		    &gpio4 12 GPIO_ACTIVE_LOW>;
 	status = "okay";
 
-	spidev0: spi@0 {
-		compatible = "ge,achc";
-		reg = <0>;
-		spi-max-frequency = <1000000>;
-	};
-
-	spidev1: spi@1 {
-		compatible = "ge,achc";
-		reg = <1>;
-		spi-max-frequency = <1000000>;
+	spidev0: spi@1 {
+		compatible = "ge,achc", "nxp,kinetis-k20";
+		reg = <1>, <0>;
+		vdd-supply = <&reg_3v3>;
+		vdda-supply = <&reg_3v3>;
+		clocks = <&achc_24M>;
+		reset-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
 	};
 
 	gpioxra0: gpio@2 {
arch/arm/boot/dts/qcom-apq8064.dtsi +3 -3
index 4a99c9255104..d0153bbbdbeb 100644
@@ -1296,9 +1296,9 @@
 				<&mmcc DSI1_BYTE_CLK>,
 				<&mmcc DSI_PIXEL_CLK>,
 				<&mmcc DSI1_ESC_CLK>;
-			clock-names = "iface_clk", "bus_clk", "core_mmss_clk",
-					"src_clk", "byte_clk", "pixel_clk",
-					"core_clk";
+			clock-names = "iface", "bus", "core_mmss",
+					"src", "byte", "pixel",
+					"core";
 
 			assigned-clocks = <&mmcc DSI1_BYTE_SRC>,
 					<&mmcc DSI1_ESC_SRC>,
arch/arm/boot/dts/tegra20-tamonten.dtsi +7 -7
index 20137fc578b1..394a6b4dc69d 100644
@@ -185,8 +185,9 @@
 				nvidia,pins = "ata", "atb", "atc", "atd", "ate",
 					"cdev1", "cdev2", "dap1", "dtb", "gma",
 					"gmb", "gmc", "gmd", "gme", "gpu7",
-					"gpv", "i2cp", "pta", "rm", "slxa",
-					"slxk", "spia", "spib", "uac";
+					"gpv", "i2cp", "irrx", "irtx", "pta",
+					"rm", "slxa", "slxk", "spia", "spib",
+					"uac";
 				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 			};
@@ -211,7 +212,7 @@
 			conf_ddc {
 				nvidia,pins = "ddc", "dta", "dtd", "kbca",
 					"kbcb", "kbcc", "kbcd", "kbce", "kbcf",
-					"sdc";
+					"sdc", "uad", "uca";
 				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 			};
@@ -221,10 +222,9 @@
 					"lvp0", "owc", "sdb";
 				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 			};
-			conf_irrx {
-				nvidia,pins = "irrx", "irtx", "sdd", "spic",
-					"spie", "spih", "uaa", "uab", "uad",
-					"uca", "ucb";
+			conf_sdd {
+				nvidia,pins = "sdd", "spic", "spie", "spih",
+					"uaa", "uab", "ucb";
 				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 			};
arch/arm/kernel/Makefile +5 -1
index 8cad59465af3..8b679e2ca3c3 100644
@@ -17,10 +17,14 @@ CFLAGS_REMOVE_return_address.o = -pg
 # Object file lists.
 
 obj-y		:= elf.o entry-common.o irq.o opcodes.o \
-		   process.o ptrace.o reboot.o return_address.o \
+		   process.o ptrace.o reboot.o \
 		   setup.o signal.o sigreturn_codes.o \
 		   stacktrace.o sys_arm.o time.o traps.o
 
+ifneq ($(CONFIG_ARM_UNWIND),y)
+obj-$(CONFIG_FRAME_POINTER)	+= return_address.o
+endif
+
 obj-$(CONFIG_ATAGS)		+= atags_parse.o
 obj-$(CONFIG_ATAGS_PROC)	+= atags_proc.o
 obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += atags_compat.o
arch/arm/kernel/return_address.c +0 -4
index 36ed35073289..f945742dea44 100644
@@ -10,8 +10,6 @@
  */
 #include <linux/export.h>
 #include <linux/ftrace.h>
-
-#if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND)
 #include <linux/sched.h>
 
 #include <asm/stacktrace.h>
@@ -56,6 +54,4 @@ void *return_address(unsigned int level)
 		return NULL;
 }
 
-#endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) */
-
 EXPORT_SYMBOL_GPL(return_address);
arch/arm/mach-imx/mmdc.c +10 -4
index ae0a61c61a6e..14be73ca107a 100644
@@ -109,6 +109,7 @@ struct mmdc_pmu {
 	struct perf_event *mmdc_events[MMDC_NUM_COUNTERS];
 	struct hlist_node node;
 	struct fsl_mmdc_devtype_data *devtype_data;
+	struct clk *mmdc_ipg_clk;
 };
 
 /*
@@ -474,11 +475,13 @@ static int imx_mmdc_remove(struct platform_device *pdev)
 	cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
 	perf_pmu_unregister(&pmu_mmdc->pmu);
 	iounmap(pmu_mmdc->mmdc_base);
+	clk_disable_unprepare(pmu_mmdc->mmdc_ipg_clk);
 	kfree(pmu_mmdc);
 	return 0;
 }
 
-static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base)
+static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base,
+			      struct clk *mmdc_ipg_clk)
 {
 	struct mmdc_pmu *pmu_mmdc;
 	char *name;
@@ -506,6 +509,7 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
 	}
 
 	mmdc_num = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
+	pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
 	if (mmdc_num == 0)
 		name = "mmdc";
 	else
@@ -541,7 +545,7 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
 
 #else
 #define imx_mmdc_remove NULL
-#define imx_mmdc_perf_init(pdev, mmdc_base) 0
+#define imx_mmdc_perf_init(pdev, mmdc_base, mmdc_ipg_clk) 0
 #endif
 
 static int imx_mmdc_probe(struct platform_device *pdev)
@@ -579,9 +583,11 @@ static int imx_mmdc_probe(struct platform_device *pdev)
 	val &= ~(1 << BP_MMDC_MAPSR_PSD);
 	writel_relaxed(val, reg);
 
-	err = imx_mmdc_perf_init(pdev, mmdc_base);
-	if (err)
+	err = imx_mmdc_perf_init(pdev, mmdc_base, mmdc_ipg_clk);
+	if (err) {
 		iounmap(mmdc_base);
+		clk_disable_unprepare(mmdc_ipg_clk);
+	}
 
 	return err;
 }
arch/arm/net/bpf_jit_32.c +3 -0
index 328ced7bfaf2..79b12e744537 100644
@@ -1578,6 +1578,9 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
 		rn = arm_bpf_get_reg32(src_lo, tmp2[1], ctx);
 		emit_ldx_r(dst, rn, off, ctx, BPF_SIZE(code));
 		break;
+	/* speculation barrier */
+	case BPF_ST | BPF_NOSPEC:
+		break;
 	/* ST: *(size *)(dst + off) = imm */
 	case BPF_ST | BPF_MEM | BPF_W:
 	case BPF_ST | BPF_MEM | BPF_H:
arch/arm64/boot/dts/exynos/exynos7.dtsi +1 -1
index 5c5e57026c27..c607297922fd 100644
@@ -91,7 +91,7 @@
 			#address-cells = <0>;
 			interrupt-controller;
 			reg =	<0x11001000 0x1000>,
-				<0x11002000 0x1000>,
+				<0x11002000 0x2000>,
 				<0x11004000 0x2000>,
 				<0x11006000 0x2000>;
 		};
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts +1 -1
index c13ddee8262b..58acf21d8d33 100644
@@ -28,7 +28,7 @@
 		stdout-path = "serial0";
 	};
 
-	memory {
+	memory@40000000 {
 		device_type = "memory";
 		reg = <0x0 0x40000000 0x0 0x20000000>;
 	};
arch/arm64/include/asm/kernel-pgtable.h +2 -2
index a780f6714b44..74ab40b76ad5 100644
@@ -76,8 +76,8 @@
 #define EARLY_KASLR	(0)
 #endif
 
-#define EARLY_ENTRIES(vstart, vend, shift) (((vend) >> (shift)) \
-					- ((vstart) >> (shift)) + 1 + EARLY_KASLR)
+#define EARLY_ENTRIES(vstart, vend, shift) \
+	((((vend) - 1) >> (shift)) - ((vstart) >> (shift)) + 1 + EARLY_KASLR)
 
 #define EARLY_PGDS(vstart, vend) (EARLY_ENTRIES(vstart, vend, PGDIR_SHIFT))
 
arch/arm64/kernel/fpsimd.c +1 -1
index 19c87b52c001..89ab68cb35bb 100644
@@ -434,7 +434,7 @@ size_t sve_state_size(struct task_struct const *task)
 void sve_alloc(struct task_struct *task)
 {
 	if (task->thread.sve_state) {
-		memset(task->thread.sve_state, 0, sve_state_size(current));
+		memset(task->thread.sve_state, 0, sve_state_size(task));
 		return;
 	}
 
arch/arm64/kernel/head.S +6 -5
index c85ea70b9293..ea7f059dbcb6 100644
@@ -202,7 +202,7 @@ ENDPROC(preserve_boot_args)
  * to be composed of multiple pages. (This effectively scales the end index).
  *
  *	vstart:	virtual address of start of range
- *	vend:	virtual address of end of range
+ *	vend:	virtual address of end of range - we map [vstart, vend]
  *	shift:	shift used to transform virtual address into index
  *	ptrs:	number of entries in page table
  *	istart:	index in table corresponding to vstart
@@ -239,17 +239,18 @@ ENDPROC(preserve_boot_args)
  *
  *	tbl:	location of page table
  *	rtbl:	address to be used for first level page table entry (typically tbl + PAGE_SIZE)
- *	vstart:	start address to map
- *	vend:	end address to map - we map [vstart, vend]
+ *	vstart:	virtual address of start of range
+ *	vend:	virtual address of end of range - we map [vstart, vend - 1]
  *	flags:	flags to use to map last level entries
  *	phys:	physical address corresponding to vstart - physical memory is contiguous
  *	pgds:	the number of pgd entries
  *
  * Temporaries:	istart, iend, tmp, count, sv - these need to be different registers
- * Preserves:	vstart, vend, flags
- * Corrupts:	tbl, rtbl, istart, iend, tmp, count, sv
+ * Preserves:	vstart, flags
+ * Corrupts:	tbl, rtbl, vend, istart, iend, tmp, count, sv
  */
 	.macro map_memory, tbl, rtbl, vstart, vend, flags, phys, pgds, istart, iend, tmp, count, sv
+	sub \vend, \vend, #1
 	add \rtbl, \tbl, #PAGE_SIZE
 	mov \sv, \rtbl
 	mov \count, #0
arch/arm64/net/bpf_jit_comp.c +13 -0
index 7f0258ed1f5f..6876e8205042 100644
@@ -685,6 +685,19 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
 		}
 		break;
 
+	/* speculation barrier */
+	case BPF_ST | BPF_NOSPEC:
+		/*
+		 * Nothing required here.
+		 *
+		 * In case of arm64, we rely on the firmware mitigation of
+		 * Speculative Store Bypass as controlled via the ssbd kernel
+		 * parameter. Whenever the mitigation is enabled, it works
+		 * for all of the kernel code with no need to provide any
+		 * additional instructions.
+		 */
+		break;
+
 	/* ST: *(size *)(dst + off) = imm */
 	case BPF_ST | BPF_MEM | BPF_W:
 	case BPF_ST | BPF_MEM | BPF_H:
arch/m68k/emu/nfeth.c +2 -2
index e45ce4243aaa..76262dc40e79 100644
@@ -258,8 +258,8 @@ static void __exit nfeth_cleanup(void)
 
 	for (i = 0; i < MAX_UNIT; i++) {
 		if (nfeth_dev[i]) {
-			unregister_netdev(nfeth_dev[0]);
-			free_netdev(nfeth_dev[0]);
+			unregister_netdev(nfeth_dev[i]);
+			free_netdev(nfeth_dev[i]);
 		}
 	}
 	free_irq(nfEtherIRQ, nfeth_interrupt);
arch/mips/mti-malta/malta-dtshim.c +1 -1
index 7859b6e49863..5b5d78a7882a 100644
@@ -26,7 +26,7 @@
 #define  ROCIT_CONFIG_GEN1_MEMMAP_SHIFT	8
 #define  ROCIT_CONFIG_GEN1_MEMMAP_MASK	(0xf << 8)
 
-static unsigned char fdt_buf[16 << 10] __initdata;
+static unsigned char fdt_buf[16 << 10] __initdata __aligned(8);
 
 /* determined physical memory size, not overridden by command line args	 */
 extern unsigned long physical_memsize;
arch/mips/net/ebpf_jit.c +3 -0
index 3832c4628608..947a7172c814 100644
@@ -1282,6 +1282,9 @@ static int build_one_insn(const struct bpf_insn *insn, struct jit_ctx *ctx,
 		}
 		break;
 
+	case BPF_ST | BPF_NOSPEC: /* speculation barrier */
+		break;
+
 	case BPF_ST | BPF_B | BPF_MEM:
 	case BPF_ST | BPF_H | BPF_MEM:
 	case BPF_ST | BPF_W | BPF_MEM:
arch/openrisc/kernel/entry.S +2 -0
index 01b59d2ce174..c2c3ce8a0f84 100644
@@ -551,6 +551,7 @@ EXCEPTION_ENTRY(_external_irq_handler)
 	l.bnf	1f			// ext irq enabled, all ok.
 	l.nop
 
+#ifdef CONFIG_PRINTK
 	l.addi  r1,r1,-0x8
 	l.movhi r3,hi(42f)
 	l.ori	r3,r3,lo(42f)
@@ -564,6 +565,7 @@ EXCEPTION_ENTRY(_external_irq_handler)
 		.string "\n\rESR interrupt bug: in _external_irq_handler (ESR %x)\n\r"
 		.align 4
 	.previous
+#endif
 
 	l.ori	r4,r4,SPR_SR_IEE	// fix the bug
 //	l.sw	PT_SR(r1),r4
arch/parisc/kernel/signal.c +6 -0
index 342073f44d3f..79b05eac2b33 100644
@@ -239,6 +239,12 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
 #endif
 	
 	usp = (regs->gr[30] & ~(0x01UL));
+#ifdef CONFIG_64BIT
+	if (is_compat_task()) {
+		/* The gcc alloca implementation leaves garbage in the upper 32 bits of sp */
+		usp = (compat_uint_t)usp;
+	}
+#endif
 	/*FIXME: frame_size parameter is unused, remove it. */
 	frame = get_sigframe(&ksig->ka, usp, sizeof(*frame));
 
arch/powerpc/boot/crt0.S +0 -3
index 9b9d17437373..0247b8e6cb1b 100644
@@ -49,9 +49,6 @@ p_end:		.long	_end
 p_pstack:	.long	_platform_stack_top
 #endif
 
-	.globl	_zimage_start
-	/* Clang appears to require the .weak directive to be after the symbol
-	 * is defined. See https://bugs.llvm.org/show_bug.cgi?id=38921  */
 	.weak	_zimage_start
 _zimage_start:
 	.globl	_zimage_start_lib
arch/powerpc/kernel/module_64.c +1 -1
index 8661eea78503..4bf81a111179 100644
@@ -719,7 +719,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
 			/*
 			 * If found, replace it with:
 			 *	addis r2, r12, (.TOC.-func)@ha
-			 *	addi r2, r12, (.TOC.-func)@l
+			 *	addi  r2,  r2, (.TOC.-func)@l
 			 */
 			((uint32_t *)location)[0] = 0x3c4c0000 + PPC_HA(value);
 			((uint32_t *)location)[1] = 0x38420000 + PPC_LO(value);
arch/powerpc/kernel/stacktrace.c +1 -0
index 23b5f755e419..dadcc8bab336 100644
@@ -8,6 +8,7 @@
  * Copyright 2018 Nick Piggin, Michael Ellerman, IBM Corp.
  */
 
+#include <linux/delay.h>
 #include <linux/export.h>
 #include <linux/kallsyms.h>
 #include <linux/module.h>
arch/powerpc/net/bpf_jit_comp64.c +6 -0
index 7e3ab477f67f..e7d56ddba43a 100644
@@ -596,6 +596,12 @@ static int bpf_jit_build_body(struct bpf_prog *fp, u32 *image,
 			}
 			break;
 
+		/*
+		 * BPF_ST NOSPEC (speculation barrier)
+		 */
+		case BPF_ST | BPF_NOSPEC:
+			break;
+
 		/*
 		 * BPF_ST(X)
 		 */
arch/powerpc/perf/hv-gpci.c +1 -1
index 43fabb3cae0f..160b86d9d819 100644
@@ -168,7 +168,7 @@ static unsigned long single_gpci_request(u32 req, u32 starting_index,
 	 */
 	count = 0;
 	for (i = offset; i < offset + length; i++)
-		count |= arg->bytes[i] << (i - offset);
+		count |= (u64)(arg->bytes[i]) << ((length - 1 - (i - offset)) * 8);
 
 	*value = count;
 out:
arch/s390/kernel/jump_label.c +1 -1
index 68f415e334a5..10009a0cdb37 100644
@@ -41,7 +41,7 @@ static void jump_label_bug(struct jump_entry *entry, struct insn *expected,
 	unsigned char *ipe = (unsigned char *)expected;
 	unsigned char *ipn = (unsigned char *)new;
 
-	pr_emerg("Jump label code mismatch at %pS [%p]\n", ipc, ipc);
+	pr_emerg("Jump label code mismatch at %pS [%px]\n", ipc, ipc);
 	pr_emerg("Found:    %6ph\n", ipc);
 	pr_emerg("Expected: %6ph\n", ipe);
 	pr_emerg("New:      %6ph\n", ipn);
arch/s390/kvm/interrupt.c +2 -2
index 3515f2b55eb9..dc5ecaea30d7 100644
@@ -318,13 +318,13 @@ static unsigned long deliverable_irqs(struct kvm_vcpu *vcpu)
 static void __set_cpu_idle(struct kvm_vcpu *vcpu)
 {
 	kvm_s390_set_cpuflags(vcpu, CPUSTAT_WAIT);
-	set_bit(vcpu->vcpu_id, vcpu->kvm->arch.float_int.idle_mask);
+	set_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.float_int.idle_mask);
 }
 
 static void __unset_cpu_idle(struct kvm_vcpu *vcpu)
 {
 	kvm_s390_clear_cpuflags(vcpu, CPUSTAT_WAIT);
-	clear_bit(vcpu->vcpu_id, vcpu->kvm->arch.float_int.idle_mask);
+	clear_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.float_int.idle_mask);
 }
 
 static void __reset_intercept_indicators(struct kvm_vcpu *vcpu)
arch/s390/kvm/kvm-s390.h +1 -1
index 981e3ba97461..0a2ffd5378be 100644
@@ -67,7 +67,7 @@ static inline int is_vcpu_stopped(struct kvm_vcpu *vcpu)
 
 static inline int is_vcpu_idle(struct kvm_vcpu *vcpu)
 {
-	return test_bit(vcpu->vcpu_id, vcpu->kvm->arch.float_int.idle_mask);
+	return test_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.float_int.idle_mask);
 }
 
 static inline int kvm_is_ucontrol(struct kvm *kvm)
arch/s390/net/bpf_jit_comp.c +12 -2
index e42354b15e0b..8508c2c0e2a3 100644
@@ -595,8 +595,13 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i
 	case BPF_ALU64 | BPF_SUB | BPF_K: /* dst = dst - imm */
 		if (!imm)
 			break;
-		/* agfi %dst,-imm */
-		EMIT6_IMM(0xc2080000, dst_reg, -imm);
+		if (imm == -0x80000000) {
+			/* algfi %dst,0x80000000 */
+			EMIT6_IMM(0xc20a0000, dst_reg, 0x80000000);
+		} else {
+			/* agfi %dst,-imm */
+			EMIT6_IMM(0xc2080000, dst_reg, -imm);
+		}
 		break;
 	/*
 	 * BPF_MUL
@@ -883,6 +888,11 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i
 			break;
 		}
 		break;
+	/*
+	 * BPF_NOSPEC (speculation barrier)
+	 */
+	case BPF_ST | BPF_NOSPEC:
+		break;
 	/*
 	 * BPF_ST(X)
 	 */
arch/sparc/net/bpf_jit_comp_64.c +3 -0
index ec4da4dc98f1..1bb1e64d4377 100644
@@ -1261,6 +1261,9 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
 		emit(opcode | RS1(src) | rs2 | RD(dst), ctx);
 		break;
 	}
+	/* speculation barrier */
+	case BPF_ST | BPF_NOSPEC:
+		break;
 	/* ST: *(size *)(dst + off) = imm */
 	case BPF_ST | BPF_MEM | BPF_W:
 	case BPF_ST | BPF_MEM | BPF_H:
arch/x86/events/amd/ibs.c +8 -0
index 2410bd4bb48f..2d9e1372b070 100644
@@ -90,6 +90,7 @@ struct perf_ibs {
 	unsigned long			offset_mask[1];
 	int				offset_max;
 	unsigned int			fetch_count_reset_broken : 1;
+	unsigned int			fetch_ignore_if_zero_rip : 1;
 	struct cpu_perf_ibs __percpu	*pcpu;
 
 	struct attribute		**format_attrs;
@@ -674,6 +675,10 @@ static int perf_ibs_handle_irq(struct perf_ibs *perf_ibs, struct pt_regs *iregs)
 	if (check_rip && (ibs_data.regs[2] & IBS_RIP_INVALID)) {
 		regs.flags &= ~PERF_EFLAGS_EXACT;
 	} else {
+		/* Workaround for erratum #1197 */
+		if (perf_ibs->fetch_ignore_if_zero_rip && !(ibs_data.regs[1]))
+			goto out;
+
 		set_linear_ip(&regs, ibs_data.regs[1]);
 		regs.flags |= PERF_EFLAGS_EXACT;
 	}
@@ -767,6 +772,9 @@ static __init void perf_event_ibs_init(void)
 	if (boot_cpu_data.x86 >= 0x16 && boot_cpu_data.x86 <= 0x18)
 		perf_ibs_fetch.fetch_count_reset_broken = 1;
 
+	if (boot_cpu_data.x86 == 0x19 && boot_cpu_data.x86_model < 0x10)
+		perf_ibs_fetch.fetch_ignore_if_zero_rip = 1;
+
 	perf_ibs_pmu_init(&perf_ibs_fetch, "ibs_fetch");
 
 	if (ibs_caps & IBS_CAPS_OPCNT) {
arch/x86/events/intel/pt.c +1 -1
index f03100bc5fd1..849f0ba53a9b 100644
@@ -69,7 +69,7 @@ static struct pt_cap_desc {
 	PT_CAP(topa_multiple_entries,	0, CPUID_ECX, BIT(1)),
 	PT_CAP(single_range_output,	0, CPUID_ECX, BIT(2)),
 	PT_CAP(payloads_lip,		0, CPUID_ECX, BIT(31)),
-	PT_CAP(num_address_ranges,	1, CPUID_EAX, 0x3),
+	PT_CAP(num_address_ranges,	1, CPUID_EAX, 0x7),
 	PT_CAP(mtc_periods,		1, CPUID_EAX, 0xffff0000),
 	PT_CAP(cycle_thresholds,	1, CPUID_EBX, 0xffff),
 	PT_CAP(psb_periods,		1, CPUID_EBX, 0xffff0000),
arch/x86/kernel/cpu/intel_rdt_monitor.c +6 -0
index 6eeb17dfde48..5fee674fe59d 100644
@@ -252,6 +252,12 @@ static u64 __mon_event_count(u32 rmid, struct rmid_read *rr)
 	case QOS_L3_MBM_LOCAL_EVENT_ID:
 		m = &rr->d->mbm_local[rmid];
 		break;
+	default:
+		/*
+		 * Code would never reach here because an invalid
+		 * event id would fail the __rmid_read.
+		 */
+		return RMID_VAL_ERROR;
 	}
 
 	if (rr->first) {
arch/x86/kernel/reboot.c +2 -1
index 6489cc19ed06..b0f3a996df15 100644
@@ -388,10 +388,11 @@ static const struct dmi_system_id reboot_dmi_table[] __initconst = {
 	},
 	{	/* Handle problems with rebooting on the OptiPlex 990. */
 		.callback = set_pci_reboot,
-		.ident = "Dell OptiPlex 990",
+		.ident = "Dell OptiPlex 990 BIOS A0x",
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
 			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"),
+			DMI_MATCH(DMI_BIOS_VERSION, "A0"),
 		},
 	},
 	{	/* Handle problems with rebooting on Dell 300's */
arch/x86/kvm/x86.c +4 -0
index f913127e942a..417abc9ba1ad 100644
@@ -2511,6 +2511,10 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
 			if (!msr_info->host_initiated) {
 				s64 adj = data - vcpu->arch.ia32_tsc_adjust_msr;
 				adjust_tsc_offset_guest(vcpu, adj);
+				/* Before back to guest, tsc_timestamp must be adjusted
+				 * as well, otherwise guest's percpu pvclock time could jump.
+				 */
+				kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu);
 			}
 			vcpu->arch.ia32_tsc_adjust_msr = data;
 		}
arch/x86/mm/init_64.c +3 -3
index 81e85a8dd300..4b25a1ad18ff 100644
@@ -1289,18 +1289,18 @@ int kern_addr_valid(unsigned long addr)
 		return 0;
 
 	p4d = p4d_offset(pgd, addr);
-	if (p4d_none(*p4d))
+	if (!p4d_present(*p4d))
 		return 0;
 
 	pud = pud_offset(p4d, addr);
-	if (pud_none(*pud))
+	if (!pud_present(*pud))
 		return 0;
 
 	if (pud_large(*pud))
 		return pfn_valid(pud_pfn(*pud));
 
 	pmd = pmd_offset(pud, addr);
-	if (pmd_none(*pmd))
+	if (!pmd_present(*pmd))
 		return 0;
 
 	if (pmd_large(*pmd))
arch/x86/net/bpf_jit_comp.c +7 -0
index 924ca27a6139..81c3d4b4c7e2 100644
@@ -731,6 +731,13 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
 			}
 			break;
 
+			/* speculation barrier */
+		case BPF_ST | BPF_NOSPEC:
+			if (boot_cpu_has(X86_FEATURE_XMM2))
+				/* Emit 'lfence' */
+				EMIT3(0x0F, 0xAE, 0xE8);
+			break;
+
 			/* ST: *(u8*)(dst_reg + off) = imm */
 		case BPF_ST | BPF_MEM | BPF_B:
 			if (is_ereg(dst_reg))
arch/x86/net/bpf_jit_comp32.c +6 -0
index adee990abab1..f48300988bc2 100644
@@ -1683,6 +1683,12 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
 			i++;
 			break;
 		}
+		/* speculation barrier */
+		case BPF_ST | BPF_NOSPEC:
+			if (boot_cpu_has(X86_FEATURE_XMM2))
+				/* Emit 'lfence' */
+				EMIT3(0x0F, 0xAE, 0xE8);
+			break;
 		/* ST: *(u8*)(dst_reg + off) = imm */
 		case BPF_ST | BPF_MEM | BPF_H:
 		case BPF_ST | BPF_MEM | BPF_B:
arch/x86/xen/enlighten_pv.c +7 -0
index 1c3e9185934c..7966136352b5 100644
@@ -1187,6 +1187,11 @@ static void __init xen_dom0_set_legacy_features(void)
 	x86_platform.legacy.rtc = 1;
 }
 
+static void __init xen_domu_set_legacy_features(void)
+{
+	x86_platform.legacy.rtc = 0;
+}
+
 /* First C function to be called on Xen boot */
 asmlinkage __visible void __init xen_start_kernel(void)
 {
@@ -1354,6 +1359,8 @@ asmlinkage __visible void __init xen_start_kernel(void)
 		add_preferred_console("xenboot", 0, NULL);
 		if (pci_xen)
 			x86_init.pci.arch_init = pci_xen_init;
+		x86_platform.set_legacy_features =
+				xen_domu_set_legacy_features;
 	} else {
 		const struct dom0_vga_console_info *info =
 			(void *)((char *)xen_start_info +
arch/x86/xen/p2m.c +2 -2
index 82577eec6d0a..f9b31eb6846c 100644
@@ -613,8 +613,8 @@ int xen_alloc_p2m_entry(unsigned long pfn)
 	}
 
 	/* Expanded the p2m? */
-	if (pfn > xen_p2m_last_pfn) {
-		xen_p2m_last_pfn = pfn;
+	if (pfn >= xen_p2m_last_pfn) {
+		xen_p2m_last_pfn = ALIGN(pfn + 1, P2M_PER_PAGE);
 		HYPERVISOR_shared_info->arch.max_pfn = xen_p2m_last_pfn;
 	}
 
arch/xtensa/Kconfig +1 -1
index b9ad83a0ee5d..d9b0709d6c9c 100644
@@ -25,7 +25,7 @@ config XTENSA
 	select HAVE_DMA_CONTIGUOUS
 	select HAVE_EXIT_THREAD
 	select HAVE_FUNCTION_TRACER
-	select HAVE_FUTEX_CMPXCHG if !MMU
+	select HAVE_FUTEX_CMPXCHG if !MMU && FUTEX
 	select HAVE_HW_BREAKPOINT if PERF_EVENTS
 	select HAVE_IRQ_TIME_ACCOUNTING
 	select HAVE_MEMBLOCK
arch/xtensa/platforms/iss/console.c +14 -3
index af81a62faba6..e7faea3d73d3 100644
@@ -168,9 +168,13 @@ static const struct tty_operations serial_ops = {
 
 int __init rs_init(void)
 {
-	tty_port_init(&serial_port);
+	int ret;
 
 	serial_driver = alloc_tty_driver(SERIAL_MAX_NUM_LINES);
+	if (!serial_driver)
+		return -ENOMEM;
+
+	tty_port_init(&serial_port);
 
 	pr_info("%s %s\n", serial_name, serial_version);
 
@@ -190,8 +194,15 @@ int __init rs_init(void)
 	tty_set_operations(serial_driver, &serial_ops);
 	tty_port_link_device(&serial_port, serial_driver, 0);
 
-	if (tty_register_driver(serial_driver))
-		panic("Couldn't register serial driver\n");
+	ret = tty_register_driver(serial_driver);
+	if (ret) {
+		pr_err("Couldn't register serial driver\n");
+		tty_driver_kref_put(serial_driver);
+		tty_port_destroy(&serial_port);
+
+		return ret;
+	}
+
 	return 0;
 }
 
block/bfq-iosched.c +14 -4
index 5b3e5483c657..c8c94e8e0f72 100644
@@ -2137,6 +2137,15 @@ bfq_setup_merge(struct bfq_queue *bfqq, struct bfq_queue *new_bfqq)
 	 * are likely to increase the throughput.
 	 */
 	bfqq->new_bfqq = new_bfqq;
+	/*
+	 * The above assignment schedules the following redirections:
+	 * each time some I/O for bfqq arrives, the process that
+	 * generated that I/O is disassociated from bfqq and
+	 * associated with new_bfqq. Here we increases new_bfqq->ref
+	 * in advance, adding the number of processes that are
+	 * expected to be associated with new_bfqq as they happen to
+	 * issue I/O.
+	 */
 	new_bfqq->ref += process_refs;
 	return new_bfqq;
 }
@@ -2196,6 +2205,10 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 {
 	struct bfq_queue *in_service_bfqq, *new_bfqq;
 
+	/* if a merge has already been setup, then proceed with that first */
+	if (bfqq->new_bfqq)
+		return bfqq->new_bfqq;
+
 	/*
 	 * Prevent bfqq from being merged if it has been created too
 	 * long ago. The idea is that true cooperating processes, and
@@ -2210,9 +2223,6 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 	if (bfq_too_late_for_merging(bfqq))
 		return NULL;
 
-	if (bfqq->new_bfqq)
-		return bfqq->new_bfqq;
-
 	if (!io_struct || unlikely(bfqq == &bfqd->oom_bfqq))
 		return NULL;
 
@@ -4241,7 +4251,7 @@ bfq_set_next_ioprio_data(struct bfq_queue *bfqq, struct bfq_io_cq *bic)
 	if (bfqq->new_ioprio >= IOPRIO_BE_NR) {
 		pr_crit("bfq_set_next_ioprio_data: new_ioprio %d\n",
 			bfqq->new_ioprio);
-		bfqq->new_ioprio = IOPRIO_BE_NR;
+		bfqq->new_ioprio = IOPRIO_BE_NR - 1;
 	}
 
 	bfqq->entity.new_weight = bfq_ioprio_to_weight(bfqq->new_ioprio);
block/blk-zoned.c +0 -6
index c461cf63f1f4..d33e89d28dbe 100644
@@ -319,9 +319,6 @@ int blkdev_report_zones_ioctl(struct block_device *bdev, fmode_t mode,
 	if (!blk_queue_is_zoned(q))
 		return -ENOTTY;
 
-	if (!capable(CAP_SYS_ADMIN))
-		return -EACCES;
-
 	if (copy_from_user(&rep, argp, sizeof(struct blk_zone_report)))
 		return -EFAULT;
 
@@ -380,9 +377,6 @@ int blkdev_reset_zones_ioctl(struct block_device *bdev, fmode_t mode,
 	if (!blk_queue_is_zoned(q))
 		return -ENOTTY;
 
-	if (!capable(CAP_SYS_ADMIN))
-		return -EACCES;
-
 	if (!(mode & FMODE_WRITE))
 		return -EBADF;
 
certs/Makefile +8 -0
index 5d0999b9e21b..ca3c71e3a3d9 100644
@@ -46,11 +46,19 @@ endif
 redirect_openssl	= 2>&1
 quiet_redirect_openssl	= 2>&1
 silent_redirect_openssl = 2>/dev/null
+openssl_available       = $(shell openssl help 2>/dev/null && echo yes)
 
 # We do it this way rather than having a boolean option for enabling an
 # external private key, because 'make randconfig' might enable such a
 # boolean option and we unfortunately can't make it depend on !RANDCONFIG.
 ifeq ($(CONFIG_MODULE_SIG_KEY),"certs/signing_key.pem")
+
+ifeq ($(openssl_available),yes)
+X509TEXT=$(shell openssl x509 -in "certs/signing_key.pem" -text 2>/dev/null)
+
+$(if $(findstring rsaEncryption,$(X509TEXT)),,$(shell rm -f "certs/signing_key.pem"))
+endif
+
 $(obj)/signing_key.pem: $(obj)/x509.genkey
 	@$(kecho) "###"
 	@$(kecho) "### Now generating an X.509 key pair to be used for signing modules."
drivers/ata/libata-core.c +5 -1
index db1d86af21b4..b95a4194a68d 100644
@@ -4574,6 +4574,10 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Samsung SSD 850*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
+	{ "Samsung SSD 860*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
+						ATA_HORKAGE_ZERO_AFTER_TRIM, },
+	{ "Samsung SSD 870*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
+						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "FCCT*M500*",			NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 
@@ -6412,7 +6416,7 @@ int ata_host_start(struct ata_host *host)
 			have_stop = 1;
 	}
 
-	if (host->ops->host_stop)
+	if (host->ops && host->ops->host_stop)
 		have_stop = 1;
 
 	if (have_stop) {
drivers/ata/sata_dwc_460ex.c +4 -8
index 6f142aa54f5f..8487048c5ec9 100644
@@ -1253,24 +1253,20 @@ static int sata_dwc_probe(struct platform_device *ofdev)
 	irq = irq_of_parse_and_map(np, 0);
 	if (irq == NO_IRQ) {
 		dev_err(&ofdev->dev, "no SATA DMA irq\n");
-		err = -ENODEV;
-		goto error_out;
+		return -ENODEV;
 	}
 
 #ifdef CONFIG_SATA_DWC_OLD_DMA
 	if (!of_find_property(np, "dmas", NULL)) {
 		err = sata_dwc_dma_init_old(ofdev, hsdev);
 		if (err)
-			goto error_out;
+			return err;
 	}
 #endif
 
 	hsdev->phy = devm_phy_optional_get(hsdev->dev, "sata-phy");
-	if (IS_ERR(hsdev->phy)) {
-		err = PTR_ERR(hsdev->phy);
-		hsdev->phy = NULL;
-		goto error_out;
-	}
+	if (IS_ERR(hsdev->phy))
+		return PTR_ERR(hsdev->phy);
 
 	err = phy_init(hsdev->phy);
 	if (err)
drivers/base/power/trace.c +10 -0
index 1cda505d6a85..9664cce49109 100644
@@ -11,6 +11,7 @@
 #include <linux/export.h>
 #include <linux/rtc.h>
 #include <linux/suspend.h>
+#include <linux/init.h>
 
 #include <linux/mc146818rtc.h>
 
@@ -165,6 +166,9 @@ void generate_pm_trace(const void *tracedata, unsigned int user)
 	const char *file = *(const char **)(tracedata + 2);
 	unsigned int user_hash_value, file_hash_value;
 
+	if (!x86_platform.legacy.rtc)
+		return;
+
 	user_hash_value = user % USERHASH;
 	file_hash_value = hash_string(lineno, file, FILEHASH);
 	set_magic_time(user_hash_value, file_hash_value, dev_hash_value);
@@ -267,6 +271,9 @@ static struct notifier_block pm_trace_nb = {
 
 static int early_resume_init(void)
 {
+	if (!x86_platform.legacy.rtc)
+		return 0;
+
 	hash_value_early_read = read_magic_time();
 	register_pm_notifier(&pm_trace_nb);
 	return 0;
@@ -277,6 +284,9 @@ static int late_resume_init(void)
 	unsigned int val = hash_value_early_read;
 	unsigned int user, file, dev;
 
+	if (!x86_platform.legacy.rtc)
+		return 0;
+
 	user = val % USERHASH;
 	val = val / USERHASH;
 	file = val % FILEHASH;
drivers/base/regmap/regmap.c +1 -1
index e8b3353c18eb..330ab9c85d1b 100644
@@ -1479,7 +1479,7 @@ static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg,
 			if (ret) {
 				dev_err(map->dev,
 					"Error in caching of register: %x ret: %d\n",
-					reg + i, ret);
+					reg + regmap_get_offset(map, i), ret);
 				return ret;
 			}
 		}
drivers/bcma/main.c +3 -3
index fc1f4acdd189..c0f203deaf0b 100644
@@ -236,6 +236,7 @@ EXPORT_SYMBOL(bcma_core_irq);
 
 void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core)
 {
+	device_initialize(&core->dev);
 	core->dev.release = bcma_release_core_dev;
 	core->dev.bus = &bcma_bus_type;
 	dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index);
@@ -299,11 +300,10 @@ static void bcma_register_core(struct bcma_bus *bus, struct bcma_device *core)
 {
 	int err;
 
-	err = device_register(&core->dev);
+	err = device_add(&core->dev);
 	if (err) {
 		bcma_err(bus, "Could not register dev for core 0x%03X\n",
 			 core->id.id);
-		put_device(&core->dev);
 		return;
 	}
 	core->dev_registered = true;
@@ -394,7 +394,7 @@ void bcma_unregister_cores(struct bcma_bus *bus)
 	/* Now noone uses internally-handled cores, we can free them */
 	list_for_each_entry_safe(core, tmp, &bus->cores, list) {
 		list_del(&core->list);
-		kfree(core);
+		put_device(&core->dev);
 	}
 }
 
drivers/block/Kconfig +2 -2
index e101f286ac35..60662771bd46 100644
@@ -242,7 +242,7 @@ config BLK_DEV_LOOP_MIN_COUNT
 	  dynamically allocated with the /dev/loop-control interface.
 
 config BLK_DEV_CRYPTOLOOP
-	tristate "Cryptoloop Support"
+	tristate "Cryptoloop Support (DEPRECATED)"
 	select CRYPTO
 	select CRYPTO_CBC
 	depends on BLK_DEV_LOOP
@@ -254,7 +254,7 @@ config BLK_DEV_CRYPTOLOOP
 	  WARNING: This device is not safe for journaled file systems like
 	  ext3 or Reiserfs. Please use the Device Mapper crypto module
 	  instead, which can be configured to be on-disk compatible with the
-	  cryptoloop device.
+	  cryptoloop device.  cryptoloop support will be removed in Linux 5.16.
 
 source "drivers/block/drbd/Kconfig"
 
drivers/block/cryptoloop.c +2 -0
index 7033a4beda66..1b84105dfe62 100644
@@ -201,6 +201,8 @@ init_cryptoloop(void)
 
 	if (rc)
 		printk(KERN_ERR "cryptoloop: loop_register_transfer failed\n");
+	else
+		pr_warn("the cryptoloop driver has been deprecated and will be removed in in Linux 5.16\n");
 	return rc;
 }
 
drivers/clk/clk.c +5 -5
index 3806fd8fef0b..a9490c8e82a7 100644
@@ -46,11 +46,6 @@ static struct hlist_head *all_lists[] = {
 	NULL,
 };
 
-static struct hlist_head *orphan_list[] = {
-	&clk_orphan_list,
-	NULL,
-};
-
 /***    private data structures    ***/
 
 struct clk_core {
@@ -2629,6 +2624,11 @@ static int inited = 0;
 static DEFINE_MUTEX(clk_debug_lock);
 static HLIST_HEAD(clk_debug_list);
 
+static struct hlist_head *orphan_list[] = {
+	&clk_orphan_list,
+	NULL,
+};
+
 static void clk_summary_show_one(struct seq_file *s, struct clk_core *c,
 				 int level)
 {
drivers/clk/mvebu/kirkwood.c +1 -0
index 890ebf623261..38612cd9092e 100644
@@ -254,6 +254,7 @@ static const char *powersave_parents[] = {
 static const struct clk_muxing_soc_desc kirkwood_mux_desc[] __initconst = {
 	{ "powersave", powersave_parents, ARRAY_SIZE(powersave_parents),
 		11, 1, 0 },
+	{ }
 };
 
 static struct clk *clk_muxing_get_src(
drivers/clocksource/sh_cmt.c +18 -12
index cec90a4c79b3..7a6d4c4c0feb 100644
@@ -576,7 +576,8 @@ static int sh_cmt_start(struct sh_cmt_channel *ch, unsigned long flag)
 	ch->flags |= flag;
 
 	/* setup timeout if no clockevent */
-	if ((flag == FLAG_CLOCKSOURCE) && (!(ch->flags & FLAG_CLOCKEVENT)))
+	if (ch->cmt->num_channels == 1 &&
+	    flag == FLAG_CLOCKSOURCE && (!(ch->flags & FLAG_CLOCKEVENT)))
 		__sh_cmt_set_next(ch, ch->max_match_value);
  out:
 	raw_spin_unlock_irqrestore(&ch->lock, flags);
@@ -612,20 +613,25 @@ static struct sh_cmt_channel *cs_to_sh_cmt(struct clocksource *cs)
 static u64 sh_cmt_clocksource_read(struct clocksource *cs)
 {
 	struct sh_cmt_channel *ch = cs_to_sh_cmt(cs);
-	unsigned long flags;
 	u32 has_wrapped;
-	u64 value;
-	u32 raw;
 
-	raw_spin_lock_irqsave(&ch->lock, flags);
-	value = ch->total_cycles;
-	raw = sh_cmt_get_counter(ch, &has_wrapped);
+	if (ch->cmt->num_channels == 1) {
+		unsigned long flags;
+		u64 value;
+		u32 raw;
 
-	if (unlikely(has_wrapped))
-		raw += ch->match_value + 1;
-	raw_spin_unlock_irqrestore(&ch->lock, flags);
+		raw_spin_lock_irqsave(&ch->lock, flags);
+		value = ch->total_cycles;
+		raw = sh_cmt_get_counter(ch, &has_wrapped);
+
+		if (unlikely(has_wrapped))
+			raw += ch->match_value + 1;
+		raw_spin_unlock_irqrestore(&ch->lock, flags);
+
+		return value + raw;
+	}
 
-	return value + raw;
+	return sh_cmt_get_counter(ch, &has_wrapped);
 }
 
 static int sh_cmt_clocksource_enable(struct clocksource *cs)
@@ -688,7 +694,7 @@ static int sh_cmt_register_clocksource(struct sh_cmt_channel *ch,
 	cs->disable = sh_cmt_clocksource_disable;
 	cs->suspend = sh_cmt_clocksource_suspend;
 	cs->resume = sh_cmt_clocksource_resume;
-	cs->mask = CLOCKSOURCE_MASK(sizeof(u64) * 8);
+	cs->mask = CLOCKSOURCE_MASK(ch->cmt->info->width);
 	cs->flags = CLOCK_SOURCE_IS_CONTINUOUS;
 
 	dev_info(&ch->cmt->pdev->dev, "ch%u: used as clock source\n",
drivers/cpufreq/powernv-cpufreq.c +14 -2
index 5da985604692..3ebadabf5411 100644
@@ -46,6 +46,7 @@
 #define MAX_PSTATE_SHIFT	32
 #define LPSTATE_SHIFT		48
 #define GPSTATE_SHIFT		56
+#define MAX_NR_CHIPS		32
 
 #define MAX_RAMP_DOWN_TIME				5120
 /*
@@ -1051,12 +1052,20 @@ static int init_chip_info(void)
 	unsigned int *chip;
 	unsigned int cpu, i;
 	unsigned int prev_chip_id = UINT_MAX;
+	cpumask_t *chip_cpu_mask;
 	int ret = 0;
 
 	chip = kcalloc(num_possible_cpus(), sizeof(*chip), GFP_KERNEL);
 	if (!chip)
 		return -ENOMEM;
 
+	/* Allocate a chip cpu mask large enough to fit mask for all chips */
+	chip_cpu_mask = kcalloc(MAX_NR_CHIPS, sizeof(cpumask_t), GFP_KERNEL);
+	if (!chip_cpu_mask) {
+		ret = -ENOMEM;
+		goto free_and_return;
+	}
+
 	for_each_possible_cpu(cpu) {
 		unsigned int id = cpu_to_chip_id(cpu);
 
@@ -1064,22 +1073,25 @@ static int init_chip_info(void)
 			prev_chip_id = id;
 			chip[nr_chips++] = id;
 		}
+		cpumask_set_cpu(cpu, &chip_cpu_mask[nr_chips-1]);
 	}
 
 	chips = kcalloc(nr_chips, sizeof(struct chip), GFP_KERNEL);
 	if (!chips) {
 		ret = -ENOMEM;
-		goto free_and_return;
+		goto out_free_chip_cpu_mask;
 	}
 
 	for (i = 0; i < nr_chips; i++) {
 		chips[i].id = chip[i];
-		cpumask_copy(&chips[i].mask, cpumask_of_node(chip[i]));
+		cpumask_copy(&chips[i].mask, &chip_cpu_mask[i]);
 		INIT_WORK(&chips[i].throttle, powernv_cpufreq_work_fn);
 		for_each_cpu(cpu, &chips[i].mask)
 			per_cpu(chip_info, cpu) =  &chips[i];
 	}
 
+out_free_chip_cpu_mask:
+	kfree(chip_cpu_mask);
 free_and_return:
 	kfree(chip);
 	return ret;
drivers/crypto/mxs-dcp.c +44 -37

161 lines not on this page · raw message

drivers/crypto/omap-sham.c +1 -1
index 4d31ef472436..180f2f61b8fb 100644
@@ -1739,7 +1739,7 @@ static void omap_sham_done_task(unsigned long data)
 		if (test_and_clear_bit(FLAGS_OUTPUT_READY, &dd->flags))
 			goto finish;
 	} else if (test_bit(FLAGS_DMA_READY, &dd->flags)) {
-		if (test_and_clear_bit(FLAGS_DMA_ACTIVE, &dd->flags)) {
+		if (test_bit(FLAGS_DMA_ACTIVE, &dd->flags)) {
 			omap_sham_update_dma_stop(dd);
 			if (dd->err) {
 				err = dd->err;
drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c +2 -2
index d2d0ae445fd8..7c7d49a8a403 100644
@@ -123,10 +123,10 @@ void adf_init_hw_data_c3xxxiov(struct adf_hw_device_data *hw_data)
 	hw_data->enable_error_correction = adf_vf_void_noop;
 	hw_data->init_admin_comms = adf_vf_int_noop;
 	hw_data->exit_admin_comms = adf_vf_void_noop;
-	hw_data->send_admin_init = adf_vf2pf_init;
+	hw_data->send_admin_init = adf_vf2pf_notify_init;
 	hw_data->init_arb = adf_vf_int_noop;
 	hw_data->exit_arb = adf_vf_void_noop;
-	hw_data->disable_iov = adf_vf2pf_shutdown;
+	hw_data->disable_iov = adf_vf2pf_notify_shutdown;
 	hw_data->get_accel_mask = get_accel_mask;
 	hw_data->get_ae_mask = get_ae_mask;
 	hw_data->get_num_accels = get_num_accels;
drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c +2 -2
index 38e4bc04f407..90e8a7564756 100644
@@ -123,10 +123,10 @@ void adf_init_hw_data_c62xiov(struct adf_hw_device_data *hw_data)
 	hw_data->enable_error_correction = adf_vf_void_noop;
 	hw_data->init_admin_comms = adf_vf_int_noop;
 	hw_data->exit_admin_comms = adf_vf_void_noop;
-	hw_data->send_admin_init = adf_vf2pf_init;
+	hw_data->send_admin_init = adf_vf2pf_notify_init;
 	hw_data->init_arb = adf_vf_int_noop;
 	hw_data->exit_arb = adf_vf_void_noop;
-	hw_data->disable_iov = adf_vf2pf_shutdown;
+	hw_data->disable_iov = adf_vf2pf_notify_shutdown;
 	hw_data->get_accel_mask = get_accel_mask;
 	hw_data->get_ae_mask = get_ae_mask;
 	hw_data->get_num_accels = get_num_accels;
drivers/crypto/qat/qat_common/adf_common_drv.h +4 -4
index d78f8d5c89c3..289dd7e48d4a 100644
@@ -239,8 +239,8 @@ void adf_enable_vf2pf_interrupts(struct adf_accel_dev *accel_dev,
 void adf_enable_pf2vf_interrupts(struct adf_accel_dev *accel_dev);
 void adf_disable_pf2vf_interrupts(struct adf_accel_dev *accel_dev);
 
-int adf_vf2pf_init(struct adf_accel_dev *accel_dev);
-void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev);
+int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev);
+void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev);
 int adf_init_pf_wq(void);
 void adf_exit_pf_wq(void);
 int adf_init_vf_wq(void);
@@ -263,12 +263,12 @@ static inline void adf_disable_pf2vf_interrupts(struct adf_accel_dev *accel_dev)
 {
 }
 
-static inline int adf_vf2pf_init(struct adf_accel_dev *accel_dev)
+static inline int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev)
 {
 	return 0;
 }
 
-static inline void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev)
+static inline void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev)
 {
 }
 
drivers/crypto/qat/qat_common/adf_init.c +3 -2
index 26556c713049..7a7d43c47534 100644
@@ -105,6 +105,7 @@ int adf_dev_init(struct adf_accel_dev *accel_dev)
 	struct service_hndl *service;
 	struct list_head *list_itr;
 	struct adf_hw_device_data *hw_data = accel_dev->hw_device;
+	int ret;
 
 	if (!hw_data) {
 		dev_err(&GET_DEV(accel_dev),
@@ -171,9 +172,9 @@ int adf_dev_init(struct adf_accel_dev *accel_dev)
 	}
 
 	hw_data->enable_error_correction(accel_dev);
-	hw_data->enable_vf2pf_comms(accel_dev);
+	ret = hw_data->enable_vf2pf_comms(accel_dev);
 
-	return 0;
+	return ret;
 }
 EXPORT_SYMBOL_GPL(adf_dev_init);
 
drivers/crypto/qat/qat_common/adf_isr.c +4 -3
index 4898ef41fd9f..7d319c5c071c 100644
@@ -59,6 +59,8 @@
 #include "adf_transport_access_macros.h"
 #include "adf_transport_internal.h"
 
+#define ADF_MAX_NUM_VFS	32
+
 static int adf_enable_msix(struct adf_accel_dev *accel_dev)
 {
 	struct adf_accel_pci *pci_dev_info = &accel_dev->accel_pci_dev;
@@ -111,7 +113,7 @@ static irqreturn_t adf_msix_isr_ae(int irq, void *dev_ptr)
 		struct adf_bar *pmisc =
 			&GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)];
 		void __iomem *pmisc_bar_addr = pmisc->virt_addr;
-		u32 vf_mask;
+		unsigned long vf_mask;
 
 		/* Get the interrupt sources triggered by VFs */
 		vf_mask = ((ADF_CSR_RD(pmisc_bar_addr, ADF_ERRSOU5) &
@@ -132,8 +134,7 @@ static irqreturn_t adf_msix_isr_ae(int irq, void *dev_ptr)
 			 * unless the VF is malicious and is attempting to
 			 * flood the host OS with VF2PF interrupts.
 			 */
-			for_each_set_bit(i, (const unsigned long *)&vf_mask,
-					 (sizeof(vf_mask) * BITS_PER_BYTE)) {
+			for_each_set_bit(i, &vf_mask, ADF_MAX_NUM_VFS) {
 				vf_info = accel_dev->pf.vf_info + i;
 
 				if (!__ratelimit(&vf_info->vf2pf_ratelimit)) {
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c +2 -1
index b3875fdf6cd7..c64481160b71 100644
@@ -231,7 +231,6 @@ int adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(adf_iov_putmsg);
 
 void adf_vf2pf_req_hndl(struct adf_accel_vf_info *vf_info)
 {
@@ -361,6 +360,8 @@ static int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev)
 	msg |= ADF_PFVF_COMPATIBILITY_VERSION << ADF_VF2PF_COMPAT_VER_REQ_SHIFT;
 	BUILD_BUG_ON(ADF_PFVF_COMPATIBILITY_VERSION > 255);
 
+	reinit_completion(&accel_dev->vf.iov_msg_completion);
+
 	/* Send request from VF to PF */
 	ret = adf_iov_putmsg(accel_dev, msg, 0);
 	if (ret) {
drivers/crypto/qat/qat_common/adf_vf2pf_msg.c +6 -6
index cd5f37dffe8a..1830194567e8 100644
@@ -49,14 +49,14 @@
 #include "adf_pf2vf_msg.h"
 
 /**
- * adf_vf2pf_init() - send init msg to PF
+ * adf_vf2pf_notify_init() - send init msg to PF
  * @accel_dev:  Pointer to acceleration VF device.
  *
  * Function sends an init messge from the VF to a PF
  *
  * Return: 0 on success, error code otherwise.
  */
-int adf_vf2pf_init(struct adf_accel_dev *accel_dev)
+int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev)
 {
 	u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM |
 		(ADF_VF2PF_MSGTYPE_INIT << ADF_VF2PF_MSGTYPE_SHIFT));
@@ -69,17 +69,17 @@ int adf_vf2pf_init(struct adf_accel_dev *accel_dev)
 	set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
 	return 0;
 }
-EXPORT_SYMBOL_GPL(adf_vf2pf_init);
+EXPORT_SYMBOL_GPL(adf_vf2pf_notify_init);
 
 /**
- * adf_vf2pf_shutdown() - send shutdown msg to PF
+ * adf_vf2pf_notify_shutdown() - send shutdown msg to PF
  * @accel_dev:  Pointer to acceleration VF device.
  *
  * Function sends a shutdown messge from the VF to a PF
  *
  * Return: void
  */
-void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev)
+void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev)
 {
 	u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM |
 	    (ADF_VF2PF_MSGTYPE_SHUTDOWN << ADF_VF2PF_MSGTYPE_SHIFT));
@@ -89,4 +89,4 @@ void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev)
 			dev_err(&GET_DEV(accel_dev),
 				"Failed to send Shutdown event to PF\n");
 }
-EXPORT_SYMBOL_GPL(adf_vf2pf_shutdown);
+EXPORT_SYMBOL_GPL(adf_vf2pf_notify_shutdown);
drivers/crypto/qat/qat_common/adf_vf_isr.c +4 -3
index df9a1f35b832..ef90902c8200 100644
@@ -203,6 +203,7 @@ static irqreturn_t adf_isr(int irq, void *privdata)
 	struct adf_bar *pmisc =
 			&GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)];
 	void __iomem *pmisc_bar_addr = pmisc->virt_addr;
+	bool handled = false;
 	u32 v_int;
 
 	/* Read VF INT source CSR to determine the source of VF interrupt */
@@ -215,7 +216,7 @@ static irqreturn_t adf_isr(int irq, void *privdata)
 
 		/* Schedule tasklet to handle interrupt BH */
 		tasklet_hi_schedule(&accel_dev->vf.pf2vf_bh_tasklet);
-		return IRQ_HANDLED;
+		handled = true;
 	}
 
 	/* Check bundle interrupt */
@@ -227,10 +228,10 @@ static irqreturn_t adf_isr(int irq, void *privdata)
 		WRITE_CSR_INT_FLAG_AND_COL(bank->csr_addr, bank->bank_number,
 					   0);
 		tasklet_hi_schedule(&bank->resp_handler);
-		return IRQ_HANDLED;
+		handled = true;
 	}
 
-	return IRQ_NONE;
+	return handled ? IRQ_HANDLED : IRQ_NONE;
 }
 
 static int adf_request_msi_irq(struct adf_accel_dev *accel_dev)
drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c +2 -2
index a3b4dd8099a7..3a8361c83f0b 100644
@@ -123,10 +123,10 @@ void adf_init_hw_data_dh895xcciov(struct adf_hw_device_data *hw_data)
 	hw_data->enable_error_correction = adf_vf_void_noop;
 	hw_data->init_admin_comms = adf_vf_int_noop;
 	hw_data->exit_admin_comms = adf_vf_void_noop;
-	hw_data->send_admin_init = adf_vf2pf_init;
+	hw_data->send_admin_init = adf_vf2pf_notify_init;
 	hw_data->init_arb = adf_vf_int_noop;
 	hw_data->exit_arb = adf_vf_void_noop;
-	hw_data->disable_iov = adf_vf2pf_shutdown;
+	hw_data->disable_iov = adf_vf2pf_notify_shutdown;
 	hw_data->get_accel_mask = get_accel_mask;
 	hw_data->get_ae_mask = get_ae_mask;
 	hw_data->get_num_accels = get_num_accels;
drivers/crypto/talitos.c +4 -0
index 7a55baa861e5..07e1a286ee43 100644
@@ -853,7 +853,11 @@ static void talitos_unregister_rng(struct device *dev)
  * HMAC_SNOOP_NO_AFEA (HSNA) instead of type IPSEC_ESP
  */
 #define TALITOS_CRA_PRIORITY_AEAD_HSNA	(TALITOS_CRA_PRIORITY - 1)
+#ifdef CONFIG_CRYPTO_DEV_TALITOS_SEC2
 #define TALITOS_MAX_KEY_SIZE		(AES_MAX_KEY_SIZE + SHA512_BLOCK_SIZE)
+#else
+#define TALITOS_MAX_KEY_SIZE		(AES_MAX_KEY_SIZE + SHA256_BLOCK_SIZE)
+#endif
 #define TALITOS_MAX_IV_LENGTH		16 /* max of AES_BLOCK_SIZE, DES3_EDE_BLOCK_SIZE */
 
 struct talitos_ctx {
drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c +1 -1
index f2739995c335..199eccee0b0b 100644
@@ -338,7 +338,7 @@ static void amdgpu_i2c_put_byte(struct amdgpu_i2c_chan *i2c_bus,
 void
 amdgpu_i2c_router_select_ddc_port(const struct amdgpu_connector *amdgpu_connector)
 {
-	u8 val;
+	u8 val = 0;
 
 	if (!amdgpu_connector->router.ddc_valid)
 		return;
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +1 -1
index b14ce112703f..e25952d516e2 100644
@@ -216,7 +216,7 @@ void amdgpu_bo_placement_from_domain(struct amdgpu_bo *abo, u32 domain)
 		c++;
 	}
 
-	BUG_ON(c >= AMDGPU_BO_MAX_PLACEMENTS);
+	BUG_ON(c > AMDGPU_BO_MAX_PLACEMENTS);
 
 	placement->num_placement = c;
 	placement->placement = places;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +8 -8
index 0d9e410ca01e..dbfe5623997d 100644
@@ -92,29 +92,29 @@ static ssize_t dp_link_settings_read(struct file *f, char __user *buf,
 
 	rd_buf_ptr = rd_buf;
 
-	str_len = strlen("Current:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Current:  %d  %d  %d  ",
+	str_len = strlen("Current:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Current:  %d  0x%x  %d  ",
 			link->cur_link_settings.lane_count,
 			link->cur_link_settings.link_rate,
 			link->cur_link_settings.link_spread);
 	rd_buf_ptr += str_len;
 
-	str_len = strlen("Verified:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Verified:  %d  %d  %d  ",
+	str_len = strlen("Verified:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Verified:  %d  0x%x  %d  ",
 			link->verified_link_cap.lane_count,
 			link->verified_link_cap.link_rate,
 			link->verified_link_cap.link_spread);
 	rd_buf_ptr += str_len;
 
-	str_len = strlen("Reported:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Reported:  %d  %d  %d  ",
+	str_len = strlen("Reported:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Reported:  %d  0x%x  %d  ",
 			link->reported_link_cap.lane_count,
 			link->reported_link_cap.link_rate,
 			link->reported_link_cap.link_spread);
 	rd_buf_ptr += str_len;
 
-	str_len = strlen("Preferred:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Preferred:  %d  %d  %d\n",
+	str_len = strlen("Preferred:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Preferred:  %d  0x%x  %d\n",
 			link->preferred_link_setting.lane_count,
 			link->preferred_link_setting.link_rate,
 			link->preferred_link_setting.link_spread);
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c +6 -4
index 79bafea66354..a40ea5c68572 100644
@@ -296,10 +296,12 @@ static void dpu_hw_ctl_clear_all_blendstages(struct dpu_hw_ctl *ctx)
 	int i;
 
 	for (i = 0; i < ctx->mixer_count; i++) {
-		DPU_REG_WRITE(c, CTL_LAYER(LM_0 + i), 0);
-		DPU_REG_WRITE(c, CTL_LAYER_EXT(LM_0 + i), 0);
-		DPU_REG_WRITE(c, CTL_LAYER_EXT2(LM_0 + i), 0);
-		DPU_REG_WRITE(c, CTL_LAYER_EXT3(LM_0 + i), 0);
+		enum dpu_lm mixer_id = ctx->mixer_hw_caps[i].id;
+
+		DPU_REG_WRITE(c, CTL_LAYER(mixer_id), 0);
+		DPU_REG_WRITE(c, CTL_LAYER_EXT(mixer_id), 0);
+		DPU_REG_WRITE(c, CTL_LAYER_EXT2(mixer_id), 0);
+		DPU_REG_WRITE(c, CTL_LAYER_EXT3(mixer_id), 0);
 	}
 }
 
drivers/gpu/drm/msm/dsi/dsi.c +3 -3
index ff8164cc6738..822cef472a7e 100644
@@ -34,8 +34,10 @@ static int dsi_get_phy(struct msm_dsi *msm_dsi)
 	}
 
 	phy_pdev = of_find_device_by_node(phy_node);
-	if (phy_pdev)
+	if (phy_pdev) {
 		msm_dsi->phy = platform_get_drvdata(phy_pdev);
+		msm_dsi->phy_dev = &phy_pdev->dev;
+	}
 
 	of_node_put(phy_node);
 
@@ -44,8 +46,6 @@ static int dsi_get_phy(struct msm_dsi *msm_dsi)
 		return -EPROBE_DEFER;
 	}
 
-	msm_dsi->phy_dev = get_device(&phy_pdev->dev);
-
 	return 0;
 }
 
drivers/gpu/ipu-v3/ipu-cpmem.c +15 -15
index a9d2501500a1..170371770dd4 100644
@@ -545,21 +545,21 @@ static const struct ipu_rgb def_bgra_16 = {
 	.bits_per_pixel = 16,
 };
 
-#define Y_OFFSET(pix, x, y)	((x) + pix->width * (y))
-#define U_OFFSET(pix, x, y)	((pix->width * pix->height) +		\
-				 (pix->width * ((y) / 2) / 2) + (x) / 2)
-#define V_OFFSET(pix, x, y)	((pix->width * pix->height) +		\
-				 (pix->width * pix->height / 4) +	\
-				 (pix->width * ((y) / 2) / 2) + (x) / 2)
-#define U2_OFFSET(pix, x, y)	((pix->width * pix->height) +		\
-				 (pix->width * (y) / 2) + (x) / 2)
-#define V2_OFFSET(pix, x, y)	((pix->width * pix->height) +		\
-				 (pix->width * pix->height / 2) +	\
-				 (pix->width * (y) / 2) + (x) / 2)
-#define UV_OFFSET(pix, x, y)	((pix->width * pix->height) +	\
-				 (pix->width * ((y) / 2)) + (x))
-#define UV2_OFFSET(pix, x, y)	((pix->width * pix->height) +	\
-				 (pix->width * y) + (x))
+#define Y_OFFSET(pix, x, y)	((x) + pix->bytesperline * (y))
+#define U_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * ((y) / 2) / 2) + (x) / 2)
+#define V_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * pix->height / 4) + \
+				 (pix->bytesperline * ((y) / 2) / 2) + (x) / 2)
+#define U2_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * (y) / 2) + (x) / 2)
+#define V2_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * pix->height / 2) + \
+				 (pix->bytesperline * (y) / 2) + (x) / 2)
+#define UV_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * ((y) / 2)) + (x))
+#define UV2_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * y) + (x))
 
 #define NUM_ALPHA_CHANNELS	7
 
drivers/hid/hid-input.c +0 -2
index 4dd151b2924e..d56ef395eb69 100644
@@ -427,8 +427,6 @@ static int hidinput_get_battery_property(struct power_supply *psy,
 
 		if (dev->battery_status == HID_BATTERY_UNKNOWN)
 			val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
-		else if (dev->battery_capacity == 100)
-			val->intval = POWER_SUPPLY_STATUS_FULL;
 		else
 			val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
 		break;
drivers/i2c/busses/i2c-highlander.c +1 -1
index ff340d7ae2e5..6a880c262380 100644
@@ -379,7 +379,7 @@ static int highlander_i2c_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, dev);
 
 	dev->irq = platform_get_irq(pdev, 0);
-	if (iic_force_poll)
+	if (dev->irq < 0 || iic_force_poll)
 		dev->irq = 0;
 
 	if (dev->irq) {
drivers/i2c/busses/i2c-iop3xx.c +2 -4
index 85cbe4b55578..d4fe7ccccb22 100644
@@ -456,16 +456,14 @@ iop3xx_i2c_probe(struct platform_device *pdev)
 
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0) {
-		ret = -ENXIO;
+		ret = irq;
 		goto unmap;
 	}
 	ret = request_irq(irq, iop3xx_i2c_irq_handler, 0,
 				pdev->name, adapter_data);
 
-	if (ret) {
-		ret = -EIO;
+	if (ret)
 		goto unmap;
-	}
 
 	memcpy(new_adapter->name, pdev->name, strlen(pdev->name));
 	new_adapter->owner = THIS_MODULE;
drivers/i2c/busses/i2c-mt65xx.c +1 -1
index 2bb4d20ead32..e09b065a6aff 100644
@@ -804,7 +804,7 @@ static int mtk_i2c_probe(struct platform_device *pdev)
 		return PTR_ERR(i2c->pdmabase);
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0)
+	if (irq < 0)
 		return irq;
 
 	init_completion(&i2c->msg_complete);
drivers/i2c/busses/i2c-s3c2410.c +1 -1
index d3603e261a84..4c6036920388 100644
@@ -1179,7 +1179,7 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
 	 */
 	if (!(i2c->quirks & QUIRK_POLL)) {
 		i2c->irq = ret = platform_get_irq(pdev, 0);
-		if (ret <= 0) {
+		if (ret < 0) {
 			dev_err(&pdev->dev, "cannot find IRQ\n");
 			clk_unprepare(i2c->clk);
 			return ret;
drivers/iio/dac/ad5624r_spi.c +17 -1
index 13fdb4dfe356..cc3a24c43e57 100644
@@ -230,7 +230,7 @@ static int ad5624r_probe(struct spi_device *spi)
 	if (!indio_dev)
 		return -ENOMEM;
 	st = iio_priv(indio_dev);
-	st->reg = devm_regulator_get(&spi->dev, "vcc");
+	st->reg = devm_regulator_get_optional(&spi->dev, "vref");
 	if (!IS_ERR(st->reg)) {
 		ret = regulator_enable(st->reg);
 		if (ret)
@@ -241,6 +241,22 @@ static int ad5624r_probe(struct spi_device *spi)
 			goto error_disable_reg;
 
 		voltage_uv = ret;
+	} else {
+		if (PTR_ERR(st->reg) != -ENODEV)
+			return PTR_ERR(st->reg);
+		/* Backwards compatibility. This naming is not correct */
+		st->reg = devm_regulator_get_optional(&spi->dev, "vcc");
+		if (!IS_ERR(st->reg)) {
+			ret = regulator_enable(st->reg);
+			if (ret)
+				return ret;
+
+			ret = regulator_get_voltage(st->reg);
+			if (ret < 0)
+				goto error_disable_reg;
+
+			voltage_uv = ret;
+		}
 	}
 
 	spi_set_drvdata(spi, indio_dev);
drivers/infiniband/core/iwcm.c +12 -7
index 99dd8452724d..57aec656ab7f 100644
@@ -1173,29 +1173,34 @@ static int __init iw_cm_init(void)
 
 	ret = iwpm_init(RDMA_NL_IWCM);
 	if (ret)
-		pr_err("iw_cm: couldn't init iwpm\n");
-	else
-		rdma_nl_register(RDMA_NL_IWCM, iwcm_nl_cb_table);
+		return ret;
+
 	iwcm_wq = alloc_ordered_workqueue("iw_cm_wq", 0);
 	if (!iwcm_wq)
-		return -ENOMEM;
+		goto err_alloc;
 
 	iwcm_ctl_table_hdr = register_net_sysctl(&init_net, "net/iw_cm",
 						 iwcm_ctl_table);
 	if (!iwcm_ctl_table_hdr) {
 		pr_err("iw_cm: couldn't register sysctl paths\n");
-		destroy_workqueue(iwcm_wq);
-		return -ENOMEM;
+		goto err_sysctl;
 	}
 
+	rdma_nl_register(RDMA_NL_IWCM, iwcm_nl_cb_table);
 	return 0;
+
+err_sysctl:
+	destroy_workqueue(iwcm_wq);
+err_alloc:
+	iwpm_exit(RDMA_NL_IWCM);
+	return -ENOMEM;
 }
 
 static void __exit iw_cm_cleanup(void)
 {
+	rdma_nl_unregister(RDMA_NL_IWCM);
 	unregister_net_sysctl_table(iwcm_ctl_table_hdr);
 	destroy_workqueue(iwcm_wq);
-	rdma_nl_unregister(RDMA_NL_IWCM);
 	iwpm_exit(RDMA_NL_IWCM);
 }
 
drivers/md/bcache/super.c +11 -5
index 7787ec42f81e..2df75db52e91 100644
@@ -824,20 +824,20 @@ static int bcache_device_init(struct bcache_device *d, unsigned int block_size,
 	n = BITS_TO_LONGS(d->nr_stripes) * sizeof(unsigned long);
 	d->full_dirty_stripes = kvzalloc(n, GFP_KERNEL);
 	if (!d->full_dirty_stripes)
-		return -ENOMEM;
+		goto out_free_stripe_sectors_dirty;
 
 	idx = ida_simple_get(&bcache_device_idx, 0,
 				BCACHE_DEVICE_IDX_MAX, GFP_KERNEL);
 	if (idx < 0)
-		return idx;
+		goto out_free_full_dirty_stripes;
 
 	if (bioset_init(&d->bio_split, 4, offsetof(struct bbio, bio),
 			BIOSET_NEED_BVECS|BIOSET_NEED_RESCUER))
-		goto err;
+		goto out_ida_remove;
 
 	d->disk = alloc_disk(BCACHE_MINORS);
 	if (!d->disk)
-		goto err;
+		goto out_bioset_exit;
 
 	set_capacity(d->disk, sectors);
 	snprintf(d->disk->disk_name, DISK_NAME_LEN, "bcache%i", idx);
@@ -872,8 +872,14 @@ static int bcache_device_init(struct bcache_device *d, unsigned int block_size,
 
 	return 0;
 
-err:
+out_bioset_exit:
+	bioset_exit(&d->bio_split);
+out_ida_remove:
 	ida_simple_remove(&bcache_device_idx, idx);
+out_free_full_dirty_stripes:
+	kvfree(d->full_dirty_stripes);
+out_free_stripe_sectors_dirty:
+	kvfree(d->stripe_sectors_dirty);
 	return -ENOMEM;
 
 }
drivers/md/dm-crypt.c +6 -1
index 85559f772d0d..a6a26f8e4d8e 100644
@@ -2181,7 +2181,12 @@ static void *crypt_page_alloc(gfp_t gfp_mask, void *pool_data)
 	struct crypt_config *cc = pool_data;
 	struct page *page;
 
-	if (unlikely(percpu_counter_compare(&cc->n_allocated_pages, dm_crypt_pages_per_client) >= 0) &&
+	/*
+	 * Note, percpu_counter_read_positive() may over (and under) estimate
+	 * the current usage by at most (batch - 1) * num_online_cpus() pages,
+	 * but avoids potential spinlock contention of an exact result.
+	 */
+	if (unlikely(percpu_counter_read_positive(&cc->n_allocated_pages) >= dm_crypt_pages_per_client) &&
 	    likely(gfp_mask & __GFP_NORETRY))
 		return NULL;
 
drivers/md/dm-thin-metadata.c +1 -1
index 85077f4d257a..a6a5cee6b943 100644
@@ -901,7 +901,7 @@ int dm_pool_metadata_close(struct dm_pool_metadata *pmd)
 		return -EBUSY;
 	}
 
-	if (!dm_bm_is_read_only(pmd->bm) && !pmd->fail_io) {
+	if (!pmd->fail_io && !dm_bm_is_read_only(pmd->bm)) {
 		r = __commit_transaction(pmd);
 		if (r < 0)
 			DMWARN("%s: __commit_transaction() failed, error = %d",
drivers/md/persistent-data/dm-block-manager.c +8 -6
index 492a3f8ac119..0401daa0f7fb 100644
@@ -494,7 +494,7 @@ int dm_bm_write_lock(struct dm_block_manager *bm,
 	void *p;
 	int r;
 
-	if (bm->read_only)
+	if (dm_bm_is_read_only(bm))
 		return -EPERM;
 
 	p = dm_bufio_read(bm->bufio, b, (struct dm_buffer **) result);
@@ -563,7 +563,7 @@ int dm_bm_write_lock_zero(struct dm_block_manager *bm,
 	struct buffer_aux *aux;
 	void *p;
 
-	if (bm->read_only)
+	if (dm_bm_is_read_only(bm))
 		return -EPERM;
 
 	p = dm_bufio_new(bm->bufio, b, (struct dm_buffer **) result);
@@ -603,7 +603,7 @@ EXPORT_SYMBOL_GPL(dm_bm_unlock);
 
 int dm_bm_flush(struct dm_block_manager *bm)
 {
-	if (bm->read_only)
+	if (dm_bm_is_read_only(bm))
 		return -EPERM;
 
 	return dm_bufio_write_dirty_buffers(bm->bufio);
@@ -617,19 +617,21 @@ void dm_bm_prefetch(struct dm_block_manager *bm, dm_block_t b)
 
 bool dm_bm_is_read_only(struct dm_block_manager *bm)
 {
-	return bm->read_only;
+	return (bm ? bm->read_only : true);
 }
 EXPORT_SYMBOL_GPL(dm_bm_is_read_only);
 
 void dm_bm_set_read_only(struct dm_block_manager *bm)
 {
-	bm->read_only = true;
+	if (bm)
+		bm->read_only = true;
 }
 EXPORT_SYMBOL_GPL(dm_bm_set_read_only);
 
 void dm_bm_set_read_write(struct dm_block_manager *bm)
 {
-	bm->read_only = false;
+	if (bm)
+		bm->read_only = false;
 }
 EXPORT_SYMBOL_GPL(dm_bm_set_read_write);
 
drivers/media/dvb-frontends/dib8000.c +41 -17

97 lines not on this page · raw message

drivers/media/i2c/imx258.c +2 -2
index 31a1e2294843..85395813c0f2 100644
@@ -22,7 +22,7 @@
 #define IMX258_CHIP_ID			0x0258
 
 /* V_TIMING internal */
-#define IMX258_VTS_30FPS		0x0c98
+#define IMX258_VTS_30FPS		0x0c50
 #define IMX258_VTS_30FPS_2K		0x0638
 #define IMX258_VTS_30FPS_VGA		0x034c
 #define IMX258_VTS_MAX			0xffff
@@ -46,7 +46,7 @@
 /* Analog gain control */
 #define IMX258_REG_ANALOG_GAIN		0x0204
 #define IMX258_ANA_GAIN_MIN		0
-#define IMX258_ANA_GAIN_MAX		0x1fff
+#define IMX258_ANA_GAIN_MAX		480
 #define IMX258_ANA_GAIN_STEP		1
 #define IMX258_ANA_GAIN_DEFAULT		0x0
 
drivers/media/i2c/tda1997x.c +4 -2
index d114ac5243ec..4f8dc3f56785 100644
@@ -1695,14 +1695,15 @@ static int tda1997x_query_dv_timings(struct v4l2_subdev *sd,
 				     struct v4l2_dv_timings *timings)
 {
 	struct tda1997x_state *state = to_state(sd);
+	int ret;
 
 	v4l_dbg(1, debug, state->client, "%s\n", __func__);
 	memset(timings, 0, sizeof(struct v4l2_dv_timings));
 	mutex_lock(&state->lock);
-	tda1997x_detect_std(state, timings);
+	ret = tda1997x_detect_std(state, timings);
 	mutex_unlock(&state->lock);
 
-	return 0;
+	return ret;
 }
 
 static const struct v4l2_subdev_video_ops tda1997x_video_ops = {
@@ -2229,6 +2230,7 @@ static int tda1997x_core_init(struct v4l2_subdev *sd)
 	/* get initial HDMI status */
 	state->hdmi_status = io_read(sd, REG_HDMI_FLAGS);
 
+	io_write(sd, REG_EDID_ENABLE, EDID_ENABLE_A_EN | EDID_ENABLE_B_EN);
 	return 0;
 }
 
drivers/media/platform/qcom/venus/venc.c +2 -0
index 420897241248..4197b311cff4 100644
@@ -316,6 +316,8 @@ venc_try_fmt_common(struct venus_inst *inst, struct v4l2_format *f)
 		else
 			return NULL;
 		fmt = find_format(inst, pixmp->pixelformat, f->type);
+		if (!fmt)
+			return NULL;
 	}
 
 	pixmp->width = clamp(pixmp->width, frame_width_min(inst),
drivers/media/platform/tegra-cec/tegra_cec.c +6 -4
index aba488cd0e64..a2c20ca799c4 100644
@@ -383,7 +383,11 @@ static int tegra_cec_probe(struct platform_device *pdev)
 		return -ENOENT;
 	}
 
-	clk_prepare_enable(cec->clk);
+	ret = clk_prepare_enable(cec->clk);
+	if (ret) {
+		dev_err(&pdev->dev, "Unable to prepare clock for CEC\n");
+		return ret;
+	}
 
 	/* set context info. */
 	cec->dev = &pdev->dev;
@@ -462,9 +466,7 @@ static int tegra_cec_resume(struct platform_device *pdev)
 
 	dev_notice(&pdev->dev, "Resuming\n");
 
-	clk_prepare_enable(cec->clk);
-
-	return 0;
+	return clk_prepare_enable(cec->clk);
 }
 #endif
 
drivers/media/rc/rc-loopback.c +1 -1
index 3822d9ebcb46..5abbde7e5d5b 100644
@@ -52,7 +52,7 @@ static int loop_set_tx_mask(struct rc_dev *dev, u32 mask)
 
 	if ((mask & (RXMASK_REGULAR | RXMASK_LEARNING)) != mask) {
 		dprintk("invalid tx mask: %u\n", mask);
-		return -EINVAL;
+		return 2;
 	}
 
 	dprintk("setting tx mask: %u\n", mask);
drivers/media/usb/dvb-usb/nova-t-usb2.c +4 -2
index 43e0e0fd715b..705c2901a89e 100644
@@ -133,7 +133,7 @@ static int nova_t_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
 
 static int nova_t_read_mac_address (struct dvb_usb_device *d, u8 mac[6])
 {
-	int i;
+	int i, ret;
 	u8 b;
 
 	mac[0] = 0x00;
@@ -142,7 +142,9 @@ static int nova_t_read_mac_address (struct dvb_usb_device *d, u8 mac[6])
 
 	/* this is a complete guess, but works for my box */
 	for (i = 136; i < 139; i++) {
-		dibusb_read_eeprom_byte(d,i, &b);
+		ret = dibusb_read_eeprom_byte(d, i, &b);
+		if (ret)
+			return ret;
 
 		mac[5 - (i - 136)] = b;
 	}
drivers/media/usb/dvb-usb/vp702x.c +9 -3
index c3529ea59da9..fcd66757b34d 100644
@@ -294,16 +294,22 @@ static int vp702x_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
 static int vp702x_read_mac_addr(struct dvb_usb_device *d,u8 mac[6])
 {
 	u8 i, *buf;
+	int ret;
 	struct vp702x_device_state *st = d->priv;
 
 	mutex_lock(&st->buf_mutex);
 	buf = st->buf;
-	for (i = 6; i < 12; i++)
-		vp702x_usb_in_op(d, READ_EEPROM_REQ, i, 1, &buf[i - 6], 1);
+	for (i = 6; i < 12; i++) {
+		ret = vp702x_usb_in_op(d, READ_EEPROM_REQ, i, 1,
+				       &buf[i - 6], 1);
+		if (ret < 0)
+			goto err;
+	}
 
 	memcpy(mac, buf, 6);
+err:
 	mutex_unlock(&st->buf_mutex);
-	return 0;
+	return ret;
 }
 
 static int vp702x_frontend_attach(struct dvb_usb_adapter *adap)
drivers/media/usb/em28xx/em28xx-input.c +0 -1
index 3612f0d730dd..92007a225d8e 100644
@@ -865,7 +865,6 @@ static int em28xx_ir_init(struct em28xx *dev)
 	kfree(ir);
 ref_put:
 	em28xx_shutdown_buttons(dev);
-	kref_put(&dev->ref, em28xx_free_device);
 	return err;
 }
 
drivers/media/usb/go7007/go7007-driver.c +0 -26
index 62aeebcdd7f7..c7b5a3321cd7 100644
@@ -699,49 +699,23 @@ struct go7007 *go7007_alloc(const struct go7007_board_info *board,
 						struct device *dev)
 {
 	struct go7007 *go;
-	int i;
 
 	go = kzalloc(sizeof(struct go7007), GFP_KERNEL);
 	if (go == NULL)
 		return NULL;
 	go->dev = dev;
 	go->board_info = board;
-	go->board_id = 0;
 	go->tuner_type = -1;
-	go->channel_number = 0;
-	go->name[0] = 0;
 	mutex_init(&go->hw_lock);
 	init_waitqueue_head(&go->frame_waitq);
 	spin_lock_init(&go->spinlock);
 	go->status = STATUS_INIT;
-	memset(&go->i2c_adapter, 0, sizeof(go->i2c_adapter));
-	go->i2c_adapter_online = 0;
-	go->interrupt_available = 0;
 	init_waitqueue_head(&go->interrupt_waitq);
-	go->input = 0;
 	go7007_update_board(go);
-	go->encoder_h_halve = 0;
-	go->encoder_v_halve = 0;
-	go->encoder_subsample = 0;
 	go->format = V4L2_PIX_FMT_MJPEG;
 	go->bitrate = 1500000;
 	go->fps_scale = 1;
-	go->pali = 0;
 	go->aspect_ratio = GO7007_RATIO_1_1;
-	go->gop_size = 0;
-	go->ipb = 0;
-	go->closed_gop = 0;
-	go->repeat_seqhead = 0;
-	go->seq_header_enable = 0;
-	go->gop_header_enable = 0;
-	go->dvd_mode = 0;
-	go->interlace_coding = 0;
-	for (i = 0; i < 4; ++i)
-		go->modet[i].enable = 0;
-	for (i = 0; i < 1624; ++i)
-		go->modet_map[i] = 0;
-	go->audio_deliver = NULL;
-	go->audio_enabled = 0;
 
 	return go;
 }
drivers/media/usb/stkwebcam/stk-webcam.c +4 -2
index e33fa78ef98d..f46db1b6a27c 100644
@@ -1355,7 +1355,7 @@ static int stk_camera_probe(struct usb_interface *interface,
 	if (!dev->isoc_ep) {
 		pr_err("Could not find isoc-in endpoint\n");
 		err = -ENODEV;
-		goto error;
+		goto error_put;
 	}
 	dev->vsettings.palette = V4L2_PIX_FMT_RGB565;
 	dev->vsettings.mode = MODE_VGA;
@@ -1368,10 +1368,12 @@ static int stk_camera_probe(struct usb_interface *interface,
 
 	err = stk_register_video_device(dev);
 	if (err)
-		goto error;
+		goto error_put;
 
 	return 0;
 
+error_put:
+	usb_put_intf(interface);
 error:
 	v4l2_ctrl_handler_free(hdl);
 	v4l2_device_unregister(&dev->v4l2_dev);
drivers/media/usb/uvc/uvc_v4l2.c +23 -11
index 06167c51af12..2ca1e8ce6159 100644
@@ -900,8 +900,8 @@ static int uvc_ioctl_g_input(struct file *file, void *fh, unsigned int *input)
 {
 	struct uvc_fh *handle = fh;
 	struct uvc_video_chain *chain = handle->chain;
+	u8 *buf;
 	int ret;
-	u8 i;
 
 	if (chain->selector == NULL ||
 	    (chain->dev->quirks & UVC_QUIRK_IGNORE_SELECTOR_UNIT)) {
@@ -909,22 +909,27 @@ static int uvc_ioctl_g_input(struct file *file, void *fh, unsigned int *input)
 		return 0;
 	}
 
+	buf = kmalloc(1, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
 	ret = uvc_query_ctrl(chain->dev, UVC_GET_CUR, chain->selector->id,
 			     chain->dev->intfnum,  UVC_SU_INPUT_SELECT_CONTROL,
-			     &i, 1);
-	if (ret < 0)
-		return ret;
+			     buf, 1);
+	if (!ret)
+		*input = *buf - 1;
 
-	*input = i - 1;
-	return 0;
+	kfree(buf);
+
+	return ret;
 }
 
 static int uvc_ioctl_s_input(struct file *file, void *fh, unsigned int input)
 {
 	struct uvc_fh *handle = fh;
 	struct uvc_video_chain *chain = handle->chain;
+	u8 *buf;
 	int ret;
-	u32 i;
 
 	ret = uvc_acquire_privileges(handle);
 	if (ret < 0)
@@ -940,10 +945,17 @@ static int uvc_ioctl_s_input(struct file *file, void *fh, unsigned int input)
 	if (input >= chain->selector->bNrInPins)
 		return -EINVAL;
 
-	i = input + 1;
-	return uvc_query_ctrl(chain->dev, UVC_SET_CUR, chain->selector->id,
-			      chain->dev->intfnum, UVC_SU_INPUT_SELECT_CONTROL,
-			      &i, 1);
+	buf = kmalloc(1, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	*buf = input + 1;
+	ret = uvc_query_ctrl(chain->dev, UVC_SET_CUR, chain->selector->id,
+			     chain->dev->intfnum, UVC_SU_INPUT_SELECT_CONTROL,
+			     buf, 1);
+	kfree(buf);
+
+	return ret;
 }
 
 static int uvc_ioctl_queryctrl(struct file *file, void *fh,
drivers/media/v4l2-core/v4l2-dv-timings.c +2 -2
index a24b40dfec97..af38c989ff33 100644
@@ -196,7 +196,7 @@ bool v4l2_find_dv_timings_cap(struct v4l2_dv_timings *t,
 	if (!v4l2_valid_dv_timings(t, cap, fnc, fnc_handle))
 		return false;
 
-	for (i = 0; i < v4l2_dv_timings_presets[i].bt.width; i++) {
+	for (i = 0; v4l2_dv_timings_presets[i].bt.width; i++) {
 		if (v4l2_valid_dv_timings(v4l2_dv_timings_presets + i, cap,
 					  fnc, fnc_handle) &&
 		    v4l2_match_dv_timings(t, v4l2_dv_timings_presets + i,
@@ -218,7 +218,7 @@ bool v4l2_find_dv_timings_cea861_vic(struct v4l2_dv_timings *t, u8 vic)
 {
 	unsigned int i;
 
-	for (i = 0; i < v4l2_dv_timings_presets[i].bt.width; i++) {
+	for (i = 0; v4l2_dv_timings_presets[i].bt.width; i++) {
 		const struct v4l2_bt_timings *bt =
 			&v4l2_dv_timings_presets[i].bt;
 
drivers/mfd/ab8500-core.c +1 -1
index 11ab17f64c64..f0527e769867 100644
@@ -493,7 +493,7 @@ static int ab8500_handle_hierarchical_line(struct ab8500 *ab8500,
 		if (line == AB8540_INT_GPIO43F || line == AB8540_INT_GPIO44F)
 			line += 1;
 
-		handle_nested_irq(irq_create_mapping(ab8500->domain, line));
+		handle_nested_irq(irq_find_mapping(ab8500->domain, line));
 	}
 
 	return 0;
drivers/mfd/axp20x.c +2 -1
index aa65931142ba..dcb341d62758 100644
@@ -127,12 +127,13 @@ static const struct regmap_range axp288_writeable_ranges[] = {
 
 static const struct regmap_range axp288_volatile_ranges[] = {
 	regmap_reg_range(AXP20X_PWR_INPUT_STATUS, AXP288_POWER_REASON),
+	regmap_reg_range(AXP22X_PWR_OUT_CTRL1, AXP22X_ALDO3_V_OUT),
 	regmap_reg_range(AXP288_BC_GLOBAL, AXP288_BC_GLOBAL),
 	regmap_reg_range(AXP288_BC_DET_STAT, AXP20X_VBUS_IPSOUT_MGMT),
 	regmap_reg_range(AXP20X_CHRG_BAK_CTRL, AXP20X_CHRG_BAK_CTRL),
 	regmap_reg_range(AXP20X_IRQ1_EN, AXP20X_IPSOUT_V_HIGH_L),
 	regmap_reg_range(AXP20X_TIMER_CTRL, AXP20X_TIMER_CTRL),
-	regmap_reg_range(AXP22X_GPIO_STATE, AXP22X_GPIO_STATE),
+	regmap_reg_range(AXP20X_GPIO1_CTRL, AXP22X_GPIO_STATE),
 	regmap_reg_range(AXP288_RT_BATT_V_H, AXP288_RT_BATT_V_L),
 	regmap_reg_range(AXP20X_FG_RES, AXP288_FG_CC_CAP_REG),
 };
drivers/mfd/stmpe.c +2 -2
index 566caca4efd8..722ad2c368a5 100644
@@ -1035,7 +1035,7 @@ static irqreturn_t stmpe_irq(int irq, void *data)
 
 	if (variant->id_val == STMPE801_ID ||
 	    variant->id_val == STMPE1600_ID) {
-		int base = irq_create_mapping(stmpe->domain, 0);
+		int base = irq_find_mapping(stmpe->domain, 0);
 
 		handle_nested_irq(base);
 		return IRQ_HANDLED;
@@ -1063,7 +1063,7 @@ static irqreturn_t stmpe_irq(int irq, void *data)
 		while (status) {
 			int bit = __ffs(status);
 			int line = bank * 8 + bit;
-			int nestedirq = irq_create_mapping(stmpe->domain, line);
+			int nestedirq = irq_find_mapping(stmpe->domain, line);
 
 			handle_nested_irq(nestedirq);
 			status &= ~(1 << bit);
drivers/mfd/tc3589x.c +1 -1
index cc9e563f23aa..7062baf60685 100644
@@ -187,7 +187,7 @@ static irqreturn_t tc3589x_irq(int irq, void *data)
 
 	while (status) {
 		int bit = __ffs(status);
-		int virq = irq_create_mapping(tc3589x->domain, bit);
+		int virq = irq_find_mapping(tc3589x->domain, bit);
 
 		handle_nested_irq(virq);
 		status &= ~(1 << bit);
drivers/mfd/wm8994-irq.c +1 -1
index 18710f3b5c53..2c58d9b99a39 100644
@@ -159,7 +159,7 @@ static irqreturn_t wm8994_edge_irq(int irq, void *data)
 	struct wm8994 *wm8994 = data;
 
 	while (gpio_get_value_cansleep(wm8994->pdata.irq_gpio))
-		handle_nested_irq(irq_create_mapping(wm8994->edge_irq, 0));
+		handle_nested_irq(irq_find_mapping(wm8994->edge_irq, 0));
 
 	return IRQ_HANDLED;
 }
drivers/misc/aspeed-lpc-ctrl.c +1 -1
index a024f8042259..870ab0dfcde0 100644
@@ -50,7 +50,7 @@ static int aspeed_lpc_ctrl_mmap(struct file *file, struct vm_area_struct *vma)
 	unsigned long vsize = vma->vm_end - vma->vm_start;
 	pgprot_t prot = vma->vm_page_prot;
 
-	if (vma->vm_pgoff + vsize > lpc_ctrl->mem_base + lpc_ctrl->mem_size)
+	if (vma->vm_pgoff + vma_pages(vma) > lpc_ctrl->mem_size >> PAGE_SHIFT)
 		return -EINVAL;
 
 	/* ast2400/2500 AHB accesses are not cache coherent */
drivers/misc/vmw_vmci/vmci_queue_pair.c +4 -2
index 9bc97d6a651d..db433d285eff 100644
@@ -2249,7 +2249,8 @@ int vmci_qp_broker_map(struct vmci_handle handle,
 
 	result = VMCI_SUCCESS;
 
-	if (context_id != VMCI_HOST_CONTEXT_ID) {
+	if (context_id != VMCI_HOST_CONTEXT_ID &&
+	    !QPBROKERSTATE_HAS_MEM(entry)) {
 		struct vmci_qp_page_store page_store;
 
 		page_store.pages = guest_mem;
@@ -2356,7 +2357,8 @@ int vmci_qp_broker_unmap(struct vmci_handle handle,
 		goto out;
 	}
 
-	if (context_id != VMCI_HOST_CONTEXT_ID) {
+	if (context_id != VMCI_HOST_CONTEXT_ID &&
+	    QPBROKERSTATE_HAS_MEM(entry)) {
 		qp_acquire_queue_mutex(entry->produce_q);
 		result = qp_save_headers(entry);
 		if (result < VMCI_SUCCESS)
drivers/mmc/core/block.c +1 -2
index 7b2bb32e3555..d1cc0fdbc51c 100644
@@ -592,6 +592,7 @@ static int __mmc_blk_ioctl_cmd(struct mmc_card *card, struct mmc_blk_data *md,
 	}
 
 	mmc_wait_for_req(card->host, &mrq);
+	memcpy(&idata->ic.response, cmd.resp, sizeof(cmd.resp));
 
 	if (cmd.error) {
 		dev_err(mmc_dev(card->host), "%s: cmd error %d\n",
@@ -641,8 +642,6 @@ static int __mmc_blk_ioctl_cmd(struct mmc_card *card, struct mmc_blk_data *md,
 	if (idata->ic.postsleep_min_us)
 		usleep_range(idata->ic.postsleep_min_us, idata->ic.postsleep_max_us);
 
-	memcpy(&(idata->ic.response), cmd.resp, sizeof(cmd.resp));
-
 	if (idata->rpmb || (cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B) {
 		/*
 		 * Ensure RPMB/R1B command has completed by polling CMD13
drivers/mmc/host/dw_mmc.c +1 -0
index 8e09586f880f..e3991df078ef 100644
@@ -808,6 +808,7 @@ static int dw_mci_edmac_start_dma(struct dw_mci *host,
 	int ret = 0;
 
 	/* Set external dma config: burst size, burst width */
+	memset(&cfg, 0, sizeof(cfg));
 	cfg.dst_addr = host->phy_regs + fifo_offset;
 	cfg.src_addr = cfg.dst_addr;
 	cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
drivers/mmc/host/moxart-mmc.c +1 -0
index a0670e9cd012..5553a5643f40 100644
@@ -631,6 +631,7 @@ static int moxart_probe(struct platform_device *pdev)
 			 host->dma_chan_tx, host->dma_chan_rx);
 		host->have_dma = true;
 
+		memset(&cfg, 0, sizeof(cfg));
 		cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
 		cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
 
drivers/mmc/host/rtsx_pci_sdmmc.c +23 -13
index 02de6a5701d6..c1de8fa50fe8 100644
@@ -551,9 +551,22 @@ static int sd_write_long_data(struct realtek_pci_sdmmc *host,
 	return 0;
 }
 
+static inline void sd_enable_initial_mode(struct realtek_pci_sdmmc *host)
+{
+	rtsx_pci_write_register(host->pcr, SD_CFG1,
+			SD_CLK_DIVIDE_MASK, SD_CLK_DIVIDE_128);
+}
+
+static inline void sd_disable_initial_mode(struct realtek_pci_sdmmc *host)
+{
+	rtsx_pci_write_register(host->pcr, SD_CFG1,
+			SD_CLK_DIVIDE_MASK, SD_CLK_DIVIDE_0);
+}
+
 static int sd_rw_multi(struct realtek_pci_sdmmc *host, struct mmc_request *mrq)
 {
 	struct mmc_data *data = mrq->data;
+	int err;
 
 	if (host->sg_count < 0) {
 		data->error = host->sg_count;
@@ -562,22 +575,19 @@ static int sd_rw_multi(struct realtek_pci_sdmmc *host, struct mmc_request *mrq)
 		return data->error;
 	}
 
-	if (data->flags & MMC_DATA_READ)
-		return sd_read_long_data(host, mrq);
+	if (data->flags & MMC_DATA_READ) {
+		if (host->initial_mode)
+			sd_disable_initial_mode(host);
 
-	return sd_write_long_data(host, mrq);
-}
+		err = sd_read_long_data(host, mrq);
 
-static inline void sd_enable_initial_mode(struct realtek_pci_sdmmc *host)
-{
-	rtsx_pci_write_register(host->pcr, SD_CFG1,
-			SD_CLK_DIVIDE_MASK, SD_CLK_DIVIDE_128);
-}
+		if (host->initial_mode)
+			sd_enable_initial_mode(host);
 
-static inline void sd_disable_initial_mode(struct realtek_pci_sdmmc *host)
-{
-	rtsx_pci_write_register(host->pcr, SD_CFG1,
-			SD_CLK_DIVIDE_MASK, SD_CLK_DIVIDE_0);
+		return err;
+	}
+
+	return sd_write_long_data(host, mrq);
 }
 
 static void sd_normal_rw(struct realtek_pci_sdmmc *host,
drivers/mmc/host/sdhci-of-arasan.c +15 -3
index 9c77bfe4334f..d1a2418b0c5e 100644
@@ -185,7 +185,12 @@ static void sdhci_arasan_set_clock(struct sdhci_host *host, unsigned int clock)
 			 * through low speeds without power cycling.
 			 */
 			sdhci_set_clock(host, host->max_clk);
-			phy_power_on(sdhci_arasan->phy);
+			if (phy_power_on(sdhci_arasan->phy)) {
+				pr_err("%s: Cannot power on phy.\n",
+				       mmc_hostname(host->mmc));
+				return;
+			}
+
 			sdhci_arasan->is_phy_on = true;
 
 			/*
@@ -221,7 +226,12 @@ static void sdhci_arasan_set_clock(struct sdhci_host *host, unsigned int clock)
 		msleep(20);
 
 	if (ctrl_phy) {
-		phy_power_on(sdhci_arasan->phy);
+		if (phy_power_on(sdhci_arasan->phy)) {
+			pr_err("%s: Cannot power on phy.\n",
+			       mmc_hostname(host->mmc));
+			return;
+		}
+
 		sdhci_arasan->is_phy_on = true;
 	}
 }
@@ -395,7 +405,9 @@ static int sdhci_arasan_suspend(struct device *dev)
 		ret = phy_power_off(sdhci_arasan->phy);
 		if (ret) {
 			dev_err(dev, "Cannot power off phy.\n");
-			sdhci_resume_host(host);
+			if (sdhci_resume_host(host))
+				dev_err(dev, "Cannot resume host.\n");
+
 			return ret;
 		}
 		sdhci_arasan->is_phy_on = false;
drivers/mtd/nand/raw/cafe_nand.c +3 -1
index 3304594177c6..1fee298d5680 100644
@@ -758,7 +758,7 @@ static int cafe_nand_probe(struct pci_dev *pdev,
 			  "CAFE NAND", mtd);
 	if (err) {
 		dev_warn(&pdev->dev, "Could not register IRQ %d\n", pdev->irq);
-		goto out_ior;
+		goto out_free_rs;
 	}
 
 	/* Disable master reset, enable NAND clock */
@@ -802,6 +802,8 @@ static int cafe_nand_probe(struct pci_dev *pdev,
 	/* Disable NAND IRQ in global IRQ mask register */
 	cafe_writel(cafe, ~1 & cafe_readl(cafe, GLOBAL_IRQ_MASK), GLOBAL_IRQ_MASK);
 	free_irq(pdev->irq, mtd);
+ out_free_rs:
+	free_rs(cafe->rs);
  out_ior:
 	pci_iounmap(pdev, cafe->mmio);
  out_free_mtd:
drivers/net/bonding/bond_main.c +2 -1
index c814b266af79..d6c5f41b17f7 100644
@@ -1912,7 +1912,6 @@ static int __bond_release_one(struct net_device *bond_dev,
 	/* recompute stats just before removing the slave */
 	bond_get_stats(bond->dev, &bond->bond_stats);
 
-	bond_upper_dev_unlink(bond, slave);
 	/* unregister rx_handler early so bond_handle_frame wouldn't be called
 	 * for this slave anymore.
 	 */
@@ -1921,6 +1920,8 @@ static int __bond_release_one(struct net_device *bond_dev,
 	if (BOND_MODE(bond) == BOND_MODE_8023AD)
 		bond_3ad_unbind_slave(slave);
 
+	bond_upper_dev_unlink(bond, slave);
+
 	if (bond_mode_can_use_xmit_hash(bond))
 		bond_update_slave_arr(bond, slave);
 
drivers/net/dsa/b53/b53_common.c +1 -2
index 7eaeab65d39f..451121f47c89 100644
@@ -2135,9 +2135,8 @@ static int b53_switch_init(struct b53_device *dev)
 			dev->cpu_port = 5;
 	}
 
-	/* cpu port is always last */
-	dev->num_ports = dev->cpu_port + 1;
 	dev->enabled_ports |= BIT(dev->cpu_port);
+	dev->num_ports = fls(dev->enabled_ports);
 
 	/* Include non standard CPU port built-in PHYs to be probed */
 	if (is539x(dev) || is531x5(dev)) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +1 -1
index 77005f6366eb..b3ff8d13c31a 100644
@@ -1245,7 +1245,7 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param,
 
 	/* SR-IOV capability was enabled but there are no VFs*/
 	if (iov->total == 0) {
-		err = -EINVAL;
+		err = 0;
 		goto failed;
 	}
 
drivers/net/ethernet/cadence/macb_ptp.c +10 -1
index 8f912de44def..ecb0fb1ddde7 100644
@@ -286,6 +286,12 @@ void gem_ptp_rxstamp(struct macb *bp, struct sk_buff *skb,
 
 	if (GEM_BFEXT(DMA_RXVALID, desc->addr)) {
 		desc_ptp = macb_ptp_desc(bp, desc);
+		/* Unlikely but check */
+		if (!desc_ptp) {
+			dev_warn_ratelimited(&bp->pdev->dev,
+					     "Timestamp not supported in BD\n");
+			return;
+		}
 		gem_hw_timestamp(bp, desc_ptp->ts_1, desc_ptp->ts_2, &ts);
 		memset(shhwtstamps, 0, sizeof(struct skb_shared_hwtstamps));
 		shhwtstamps->hwtstamp = ktime_set(ts.tv_sec, ts.tv_nsec);
@@ -318,8 +324,11 @@ int gem_ptp_txstamp(struct macb_queue *queue, struct sk_buff *skb,
 	if (CIRC_SPACE(head, tail, PTP_TS_BUFFER_SIZE) == 0)
 		return -ENOMEM;
 
-	skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
 	desc_ptp = macb_ptp_desc(queue->bp, desc);
+	/* Unlikely but check */
+	if (!desc_ptp)
+		return -EINVAL;
+	skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
 	tx_timestamp = &queue->tx_timestamps[head];
 	tx_timestamp->skb = skb;
 	/* ensure ts_1/ts_2 is loaded after ctrl (TX_USED check) */
drivers/net/ethernet/chelsio/cxgb/cxgb2.c +1 -0
index 0ccdde366ae1..540d99f59226 100644
@@ -1153,6 +1153,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (!adapter->registered_device_map) {
 		pr_err("%s: could not register any net devices\n",
 		       pci_name(pdev));
+		err = -EINVAL;
 		goto out_release_adapter_res;
 	}
 
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +7 -2
index 19165a3548bf..4fb80ed897f2 100644
@@ -29,6 +29,8 @@ static const char hns3_driver_string[] =
 static const char hns3_copyright[] = "Copyright (c) 2017 Huawei Corporation.";
 static struct hnae3_client client;
 
+#define HNS3_MIN_TUN_PKT_LEN	65U
+
 /* hns3_pci_tbl - PCI Device ID Table
  *
  * Last entry must be all 0s
@@ -792,8 +794,11 @@ static int hns3_set_l3l4_type_csum(struct sk_buff *skb, u8 ol4_proto,
 				HNS3_L4T_TCP);
 		break;
 	case IPPROTO_UDP:
-		if (hns3_tunnel_csum_bug(skb))
-			return skb_checksum_help(skb);
+		if (hns3_tunnel_csum_bug(skb)) {
+			int ret = skb_put_padto(skb, HNS3_MIN_TUN_PKT_LEN);
+
+			return ret ? ret : skb_checksum_help(skb);
+		}
 
 		hnae3_set_bit(*type_cs_vlan_tso, HNS3_TXD_L4CS_B, 1);
 		hnae3_set_field(*type_cs_vlan_tso,
drivers/net/ethernet/ibm/ibmvnic.c +8 -0
index 4008007c2e34..d97641b9928b 100644
@@ -4038,6 +4038,14 @@ static int handle_login_rsp(union ibmvnic_crq *login_rsp_crq,
 		return 0;
 	}
 
+	if (adapter->failover_pending) {
+		adapter->init_done_rc = -EAGAIN;
+		netdev_dbg(netdev, "Failover pending, ignoring login response\n");
+		complete(&adapter->init_done);
+		/* login response buffer will be released on reset */
+		return 0;
+	}
+
 	netdev->mtu = adapter->req_mtu - ETH_HLEN;
 
 	netdev_dbg(adapter->netdev, "Login Response Buffer:\n");
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +2 -3
index 774f0a619a6d..f0aa7f0e5480 100644
@@ -1558,9 +1558,9 @@ static int build_match_list(struct match_list_head *match_head,
 
 		curr_match = kmalloc(sizeof(*curr_match), GFP_ATOMIC);
 		if (!curr_match) {
+			rcu_read_unlock();
 			free_match_list(match_head);
-			err = -ENOMEM;
-			goto out;
+			return -ENOMEM;
 		}
 		if (!tree_get_node(&g->node)) {
 			kfree(curr_match);
@@ -1569,7 +1569,6 @@ static int build_match_list(struct match_list_head *match_head,
 		curr_match->g = g;
 		list_add_tail(&curr_match->list, &match_head->list);
 	}
-out:
 	rcu_read_unlock();
 	return err;
 }
drivers/net/ethernet/qlogic/qed/qed_main.c +6 -1
index 049a83b40e46..9d77f318d11e 100644
@@ -439,7 +439,12 @@ static int qed_enable_msix(struct qed_dev *cdev,
 			rc = cnt;
 	}
 
-	if (rc > 0) {
+	/* For VFs, we should return with an error in case we didn't get the
+	 * exact number of msix vectors as we requested.
+	 * Not doing that will lead to a crash when starting queues for
+	 * this VF.
+	 */
+	if ((IS_PF(cdev) && rc > 0) || (IS_VF(cdev) && rc == cnt)) {
 		/* MSI-x configuration was achieved */
 		int_params->out.int_mode = QED_INT_MODE_MSIX;
 		int_params->out.num_vectors = rc;
drivers/net/ethernet/qlogic/qed/qed_mcp.c +5 -1
index 0d62db3241be..d16cadca2f7e 100644
@@ -2841,6 +2841,7 @@ qed_mcp_get_nvm_image_att(struct qed_hwfn *p_hwfn,
 			  struct qed_nvm_image_att *p_image_att)
 {
 	enum nvm_image_type type;
+	int rc;
 	u32 i;
 
 	/* Translate image_id into MFW definitions */
@@ -2866,7 +2867,10 @@ qed_mcp_get_nvm_image_att(struct qed_hwfn *p_hwfn,
 		return -EINVAL;
 	}
 
-	qed_mcp_nvm_info_populate(p_hwfn);
+	rc = qed_mcp_nvm_info_populate(p_hwfn);
+	if (rc)
+		return rc;
+
 	for (i = 0; i < p_hwfn->nvm_info.num_images; i++)
 		if (type == p_hwfn->nvm_info.image_att[i].image_type)
 			break;
drivers/net/ethernet/qlogic/qede/qede_main.c +1 -1
index 1aabb2e7a38b..756c5943f5e0 100644
@@ -1676,6 +1676,7 @@ static void qede_sync_free_irqs(struct qede_dev *edev)
 	}
 
 	edev->int_info.used_cnt = 0;
+	edev->int_info.msix_cnt = 0;
 }
 
 static int qede_req_msix_irqs(struct qede_dev *edev)
@@ -2193,7 +2194,6 @@ static int qede_load(struct qede_dev *edev, enum qede_load_mode mode,
 	goto out;
 err4:
 	qede_sync_free_irqs(edev);
-	memset(&edev->int_info.msix_cnt, 0, sizeof(struct qed_int_info));
 err3:
 	qede_napi_disable_remove(edev);
 err2:
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c +0 -1
index c48a0e2d4d7e..6a009d51ec51 100644
@@ -440,7 +440,6 @@ int qlcnic_pinit_from_rom(struct qlcnic_adapter *adapter)
 	QLCWR32(adapter, QLCNIC_CRB_PEG_NET_4 + 0x3c, 1);
 	msleep(20);
 
-	qlcnic_rom_unlock(adapter);
 	/* big hammer don't reset CAM block on reset */
 	QLCWR32(adapter, QLCNIC_ROMUSB_GLB_SW_RESET, 0xfeffffff);
 
drivers/net/ethernet/qualcomm/qca_spi.c +1 -1
index 9d188931bc09..afd49c7fd87f 100644
@@ -413,7 +413,7 @@ qcaspi_receive(struct qcaspi *qca)
 				skb_put(qca->rx_skb, retcode);
 				qca->rx_skb->protocol = eth_type_trans(
 					qca->rx_skb, qca->rx_skb->dev);
-				qca->rx_skb->ip_summed = CHECKSUM_UNNECESSARY;
+				skb_checksum_none_assert(qca->rx_skb);
 				netif_rx_ni(qca->rx_skb);
 				qca->rx_skb = netdev_alloc_skb_ip_align(net_dev,
 					net_dev->mtu + VLAN_ETH_HLEN);
drivers/net/ethernet/qualcomm/qca_uart.c +1 -1
index db6068cd7a1f..466e9d07697a 100644
@@ -107,7 +107,7 @@ qca_tty_receive(struct serdev_device *serdev, const unsigned char *data,
 			skb_put(qca->rx_skb, retcode);
 			qca->rx_skb->protocol = eth_type_trans(
 						qca->rx_skb, qca->rx_skb->dev);
-			qca->rx_skb->ip_summed = CHECKSUM_UNNECESSARY;
+			skb_checksum_none_assert(qca->rx_skb);
 			netif_rx_ni(qca->rx_skb);
 			qca->rx_skb = netdev_alloc_skb_ip_align(netdev,
 								netdev->mtu +
drivers/net/ethernet/rdc/r6040.c +8 -1
index aa11b70b9ca4..2199bd08f4d6 100644
@@ -133,6 +133,8 @@
 #define PHY_ST		0x8A	/* PHY status register */
 #define MAC_SM		0xAC	/* MAC status machine */
 #define  MAC_SM_RST	0x0002	/* MAC status machine reset */
+#define MD_CSC		0xb6	/* MDC speed control register */
+#define  MD_CSC_DEFAULT	0x0030
 #define MAC_ID		0xBE	/* Identifier register */
 
 #define TX_DCNT		0x80	/* TX descriptor count */
@@ -368,8 +370,9 @@ static void r6040_reset_mac(struct r6040_private *lp)
 {
 	void __iomem *ioaddr = lp->base;
 	int limit = MAC_DEF_TIMEOUT;
-	u16 cmd;
+	u16 cmd, md_csc;
 
+	md_csc = ioread16(ioaddr + MD_CSC);
 	iowrite16(MAC_RST, ioaddr + MCR1);
 	while (limit--) {
 		cmd = ioread16(ioaddr + MCR1);
@@ -381,6 +384,10 @@ static void r6040_reset_mac(struct r6040_private *lp)
 	iowrite16(MAC_SM_RST, ioaddr + MAC_SM);
 	iowrite16(0, ioaddr + MAC_SM);
 	mdelay(5);
+
+	/* Restore MDIO clock frequency */
+	if (md_csc != MD_CSC_DEFAULT)
+		iowrite16(md_csc, ioaddr + MD_CSC);
 }
 
 static void r6040_init_mac_regs(struct net_device *dev)
drivers/net/ethernet/renesas/sh_eth.c +1 -0
index 394ab9cdfe2c..c44aea47c120 100644
@@ -2547,6 +2547,7 @@ static int sh_eth_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 	else
 		txdesc->status |= cpu_to_le32(TD_TACT);
 
+	wmb(); /* cur_tx must be incremented after TACT bit was set */
 	mdp->cur_tx++;
 
 	if (!(sh_eth_read(ndev, EDTRR) & mdp->cd->edtrr_trns))
drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c +8 -10
index 0f56f8e33691..03b11f191c26 100644
@@ -288,10 +288,7 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 		val &= ~NSS_COMMON_GMAC_CTL_PHY_IFACE_SEL;
 		break;
 	default:
-		dev_err(&pdev->dev, "Unsupported PHY mode: \"%s\"\n",
-			phy_modes(gmac->phy_mode));
-		err = -EINVAL;
-		goto err_remove_config_dt;
+		goto err_unsupported_phy;
 	}
 	regmap_write(gmac->nss_common, NSS_COMMON_GMAC_CTL(gmac->id), val);
 
@@ -308,10 +305,7 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 			NSS_COMMON_CLK_SRC_CTRL_OFFSET(gmac->id);
 		break;
 	default:
-		dev_err(&pdev->dev, "Unsupported PHY mode: \"%s\"\n",
-			phy_modes(gmac->phy_mode));
-		err = -EINVAL;
-		goto err_remove_config_dt;
+		goto err_unsupported_phy;
 	}
 	regmap_write(gmac->nss_common, NSS_COMMON_CLK_SRC_CTRL, val);
 
@@ -328,8 +322,7 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 				NSS_COMMON_CLK_GATE_GMII_TX_EN(gmac->id);
 		break;
 	default:
-		/* We don't get here; the switch above will have errored out */
-		unreachable();
+		goto err_unsupported_phy;
 	}
 	regmap_write(gmac->nss_common, NSS_COMMON_CLK_GATE, val);
 
@@ -360,6 +353,11 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 
 	return 0;
 
+err_unsupported_phy:
+	dev_err(&pdev->dev, "Unsupported PHY mode: \"%s\"\n",
+		phy_modes(gmac->phy_mode));
+	err = -EINVAL;
+
 err_remove_config_dt:
 	stmmac_remove_config_dt(pdev, plat_dat);
 
drivers/net/ethernet/wiznet/w5100.c +2 -0
index d8ba512f166a..41040756307a 100644
@@ -1059,6 +1059,8 @@ static int w5100_mmio_probe(struct platform_device *pdev)
 		mac_addr = data->mac_addr;
 
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!mem)
+		return -EINVAL;
 	if (resource_size(mem) < W5100_BUS_DIRECT_SIZE)
 		ops = &w5100_mmio_indirect_ops;
 	else
drivers/net/ethernet/xilinx/ll_temac_main.c +1 -3
index 939de185bc6b..178234e94cd1 100644
@@ -736,10 +736,8 @@ temac_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 	/* Kick off the transfer */
 	lp->dma_out(lp, TX_TAILDESC_PTR, tail_p); /* DMA start */
 
-	if (temac_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1)) {
-		netdev_info(ndev, "%s -> netif_stop_queue\n", __func__);
+	if (temac_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1))
 		netif_stop_queue(ndev);
-	}
 
 	return NETDEV_TX_OK;
 }
drivers/net/phy/dp83640_reg.h +1 -1
index 21aa24c741b9..daae7fa58fb8 100644
@@ -5,7 +5,7 @@
 #ifndef HAVE_DP83640_REGISTERS
 #define HAVE_DP83640_REGISTERS
 
-#define PAGE0                     0x0000
+/* #define PAGE0                  0x0000 */
 #define PHYCR2                    0x001c /* PHY Control Register 2 */
 
 #define PAGE4                     0x0004
drivers/net/usb/cdc_mbim.c +5 -0
index 0362acd5cdca..cdd1b193fd4f 100644
@@ -655,6 +655,11 @@ static const struct usb_device_id mbim_devs[] = {
 	  .driver_info = (unsigned long)&cdc_mbim_info_avoid_altsetting_toggle,
 	},
 
+	/* Telit LN920 */
+	{ USB_DEVICE_AND_INTERFACE_INFO(0x1bc7, 0x1061, USB_CLASS_COMM, USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
+	  .driver_info = (unsigned long)&cdc_mbim_info_avoid_altsetting_toggle,
+	},
+
 	/* default entry */
 	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
 	  .driver_info = (unsigned long)&cdc_mbim_info_zlp,
drivers/net/wireless/ath/ath6kl/wmi.c +3 -1
index 987ebae8ea0e..afa7a82ffd5d 100644
@@ -2513,8 +2513,10 @@ static int ath6kl_wmi_sync_point(struct wmi *wmi, u8 if_idx)
 		goto free_data_skb;
 
 	for (index = 0; index < num_pri_streams; index++) {
-		if (WARN_ON(!data_sync_bufs[index].skb))
+		if (WARN_ON(!data_sync_bufs[index].skb)) {
+			ret = -ENOMEM;
 			goto free_data_skb;
+		}
 
 		ep_id = ath6kl_ac2_endpoint_id(wmi->parent_dev,
 					       data_sync_bufs[index].
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +2 -1
index 983e1abbd9e4..4d45d5a8ad2e 100644
@@ -3351,7 +3351,8 @@ static int ar9300_eeprom_restore_internal(struct ath_hw *ah,
 			"Found block at %x: code=%d ref=%d length=%d major=%d minor=%d\n",
 			cptr, code, reference, length, major, minor);
 		if ((!AR_SREV_9485(ah) && length >= 1024) ||
-		    (AR_SREV_9485(ah) && length > EEPROM_DATA_LEN_9485)) {
+		    (AR_SREV_9485(ah) && length > EEPROM_DATA_LEN_9485) ||
+		    (length > cptr)) {
 			ath_dbg(common, EEPROM, "Skipping bad header\n");
 			cptr -= COMP_HDR_LEN;
 			continue;
drivers/net/wireless/ath/ath9k/hw.c +7 -5
index 9f438d8e59f2..daad9e7b17cf 100644
@@ -1622,7 +1622,6 @@ static void ath9k_hw_apply_gpio_override(struct ath_hw *ah)
 		ath9k_hw_gpio_request_out(ah, i, NULL,
 					  AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
 		ath9k_hw_set_gpio(ah, i, !!(ah->gpio_val & BIT(i)));
-		ath9k_hw_gpio_free(ah, i);
 	}
 }
 
@@ -2729,14 +2728,17 @@ static void ath9k_hw_gpio_cfg_output_mux(struct ath_hw *ah, u32 gpio, u32 type)
 static void ath9k_hw_gpio_cfg_soc(struct ath_hw *ah, u32 gpio, bool out,
 				  const char *label)
 {
+	int err;
+
 	if (ah->caps.gpio_requested & BIT(gpio))
 		return;
 
-	/* may be requested by BSP, free anyway */
-	gpio_free(gpio);
-
-	if (gpio_request_one(gpio, out ? GPIOF_OUT_INIT_LOW : GPIOF_IN, label))
+	err = gpio_request_one(gpio, out ? GPIOF_OUT_INIT_LOW : GPIOF_IN, label);
+	if (err) {
+		ath_err(ath9k_hw_common(ah), "request GPIO%d failed:%d\n",
+			gpio, err);
 		return;
+	}
 
 	ah->caps.gpio_requested |= BIT(gpio);
 }
drivers/ntb/test/ntb_perf.c +1 -0
index ad5d3919435c..87a41d0ededc 100644
@@ -600,6 +600,7 @@ static int perf_setup_inbuf(struct perf_peer *peer)
 		return -ENOMEM;
 	}
 	if (!IS_ALIGNED(peer->inbuf_xlat, xlat_align)) {
+		ret = -EINVAL;
 		dev_err(&perf->ntb->dev, "Unaligned inbuf allocated\n");
 		goto err_free_inbuf;
 	}
drivers/nvme/host/rdma.c +2 -2
index 8798274dc3ba..ffd6a7204509 100644
@@ -643,13 +643,13 @@ static int nvme_rdma_alloc_io_queues(struct nvme_rdma_ctrl *ctrl)
 	if (ret)
 		return ret;
 
-	ctrl->ctrl.queue_count = nr_io_queues + 1;
-	if (ctrl->ctrl.queue_count < 2) {
+	if (nr_io_queues == 0) {
 		dev_err(ctrl->ctrl.device,
 			"unable to set any I/O queues\n");
 		return -ENOMEM;
 	}
 
+	ctrl->ctrl.queue_count = nr_io_queues + 1;
 	dev_info(ctrl->ctrl.device,
 		"creating %d I/O queues.\n", nr_io_queues);
 
drivers/of/kobj.c +1 -1
index a32e60b024b8..6675b5e56960 100644
@@ -119,7 +119,7 @@ int __of_attach_node_sysfs(struct device_node *np)
 	struct property *pp;
 	int rc;
 
-	if (!of_kset)
+	if (!IS_ENABLED(CONFIG_SYSFS) || !of_kset)
 		return 0;
 
 	np->kobj.kset = of_kset;
drivers/parport/ieee1284_ops.c +1 -1
index 5d41dda6da4e..75daa16f38b7 100644
@@ -535,7 +535,7 @@ size_t parport_ieee1284_ecp_read_data (struct parport *port,
 				goto out;
 
 			/* Yield the port for a while. */
-			if (count && dev->port->irq != PARPORT_IRQ_NONE) {
+			if (dev->port->irq != PARPORT_IRQ_NONE) {
 				parport_release (dev);
 				schedule_timeout_interruptible(msecs_to_jiffies(40));
 				parport_claim_or_block (dev);
drivers/pci/controller/pci-aardvark.c +10 -1
index 74aa9da85aa2..a9669b28c2a6 100644
@@ -166,7 +166,7 @@
 	(PCIE_CONF_BUS(bus) | PCIE_CONF_DEV(PCI_SLOT(devfn))	| \
 	 PCIE_CONF_FUNC(PCI_FUNC(devfn)) | PCIE_CONF_REG(where))
 
-#define PIO_RETRY_CNT			500
+#define PIO_RETRY_CNT			750000 /* 1.5 s */
 #define PIO_RETRY_DELAY			2 /* 2 us*/
 
 #define LINK_WAIT_MAX_RETRIES		10
@@ -181,6 +181,7 @@ struct advk_pcie {
 	struct list_head resources;
 	struct irq_domain *irq_domain;
 	struct irq_chip irq_chip;
+	raw_spinlock_t irq_lock;
 	struct irq_domain *msi_domain;
 	struct irq_domain *msi_inner_domain;
 	struct irq_chip msi_bottom_irq_chip;
@@ -603,22 +604,28 @@ static void advk_pcie_irq_mask(struct irq_data *d)
 {
 	struct advk_pcie *pcie = d->domain->host_data;
 	irq_hw_number_t hwirq = irqd_to_hwirq(d);
+	unsigned long flags;
 	u32 mask;
 
+	raw_spin_lock_irqsave(&pcie->irq_lock, flags);
 	mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
 	mask |= PCIE_ISR1_INTX_ASSERT(hwirq);
 	advk_writel(pcie, mask, PCIE_ISR1_MASK_REG);
+	raw_spin_unlock_irqrestore(&pcie->irq_lock, flags);
 }
 
 static void advk_pcie_irq_unmask(struct irq_data *d)
 {
 	struct advk_pcie *pcie = d->domain->host_data;
 	irq_hw_number_t hwirq = irqd_to_hwirq(d);
+	unsigned long flags;
 	u32 mask;
 
+	raw_spin_lock_irqsave(&pcie->irq_lock, flags);
 	mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
 	mask &= ~PCIE_ISR1_INTX_ASSERT(hwirq);
 	advk_writel(pcie, mask, PCIE_ISR1_MASK_REG);
+	raw_spin_unlock_irqrestore(&pcie->irq_lock, flags);
 }
 
 static int advk_pcie_irq_map(struct irq_domain *h,
@@ -701,6 +708,8 @@ static int advk_pcie_init_irq_domain(struct advk_pcie *pcie)
 	struct device_node *pcie_intc_node;
 	struct irq_chip *irq_chip;
 
+	raw_spin_lock_init(&pcie->irq_lock);
+
 	pcie_intc_node =  of_get_next_child(node, NULL);
 	if (!pcie_intc_node) {
 		dev_err(dev, "No PCIe Intc node found\n");
drivers/pci/controller/pcie-xilinx-nwl.c +12 -0
index 4850a1b8eec1..a86bd9660dae 100644
@@ -6,6 +6,7 @@
  * (C) Copyright 2014 - 2015, Xilinx, Inc.
  */
 
+#include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
@@ -169,6 +170,7 @@ struct nwl_pcie {
 	u8 root_busno;
 	struct nwl_msi msi;
 	struct irq_domain *legacy_irq_domain;
+	struct clk *clk;
 	raw_spinlock_t leg_mask_lock;
 };
 
@@ -849,6 +851,16 @@ static int nwl_pcie_probe(struct platform_device *pdev)
 		return err;
 	}
 
+	pcie->clk = devm_clk_get(dev, NULL);
+	if (IS_ERR(pcie->clk))
+		return PTR_ERR(pcie->clk);
+
+	err = clk_prepare_enable(pcie->clk);
+	if (err) {
+		dev_err(dev, "can't enable PCIe ref clock\n");
+		return err;
+	}
+
 	err = nwl_pcie_bridge_init(pcie);
 	if (err) {
 		dev_err(dev, "HW Initialization failed\n");
drivers/pci/msi.c +3 -0
index bc80b0f0ea1b..f65800d63856 100644
@@ -754,6 +754,9 @@ static void msix_mask_all(void __iomem *base, int tsize)
 	u32 ctrl = PCI_MSIX_ENTRY_CTRL_MASKBIT;
 	int i;
 
+	if (pci_msi_ignore_mask)
+		return;
+
 	for (i = 0; i < tsize; i++, base += PCI_MSIX_ENTRY_SIZE)
 		writel(ctrl, base + PCI_MSIX_ENTRY_VECTOR_CTRL);
 }
drivers/pci/pci.c +20 -13
index 9ebf32de8575..97d69b9be1d4 100644
@@ -224,7 +224,7 @@ static int pci_dev_str_match_path(struct pci_dev *dev, const char *path,
 
 	*endptr = strchrnul(path, ';');
 
-	wpath = kmemdup_nul(path, *endptr - path, GFP_KERNEL);
+	wpath = kmemdup_nul(path, *endptr - path, GFP_ATOMIC);
 	if (!wpath)
 		return -ENOMEM;
 
@@ -1591,11 +1591,7 @@ static int pci_enable_device_flags(struct pci_dev *dev, unsigned long flags)
 	 * so that things like MSI message writing will behave as expected
 	 * (e.g. if the device really is in D0 at enable time).
 	 */
-	if (dev->pm_cap) {
-		u16 pmcsr;
-		pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr);
-		dev->current_state = (pmcsr & PCI_PM_CTRL_STATE_MASK);
-	}
+	pci_update_current_state(dev, dev->current_state);
 
 	if (atomic_inc_return(&dev->enable_cnt) > 1)
 		return 0;		/* already enabled */
@@ -2170,7 +2166,14 @@ static int __pci_enable_wake(struct pci_dev *dev, pci_power_t state, bool enable
 	if (enable) {
 		int error;
 
-		if (pci_pme_capable(dev, state))
+		/*
+		 * Enable PME signaling if the device can signal PME from
+		 * D3cold regardless of whether or not it can signal PME from
+		 * the current target state, because that will allow it to
+		 * signal PME when the hierarchy above it goes into D3cold and
+		 * the device itself ends up in D3cold as a result of that.
+		 */
+		if (pci_pme_capable(dev, state) || pci_pme_capable(dev, PCI_D3cold))
 			pci_pme_active(dev, true);
 		else
 			ret = 1;
@@ -2274,16 +2277,20 @@ static pci_power_t pci_target_state(struct pci_dev *dev, bool wakeup)
 	if (dev->current_state == PCI_D3cold)
 		target_state = PCI_D3cold;
 
-	if (wakeup) {
+	if (wakeup && dev->pme_support) {
+		pci_power_t state = target_state;
+
 		/*
 		 * Find the deepest state from which the device can generate
 		 * PME#.
 		 */
-		if (dev->pme_support) {
-			while (target_state
-			      && !(dev->pme_support & (1 << target_state)))
-				target_state--;
-		}
+		while (state && !(dev->pme_support & (1 << state)))
+			state--;
+
+		if (state)
+			return state;
+		else if (dev->pme_support & 1)
+			return PCI_D0;
 	}
 
 	return target_state;
drivers/pci/quirks.c +18 -8
index 7e873b6b7d55..4eb8900b9a5c 100644
@@ -3152,12 +3152,13 @@ static void fixup_mpss_256(struct pci_dev *dev)
 {
 	dev->pcie_mpss = 1; /* 256 bytes */
 }
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SOLARFLARE,
-			 PCI_DEVICE_ID_SOLARFLARE_SFC4000A_0, fixup_mpss_256);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SOLARFLARE,
-			 PCI_DEVICE_ID_SOLARFLARE_SFC4000A_1, fixup_mpss_256);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SOLARFLARE,
-			 PCI_DEVICE_ID_SOLARFLARE_SFC4000B, fixup_mpss_256);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SOLARFLARE,
+			PCI_DEVICE_ID_SOLARFLARE_SFC4000A_0, fixup_mpss_256);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SOLARFLARE,
+			PCI_DEVICE_ID_SOLARFLARE_SFC4000A_1, fixup_mpss_256);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SOLARFLARE,
+			PCI_DEVICE_ID_SOLARFLARE_SFC4000B, fixup_mpss_256);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ASMEDIA, 0x0612, fixup_mpss_256);
 
 /*
  * Intel 5000 and 5100 Memory controllers have an erratum with read completion
@@ -4777,6 +4778,10 @@ static const struct pci_dev_acs_enabled {
 	{ 0x10df, 0x720, pci_quirk_mf_endpoint_acs }, /* Emulex Skyhawk-R */
 	/* Cavium ThunderX */
 	{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
+	/* Cavium multi-function devices */
+	{ PCI_VENDOR_ID_CAVIUM, 0xA026, pci_quirk_mf_endpoint_acs },
+	{ PCI_VENDOR_ID_CAVIUM, 0xA059, pci_quirk_mf_endpoint_acs },
+	{ PCI_VENDOR_ID_CAVIUM, 0xA060, pci_quirk_mf_endpoint_acs },
 	/* APM X-Gene */
 	{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
 	/* Ampere Computing */
@@ -5253,7 +5258,7 @@ DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
 			      PCI_CLASS_MULTIMEDIA_HD_AUDIO, 8, quirk_gpu_hda);
 
 /*
- * Create device link for NVIDIA GPU with integrated USB xHCI Host
+ * Create device link for GPUs with integrated USB xHCI Host
  * controller to VGA.
  */
 static void quirk_gpu_usb(struct pci_dev *usb)
@@ -5262,9 +5267,11 @@ static void quirk_gpu_usb(struct pci_dev *usb)
 }
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
 			      PCI_CLASS_SERIAL_USB, 8, quirk_gpu_usb);
+DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_VENDOR_ID_ATI, PCI_ANY_ID,
+			      PCI_CLASS_SERIAL_USB, 8, quirk_gpu_usb);
 
 /*
- * Create device link for NVIDIA GPU with integrated Type-C UCSI controller
+ * Create device link for GPUs with integrated Type-C UCSI controller
  * to VGA. Currently there is no class code defined for UCSI device over PCI
  * so using UNKNOWN class for now and it will be updated when UCSI
  * over PCI gets a class code.
@@ -5277,6 +5284,9 @@ static void quirk_gpu_usb_typec_ucsi(struct pci_dev *ucsi)
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
 			      PCI_CLASS_SERIAL_UNKNOWN, 8,
 			      quirk_gpu_usb_typec_ucsi);
+DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_VENDOR_ID_ATI, PCI_ANY_ID,
+			      PCI_CLASS_SERIAL_UNKNOWN, 8,
+			      quirk_gpu_usb_typec_ucsi);
 
 /*
  * Enable the NVIDIA GPU integrated HDA controller if the BIOS left it
drivers/pci/syscall.c +3 -1
index a7bdd10fccf3..68ac8a0f5c72 100644
@@ -21,8 +21,10 @@ SYSCALL_DEFINE5(pciconfig_read, unsigned long, bus, unsigned long, dfn,
 	long err;
 	int cfg_ret;
 
+	err = -EPERM;
+	dev = NULL;
 	if (!capable(CAP_SYS_ADMIN))
-		return -EPERM;
+		goto error;
 
 	err = -ENODEV;
 	dev = pci_get_domain_bus_and_slot(0, bus, dfn);
drivers/pinctrl/pinctrl-single.c +1 -0
index 04a4e761e9a9..c2f807bf3489 100644
@@ -1201,6 +1201,7 @@ static int pcs_parse_bits_in_pinctrl_entry(struct pcs_device *pcs,
 
 	if (PCS_HAS_PINCONF) {
 		dev_err(pcs->dev, "pinconf not supported\n");
+		res = -ENOTSUPP;
 		goto free_pingroups;
 	}
 
drivers/pinctrl/samsung/pinctrl-samsung.c +1 -1
index c05217edcb0e..82407e4a1642 100644
@@ -918,7 +918,7 @@ static int samsung_pinctrl_register(struct platform_device *pdev,
 		pin_bank->grange.pin_base = drvdata->pin_base
 						+ pin_bank->pin_base;
 		pin_bank->grange.base = pin_bank->grange.pin_base;
-		pin_bank->grange.npins = pin_bank->gpio_chip.ngpio;
+		pin_bank->grange.npins = pin_bank->nr_pins;
 		pin_bank->grange.gc = &pin_bank->gpio_chip;
 		pinctrl_add_gpio_range(drvdata->pctl_dev, &pin_bank->grange);
 	}
drivers/platform/chrome/cros_ec_proto.c +9 -0
index ac784ac66ac3..2b807c8aa869 100644
@@ -219,6 +219,15 @@ static int cros_ec_host_command_proto_query(struct cros_ec_device *ec_dev,
 	msg->insize = sizeof(struct ec_response_get_protocol_info);
 
 	ret = send_command(ec_dev, msg);
+	/*
+	 * Send command once again when timeout occurred.
+	 * Fingerprint MCU (FPMCU) is restarted during system boot which
+	 * introduces small window in which FPMCU won't respond for any
+	 * messages sent by kernel. There is no need to wait before next
+	 * attempt because we waited at least EC_MSG_DEADLINE_MS.
+	 */
+	if (ret == -ETIMEDOUT)
+		ret = send_command(ec_dev, msg);
 
 	if (ret < 0) {
 		dev_dbg(ec_dev->dev,
drivers/platform/x86/dell-smbios-wmi.c +1 -0
index ccccce9b67ef..0ebcf412f6ca 100644
@@ -72,6 +72,7 @@ static int run_smbios_call(struct wmi_device *wdev)
 		if (obj->type == ACPI_TYPE_INTEGER)
 			dev_dbg(&wdev->dev, "SMBIOS call failed: %llu\n",
 				obj->integer.value);
+		kfree(output.pointer);
 		return -EIO;
 	}
 	memcpy(&priv->buf->std, obj->buffer.pointer, obj->buffer.length);
drivers/power/supply/axp288_fuel_gauge.c +2 -2
index 157cf5ec6b02..1641868c345c 100644
@@ -158,7 +158,7 @@ static int fuel_gauge_reg_readb(struct axp288_fg_info *info, int reg)
 	}
 
 	if (ret < 0) {
-		dev_err(&info->pdev->dev, "axp288 reg read err:%d\n", ret);
+		dev_err(&info->pdev->dev, "Error reading reg 0x%02x err: %d\n", reg, ret);
 		return ret;
 	}
 
@@ -172,7 +172,7 @@ static int fuel_gauge_reg_writeb(struct axp288_fg_info *info, int reg, u8 val)
 	ret = regmap_write(info->regmap, reg, (unsigned int)val);
 
 	if (ret < 0)
-		dev_err(&info->pdev->dev, "axp288 reg write err:%d\n", ret);
+		dev_err(&info->pdev->dev, "Error writing reg 0x%02x err: %d\n", reg, ret);
 
 	return ret;
 }
drivers/power/supply/max17042_battery.c +6 -2
index 00a3a581e079..a1518eb6f6c0 100644
@@ -740,7 +740,7 @@ static inline void max17042_override_por_values(struct max17042_chip *chip)
 	struct max17042_config_data *config = chip->pdata->config_data;
 
 	max17042_override_por(map, MAX17042_TGAIN, config->tgain);
-	max17042_override_por(map, MAx17042_TOFF, config->toff);
+	max17042_override_por(map, MAX17042_TOFF, config->toff);
 	max17042_override_por(map, MAX17042_CGAIN, config->cgain);
 	max17042_override_por(map, MAX17042_COFF, config->coff);
 
@@ -856,8 +856,12 @@ static irqreturn_t max17042_thread_handler(int id, void *dev)
 {
 	struct max17042_chip *chip = dev;
 	u32 val;
+	int ret;
+
+	ret = regmap_read(chip->regmap, MAX17042_STATUS, &val);
+	if (ret)
+		return IRQ_HANDLED;
 
-	regmap_read(chip->regmap, MAX17042_STATUS, &val);
 	if ((val & STATUS_INTR_SOCMIN_BIT) ||
 		(val & STATUS_INTR_SOCMAX_BIT)) {
 		dev_info(&chip->client->dev, "SOC threshold INTR\n");
drivers/rtc/rtc-tps65910.c +1 -1
index a9bbd022aeef..9f10af7ac6ef 100644
@@ -470,6 +470,6 @@ static struct platform_driver tps65910_rtc_driver = {
 };
 
 module_platform_driver(tps65910_rtc_driver);
-MODULE_ALIAS("platform:rtc-tps65910");
+MODULE_ALIAS("platform:tps65910-rtc");
 MODULE_AUTHOR("Venu Byravarasu <[email protected]>");
 MODULE_LICENSE("GPL");
drivers/s390/cio/css.c +17 -0
index 825a8f2703b4..6efe50d70c4b 100644
@@ -364,9 +364,26 @@ static ssize_t pimpampom_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(pimpampom);
 
+static ssize_t dev_busid_show(struct device *dev,
+			      struct device_attribute *attr,
+			      char *buf)
+{
+	struct subchannel *sch = to_subchannel(dev);
+	struct pmcw *pmcw = &sch->schib.pmcw;
+
+	if ((pmcw->st == SUBCHANNEL_TYPE_IO ||
+	     pmcw->st == SUBCHANNEL_TYPE_MSG) && pmcw->dnv)
+		return sysfs_emit(buf, "0.%x.%04x\n", sch->schid.ssid,
[… more lines in the raw message]

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

drivers/scsi/BusLogic.c +2 -2
index 79b5c5457cc2..b8dd9986809b 100644

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

drivers/scsi/qedi/qedi_main.c +7 -7
index 7665fd641886..ab66e1f0fdfa 100644

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

drivers/scsi/qla2xxx/qla_nvme.c +3 -2
index 7821c1695e82..dcd0f058f23e 100644

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

drivers/soc/qcom/smsm.c +8 -3
index 50214b620865..2b49d2c212da 100644

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

drivers/soc/rockchip/Kconfig +2 -2
index 20da55d9cbb1..d483b0e29b81 100644

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

drivers/spi/spi-fsl-dspi.c +1 -0
index 25486ee8379b..cfbf1ffb61bf 100644

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

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

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

drivers/spi/spi-sprd-adi.c +1 -1
index e41976010dc4..97f44458ee7b 100644

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

drivers/staging/board/board.c +6 -1
index cb6feb34dd40..f980af037345 100644

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

drivers/staging/ks7010/ks7010_sdio.c +1 -1
index 74551eb717fc..79d0513bd282 100644

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

drivers/staging/rts5208/rtsx_scsi.c +3 -7
index c9a6d97938f6..68889d082c3c 100644

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

drivers/tty/hvc/hvsi.c +16 -3
index 66f95f758be0..73226337f561 100644

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

drivers/tty/serial/8250/8250_pci.c +1 -1
index 725e5842b8ac..f54c18e4ae90 100644

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

drivers/tty/serial/8250/8250_port.c +2 -1
index 68f71298c11b..39e821d6e537 100644

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

drivers/tty/serial/fsl_lpuart.c +1 -1
index deb9d4fa9cb0..b757fd1bdbfa 100644

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

drivers/tty/serial/jsm/jsm_neo.c +2 -0
index bf0e2a4cb0ce..c6f927a76c3b 100644

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

drivers/tty/serial/jsm/jsm_tty.c +3 -0
index 689774c073ca..8438454ca653 100644

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

drivers/tty/serial/sh-sci.c +6 -1
index db5b11879910..6f44c5f0ef3a 100644

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

drivers/tty/tty_io.c +2 -2
index 9e9343adc2b4..b6f42d0ee626 100644

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

drivers/usb/gadget/composite.c +6 -2
index d85bb3ba8263..a76ed4acb570 100644

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

drivers/usb/gadget/function/u_ether.c +3 -2
index 156651df6b4d..d7a12161e553 100644

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

drivers/usb/gadget/udc/at91_udc.c +3 -1
index 03959dc86cfd..dd5cdcdfa403 100644

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

drivers/usb/gadget/udc/bdc/bdc_core.c +2 -1
index e174b1b889da..d04de117bf63 100644

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

drivers/usb/gadget/udc/mv_u3d_core.c +10 -9
index 35e02a8d0091..bdba3f48c052 100644

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

drivers/usb/host/ehci-orion.c +6 -2
index 1ad72647a069..da0f36af0b38 100644

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

drivers/usb/host/fotg210-hcd.c +19 -22

41 lines not on this page · raw message

drivers/usb/host/fotg210.h +0 -5
index 7fcd785c7bc8..0f1da9503bc6 100644

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

drivers/usb/host/ohci-tmio.c +3 -0
index a631dbb369d7..983a00e2988d 100644

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

drivers/usb/host/xhci-rcar.c +7 -0
index 2b0ccd150209..4ebbe2c23292 100644

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

drivers/usb/host/xhci.c +12 -12
index c4e3760abd5b..bebab0ec2978 100644

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

drivers/usb/mtu3/mtu3_gadget.c +2 -4
index 3828ed6d38a2..270721cf229f 100644

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

drivers/usb/musb/musb_dsps.c +6 -7
index 403eb97915f8..2f6708b8b5c2 100644

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

drivers/usb/phy/phy-fsl-usb.c +2 -0
index f7c96d209eda..981db219234e 100644

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

drivers/usb/phy/phy-tahvo.c +3 -1
index 0981abc3d1ad..60d390e28289 100644

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

drivers/usb/phy/phy-twl6030-usb.c +5 -0
index dade34d70419..859af6113b45 100644

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

drivers/usb/serial/mos7720.c +3 -1
index 1e3ee2bfbcd0..d0c8d3800254 100644

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

drivers/usb/usbip/vhci_hcd.c +31 -1
index b13ed5a7618d..202dc76f7beb 100644

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

drivers/vfio/Kconfig +1 -1
index c84333eb5eb5..b7765271d0fb 100644

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

drivers/video/backlight/pwm_bl.c +28 -26

54 lines not on this page · raw message

drivers/video/fbdev/asiliantfb.c +3 -0
index ea31054a28ca..c1d6e6336225 100644

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

drivers/video/fbdev/core/fbmem.c +6 -0
index de04c097d67c..2297dfb494d6 100644

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

drivers/video/fbdev/kyro/fbdev.c +8 -0
index a7bd9f25911b..74bf26b527b9 100644

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

drivers/video/fbdev/riva/fbdev.c +3 -0
index cc242ba057d3..dfa81b641f9f 100644

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

fs/btrfs/inode.c +1 -1
index 6f02a3f77fa8..f314b2c2d148 100644

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

fs/btrfs/volumes.c +3 -0
index 5a19f5ee7038..6cb489625610 100644

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

fs/cifs/cifs_unicode.c +2 -7
index 9986817532b1..7932e20555d2 100644

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

fs/cifs/sess.c +1 -1
index aa23c00367ec..0113dba28eb0 100644

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

fs/crypto/hooks.c +44 -0

44 lines not on this page · raw message

fs/ext4/inline.c +6 -0
index c95246187659..c64e4a1be2f2 100644

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

fs/ext4/symlink.c +10 -1
index dd05af983092..a9457fed351e 100644

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

fs/f2fs/file.c +1 -3
index 95330dfdbb1a..2a7249496c57 100644

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

fs/f2fs/gc.c +3 -1
index 700c39ec99f5..38299ccfdf6e 100644

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

fs/f2fs/namei.c +10 -1
index e20a0f9e6845..edc80855974a 100644

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

fs/fcntl.c +3 -2
index e039af1872ab..dffb5245ae72 100644

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

fs/fscache/cookie.c +1 -13
index c550512ce335..2ff05adfc22a 100644

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

fs/fscache/internal.h +2 -0
index d6209022e965..cc87288a5448 100644

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

fs/fscache/main.c +39 -0
index 30ad89db1efc..aa49234e9520 100644

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

fs/gfs2/lock_dlm.c +5 -0
index 56dddc1f8ddd..9e90e42c495e 100644

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

fs/isofs/inode.c +13 -14
index 488a9e7f8f66..2355ad62b81f 100644

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

fs/isofs/isofs.h +0 -1
index 055ec6c586f7..dcdc191ed183 100644

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

fs/isofs/joliet.c +1 -3
index be8b6a9d0b92..c0f04a1e7f69 100644

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

fs/nfs/callback_xdr.c +1 -1
index a87a56273407..57558a8d92e9 100644

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

fs/overlayfs/dir.c +4 -2
index 25be2ab6ff6c..0b4ee1ab25df 100644

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

fs/ubifs/file.c +11 -1
index d7d2fdda4bbd..3dbb5ac630e4 100644

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

fs/udf/misc.c +11 -2
index 401e64cde1be..853bcff51043 100644

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

fs/udf/super.c +16 -9
index c7f6243f318b..9c71246e6d60 100644

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

fs/userfaultfd.c +45 -48

93 lines not on this page · raw message

include/crypto/public_key.h +2 -2
index e0b681a717ba..052e26fda2e6 100644

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

include/linux/bpf_verifier.h +13 -6
index 1c8517320ea6..4acd06cca703 100644

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

include/linux/filter.h +15 -0
index 7c84762cb59e..e981bd92a4e3 100644

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

include/linux/fscrypt_notsupp.h +6 -0
index 93304cfeb601..6e95c5a9b7fa 100644

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

include/linux/fscrypt_supp.h +1 -0
index 0409c14ae1de..f4cb4871a987 100644

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

include/linux/hugetlb.h +9 -0
index 2df83a659818..cb7dc38e9c77 100644

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

include/linux/list.h +19 -10
index de04cc5ed536..d2c12ef7a4e3 100644

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

include/linux/memory_hotplug.h +2 -2
index d17d45c41a0b..565317876822 100644

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

include/linux/pci.h +3 -2
index 2fda9893962d..6f9ca2f278b3 100644

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

include/linux/power/max17042_battery.h +1 -1
index a7ed29baf44a..86e5ad8aeee4 100644

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

include/linux/skbuff.h +1 -1
index 5f2e6451ece5..f97734f34746 100644

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

include/linux/sunrpc/svc.h +2 -0
index fdb6b317d974..c46abf35c9bb 100644

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

include/uapi/linux/pkt_sched.h +2 -0
index 8975fd1a1421..24ce2aab8946 100644

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

include/uapi/linux/serial_reg.h +1 -0
index be07b5470f4b..f51bc8f36813 100644

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

kernel/bpf/core.c +17 -1
index d2b6d2459aad..341402bc1202 100644

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

kernel/bpf/disasm.c +9 -7
index d6b76377cb6e..cbd75dd5992e 100644

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

kernel/bpf/verifier.c +242 -256

498 lines not on this page · raw message

kernel/events/core.c +1 -1
index dd740f91de47..4a8c3f5313f9 100644

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

kernel/fork.c +1 -0
index cf535b9d5db7..b65871600507 100644

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

kernel/locking/mutex.c +5 -10
index 354151fef06a..fbc62d360419 100644

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

kernel/pid_namespace.c +2 -1
index 95271f180687..33de14435c1f 100644

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

kernel/sched/deadline.c +5 -3
index aa592dc3cb40..beec5081a55a 100644

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

kernel/sched/sched.h +2 -0
index 7b7ba91e319b..55e695080fc6 100644

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

kernel/time/hrtimer.c +53 -7

60 lines not on this page · raw message

lib/mpi/mpiutil.c +1 -1
index 20ed0f766787..00825028cc84 100644

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

lib/test_bpf.c +10 -3
index 08d3d59dca17..49d79079e8b3 100644

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

mm/memory_hotplug.c +2 -2
index e60e28131f67..20f079c81b33 100644

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

mm/page_alloc.c +4 -4
index 4446a523e684..afcaa657a022 100644

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

net/9p/trans_xen.c +2 -2
index 9daab0dd833b..21132bf3d850 100644

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

net/bluetooth/cmtp/cmtp.h +1 -1
index c32638dddbf9..f6b9dc4e408f 100644

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

net/bluetooth/hci_core.c +14 -0
index 7a85f215da45..26acacb2fa95 100644

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

net/bluetooth/hci_event.c +77 -31

108 lines not on this page · raw message

net/bluetooth/sco.c +51 -34

85 lines not on this page · raw message

net/caif/chnl_net.c +3 -16
index 13e2ae6be620..8aeece7aa9e9 100644

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

net/core/flow_dissector.c +8 -4
index 994dd1520f07..949694c70cbc 100644

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

net/core/net_namespace.c +10 -8
index 939d8a31eb82..26d70c00b054 100644

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

net/dccp/minisocks.c +2 -0
index ba6fc3c1186b..e91838a7b849 100644

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

net/dsa/slave.c +5 -7
index b887d9edb9c3..f7c122357a96 100644

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

net/ipv4/icmp.c +21 -2
index dde6cf82e9f0..fe10a565b7d8 100644

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

net/ipv4/igmp.c +2 -0
index dca7fe0ae24a..15804cfc19a8 100644

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

net/ipv4/ip_gre.c +6 -3
index a8a37d112820..0c431fd4b120 100644

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

net/ipv4/ip_output.c +3 -2
index e63905f7f6f9..25beecee8949 100644

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

net/ipv4/route.c +31 -17

48 lines not on this page · raw message

net/ipv4/tcp_fastopen.c +1 -2
index 2ab371f55525..119d2c2f3b04 100644

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

net/ipv4/tcp_input.c +1 -1
index 36bff9291530..5117e0aeea1a 100644

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

net/ipv4/tcp_ipv4.c +3 -2
index 71236aa7388d..de4edfbc9e46 100644

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

net/ipv6/netfilter/nf_socket_ipv6.c +1 -3
index f14de4b6d639..58e839e2ce1d 100644

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

net/l2tp/l2tp_core.c +3 -1
index 9abdc0a04d99..bf2a53d455a1 100644

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

net/mac80211/tx.c +3 -1
index 3530d1a5fc98..5c5908127fcb 100644

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

net/netlabel/netlabel_cipso_v4.c +6 -6
index 3e3494c8d42f..e252f62bb8c2 100644

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

net/netlink/af_netlink.c +3 -1
index ac3fe507bc1c..b0fd268ed65e 100644

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

net/sched/sch_cbq.c +1 -1
index ebc3c8c7e666..bc62e1b24653 100644

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

net/sched/sch_fq_codel.c +10 -2
index a862d9990be7..e4f69c779b8c 100644

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

net/sunrpc/auth_gss/svcauth_gss.c +1 -1
index a85d78d2bdb7..d9d03881e4de 100644

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

net/sunrpc/svc.c +22 -5
index 11d393c04772..6a606af8de81 100644

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

net/tipc/socket.c +28 -8
index 6aead6deaa6c..848ae6dcbd82 100644

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

net/unix/af_unix.c +1 -1
index 98c253afa0db..c293a558b0d4 100644

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

samples/bpf/test_override_return.sh +1 -0
index e68b9ee6814b..35db26f736b9 100755

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

samples/bpf/tracex7_user.c +5 -0
index ea6dae78f0df..2ed13e9f3fcb 100644

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

security/integrity/ima/Kconfig +0 -1
index 13b446328dda..5095b2e8fcee 100644

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

security/integrity/ima/ima_mok.c +1 -1
index 3e7a1523663b..daad75ee74d9 100644

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

security/smack/smack_access.c +8 -9
index a7855c61c05c..07d23b4f76f3 100644

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

sound/core/pcm_lib.c +1 -1
index 56295936387c..da454eeee5c9 100644

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

sound/soc/intel/boards/bytcr_rt5640.c +6 -3
index 186c0ee059da..c4d19b88d17d 100644

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

sound/soc/rockchip/rockchip_i2s.c +22 -13
index b86f76c3598c..c6d11a59310f 100644

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

sound/usb/quirks.c +1 -0
index 4114594e57a3..f4bdcff82f5c 100644

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

tools/perf/util/machine.c +1 -0
index ab208400ea14..4ada233b37ed 100644

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

tools/testing/selftests/bpf/test_maps.c +1 -1
index 4e202217fae1..87ba89df9802 100644

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

tools/testing/selftests/bpf/test_verifier.c +126 -18

144 lines not on this page · raw message

tools/thermal/tmon/Makefile +1 -1
index 735a510230c3..45751648aacd 100644

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

virt/kvm/arm/arm.c +8 -0
index 39706799ecdf..b943ec5345cb 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.