Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 6 Feb 2018 19:09:45 +0000 (11:09 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 6 Feb 2018 19:09:45 +0000 (11:09 -0800)
Pull more rdma updates from Doug Ledford:
 "Items of note:

   - two patches fix a regression in the 4.15 kernel. The 4.14 kernel
     worked fine with NVMe over Fabrics and mlx5 adapters. That broke in
     4.15. The fix is here.

   - one of the patches (the endian notation patch from Lijun) looks
     like a lot of lines of change, but it's mostly mechanical in
     nature. It amounts to the biggest chunk of change in it (it's about
     2/3rds of the overall pull request).

  Summary:

   - Clean up some function signatures in rxe for clarity

   - Tidy the RDMA netlink header to remove unimplemented constants

   - bnxt_re driver fixes, one is a regression this window.

   - Minor hns driver fixes

   - Various fixes from Dan Carpenter and his tool

   - Fix IRQ cleanup race in HFI1

   - HF1 performance optimizations and a fix to report counters in the right units

   - Fix for an IPoIB startup sequence race with the external manager

   - Oops fix for the new kabi path

   - Endian cleanups for hns

   - Fix for mlx5 related to the new automatic affinity support"

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (38 commits)
  net/mlx5: increase async EQ to avoid EQ overrun
  mlx5: fix mlx5_get_vector_affinity to start from completion vector 0
  RDMA/hns: Fix the endian problem for hns
  IB/uverbs: Use the standard kConfig format for experimental
  IB: Update references to libibverbs
  IB/hfi1: Add 16B rcvhdr trace support
  IB/hfi1: Convert kzalloc_node and kcalloc to use kcalloc_node
  IB/core: Avoid a potential OOPs for an unused optional parameter
  IB/core: Map iWarp AH type to undefined in rdma_ah_find_type
  IB/ipoib: Fix for potential no-carrier state
  IB/hfi1: Show fault stats in both TX and RX directions
  IB/hfi1: Remove blind constants from 16B update
  IB/hfi1: Convert PortXmitWait/PortVLXmitWait counters to flit times
  IB/hfi1: Do not override given pcie_pset value
  IB/hfi1: Optimize process_receive_ib()
  IB/hfi1: Remove unnecessary fecn and becn fields
  IB/hfi1: Look up ibport using a pointer in receive path
  IB/hfi1: Optimize packet type comparison using 9B and bypass code paths
  IB/hfi1: Compute BTH only for RDMA_WRITE_LAST/SEND_LAST packet
  IB/hfi1: Remove dependence on qp->s_hdrwords
  ...

12 files changed:
1  2 
MAINTAINERS
drivers/infiniband/Kconfig
drivers/infiniband/hw/hfi1/file_ops.c
drivers/infiniband/hw/hfi1/rc.c
drivers/infiniband/hw/hfi1/ruc.c
drivers/infiniband/hw/hfi1/sdma.c
drivers/infiniband/hw/hfi1/uc.c
drivers/infiniband/hw/hfi1/ud.c
drivers/infiniband/hw/qib/qib_rc.c
drivers/infiniband/hw/qib/qib_uc.c
drivers/infiniband/hw/qib/qib_ud.c
drivers/net/ethernet/mellanox/mlx5/core/eq.c

diff --combined MAINTAINERS
@@@ -270,7 -270,6 +270,7 @@@ ACCES 104-QUAD-8 IIO DRIVE
  M:    William Breathitt Gray <vilhelm.gray@gmail.com>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-iio-counter-104-quad-8
  F:    drivers/iio/counter/104-quad-8.c
  
  ACCES PCI-IDIO-16 GPIO DRIVER
@@@ -279,12 -278,6 +279,12 @@@ L:       linux-gpio@vger.kernel.or
  S:    Maintained
  F:    drivers/gpio/gpio-pci-idio-16.c
  
 +ACCES PCIe-IDIO-24 GPIO DRIVER
 +M:    William Breathitt Gray <vilhelm.gray@gmail.com>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-pcie-idio-24.c
 +
  ACENIC DRIVER
  M:    Jes Sorensen <jes@trained-monkey.org>
  L:    linux-acenic@sunsite.dk
@@@ -336,7 -329,7 +336,7 @@@ F: drivers/acpi/apei
  
  ACPI COMPONENT ARCHITECTURE (ACPICA)
  M:    Robert Moore <robert.moore@intel.com>
 -M:    Lv Zheng <lv.zheng@intel.com>
 +M:    Erik Schmauss <erik.schmauss@intel.com>
  M:    "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
  L:    linux-acpi@vger.kernel.org
  L:    devel@acpica.org
@@@ -860,8 -853,6 +860,8 @@@ M: Michael Hennerich <Michael.Hennerich
  W:    http://wiki.analog.com/
  W:    http://ez.analog.com/community/linux-device-drivers
  S:    Supported
 +F:    Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
 +F:    Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
  F:    drivers/iio/*/ad*
  F:    drivers/iio/adc/ltc2497*
  X:    drivers/iio/*/adjd*
@@@ -884,12 -875,6 +884,12 @@@ S:       Supporte
  F:    drivers/android/
  F:    drivers/staging/android/
  
 +ANDROID GOLDFISH PIC DRIVER
 +M:    Miodrag Dinic <miodrag.dinic@mips.com>
 +S:    Supported
 +F:    Documentation/devicetree/bindings/interrupt-controller/google,goldfish-pic.txt
 +F:    drivers/irqchip/irq-goldfish-pic.c
 +
  ANDROID GOLDFISH RTC DRIVER
  M:    Miodrag Dinic <miodrag.dinic@mips.com>
  S:    Supported
@@@ -1278,12 -1263,6 +1278,12 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Supported
  F:    drivers/net/ethernet/cavium/thunder/
  
 +ARM/CIRRUS LOGIC BK3 MACHINE SUPPORT
 +M:    Lukasz Majewski <lukma@denx.de>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/mach-ep93xx/ts72xx.c
 +
  ARM/CIRRUS LOGIC CLPS711X ARM ARCHITECTURE
  M:    Alexander Shiyan <shc_work@mail.ru>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1342,8 -1321,7 +1342,8 @@@ F:      tools/perf/arch/arm/util/pmu.
  F:    tools/perf/arch/arm/util/auxtrace.c
  F:    tools/perf/arch/arm/util/cs-etm.c
  F:    tools/perf/arch/arm/util/cs-etm.h
 -F:    tools/perf/util/cs-etm.h
 +F:    tools/perf/util/cs-etm.*
 +F:    tools/perf/util/cs-etm-decoder/*
  
  ARM/CORGI MACHINE SUPPORT
  M:    Richard Purdie <rpurdie@rpsys.net>
@@@ -1357,10 -1335,8 +1357,10 @@@ T:    git git://github.com/ulli-kroll/linu
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/gemini.txt
  F:    Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt
 +F:    Documentation/devicetree/bindings/net/cortina,gemini-ethernet.txt
  F:    Documentation/devicetree/bindings/rtc/faraday,ftrtc010.txt
  F:    arch/arm/mach-gemini/
 +F:    drivers/net/ethernet/cortina/gemini/*
  F:    drivers/pinctrl/pinctrl-gemini.c
  F:    drivers/rtc/rtc-ftrtc010.c
  
@@@ -1615,7 -1591,6 +1615,7 @@@ F:      arch/arm/boot/dts/kirkwood
  F:    arch/arm/configs/mvebu_*_defconfig
  F:    arch/arm/mach-mvebu/
  F:    arch/arm64/boot/dts/marvell/armada*
 +F:    drivers/cpufreq/armada-37xx-cpufreq.c
  F:    drivers/cpufreq/mvebu-cpufreq.c
  F:    drivers/irqchip/irq-armada-370-xp.c
  F:    drivers/irqchip/irq-mvebu-*
@@@ -1668,38 -1643,14 +1668,38 @@@ ARM/NEC MOBILEPRO 900/c MACHINE SUPPOR
  M:    Michael Petchkovsky <mkpetch@internode.on.net>
  S:    Maintained
  
 -ARM/NOMADIK ARCHITECTURE
 -M:    Alessandro Rubini <rubini@unipv.it>
 +ARM/NOMADIK/U300/Ux500 ARCHITECTURES
  M:    Linus Walleij <linus.walleij@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-nomadik/
 -F:    drivers/pinctrl/nomadik/
 +F:    arch/arm/mach-u300/
 +F:    arch/arm/mach-ux500/
 +F:    arch/arm/boot/dts/ste-*
 +F:    drivers/clk/clk-nomadik.c
 +F:    drivers/clk/clk-u300.c
 +F:    drivers/clocksource/clksrc-dbx500-prcmu.c
 +F:    drivers/clocksource/timer-u300.c
 +F:    drivers/dma/coh901318*
 +F:    drivers/dma/ste_dma40*
 +F:    drivers/hwspinlock/u8500_hsem.c
  F:    drivers/i2c/busses/i2c-nomadik.c
 +F:    drivers/i2c/busses/i2c-stu300.c
 +F:    drivers/mfd/ab3100*
 +F:    drivers/mfd/ab8500*
 +F:    drivers/mfd/abx500*
 +F:    drivers/mfd/dbx500*
 +F:    drivers/mfd/db8500*
 +F:    drivers/pinctrl/nomadik/
 +F:    drivers/pinctrl/pinctrl-coh901*
 +F:    drivers/pinctrl/pinctrl-u300.c
 +F:    drivers/rtc/rtc-ab3100.c
 +F:    drivers/rtc/rtc-ab8500.c
 +F:    drivers/rtc/rtc-coh901331.c
 +F:    drivers/rtc/rtc-pl031.c
 +F:    drivers/watchdog/coh901327_wdt.c
 +F:    Documentation/devicetree/bindings/arm/ste-*
 +F:    Documentation/devicetree/bindings/arm/ux500/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
  
  ARM/NUVOTON W90X900 ARM ARCHITECTURE
@@@ -2013,10 -1964,9 +2013,10 @@@ N:    stm3
  F:    drivers/clocksource/armv7m_systick.c
  
  ARM/TANGO ARCHITECTURE
 -M:    Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
 +M:    Marc Gonzalez <marc.w.gonzalez@free.fr>
 +M:    Mans Rullgard <mans@mansr.com>
  L:    linux-arm-kernel@lists.infradead.org
 -S:    Maintained
 +S:    Odd Fixes
  N:    tango
  
  ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
@@@ -2080,13 -2030,27 +2080,13 @@@ M:   Dmitry Eremin-Solenikov <dbaryshkov@
  M:    Dirk Opfer <dirk@opfer-online.de>
  S:    Maintained
  
 -ARM/U300 MACHINE SUPPORT
 -M:    Linus Walleij <linus.walleij@linaro.org>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Supported
 -F:    arch/arm/mach-u300/
 -F:    drivers/clocksource/timer-u300.c
 -F:    drivers/i2c/busses/i2c-stu300.c
 -F:    drivers/rtc/rtc-coh901331.c
 -F:    drivers/watchdog/coh901327_wdt.c
 -F:    drivers/dma/coh901318*
 -F:    drivers/mfd/ab3100*
 -F:    drivers/rtc/rtc-ab3100.c
 -F:    drivers/rtc/rtc-coh901331.c
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git
 -
  ARM/UNIPHIER ARCHITECTURE
  M:    Masahiro Yamada <yamada.masahiro@socionext.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
 +F:    Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt
  F:    arch/arm/boot/dts/uniphier*
  F:    arch/arm/include/asm/hardware/cache-uniphier.h
  F:    arch/arm/mach-uniphier/
@@@ -2102,6 -2066,24 +2102,6 @@@ F:     drivers/reset/reset-uniphier.
  F:    drivers/tty/serial/8250/8250_uniphier.c
  N:    uniphier
  
 -ARM/Ux500 ARM ARCHITECTURE
 -M:    Linus Walleij <linus.walleij@linaro.org>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 -F:    arch/arm/mach-ux500/
 -F:    drivers/clocksource/clksrc-dbx500-prcmu.c
 -F:    drivers/dma/ste_dma40*
 -F:    drivers/hwspinlock/u8500_hsem.c
 -F:    drivers/mfd/abx500*
 -F:    drivers/mfd/ab8500*
 -F:    drivers/mfd/dbx500*
 -F:    drivers/mfd/db8500*
 -F:    drivers/pinctrl/nomadik/pinctrl-ab*
 -F:    drivers/pinctrl/nomadik/pinctrl-nomadik*
 -F:    drivers/rtc/rtc-ab8500.c
 -F:    drivers/rtc/rtc-pl031.c
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git
 -
  ARM/Ux500 CLOCK FRAMEWORK SUPPORT
  M:    Ulf Hansson <ulf.hansson@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -2288,9 -2270,7 +2288,9 @@@ F:      include/linux/async_tx.
  AT24 EEPROM DRIVER
  M:    Bartosz Golaszewski <brgl@bgdev.pl>
  L:    linux-i2c@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/eeprom/at24.txt
  F:    drivers/misc/eeprom/at24.c
  F:    include/linux/platform_data/at24.h
  
@@@ -2411,6 -2391,13 +2411,6 @@@ F:     Documentation/devicetree/bindings/in
  F:    drivers/input/touchscreen/atmel_mxt_ts.c
  F:    include/linux/platform_data/atmel_mxt_ts.h
  
 -ATMEL NAND DRIVER
 -M:    Wenyou Yang <wenyou.yang@atmel.com>
 -M:    Josh Wu <rainyfeeling@outlook.com>
 -L:    linux-mtd@lists.infradead.org
 -S:    Supported
 -F:    drivers/mtd/nand/atmel/*
 -
  ATMEL SAMA5D2 ADC DRIVER
  M:    Ludovic Desroches <ludovic.desroches@microchip.com>
  L:    linux-iio@vger.kernel.org
@@@ -2522,8 -2509,6 +2522,8 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/axentia.txt
  F:    arch/arm/boot/dts/at91-linea.dtsi
 +F:    arch/arm/boot/dts/at91-natte.dtsi
 +F:    arch/arm/boot/dts/at91-nattis-2-natte-2.dts
  F:    arch/arm/boot/dts/at91-tse850-3.dts
  
  AXENTIA ASOC DRIVERS
@@@ -2587,7 -2572,6 +2587,7 @@@ S:      Maintaine
  F:    Documentation/ABI/testing/sysfs-class-net-batman-adv
  F:    Documentation/ABI/testing/sysfs-class-net-mesh
  F:    Documentation/networking/batman-adv.rst
 +F:    include/uapi/linux/batadv_packet.h
  F:    include/uapi/linux/batman_adv.h
  F:    net/batman-adv/
  
@@@ -2711,6 -2695,7 +2711,6 @@@ F:      drivers/mtd/devices/block2mtd.
  
  BLUETOOTH DRIVERS
  M:    Marcel Holtmann <marcel@holtmann.org>
 -M:    Gustavo Padovan <gustavo@padovan.org>
  M:    Johan Hedberg <johan.hedberg@gmail.com>
  L:    linux-bluetooth@vger.kernel.org
  W:    http://www.bluez.org/
@@@ -2721,6 -2706,7 +2721,6 @@@ F:      drivers/bluetooth
  
  BLUETOOTH SUBSYSTEM
  M:    Marcel Holtmann <marcel@holtmann.org>
 -M:    Gustavo Padovan <gustavo@padovan.org>
  M:    Johan Hedberg <johan.hedberg@gmail.com>
  L:    linux-bluetooth@vger.kernel.org
  W:    http://www.bluez.org/
@@@ -2745,16 -2731,12 +2745,16 @@@ M:   Alexei Starovoitov <ast@kernel.org
  M:    Daniel Borkmann <daniel@iogearbox.net>
  L:    netdev@vger.kernel.org
  L:    linux-kernel@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
  S:    Supported
  F:    arch/x86/net/bpf_jit*
  F:    Documentation/networking/filter.txt
  F:    Documentation/bpf/
  F:    include/linux/bpf*
  F:    include/linux/filter.h
 +F:    include/trace/events/bpf.h
 +F:    include/trace/events/xdp.h
  F:    include/uapi/linux/bpf*
  F:    include/uapi/linux/filter.h
  F:    kernel/bpf/
@@@ -2858,8 -2840,6 +2858,8 @@@ S:      Maintaine
  F:    arch/arm/mach-bcm/*brcmstb*
  F:    arch/arm/boot/dts/bcm7*.dts*
  F:    drivers/bus/brcmstb_gisb.c
 +F:    arch/arm/mm/cache-b15-rac.c
 +F:    arch/arm/include/asm/hardware/cache-b15-rac.h
  N:    brcmstb
  
  BROADCOM BMIPS CPUFREQ DRIVER
@@@ -3221,7 -3201,7 +3221,7 @@@ W:      https://github.com/linux-ca
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git
  S:    Maintained
 -F:    Documentation/networking/can.txt
 +F:    Documentation/networking/can.rst
  F:    net/can/
  F:    include/linux/can/core.h
  F:    include/uapi/linux/can.h
@@@ -3426,8 -3406,8 +3426,8 @@@ M:      Arnd Bergmann <arnd@arndb.de
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
  S:    Supported
 -F:    drivers/char/*
 -F:    drivers/misc/*
 +F:    drivers/char/
 +F:    drivers/misc/
  F:    include/linux/miscdevice.h
  
  CHECKPATCH
@@@ -4153,7 -4133,6 +4153,7 @@@ DEVANTECH SRF ULTRASONIC RANGER IIO DRI
  M:    Andreas Klinger <ak@it-klinger.de>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-iio-distance-srf08
  F:    drivers/iio/proximity/srf*.c
  
  DEVICE COREDUMP (DEV_COREDUMP)
@@@ -4363,12 -4342,10 +4363,12 @@@ T:   git git://git.infradead.org/users/hc
  W:    http://git.infradead.org/users/hch/dma-mapping.git
  S:    Supported
  F:    lib/dma-debug.c
 -F:    lib/dma-noop.c
 +F:    lib/dma-direct.c
  F:    lib/dma-virt.c
  F:    drivers/base/dma-mapping.c
  F:    drivers/base/dma-coherent.c
 +F:    include/asm-generic/dma-mapping.h
 +F:    include/linux/dma-direct.h
  F:    include/linux/dma-mapping.h
  
  DME1737 HARDWARE MONITOR DRIVER
@@@ -4491,12 -4468,6 +4491,12 @@@ T:    git git://anongit.freedesktop.org/dr
  S:    Maintained
  F:    drivers/gpu/drm/tve200/
  
 +DRM DRIVER FOR ILITEK ILI9225 PANELS
 +M:    David Lechner <david@lechnology.com>
 +S:    Maintained
 +F:    drivers/gpu/drm/tinydrm/ili9225.c
 +F:    Documentation/devicetree/bindings/display/ili9225.txt
 +
  DRM DRIVER FOR INTEL I810 VIDEO CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/i810/
@@@ -4583,12 -4554,6 +4583,12 @@@ S:    Maintaine
  F:    drivers/gpu/drm/tinydrm/st7586.c
  F:    Documentation/devicetree/bindings/display/st7586.txt
  
 +DRM DRIVER FOR SITRONIX ST7735R PANELS
 +M:    David Lechner <david@lechnology.com>
 +S:    Maintained
 +F:    drivers/gpu/drm/tinydrm/st7735r.c
 +F:    Documentation/devicetree/bindings/display/st7735r.txt
 +
  DRM DRIVER FOR TDFX VIDEO CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/tdfx/
@@@ -4628,7 -4593,7 +4628,7 @@@ F:      include/linux/vga
  
  DRM DRIVERS AND MISC GPU PATCHES
  M:    Daniel Vetter <daniel.vetter@intel.com>
 -M:    Jani Nikula <jani.nikula@linux.intel.com>
 +M:    Gustavo Padovan <gustavo@padovan.org>
  M:    Sean Paul <seanpaul@chromium.org>
  W:    https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html
  S:    Maintained
@@@ -4757,8 -4722,7 +4757,8 @@@ F:      Documentation/devicetree/bindings/di
  F:    Documentation/devicetree/bindings/display/renesas,du.txt
  
  DRM DRIVERS FOR ROCKCHIP
 -M:    Mark Yao <mark.yao@rock-chips.com>
 +M:    Sandy Huang <hjc@rock-chips.com>
 +M:    Heiko Stübner <heiko@sntech.de>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
  F:    drivers/gpu/drm/rockchip/
@@@ -4846,15 -4810,6 +4846,15 @@@ S:    Maintaine
  F:    drivers/gpu/drm/tinydrm/
  F:    include/drm/tinydrm/
  
 +DRM TTM SUBSYSTEM
 +M:    Christian Koenig <christian.koenig@amd.com>
 +M:    Roger He <Hongbo.He@amd.com>
 +T:    git git://people.freedesktop.org/~agd5f/linux
 +S:    Maintained
 +L:    dri-devel@lists.freedesktop.org
 +F:    include/drm/ttm/
 +F:    drivers/gpu/drm/ttm/
 +
  DSBR100 USB FM RADIO DRIVER
  M:    Alexey Klimov <klimov.linux@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -4992,11 -4947,6 +4992,11 @@@ S:    Maintaine
  F:    lib/dynamic_debug.c
  F:    include/linux/dynamic_debug.h
  
 +DYNAMIC INTERRUPT MODERATION
 +M:    Tal Gilboa <talgi@mellanox.com>
 +S:    Maintained
 +F:    include/linux/net_dim.h
 +
  DZ DECSTATION DZ11 SERIAL DRIVER
  M:    "Maciej W. Rozycki" <macro@linux-mips.org>
  S:    Maintained
@@@ -5197,12 -5147,6 +5197,12 @@@ L:    linux-edac@vger.kernel.or
  S:    Maintained
  F:    drivers/edac/skx_edac.c
  
 +EDAC-TI
 +M:    Tero Kristo <t-kristo@ti.com>
 +L:    linux-edac@vger.kernel.org
 +S:    Maintained
 +F:    drivers/edac/ti_edac.c
 +
  EDIROL UA-101/UA-1000 DRIVER
  M:    Clemens Ladisch <clemens@ladisch.de>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -6026,7 -5970,6 +6026,7 @@@ F:      drivers/media/rc/gpio-ir-tx.
  
  GPIO MOCKUP DRIVER
  M:    Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>
 +R:    Bartosz Golaszewski <brgl@bgdev.pl>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
  F:    drivers/gpio/gpio-mockup.c
@@@ -6582,12 -6525,6 +6582,12 @@@ F:    drivers/i2c/i2c-mux.
  F:    drivers/i2c/muxes/
  F:    include/linux/i2c-mux.h
  
 +I2C MV64XXX MARVELL AND ALLWINNER DRIVER
 +M:    Gregory CLEMENT <gregory.clement@free-electrons.com>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-mv64xxx.c
 +
  I2C OVER PARALLEL PORT
  M:    Jean Delvare <jdelvare@suse.com>
  L:    linux-i2c@vger.kernel.org
@@@ -6887,8 -6824,6 +6887,8 @@@ R:      Peter Meerwald-Stadler <pmeerw@pmeer
  L:    linux-iio@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
  S:    Maintained
 +F:    Documentation/ABI/testing/configfs-iio*
 +F:    Documentation/ABI/testing/sysfs-bus-iio*
  F:    Documentation/devicetree/bindings/iio/
  F:    drivers/iio/
  F:    drivers/staging/iio/
@@@ -6946,7 -6881,7 +6946,7 @@@ INFINIBAND SUBSYSTE
  M:    Doug Ledford <dledford@redhat.com>
  M:    Jason Gunthorpe <jgg@mellanox.com>
  L:    linux-rdma@vger.kernel.org
- W:    http://www.openfabrics.org/
+ W:    https://github.com/linux-rdma/rdma-core
  Q:    http://patchwork.kernel.org/project/linux-rdma/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git
  S:    Supported
@@@ -7089,7 -7024,7 +7089,7 @@@ M:      Zhi Wang <zhi.a.wang@intel.com
  L:    intel-gvt-dev@lists.freedesktop.org
  L:    intel-gfx@lists.freedesktop.org
  W:    https://01.org/igvt-g
 -T:    git https://github.com/01org/gvt-linux.git
 +T:    git https://github.com/intel/gvt-linux.git
  S:    Supported
  F:    drivers/gpu/drm/i915/gvt/
  
@@@ -7370,16 -7305,17 +7370,16 @@@ F:   drivers/tty/ipwireless
  
  IPX NETWORK LAYER
  L:    netdev@vger.kernel.org
 -S:    Odd fixes
 -F:    include/net/ipx.h
 +S:    Obsolete
  F:    include/uapi/linux/ipx.h
 -F:    net/ipx/
 +F:    drivers/staging/ipx/
  
  IRDA SUBSYSTEM
  M:    Samuel Ortiz <samuel@sortiz.org>
  L:    irda-users@lists.sourceforge.net (subscribers-only)
  L:    netdev@vger.kernel.org
  W:    http://irda.sourceforge.net/
 -S:    Maintained
 +S:    Obsolete
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/irda-2.6.git
  F:    Documentation/networking/irda.txt
  F:    drivers/staging/irda/
@@@ -7803,7 -7739,6 +7803,7 @@@ F:      include/keys/encrypted-type.
  F:    security/keys/encrypted-keys/
  
  KEYS-TRUSTED
 +M:    James Bottomley <jejb@linux.vnet.ibm.com>
  M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
  L:    linux-integrity@vger.kernel.org
  L:    keyrings@vger.kernel.org
@@@ -8255,7 -8190,6 +8255,7 @@@ F:      arch/*/include/asm/rwsem.
  F:    include/linux/seqlock.h
  F:    lib/locking*.[ch]
  F:    kernel/locking/
 +X:    kernel/locking/locktorture.c
  
  LOGICAL DISK MANAGER SUPPORT (LDM, Windows 2000/XP/Vista Dynamic Disks)
  M:    "Richard Russon (FlatCap)" <ldm@flatcap.org>
@@@ -8471,13 -8405,6 +8471,13 @@@ L:    linux-wireless@vger.kernel.or
  S:    Odd Fixes
  F:    drivers/net/wireless/marvell/mwl8k.c
  
 +MARVELL NAND CONTROLLER DRIVER
 +M:    Miquel Raynal <miquel.raynal@free-electrons.com>
 +L:    linux-mtd@lists.infradead.org
 +S:    Maintained
 +F:    drivers/mtd/nand/marvell_nand.c
 +F:    Documentation/devicetree/bindings/mtd/marvell-nand.txt
 +
  MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
  M:    Nicolas Pitre <nico@fluxnic.net>
  S:    Odd Fixes
@@@ -8792,13 -8719,6 +8792,13 @@@ L:    netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/mediatek/
  
 +MEDIATEK SWITCH DRIVER
 +M:    Sean Wang <sean.wang@mediatek.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/dsa/mt7530.*
 +F:    net/dsa/tag_mtk.c
 +
  MEDIATEK JPEG DRIVER
  M:    Rick Chang <rick.chang@mediatek.com>
  M:    Bin Liu <bin.liu@mediatek.com>
@@@ -9032,7 -8952,7 +9032,7 @@@ L:      linux-mtd@lists.infradead.or
  W:    http://www.linux-mtd.infradead.org/
  Q:    http://patchwork.ozlabs.org/project/linux-mtd/list/
  T:    git git://git.infradead.org/linux-mtd.git master
 -T:    git git://git.infradead.org/l2-mtd.git master
 +T:    git git://git.infradead.org/linux-mtd.git mtd/next
  S:    Maintained
  F:    Documentation/devicetree/bindings/mtd/
  F:    drivers/mtd/
@@@ -9121,14 -9041,6 +9121,14 @@@ F:    drivers/media/platform/atmel/atmel-i
  F:    drivers/media/platform/atmel/atmel-isc-regs.h
  F:    devicetree/bindings/media/atmel-isc.txt
  
 +MICROCHIP / ATMEL NAND DRIVER
 +M:    Wenyou Yang <wenyou.yang@microchip.com>
 +M:    Josh Wu <rainyfeeling@outlook.com>
 +L:    linux-mtd@lists.infradead.org
 +S:    Supported
 +F:    drivers/mtd/nand/atmel/*
 +F:    Documentation/devicetree/bindings/mtd/atmel-nand.txt
 +
  MICROCHIP KSZ SERIES ETHERNET SWITCH DRIVER
  M:    Woojung Huh <Woojung.Huh@microchip.com>
  M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
@@@ -9429,7 -9341,7 +9429,7 @@@ L:      linux-mtd@lists.infradead.or
  W:    http://www.linux-mtd.infradead.org/
  Q:    http://patchwork.ozlabs.org/project/linux-mtd/list/
  T:    git git://git.infradead.org/linux-mtd.git nand/fixes
 -T:    git git://git.infradead.org/l2-mtd.git nand/next
 +T:    git git://git.infradead.org/linux-mtd.git nand/next
  S:    Maintained
  F:    drivers/mtd/nand/
  F:    include/linux/mtd/*nand*.h
@@@ -9447,8 -9359,8 +9447,8 @@@ F:      drivers/net/ethernet/natsemi/natsemi
  
  NCP FILESYSTEM
  M:    Petr Vandrovec <petr@vandrovec.name>
 -S:    Odd Fixes
 -F:    fs/ncpfs/
 +S:    Obsolete
 +F:    drivers/staging/ncpfs/
  
  NCR 5380 SCSI DRIVERS
  M:    Finn Thain <fthain@telegraphics.com.au>
@@@ -9684,11 -9596,6 +9684,11 @@@ NETWORKING [WIRELESS
  L:    linux-wireless@vger.kernel.org
  Q:    http://patchwork.kernel.org/project/linux-wireless/list/
  
 +NETDEVSIM
 +M:    Jakub Kicinski <jakub.kicinski@netronome.com>
 +S:    Maintained
 +F:    drivers/net/netdevsim/*
 +
  NETXEN (1/10) GbE SUPPORT
  M:    Manish Chopra <manish.chopra@cavium.com>
  M:    Rahul Verma <rahul.verma@cavium.com>
@@@ -9801,7 -9708,7 +9801,7 @@@ F:      drivers/ntb/hw/amd
  NTB DRIVER CORE
  M:    Jon Mason <jdmason@kudzu.us>
  M:    Dave Jiang <dave.jiang@intel.com>
 -M:    Allen Hubbe <Allen.Hubbe@emc.com>
 +M:    Allen Hubbe <allenbh@gmail.com>
  L:    linux-ntb@googlegroups.com
  S:    Supported
  W:    https://github.com/jonmason/ntb/wiki
@@@ -9835,15 -9742,6 +9835,15 @@@ S:    Supporte
  F:    Documentation/filesystems/ntfs.txt
  F:    fs/ntfs/
  
 +NUBUS SUBSYSTEM
 +M:    Finn Thain <fthain@telegraphics.com.au>
 +L:    linux-m68k@lists.linux-m68k.org
 +S:    Maintained
 +F:    arch/*/include/asm/nubus.h
 +F:    drivers/nubus/
 +F:    include/linux/nubus.h
 +F:    include/uapi/linux/nubus.h
 +
  NVIDIA (rivafb and nvidiafb) FRAMEBUFFER DRIVER
  M:    Antonino Daplas <adaplas@gmail.com>
  L:    linux-fbdev@vger.kernel.org
@@@ -9904,7 -9802,6 +9904,7 @@@ NXP TFA9879 DRIVE
  M:    Peter Rosin <peda@axentia.se>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/tfa9879.txt
  F:    sound/soc/codecs/tfa9879*
  
  NXP-NCI NFC DRIVER
@@@ -9919,18 -9816,6 +9919,18 @@@ M:    Josh Poimboeuf <jpoimboe@redhat.com
  S:    Supported
  F:    tools/objtool/
  
 +OCXL (Open Coherent Accelerator Processor Interface OpenCAPI) DRIVER
 +M:    Frederic Barrat <fbarrat@linux.vnet.ibm.com>
 +M:    Andrew Donnellan <andrew.donnellan@au1.ibm.com>
 +L:    linuxppc-dev@lists.ozlabs.org
 +S:    Supported
 +F:    arch/powerpc/platforms/powernv/ocxl.c
 +F:    arch/powerpc/include/asm/pnv-ocxl.h
 +F:    drivers/misc/ocxl/
 +F:    include/misc/ocxl*
 +F:    include/uapi/misc/ocxl.h
 +F:    Documentation/accelerators/ocxl.txt
 +
  OMAP AUDIO SUPPORT
  M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
  M:    Jarkko Nikula <jarkko.nikula@bitmer.com>
@@@ -10513,13 -10398,6 +10513,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/pci/pci-armada8k.txt
  F:    drivers/pci/dwc/pcie-armada8k.c
  
 +PCI DRIVER FOR CADENCE PCIE IP
 +M:    Alan Douglas <adouglas@cadence.com>
 +L:    linux-pci@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/cdns,*.txt
 +F:    drivers/pci/cadence/pcie-cadence*
 +
  PCI DRIVER FOR FREESCALE LAYERSCAPE
  M:    Minghuan Lian <minghuan.Lian@freescale.com>
  M:    Mingkai Hu <mingkai.hu@freescale.com>
@@@ -10670,12 -10548,8 +10670,12 @@@ T: git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    Documentation/devicetree/bindings/pci/
  F:    Documentation/PCI/
 +F:    drivers/acpi/pci*
  F:    drivers/pci/
 +F:    include/asm-generic/pci*
  F:    include/linux/pci*
 +F:    include/uapi/linux/pci*
 +F:    lib/pci*
  F:    arch/x86/pci/
  F:    arch/x86/kernel/quirks.c
  
@@@ -10896,16 -10770,6 +10896,16 @@@ M: Heikki Krogerus <heikki.krogerus@lin
  S:    Maintained
  F:    drivers/pinctrl/intel/
  
 +PIN CONTROLLER - MEDIATEK
 +M:    Sean Wang <sean.wang@mediatek.com>
 +L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt
 +F:    Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt
 +F:    drivers/pinctrl/mediatek/pinctrl-mtk-common.*
 +F:    drivers/pinctrl/mediatek/pinctrl-mt2701.c
 +F:    drivers/pinctrl/mediatek/pinctrl-mt7622.c
 +
  PIN CONTROLLER - QUALCOMM
  M:    Bjorn Andersson <bjorn.andersson@linaro.org>
  S:    Maintained
@@@ -11024,7 -10888,6 +11024,7 @@@ F:   include/linux/pm.
  F:    include/linux/pm_*
  F:    include/linux/powercap.h
  F:    drivers/powercap/
 +F:    kernel/configs/nopm.config
  
  POWER STATE COORDINATION INTERFACE (PSCI)
  M:    Mark Rutland <mark.rutland@arm.com>
@@@ -11493,7 -11356,6 +11493,7 @@@ F:   drivers/net/wireless/quantenn
  RADEON and AMDGPU DRM DRIVERS
  M:    Alex Deucher <alexander.deucher@amd.com>
  M:    Christian König <christian.koenig@amd.com>
 +M:    David (ChunMing) Zhou <David1.Zhou@amd.com>
  L:    amd-gfx@lists.freedesktop.org
  T:    git git://people.freedesktop.org/~agd5f/linux
  S:    Supported
@@@ -11586,6 -11448,15 +11586,6 @@@ L:  linux-wireless@vger.kernel.or
  S:    Orphan
  F:    drivers/net/wireless/ray*
  
 -RCUTORTURE MODULE
 -M:    Josh Triplett <josh@joshtriplett.org>
 -M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 -L:    linux-kernel@vger.kernel.org
 -S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 -F:    Documentation/RCU/torture.txt
 -F:    kernel/rcu/rcutorture.c
 -
  RCUTORTURE TEST FRAMEWORK
  M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
  M:    Josh Triplett <josh@joshtriplett.org>
@@@ -11887,13 -11758,15 +11887,13 @@@ T:        git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/net/wireless/realtek/rtl818x/rtl8187/
  
 -RTL8192CE WIRELESS DRIVER
 -M:    Larry Finger <Larry.Finger@lwfinger.net>
 -M:    Chaoming Li <chaoming_li@realsil.com.cn>
 +REALTEK WIRELESS DRIVER (rtlwifi family)
 +M:    Ping-Ke Shih <pkshih@realtek.com>
  L:    linux-wireless@vger.kernel.org
  W:    http://wireless.kernel.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
  S:    Maintained
  F:    drivers/net/wireless/realtek/rtlwifi/
 -F:    drivers/net/wireless/realtek/rtlwifi/rtl8192ce/
  
  RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
  M:    Jes Sorensen <Jes.Sorensen@gmail.com>
@@@ -12057,13 -11930,6 +12057,13 @@@ S: Maintaine
  F:    drivers/crypto/exynos-rng.c
  F:    Documentation/devicetree/bindings/crypto/samsung,exynos-rng4.txt
  
 +SAMSUNG EXYNOS TRUE RANDOM NUMBER GENERATOR (TRNG) DRIVER
 +M:    Łukasz Stelmach <l.stelmach@samsung.com>
 +L:    linux-samsung-soc@vger.kernel.org
 +S:    Maintained
 +F:    drivers/char/hw_random/exynos-trng.c
 +F:    Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.txt
 +
  SAMSUNG FRAMEBUFFER DRIVER
  M:    Jingoo Han <jingoohan1@gmail.com>
  L:    linux-fbdev@vger.kernel.org
@@@ -12126,7 -11992,6 +12126,7 @@@ F:   drivers/media/i2c/s5k5baf.
  SAMSUNG S5P Security SubSystem (SSS) DRIVER
  M:    Krzysztof Kozlowski <krzk@kernel.org>
  M:    Vladimir Zapolskiy <vz@mleia.com>
 +M:    Kamil Konieczny <k.konieczny@partner.samsung.com>
  L:    linux-crypto@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
@@@ -12594,13 -12459,6 +12594,13 @@@ F: lib/siphash.
  F:    lib/test_siphash.c
  F:    include/linux/siphash.h
  
 +SIOX
 +M:    Gavin Schenk <g.schenk@eckelmann.de>
 +M:    Uwe Kleine-König <kernel@pengutronix.de>
 +S:    Supported
 +F:    drivers/siox/*
 +F:    include/trace/events/siox.h
 +
  SIS 190 ETHERNET DRIVER
  M:    Francois Romieu <romieu@fr.zoreil.com>
  L:    netdev@vger.kernel.org
@@@ -12652,14 -12510,6 +12652,14 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    include/linux/srcu.h
  F:    kernel/rcu/srcu.c
  
 +SERIAL LOW-POWER INTER-CHIP MEDIA BUS (SLIMbus)
 +M:    Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/slimbus/
 +F:    Documentation/devicetree/bindings/slimbus/
 +F:    include/linux/slimbus.h
 +
  SMACK SECURITY MODULE
  M:    Casey Schaufler <casey@schaufler-ca.com>
  L:    linux-security-module@vger.kernel.org
@@@ -12741,12 -12591,6 +12741,12 @@@ F: include/media/soc
  F:    drivers/media/i2c/soc_camera/
  F:    drivers/media/platform/soc_camera/
  
 +SOCIONEXT UNIPHIER SOUND DRIVER
 +M:    Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    sound/soc/uniphier/
 +
  SOEKRIS NET48XX LED SUPPORT
  M:    Chris Boot <bootc@bootc.net>
  S:    Maintained
@@@ -12771,15 -12615,6 +12771,15 @@@ L: linux-media@vger.kernel.or
  S:    Supported
  F:    drivers/media/pci/solo6x10/
  
 +SOFTWARE DELEGATED EXCEPTION INTERFACE (SDEI)
 +M:    James Morse <james.morse@arm.com>
 +L:    linux-arm-kernel@lists.infradead.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/arm/firmware/sdei.txt
 +F:    drivers/firmware/arm_sdei.c
 +F:    include/linux/sdei.h
 +F:    include/uapi/linux/sdei.h
 +
  SOFTWARE RAID (Multiple Disks) SUPPORT
  M:    Shaohua Li <shli@kernel.org>
  L:    linux-raid@vger.kernel.org
@@@ -12792,13 -12627,6 +12792,13 @@@ F: drivers/md/raid
  F:    include/linux/raid/
  F:    include/uapi/linux/raid/
  
 +SOCIONEXT (SNI) NETSEC NETWORK DRIVER
 +M:    Jassi Brar <jaswinder.singh@linaro.org>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/ethernet/socionext/netsec.c
 +F:    Documentation/devicetree/bindings/net/socionext-netsec.txt
 +
  SONIC NETWORK DRIVER
  M:    Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  L:    netdev@vger.kernel.org
@@@ -12885,16 -12713,6 +12885,16 @@@ F: Documentation/sound/alsa/soc
  F:    sound/soc/
  F:    include/sound/soc*
  
 +SOUNDWIRE SUBSYSTEM
 +M:    Vinod Koul <vinod.koul@intel.com>
 +M:    Sanyog Kale <sanyog.r.kale@intel.com>
 +R:    Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 +S:    Supported
 +F:    Documentation/driver-api/soundwire/
 +F:    drivers/soundwire/
 +F:    include/linux/soundwire/
 +
  SP2 MEDIA DRIVER
  M:    Olli Salonen <olli.salonen@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -12961,7 -12779,7 +12961,7 @@@ L:   linux-mtd@lists.infradead.or
  W:    http://www.linux-mtd.infradead.org/
  Q:    http://patchwork.ozlabs.org/project/linux-mtd/list/
  T:    git git://git.infradead.org/linux-mtd.git spi-nor/fixes
 -T:    git git://git.infradead.org/l2-mtd.git spi-nor/next
 +T:    git git://git.infradead.org/linux-mtd.git spi-nor/next
  S:    Maintained
  F:    drivers/mtd/spi-nor/
  F:    include/linux/mtd/spi-nor.h
@@@ -13214,7 -13032,7 +13214,7 @@@ F:   arch/x86/boot/video
  
  SWIOTLB SUBSYSTEM
  M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
 -L:    linux-kernel@vger.kernel.org
 +L:    iommu@lists.linux-foundation.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb.git
  S:    Supported
  F:    lib/swiotlb.c
@@@ -13279,11 -13097,6 +13279,11 @@@ S: Supporte
  F:    drivers/reset/reset-axs10x.c
  F:    Documentation/devicetree/bindings/reset/snps,axs10x-reset.txt
  
 +SYNOPSYS DESIGNWARE 8250 UART DRIVER
 +R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
 +S:    Maintained
 +F:    drivers/tty/serial/8250/8250_dw.c
 +
  SYNOPSYS DESIGNWARE APB GPIO DRIVER
  M:    Hoan Tran <hotran@apm.com>
  L:    linux-gpio@vger.kernel.org
@@@ -13953,18 -13766,6 +13953,18 @@@ L: platform-driver-x86@vger.kernel.or
  S:    Maintained
  F:    drivers/platform/x86/topstar-laptop.c
  
 +TORTURE-TEST MODULES
 +M:    Davidlohr Bueso <dave@stgolabs.net>
 +M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 +M:    Josh Triplett <josh@joshtriplett.org>
 +L:    linux-kernel@vger.kernel.org
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 +F:    Documentation/RCU/torture.txt
 +F:    kernel/torture.c
 +F:    kernel/rcu/rcutorture.c
 +F:    kernel/locking/locktorture.c
 +
  TOSHIBA ACPI EXTRAS DRIVER
  M:    Azael Avalos <coproscefalo@gmail.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -14007,10 -13808,9 +14007,10 @@@ F: drivers/platform/x86/toshiba-wmi.
  TPM DEVICE DRIVER
  M:    Peter Huewe <peterhuewe@gmx.de>
  M:    Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
 -R:    Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
 +R:    Jason Gunthorpe <jgg@ziepe.ca>
  L:    linux-integrity@vger.kernel.org
  Q:    https://patchwork.kernel.org/project/linux-integrity/list/
 +W:    https://kernsec.org/wiki/index.php/Linux_Kernel_Integrity
  T:    git git://git.infradead.org/users/jjs/linux-tpmdd.git
  S:    Maintained
  F:    drivers/char/tpm/
@@@ -14049,13 -13849,6 +14049,13 @@@ T: git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  K:    ^Subject:.*(?i)trivial
  
 +TEMPO SEMICONDUCTOR DRIVERS
 +M:    Steven Eckhoff <steven.eckhoff.opensource@gmail.com>
 +S:    Maintained
 +F:    sound/soc/codecs/tscs*.c
 +F:    sound/soc/codecs/tscs*.h
 +F:    Documentation/devicetree/bindings/sound/tscs*.txt
 +
  TTY LAYER
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  M:    Jiri Slaby <jslaby@suse.com>
@@@ -14217,8 -14010,6 +14217,8 @@@ UNISYS S-PAR DRIVER
  M:    David Kershner <david.kershner@unisys.com>
  L:    sparmaintainer@unisys.com (Unisys internal)
  S:    Supported
 +F:    include/linux/visorbus.h
 +F:    drivers/visorbus/
  F:    drivers/staging/unisys/
  
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
@@@ -14765,15 -14556,6 +14765,15 @@@ S: Maintaine
  F:    drivers/virtio/virtio_input.c
  F:    include/uapi/linux/virtio_input.h
  
 +VIRTUAL BOX GUEST DEVICE DRIVER
 +M:    Hans de Goede <hdegoede@redhat.com>
 +M:    Arnd Bergmann <arnd@arndb.de>
 +M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 +S:    Maintained
 +F:    include/linux/vbox_utils.h
 +F:    include/uapi/linux/vbox*.h
 +F:    drivers/virt/vboxguest/
 +
  VIRTUAL SERIO DEVICE DRIVER
  M:    Stephen Chandler Paul <thatslyude@gmail.com>
  S:    Maintained
@@@ -14865,7 -14647,6 +14865,7 @@@ W:   http://www.slimlogic.co.uk/?p=4
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
  S:    Supported
  F:    Documentation/devicetree/bindings/regulator/
 +F:    Documentation/power/regulator/
  F:    drivers/regulator/
  F:    include/dt-bindings/regulator/
  F:    include/linux/regulator/
@@@ -14963,9 -14744,9 +14963,9 @@@ S:   Maintaine
  F:    drivers/hid/hid-wiimote*
  
  WILOCITY WIL6210 WIRELESS DRIVER
 -M:    Maya Erez <qca_merez@qca.qualcomm.com>
 +M:    Maya Erez <merez@codeaurora.org>
  L:    linux-wireless@vger.kernel.org
 -L:    wil6210@qca.qualcomm.com
 +L:    wil6210@qti.qualcomm.com
  S:    Supported
  W:    http://wireless.kernel.org/en/users/Drivers/wil6210
  F:    drivers/net/wireless/ath/wil6210/
@@@ -15059,12 -14840,6 +15059,12 @@@ F: include/linux/workqueue.
  F:    kernel/workqueue.c
  F:    Documentation/core-api/workqueue.rst
  
 +X-POWERS AXP288 PMIC DRIVERS
 +M:    Hans de Goede <hdegoede@redhat.com>
 +S:    Maintained
 +N:    axp288
 +F:    drivers/acpi/pmic/intel_pmic_xpower.c
 +
  X-POWERS MULTIFUNCTION PMIC DEVICE DRIVERS
  M:    Chen-Yu Tsai <wens@csie.org>
  L:    linux-kernel@vger.kernel.org
@@@ -15192,7 -14967,6 +15192,7 @@@ F:   include/xen/interface/io/vscsiif.
  XEN SWIOTLB SUBSYSTEM
  M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
 +L:    iommu@lists.linux-foundation.org
  S:    Supported
  F:    arch/x86/xen/*swiotlb*
  F:    drivers/xen/*swiotlb*
@@@ -4,7 -4,6 +4,7 @@@ menuconfig INFINIBAN
        depends on NET
        depends on INET
        depends on m || IPV6 != m
 +      depends on !ALPHA
        select IRQ_POLL
        ---help---
          Core support for InfiniBand (IB).  Make sure to also select
@@@ -20,7 -19,8 +20,8 @@@ config INFINIBAND_USER_MA
          Userspace InfiniBand Management Datagram (MAD) support.  This
          is the kernel side of the userspace MAD support, which allows
          userspace processes to send and receive MADs. You will also
-         need libibumad from <http://www.openfabrics.org/downloads/management/>.
+         need libibumad from rdma-core
+         <https://github.com/linux-rdma/rdma-core>.
  
  config INFINIBAND_USER_ACCESS
        tristate "InfiniBand userspace access (verbs and CM)"
          to set up connections and directly access InfiniBand
          hardware for fast-path operations.  You will also need
          libibverbs, libibcm and a hardware driver library from
-         <http://www.openfabrics.org/git/>.
+         rdma-core <https://github.com/linux-rdma/rdma-core>.
  
  config INFINIBAND_EXP_USER_ACCESS
-       bool "Allow experimental support for Infiniband ABI"
+       bool "Enable the full uverbs ioctl interface (EXPERIMENTAL)"
        depends on INFINIBAND_USER_ACCESS
        ---help---
          IOCTL based ABI support for Infiniband. This allows userspace
@@@ -74,7 -74,7 +74,7 @@@
  static int hfi1_file_open(struct inode *inode, struct file *fp);
  static int hfi1_file_close(struct inode *inode, struct file *fp);
  static ssize_t hfi1_write_iter(struct kiocb *kiocb, struct iov_iter *from);
 -static unsigned int hfi1_poll(struct file *fp, struct poll_table_struct *pt);
 +static __poll_t hfi1_poll(struct file *fp, struct poll_table_struct *pt);
  static int hfi1_file_mmap(struct file *fp, struct vm_area_struct *vma);
  
  static u64 kvirt_to_phys(void *addr);
@@@ -102,8 -102,8 +102,8 @@@ static int allocate_ctxt(struct hfi1_fi
                         struct hfi1_user_info *uinfo,
                         struct hfi1_ctxtdata **cd);
  static void deallocate_ctxt(struct hfi1_ctxtdata *uctxt);
 -static unsigned int poll_urgent(struct file *fp, struct poll_table_struct *pt);
 -static unsigned int poll_next(struct file *fp, struct poll_table_struct *pt);
 +static __poll_t poll_urgent(struct file *fp, struct poll_table_struct *pt);
 +static __poll_t poll_next(struct file *fp, struct poll_table_struct *pt);
  static int user_event_ack(struct hfi1_ctxtdata *uctxt, u16 subctxt,
                          unsigned long arg);
  static int set_ctxt_pkey(struct hfi1_ctxtdata *uctxt, unsigned long arg);
@@@ -196,9 -196,6 +196,6 @@@ static int hfi1_file_open(struct inode 
        if (!atomic_inc_not_zero(&dd->user_refcount))
                return -ENXIO;
  
-       /* Just take a ref now. Not all opens result in a context assign */
-       kobject_get(&dd->kobj);
        /* The real work is performed later in assign_ctxt() */
  
        fd = kzalloc(sizeof(*fd), GFP_KERNEL);
                fd->mm = current->mm;
                mmgrab(fd->mm);
                fd->dd = dd;
+               kobject_get(&fd->dd->kobj);
                fp->private_data = fd;
        } else {
                fp->private_data = NULL;
@@@ -607,10 -605,10 +605,10 @@@ static int vma_fault(struct vm_fault *v
        return 0;
  }
  
 -static unsigned int hfi1_poll(struct file *fp, struct poll_table_struct *pt)
 +static __poll_t hfi1_poll(struct file *fp, struct poll_table_struct *pt)
  {
        struct hfi1_ctxtdata *uctxt;
 -      unsigned pollflag;
 +      __poll_t pollflag;
  
        uctxt = ((struct hfi1_filedata *)fp->private_data)->uctxt;
        if (!uctxt)
@@@ -1425,13 -1423,13 +1423,13 @@@ static int user_exp_rcv_invalid(struct 
        return ret;
  }
  
 -static unsigned int poll_urgent(struct file *fp,
 +static __poll_t poll_urgent(struct file *fp,
                                struct poll_table_struct *pt)
  {
        struct hfi1_filedata *fd = fp->private_data;
        struct hfi1_ctxtdata *uctxt = fd->uctxt;
        struct hfi1_devdata *dd = uctxt->dd;
 -      unsigned pollflag;
 +      __poll_t pollflag;
  
        poll_wait(fp, &uctxt->wait, pt);
  
        return pollflag;
  }
  
 -static unsigned int poll_next(struct file *fp,
 +static __poll_t poll_next(struct file *fp,
                              struct poll_table_struct *pt)
  {
        struct hfi1_filedata *fd = fp->private_data;
        struct hfi1_ctxtdata *uctxt = fd->uctxt;
        struct hfi1_devdata *dd = uctxt->dd;
 -      unsigned pollflag;
 +      __poll_t pollflag;
  
        poll_wait(fp, &uctxt->wait, pt);
  
@@@ -226,12 -226,10 +226,10 @@@ normal
                bth2 = mask_psn(qp->s_ack_psn);
        }
        qp->s_rdma_ack_cnt++;
-       qp->s_hdrwords = hwords;
        ps->s_txreq->sde = priv->s_sde;
        ps->s_txreq->s_cur_size = len;
+       ps->s_txreq->hdr_dwords = hwords;
        hfi1_make_ruc_header(qp, ohdr, bth0, bth2, middle, ps);
-       /* pbc */
-       ps->s_txreq->hdr_dwords = qp->s_hdrwords + 2;
        return 1;
  
  bail:
@@@ -302,6 -300,7 +300,6 @@@ int hfi1_make_rc_req(struct rvt_qp *qp
                if (!(ib_rvt_state_ops[qp->state] & RVT_FLUSH_SEND))
                        goto bail;
                /* We are in the error state, flush the work request. */
 -              smp_read_barrier_depends(); /* see post_one_send() */
                if (qp->s_last == READ_ONCE(qp->s_head))
                        goto bail;
                /* If DMAs are in progress, we can't flush immediately. */
                newreq = 0;
                if (qp->s_cur == qp->s_tail) {
                        /* Check if send work queue is empty. */
 -                      smp_read_barrier_depends(); /* see post_one_send() */
                        if (qp->s_tail == READ_ONCE(qp->s_head)) {
                                clear_ahg(qp);
                                goto bail;
                                                       : IB_WC_SUCCESS);
                                if (local_ops)
                                        atomic_dec(&qp->local_ops_pending);
-                               qp->s_hdrwords = 0;
                                goto done_free_tx;
                        }
  
@@@ -688,7 -687,7 +685,7 @@@ no_flow_control
                bth2 |= IB_BTH_REQ_ACK;
        }
        qp->s_len -= len;
-       qp->s_hdrwords = hwords;
+       ps->s_txreq->hdr_dwords = hwords;
        ps->s_txreq->sde = priv->s_sde;
        ps->s_txreq->ss = ss;
        ps->s_txreq->s_cur_size = len;
                bth2,
                middle,
                ps);
-       /* pbc */
-       ps->s_txreq->hdr_dwords = qp->s_hdrwords + 2;
        return 1;
  
  done_free_tx:
@@@ -714,7 -711,6 +709,6 @@@ bail
  bail_no_tx:
        ps->s_txreq = NULL;
        qp->s_flags &= ~RVT_S_BUSY;
-       qp->s_hdrwords = 0;
        return 0;
  }
  
@@@ -734,14 -730,16 +728,16 @@@ static inline void hfi1_make_bth_aeth(s
        ohdr->bth[2] = cpu_to_be32(mask_psn(qp->r_ack_psn));
  }
  
- static inline void hfi1_queue_rc_ack(struct rvt_qp *qp, bool is_fecn)
+ static inline void hfi1_queue_rc_ack(struct hfi1_packet *packet, bool is_fecn)
  {
-       struct hfi1_ibport *ibp = to_iport(qp->ibqp.device, qp->port_num);
+       struct rvt_qp *qp = packet->qp;
+       struct hfi1_ibport *ibp;
        unsigned long flags;
  
        spin_lock_irqsave(&qp->s_lock, flags);
        if (!(ib_rvt_state_ops[qp->state] & RVT_PROCESS_RECV_OK))
                goto unlock;
+       ibp = rcd_to_iport(packet->rcd);
        this_cpu_inc(*ibp->rvp.rc_qacks);
        qp->s_flags |= RVT_S_ACK_PENDING | RVT_S_RESP_PENDING;
        qp->s_nak_state = qp->r_nak_state;
@@@ -755,13 -753,14 +751,14 @@@ unlock
        spin_unlock_irqrestore(&qp->s_lock, flags);
  }
  
- static inline void hfi1_make_rc_ack_9B(struct rvt_qp *qp,
+ static inline void hfi1_make_rc_ack_9B(struct hfi1_packet *packet,
                                       struct hfi1_opa_header *opa_hdr,
                                       u8 sc5, bool is_fecn,
                                       u64 *pbc_flags, u32 *hwords,
                                       u32 *nwords)
  {
-       struct hfi1_ibport *ibp = to_iport(qp->ibqp.device, qp->port_num);
+       struct rvt_qp *qp = packet->qp;
+       struct hfi1_ibport *ibp = rcd_to_iport(packet->rcd);
        struct hfi1_pportdata *ppd = ppd_from_ibp(ibp);
        struct ib_header *hdr = &opa_hdr->ibh;
        struct ib_other_headers *ohdr;
        hfi1_make_bth_aeth(qp, ohdr, bth0, bth1);
  }
  
- static inline void hfi1_make_rc_ack_16B(struct rvt_qp *qp,
+ static inline void hfi1_make_rc_ack_16B(struct hfi1_packet *packet,
                                        struct hfi1_opa_header *opa_hdr,
                                        u8 sc5, bool is_fecn,
                                        u64 *pbc_flags, u32 *hwords,
                                        u32 *nwords)
  {
-       struct hfi1_ibport *ibp = to_iport(qp->ibqp.device, qp->port_num);
+       struct rvt_qp *qp = packet->qp;
+       struct hfi1_ibport *ibp = rcd_to_iport(packet->rcd);
        struct hfi1_pportdata *ppd = ppd_from_ibp(ibp);
        struct hfi1_16b_header *hdr = &opa_hdr->opah;
        struct ib_other_headers *ohdr;
        u32 bth0, bth1 = 0;
        u16 len, pkey;
-       u8 becn = !!is_fecn;
+       bool becn = is_fecn;
        u8 l4 = OPA_16B_L4_IB_LOCAL;
        u8 extra_bytes;
  
        hfi1_make_bth_aeth(qp, ohdr, bth0, bth1);
  }
  
- typedef void (*hfi1_make_rc_ack)(struct rvt_qp *qp,
+ typedef void (*hfi1_make_rc_ack)(struct hfi1_packet *packet,
                                 struct hfi1_opa_header *opa_hdr,
                                 u8 sc5, bool is_fecn,
                                 u64 *pbc_flags, u32 *hwords,
@@@ -874,9 -874,10 +872,10 @@@ static const hfi1_make_rc_ack hfi1_make
   * Note that RDMA reads and atomics are handled in the
   * send side QP state and send engine.
   */
- void hfi1_send_rc_ack(struct hfi1_ctxtdata *rcd,
-                     struct rvt_qp *qp, bool is_fecn)
+ void hfi1_send_rc_ack(struct hfi1_packet *packet, bool is_fecn)
  {
+       struct hfi1_ctxtdata *rcd = packet->rcd;
+       struct rvt_qp *qp = packet->qp;
        struct hfi1_ibport *ibp = rcd_to_iport(rcd);
        struct hfi1_qp_priv *priv = qp->priv;
        struct hfi1_pportdata *ppd = ppd_from_ibp(ibp);
  
        /* Don't send ACK or NAK if a RDMA read or atomic is pending. */
        if (qp->s_flags & RVT_S_RESP_PENDING) {
-               hfi1_queue_rc_ack(qp, is_fecn);
+               hfi1_queue_rc_ack(packet, is_fecn);
                return;
        }
  
        /* Ensure s_rdma_ack_cnt changes are committed */
 -      smp_read_barrier_depends();
        if (qp->s_rdma_ack_cnt) {
-               hfi1_queue_rc_ack(qp, is_fecn);
+               hfi1_queue_rc_ack(packet, is_fecn);
                return;
        }
  
                return;
  
        /* Make the appropriate header */
-       hfi1_make_rc_ack_tbl[priv->hdr_type](qp, &opa_hdr, sc5, is_fecn,
+       hfi1_make_rc_ack_tbl[priv->hdr_type](packet, &opa_hdr, sc5, is_fecn,
                                             &pbc_flags, &hwords, &nwords);
  
        plen = 2 /* PBC */ + hwords + nwords;
                 * so that when enough buffer space becomes available,
                 * the ACK is sent ahead of other outgoing packets.
                 */
-               hfi1_queue_rc_ack(qp, is_fecn);
+               hfi1_queue_rc_ack(packet, is_fecn);
                return;
        }
        trace_ack_output_ibhdr(dd_from_ibdev(qp->ibqp.device),
@@@ -1540,7 -1542,7 +1539,7 @@@ static void rc_rcv_resp(struct hfi1_pac
        void *data = packet->payload;
        u32 tlen = packet->tlen;
        struct rvt_qp *qp = packet->qp;
-       struct hfi1_ibport *ibp = to_iport(qp->ibqp.device, qp->port_num);
+       struct hfi1_ibport *ibp;
        struct ib_other_headers *ohdr = packet->ohdr;
        struct rvt_swqe *wqe;
        enum ib_wc_status status;
        trace_hfi1_ack(qp, psn);
  
        /* Ignore invalid responses. */
 -      smp_read_barrier_depends(); /* see post_one_send */
        if (cmp_psn(psn, READ_ONCE(qp->s_next_psn)) >= 0)
                goto ack_done;
  
@@@ -1697,6 -1700,7 +1696,7 @@@ ack_op_err
        goto ack_err;
  
  ack_seq_err:
+       ibp = rcd_to_iport(rcd);
        rdma_seq_err(qp, ibp, psn, rcd);
        goto ack_done;
  
@@@ -2037,7 -2041,6 +2037,6 @@@ void hfi1_rc_rcv(struct hfi1_packet *pa
        struct rvt_qp *qp = packet->qp;
        struct hfi1_ibport *ibp = rcd_to_iport(rcd);
        struct ib_other_headers *ohdr = packet->ohdr;
-       u32 bth0 = be32_to_cpu(ohdr->bth[0]);
        u32 opcode = packet->opcode;
        u32 hdrsize = packet->hlen;
        u32 psn = ib_bth_get_psn(packet->ohdr);
@@@ -2235,7 -2238,7 +2234,7 @@@ send_last
                wc.port_num = 0;
                /* Signal completion event if the solicited bit is set. */
                rvt_cq_enter(ibcq_to_rvtcq(qp->ibqp.recv_cq), &wc,
-                            (bth0 & IB_BTH_SOLICITED) != 0);
+                            ib_bth_is_solicited(ohdr));
                break;
  
        case OP(RDMA_WRITE_ONLY):
@@@ -2479,7 -2482,7 +2478,7 @@@ nack_acc
        qp->r_nak_state = IB_NAK_REMOTE_ACCESS_ERROR;
        qp->r_ack_psn = qp->r_psn;
  send_ack:
-       hfi1_send_rc_ack(rcd, qp, is_fecn);
+       hfi1_send_rc_ack(packet, is_fecn);
  }
  
  void hfi1_rc_hdrerr(
@@@ -225,19 -225,8 +225,8 @@@ int hfi1_ruc_check_hdr(struct hfi1_ibpo
        u32 dlid = packet->dlid;
        u32 slid = packet->slid;
        u32 sl = packet->sl;
-       int migrated;
-       u32 bth0, bth1;
-       u16 pkey;
-       bth0 = be32_to_cpu(packet->ohdr->bth[0]);
-       bth1 = be32_to_cpu(packet->ohdr->bth[1]);
-       if (packet->etype == RHF_RCV_TYPE_BYPASS) {
-               pkey = hfi1_16B_get_pkey(packet->hdr);
-               migrated = bth1 & OPA_BTH_MIG_REQ;
-       } else {
-               pkey = ib_bth_get_pkey(packet->ohdr);
-               migrated = bth0 & IB_BTH_MIG_REQ;
-       }
+       bool migrated = packet->migrated;
+       u16 pkey = packet->pkey;
  
        if (qp->s_mig_state == IB_MIG_ARMED && migrated) {
                if (!packet->grh) {
@@@ -362,6 -351,7 +351,6 @@@ static void ruc_loopback(struct rvt_qp 
        sqp->s_flags |= RVT_S_BUSY;
  
  again:
 -      smp_read_barrier_depends(); /* see post_one_send() */
        if (sqp->s_last == READ_ONCE(sqp->s_head))
                goto clr_busy;
        wqe = rvt_get_swqe_ptr(sqp, sqp->s_last);
@@@ -756,19 -746,18 +745,18 @@@ static inline void hfi1_make_ruc_header
        u32 slid;
        u16 pkey = hfi1_get_pkey(ibp, qp->s_pkey_index);
        u8 l4 = OPA_16B_L4_IB_LOCAL;
-       u8 extra_bytes = hfi1_get_16b_padding((qp->s_hdrwords << 2),
-                                  ps->s_txreq->s_cur_size);
+       u8 extra_bytes = hfi1_get_16b_padding(
+                               (ps->s_txreq->hdr_dwords << 2),
+                               ps->s_txreq->s_cur_size);
        u32 nwords = SIZE_OF_CRC + ((ps->s_txreq->s_cur_size +
                                 extra_bytes + SIZE_OF_LT) >> 2);
-       u8 becn = 0;
+       bool becn = false;
  
        if (unlikely(rdma_ah_get_ah_flags(&qp->remote_ah_attr) & IB_AH_GRH) &&
            hfi1_check_mcast(rdma_ah_get_dlid(&qp->remote_ah_attr))) {
                struct ib_grh *grh;
                struct ib_global_route *grd =
                        rdma_ah_retrieve_grh(&qp->remote_ah_attr);
-               int hdrwords;
                /*
                 * Ensure OPA GIDs are transformed to IB gids
                 * before creating the GRH.
                        grd->sgid_index = 0;
                grh = &ps->s_txreq->phdr.hdr.opah.u.l.grh;
                l4 = OPA_16B_L4_IB_GLOBAL;
-               hdrwords = qp->s_hdrwords - 4;
-               qp->s_hdrwords += hfi1_make_grh(ibp, grh, grd,
-                                               hdrwords, nwords);
+               ps->s_txreq->hdr_dwords +=
+                       hfi1_make_grh(ibp, grh, grd,
+                                     ps->s_txreq->hdr_dwords - LRH_16B_DWORDS,
+                                     nwords);
                middle = 0;
        }
  
        if (qp->s_flags & RVT_S_ECN) {
                qp->s_flags &= ~RVT_S_ECN;
                /* we recently received a FECN, so return a BECN */
-               becn = 1;
+               becn = true;
        }
        hfi1_make_ruc_bth(qp, ohdr, bth0, bth1, bth2);
  
                          slid,
                          opa_get_lid(rdma_ah_get_dlid(&qp->remote_ah_attr),
                                      16B),
-                         (qp->s_hdrwords + nwords) >> 1,
+                         (ps->s_txreq->hdr_dwords + nwords) >> 1,
                          pkey, becn, 0, l4, priv->s_sc);
  }
  
@@@ -833,13 -823,13 +822,13 @@@ static inline void hfi1_make_ruc_header
  
        if (unlikely(rdma_ah_get_ah_flags(&qp->remote_ah_attr) & IB_AH_GRH)) {
                struct ib_grh *grh = &ps->s_txreq->phdr.hdr.ibh.u.l.grh;
-               int hdrwords = qp->s_hdrwords - 2;
  
                lrh0 = HFI1_LRH_GRH;
-               qp->s_hdrwords +=
+               ps->s_txreq->hdr_dwords +=
                        hfi1_make_grh(ibp, grh,
                                      rdma_ah_read_grh(&qp->remote_ah_attr),
-                                     hdrwords, nwords);
+                                     ps->s_txreq->hdr_dwords - LRH_9B_DWORDS,
+                                     nwords);
                middle = 0;
        }
        lrh0 |= (priv->s_sc & 0xf) << 12 |
        hfi1_make_ruc_bth(qp, ohdr, bth0, bth1, bth2);
        hfi1_make_ib_hdr(&ps->s_txreq->phdr.hdr.ibh,
                         lrh0,
-                        qp->s_hdrwords + nwords,
+                        ps->s_txreq->hdr_dwords + nwords,
                         opa_get_lid(rdma_ah_get_dlid(&qp->remote_ah_attr), 9B),
                         ppd_from_ibp(ibp)->lid |
                                rdma_ah_get_path_bits(&qp->remote_ah_attr));
@@@ -1030,7 -1020,7 +1019,7 @@@ void hfi1_do_send(struct rvt_qp *qp, bo
        ps.s_txreq = get_waiting_verbs_txreq(qp);
        do {
                /* Check for a constructed packet to be sent. */
-               if (qp->s_hdrwords != 0) {
+               if (ps.s_txreq) {
                        spin_unlock_irqrestore(&qp->s_lock, ps.flags);
                        /*
                         * If the packet cannot be sent now, return and
                         */
                        if (hfi1_verbs_send(qp, &ps))
                                return;
-                       /* Record that s_ahg is empty. */
-                       qp->s_hdrwords = 0;
                        /* allow other tasks to run */
                        if (schedule_send_yield(qp, &ps))
                                return;
@@@ -553,6 -553,7 +553,6 @@@ static void sdma_hw_clean_up_task(unsig
  
  static inline struct sdma_txreq *get_txhead(struct sdma_engine *sde)
  {
 -      smp_read_barrier_depends(); /* see sdma_update_tail() */
        return sde->tx_ring[sde->tx_head & sde->sdma_mask];
  }
  
@@@ -1275,13 -1276,15 +1275,15 @@@ bail
        return -ENOMEM;
  }
  
- /*
-  * Clean up allocated memory.
-  *
-  * This routine is can be called regardless of the success of sdma_init()
+ /**
+  * sdma_clean()  Clean up allocated memory
+  * @dd:          struct hfi1_devdata
+  * @num_engines: num sdma engines
   *
+  * This routine can be called regardless of the success of
+  * sdma_init()
   */
static void sdma_clean(struct hfi1_devdata *dd, size_t num_engines)
+ void sdma_clean(struct hfi1_devdata *dd, size_t num_engines)
  {
        size_t i;
        struct sdma_engine *sde;
@@@ -1386,7 -1389,8 +1388,8 @@@ int sdma_init(struct hfi1_devdata *dd, 
                    num_engines, descq_cnt);
  
        /* alloc memory for array of send engines */
-       dd->per_sdma = kcalloc(num_engines, sizeof(*dd->per_sdma), GFP_KERNEL);
+       dd->per_sdma = kcalloc_node(num_engines, sizeof(*dd->per_sdma),
+                                   GFP_KERNEL, dd->node);
        if (!dd->per_sdma)
                return ret;
  
@@@ -1617,7 -1621,6 +1620,6 @@@ void sdma_exit(struct hfi1_devdata *dd
                 */
                sdma_finalput(&sde->state);
        }
-       sdma_clean(dd, dd->num_sdma);
  }
  
  /*
@@@ -79,6 -79,7 +79,6 @@@ int hfi1_make_uc_req(struct rvt_qp *qp
                if (!(ib_rvt_state_ops[qp->state] & RVT_FLUSH_SEND))
                        goto bail;
                /* We are in the error state, flush the work request. */
 -              smp_read_barrier_depends(); /* see post_one_send() */
                if (qp->s_last == READ_ONCE(qp->s_head))
                        goto bail;
                /* If DMAs are in progress, we can't flush immediately. */
                    RVT_PROCESS_NEXT_SEND_OK))
                        goto bail;
                /* Check if send work queue is empty. */
 -              smp_read_barrier_depends(); /* see post_one_send() */
                if (qp->s_cur == READ_ONCE(qp->s_head)) {
                        clear_ahg(qp);
                        goto bail;
                                                        : IB_WC_SUCCESS);
                        if (local_ops)
                                atomic_dec(&qp->local_ops_pending);
-                       qp->s_hdrwords = 0;
                        goto done_free_tx;
                }
                /*
                break;
        }
        qp->s_len -= len;
-       qp->s_hdrwords = hwords;
+       ps->s_txreq->hdr_dwords = hwords;
        ps->s_txreq->sde = priv->s_sde;
        ps->s_txreq->ss = &qp->s_sge;
        ps->s_txreq->s_cur_size = len;
        hfi1_make_ruc_header(qp, ohdr, bth0 | (qp->s_state << 24),
                             mask_psn(qp->s_psn++), middle, ps);
-       /* pbc */
-       ps->s_txreq->hdr_dwords = qp->s_hdrwords + 2;
        return 1;
  
  done_free_tx:
@@@ -288,7 -287,6 +285,6 @@@ bail
  bail_no_tx:
        ps->s_txreq = NULL;
        qp->s_flags &= ~RVT_S_BUSY;
-       qp->s_hdrwords = 0;
        return 0;
  }
  
@@@ -480,8 -478,7 +476,7 @@@ last_imm
                wc.port_num = 0;
                /* Signal completion event if the solicited bit is set. */
                rvt_cq_enter(ibcq_to_rvtcq(qp->ibqp.recv_cq), &wc,
-                            (ohdr->bth[0] &
-                             cpu_to_be32(IB_BTH_SOLICITED)) != 0);
+                            ib_bth_is_solicited(ohdr));
                break;
  
        case OP(RDMA_WRITE_FIRST):
@@@ -340,15 -340,16 +340,16 @@@ void hfi1_make_ud_req_9B(struct rvt_qp 
        extra_bytes = -wqe->length & 3;
        nwords = ((wqe->length + extra_bytes) >> 2) + SIZE_OF_CRC;
        /* header size in dwords LRH+BTH+DETH = (8+12+8)/4. */
-       qp->s_hdrwords = 7;
+       ps->s_txreq->hdr_dwords = 7;
        if (wqe->wr.opcode == IB_WR_SEND_WITH_IMM)
-               qp->s_hdrwords++;
+               ps->s_txreq->hdr_dwords++;
  
        if (rdma_ah_get_ah_flags(ah_attr) & IB_AH_GRH) {
                grh = &ps->s_txreq->phdr.hdr.ibh.u.l.grh;
-               qp->s_hdrwords += hfi1_make_grh(ibp, grh,
-                                               rdma_ah_read_grh(ah_attr),
-                                               qp->s_hdrwords - 2, nwords);
+               ps->s_txreq->hdr_dwords +=
+                       hfi1_make_grh(ibp, grh, rdma_ah_read_grh(ah_attr),
+                                     ps->s_txreq->hdr_dwords - LRH_9B_DWORDS,
+                                     nwords);
                lrh0 = HFI1_LRH_GRH;
                ohdr = &ps->s_txreq->phdr.hdr.ibh.u.l.oth;
        } else {
                }
        }
        hfi1_make_bth_deth(qp, wqe, ohdr, &pkey, extra_bytes, false);
-       len = qp->s_hdrwords + nwords;
+       len = ps->s_txreq->hdr_dwords + nwords;
  
        /* Setup the packet */
        ps->s_txreq->phdr.hdr.hdr_type = HFI1_PKT_TYPE_9B;
@@@ -405,12 -406,12 +406,12 @@@ void hfi1_make_ud_req_16B(struct rvt_q
        ppd = ppd_from_ibp(ibp);
        ah_attr = &ibah_to_rvtah(wqe->ud_wr.ah)->attr;
        /* header size in dwords 16B LRH+BTH+DETH = (16+12+8)/4. */
-       qp->s_hdrwords = 9;
+       ps->s_txreq->hdr_dwords = 9;
        if (wqe->wr.opcode == IB_WR_SEND_WITH_IMM)
-               qp->s_hdrwords++;
+               ps->s_txreq->hdr_dwords++;
  
        /* SW provides space for CRC and LT for bypass packets. */
-       extra_bytes = hfi1_get_16b_padding((qp->s_hdrwords << 2),
+       extra_bytes = hfi1_get_16b_padding((ps->s_txreq->hdr_dwords << 2),
                                           wqe->length);
        nwords = ((wqe->length + extra_bytes + SIZE_OF_LT) >> 2) + SIZE_OF_CRC;
  
                        grd->sgid_index = 0;
                }
                grh = &ps->s_txreq->phdr.hdr.opah.u.l.grh;
-               qp->s_hdrwords += hfi1_make_grh(ibp, grh, grd,
-                                       qp->s_hdrwords - 4, nwords);
+               ps->s_txreq->hdr_dwords += hfi1_make_grh(
+                       ibp, grh, grd,
+                       ps->s_txreq->hdr_dwords - LRH_16B_DWORDS,
+                       nwords);
                ohdr = &ps->s_txreq->phdr.hdr.opah.u.l.oth;
                l4 = OPA_16B_L4_IB_GLOBAL;
        } else {
  
        hfi1_make_bth_deth(qp, wqe, ohdr, &pkey, extra_bytes, true);
        /* Convert dwords to flits */
-       len = (qp->s_hdrwords + nwords) >> 1;
+       len = (ps->s_txreq->hdr_dwords + nwords) >> 1;
  
        /* Setup the packet */
        ps->s_txreq->phdr.hdr.hdr_type = HFI1_PKT_TYPE_16B;
@@@ -486,6 -489,7 +489,6 @@@ int hfi1_make_ud_req(struct rvt_qp *qp
                if (!(ib_rvt_state_ops[qp->state] & RVT_FLUSH_SEND))
                        goto bail;
                /* We are in the error state, flush the work request. */
 -              smp_read_barrier_depends(); /* see post_one_send */
                if (qp->s_last == READ_ONCE(qp->s_head))
                        goto bail;
                /* If DMAs are in progress, we can't flush immediately. */
        }
  
        /* see post_one_send() */
 -      smp_read_barrier_depends();
        if (qp->s_cur == READ_ONCE(qp->s_head))
                goto bail;
  
        priv->s_ahg->ahgcount = 0;
        priv->s_ahg->ahgidx = 0;
        priv->s_ahg->tx_flags = 0;
-       /* pbc */
-       ps->s_txreq->hdr_dwords = qp->s_hdrwords + 2;
  
        return 1;
  
@@@ -578,7 -581,6 +579,6 @@@ bail
  bail_no_tx:
        ps->s_txreq = NULL;
        qp->s_flags &= ~RVT_S_BUSY;
-       qp->s_hdrwords = 0;
        return 0;
  }
  
@@@ -649,7 -651,8 +649,8 @@@ void return_cnp_16B(struct hfi1_ibport 
                struct ib_grh *grh = &hdr.u.l.grh;
  
                grh->version_tclass_flow = old_grh->version_tclass_flow;
-               grh->paylen = cpu_to_be16((hwords - 4 + nwords) << 2);
+               grh->paylen = cpu_to_be16(
+                       (hwords - LRH_16B_DWORDS + nwords) << 2);
                grh->hop_limit = 0xff;
                grh->sgid = old_grh->dgid;
                grh->dgid = old_grh->sgid;
@@@ -703,7 -706,8 +704,8 @@@ void return_cnp(struct hfi1_ibport *ibp
                struct ib_grh *grh = &hdr.u.l.grh;
  
                grh->version_tclass_flow = old_grh->version_tclass_flow;
-               grh->paylen = cpu_to_be16((hwords - 2 + SIZE_OF_CRC) << 2);
+               grh->paylen = cpu_to_be16(
+                       (hwords - LRH_9B_DWORDS + SIZE_OF_CRC) << 2);
                grh->hop_limit = 0xff;
                grh->sgid = old_grh->dgid;
                grh->dgid = old_grh->sgid;
@@@ -1046,8 -1050,7 +1048,7 @@@ void hfi1_ud_rcv(struct hfi1_packet *pa
        wc.port_num = qp->port_num;
        /* Signal completion event if the solicited bit is set. */
        rvt_cq_enter(ibcq_to_rvtcq(qp->ibqp.recv_cq), &wc,
-                    (ohdr->bth[0] &
-                     cpu_to_be32(IB_BTH_SOLICITED)) != 0);
+                    ib_bth_is_solicited(ohdr));
        return;
  
  drop:
@@@ -246,6 -246,7 +246,6 @@@ int qib_make_rc_req(struct rvt_qp *qp, 
                if (!(ib_rvt_state_ops[qp->state] & RVT_FLUSH_SEND))
                        goto bail;
                /* We are in the error state, flush the work request. */
 -              smp_read_barrier_depends(); /* see post_one_send() */
                if (qp->s_last == READ_ONCE(qp->s_head))
                        goto bail;
                /* If DMAs are in progress, we can't flush immediately. */
                newreq = 0;
                if (qp->s_cur == qp->s_tail) {
                        /* Check if send work queue is empty. */
 -                      smp_read_barrier_depends(); /* see post_one_send() */
                        if (qp->s_tail == READ_ONCE(qp->s_head))
                                goto bail;
                        /*
@@@ -1338,6 -1340,7 +1338,6 @@@ static void qib_rc_rcv_resp(struct qib_
                goto ack_done;
  
        /* Ignore invalid responses. */
 -      smp_read_barrier_depends(); /* see post_one_send */
        if (qib_cmp24(psn, READ_ONCE(qp->s_next_psn)) >= 0)
                goto ack_done;
  
@@@ -1913,8 -1916,7 +1913,7 @@@ send_last
                wc.port_num = 0;
                /* Signal completion event if the solicited bit is set. */
                rvt_cq_enter(ibcq_to_rvtcq(qp->ibqp.recv_cq), &wc,
-                            (ohdr->bth[0] &
-                             cpu_to_be32(IB_BTH_SOLICITED)) != 0);
+                            ib_bth_is_solicited(ohdr));
                break;
  
        case OP(RDMA_WRITE_FIRST):
@@@ -60,6 -60,7 +60,6 @@@ int qib_make_uc_req(struct rvt_qp *qp, 
                if (!(ib_rvt_state_ops[qp->state] & RVT_FLUSH_SEND))
                        goto bail;
                /* We are in the error state, flush the work request. */
 -              smp_read_barrier_depends(); /* see post_one_send() */
                if (qp->s_last == READ_ONCE(qp->s_head))
                        goto bail;
                /* If DMAs are in progress, we can't flush immediately. */
@@@ -89,6 -90,7 +89,6 @@@
                    RVT_PROCESS_NEXT_SEND_OK))
                        goto bail;
                /* Check if send work queue is empty. */
 -              smp_read_barrier_depends(); /* see post_one_send() */
                if (qp->s_cur == READ_ONCE(qp->s_head))
                        goto bail;
                /*
@@@ -401,8 -403,7 +401,7 @@@ last_imm
                wc.port_num = 0;
                /* Signal completion event if the solicited bit is set. */
                rvt_cq_enter(ibcq_to_rvtcq(qp->ibqp.recv_cq), &wc,
-                            (ohdr->bth[0] &
-                               cpu_to_be32(IB_BTH_SOLICITED)) != 0);
+                            ib_bth_is_solicited(ohdr));
                break;
  
        case OP(RDMA_WRITE_FIRST):
@@@ -252,6 -252,7 +252,6 @@@ int qib_make_ud_req(struct rvt_qp *qp, 
                if (!(ib_rvt_state_ops[qp->state] & RVT_FLUSH_SEND))
                        goto bail;
                /* We are in the error state, flush the work request. */
 -              smp_read_barrier_depends(); /* see post_one_send */
                if (qp->s_last == READ_ONCE(qp->s_head))
                        goto bail;
                /* If DMAs are in progress, we can't flush immediately. */
        }
  
        /* see post_one_send() */
 -      smp_read_barrier_depends();
        if (qp->s_cur == READ_ONCE(qp->s_head))
                goto bail;
  
@@@ -579,8 -581,7 +579,7 @@@ void qib_ud_rcv(struct qib_ibport *ibp
        wc.port_num = qp->port_num;
        /* Signal completion event if the solicited bit is set. */
        rvt_cq_enter(ibcq_to_rvtcq(qp->ibqp.recv_cq), &wc,
-                    (ohdr->bth[0] &
-                       cpu_to_be32(IB_BTH_SOLICITED)) != 0);
+                    ib_bth_is_solicited(ohdr));
        return;
  
  drop:
@@@ -51,7 -51,7 +51,7 @@@ enum 
  
  enum {
        MLX5_NUM_SPARE_EQE      = 0x80,
-       MLX5_NUM_ASYNC_EQE      = 0x100,
+       MLX5_NUM_ASYNC_EQE      = 0x1000,
        MLX5_NUM_CMD_EQE        = 32,
        MLX5_NUM_PF_DRAIN       = 64,
  };
@@@ -534,24 -534,6 +534,24 @@@ static irqreturn_t mlx5_eq_int(int irq
        return IRQ_HANDLED;
  }
  
 +/* Some architectures don't latch interrupts when they are disabled, so using
 + * mlx5_eq_poll_irq_disabled could end up losing interrupts while trying to
 + * avoid losing them.  It is not recommended to use it, unless this is the last
 + * resort.
 + */
 +u32 mlx5_eq_poll_irq_disabled(struct mlx5_eq *eq)
 +{
 +      u32 count_eqe;
 +
 +      disable_irq(eq->irqn);
 +      count_eqe = eq->cons_index;
 +      mlx5_eq_int(eq->irqn, eq);
 +      count_eqe = eq->cons_index - count_eqe;
 +      enable_irq(eq->irqn);
 +
 +      return count_eqe;
 +}
 +
  static void init_eq_buf(struct mlx5_eq *eq)
  {
        struct mlx5_eqe *eqe;