]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Tue, 1 Aug 2017 17:07:50 +0000 (10:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Aug 2017 17:07:50 +0000 (10:07 -0700)
Two minor conflicts in virtio_net driver (bug fix overlapping addition
of a helper) and MAINTAINERS (new driver edit overlapping revamp of
PHY entry).

Signed-off-by: David S. Miller <davem@davemloft.net>
14 files changed:
1  2 
MAINTAINERS
drivers/net/ethernet/broadcom/genet/bcmgenet.h
drivers/net/ethernet/broadcom/genet/bcmmii.c
drivers/net/ethernet/mediatek/mtk_eth_soc.c
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
drivers/net/hyperv/netvsc_drv.c
drivers/net/phy/phy.c
drivers/net/tun.c
drivers/net/virtio_net.c
kernel/bpf/verifier.c
net/ipv4/tcp_output.c
net/ipv6/ip6_output.c
net/packet/af_packet.c
net/socket.c

diff --combined MAINTAINERS
index 7d72fdbed6e658e6042e8849d009479d8832b709,567343b8ffaa633bfae244a7592781feb6243e7b..8c5707f5860a4f1117df7331f9a42bdf3d145266
@@@ -205,7 -205,6 +205,6 @@@ F: include/net/9p
  F:    include/uapi/linux/virtio_9p.h
  F:    include/trace/events/9p.h
  
  A8293 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -492,13 -491,6 +491,6 @@@ S:        Maintaine
  F:    Documentation/hwmon/adt7475
  F:    drivers/hwmon/adt7475.c
  
- ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
- M:    Michael Hennerich <michael.hennerich@analog.com>
- W:    http://wiki.analog.com/ADXL345
- W:    http://ez.analog.com/community/linux-device-drivers
- S:    Supported
- F:    drivers/input/misc/adxl34x.c
  ADVANSYS SCSI DRIVER
  M:    Matthew Wilcox <matthew@wil.cx>
  M:    Hannes Reinecke <hare@suse.com>
@@@ -507,6 -499,13 +499,13 @@@ S:       Maintaine
  F:    Documentation/scsi/advansys.txt
  F:    drivers/scsi/advansys.c
  
+ ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
+ M:    Michael Hennerich <michael.hennerich@analog.com>
+ W:    http://wiki.analog.com/ADXL345
+ W:    http://ez.analog.com/community/linux-device-drivers
+ S:    Supported
+ F:    drivers/input/misc/adxl34x.c
  AEDSP16 DRIVER
  M:    Riccardo Facchetti <fizban@tin.it>
  S:    Maintained
@@@ -808,6 -807,12 +807,12 @@@ W:       http://blackfin.uclinux.org
  S:    Supported
  F:    sound/soc/blackfin/*
  
+ ANALOG DEVICES INC DMA DRIVERS
+ M:    Lars-Peter Clausen <lars@metafoo.de>
+ W:    http://ez.analog.com/community/linux-device-drivers
+ S:    Supported
+ F:    drivers/dma/dma-axi-dmac.c
  ANALOG DEVICES INC IIO DRIVERS
  M:    Lars-Peter Clausen <lars@metafoo.de>
  M:    Michael Hennerich <Michael.Hennerich@analog.com>
@@@ -820,12 -825,6 +825,6 @@@ X:        drivers/iio/*/adjd
  F:    drivers/staging/iio/*/ad*
  F:    drivers/staging/iio/trigger/iio-trig-bfin-timer.c
  
- ANALOG DEVICES INC DMA DRIVERS
- M:    Lars-Peter Clausen <lars@metafoo.de>
- W:    http://ez.analog.com/community/linux-device-drivers
- S:    Supported
- F:    drivers/dma/dma-axi-dmac.c
  ANDROID CONFIG FRAGMENTS
  M:    Rob Herring <robh@kernel.org>
  S:    Supported
@@@ -872,6 -871,15 +871,15 @@@ F:       include/linux/apm_bios.
  F:    include/uapi/linux/apm_bios.h
  F:    drivers/char/apm-emulation.c
  
+ APPARMOR SECURITY MODULE
+ M:    John Johansen <john.johansen@canonical.com>
+ L:    apparmor@lists.ubuntu.com (subscribers-only, general discussion)
+ W:    apparmor.wiki.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jj/apparmor-dev.git
+ S:    Supported
+ F:    security/apparmor/
+ F:    Documentation/admin-guide/LSM/apparmor.rst
  APPLE BCM5974 MULTITOUCH DRIVER
  M:    Henrik Rydberg <rydberg@bitmath.org>
  L:    linux-input@vger.kernel.org
@@@ -895,6 -903,18 +903,18 @@@ M:       Duc Dang <dhdang@apm.com
  S:    Supported
  F:    arch/arm64/boot/dts/apm/
  
+ APPLIED MICRO (APM) X-GENE SOC EDAC
+ M:    Loc Ho <lho@apm.com>
+ S:    Supported
+ F:    drivers/edac/xgene_edac.c
+ F:    Documentation/devicetree/bindings/edac/apm-xgene-edac.txt
+ APPLIED MICRO (APM) X-GENE SOC ETHERNET (V2) DRIVER
+ M:    Iyappan Subramanian <isubramanian@apm.com>
+ M:    Keyur Chudgar <kchudgar@apm.com>
+ S:    Supported
+ F:    drivers/net/ethernet/apm/xgene-v2/
  APPLIED MICRO (APM) X-GENE SOC ETHERNET DRIVER
  M:    Iyappan Subramanian <isubramanian@apm.com>
  M:    Keyur Chudgar <kchudgar@apm.com>
@@@ -905,12 -925,6 +925,6 @@@ F:        drivers/net/phy/mdio-xgene.
  F:    Documentation/devicetree/bindings/net/apm-xgene-enet.txt
  F:    Documentation/devicetree/bindings/net/apm-xgene-mdio.txt
  
- APPLIED MICRO (APM) X-GENE SOC ETHERNET (V2) DRIVER
- M:    Iyappan Subramanian <isubramanian@apm.com>
- M:    Keyur Chudgar <kchudgar@apm.com>
- S:    Supported
- F:    drivers/net/ethernet/apm/xgene-v2/
  APPLIED MICRO (APM) X-GENE SOC PMU
  M:    Tai Nguyen <ttnguyen@apm.com>
  S:    Supported
@@@ -930,6 -944,12 +944,12 @@@ S:       Maintaine
  F:    drivers/video/fbdev/arcfb.c
  F:    drivers/video/fbdev/core/fb_defio.c
  
+ ARC PGU DRM DRIVER
+ M:    Alexey Brodkin <abrodkin@synopsys.com>
+ S:    Supported
+ F:    drivers/gpu/drm/arc/
+ F:    Documentation/devicetree/bindings/display/snps,arcpgu.txt
  ARCNET NETWORK LAYER
  M:    Michael Grzeschik <m.grzeschik@pengutronix.de>
  L:    netdev@vger.kernel.org
@@@ -937,12 -957,6 +957,6 @@@ S:        Maintaine
  F:    drivers/net/arcnet/
  F:    include/uapi/linux/if_arcnet.h
  
- ARC PGU DRM DRIVER
- M:    Alexey Brodkin <abrodkin@synopsys.com>
- S:    Supported
- F:    drivers/gpu/drm/arc/
- F:    Documentation/devicetree/bindings/display/snps,arcpgu.txt
  ARM ARCHITECTED TIMER DRIVER
  M:    Mark Rutland <mark.rutland@arm.com>
  M:    Marc Zyngier <marc.zyngier@arm.com>
@@@ -995,18 -1009,17 +1009,17 @@@ S:    Maintaine
  T:    git git://git.armlinux.org.uk/~rmk/linux-arm.git
  F:    arch/arm/
  
- ARM SUB-ARCHITECTURES
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    arch/arm/mach-*/
- F:    arch/arm/plat-*/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git
  ARM PRIMECELL AACI PL041 DRIVER
  M:    Russell King <linux@armlinux.org.uk>
  S:    Maintained
  F:    sound/arm/aaci.*
  
+ ARM PRIMECELL BUS SUPPORT
+ M:    Russell King <linux@armlinux.org.uk>
+ S:    Maintained
+ F:    drivers/amba/
+ F:    include/linux/amba/bus.h
  ARM PRIMECELL CLCD PL110 DRIVER
  M:    Russell King <linux@armlinux.org.uk>
  S:    Maintained
@@@ -1030,11 -1043,22 +1043,22 @@@ S:   Maintaine
  F:    drivers/tty/serial/amba-pl01*.c
  F:    include/linux/amba/serial.h
  
- ARM PRIMECELL BUS SUPPORT
- M:    Russell King <linux@armlinux.org.uk>
+ ARM SMMU DRIVERS
+ M:    Will Deacon <will.deacon@arm.com>
+ R:    Robin Murphy <robin.murphy@arm.com>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
- F:    drivers/amba/
- F:    include/linux/amba/bus.h
+ F:    drivers/iommu/arm-smmu.c
+ F:    drivers/iommu/arm-smmu-v3.c
+ F:    drivers/iommu/io-pgtable-arm.c
+ F:    drivers/iommu/io-pgtable-arm-v7s.c
+ ARM SUB-ARCHITECTURES
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    arch/arm/mach-*/
+ F:    arch/arm/plat-*/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git
  
  ARM/ACTIONS SEMI ARCHITECTURE
  M:    Andreas Färber <afaerber@suse.de>
@@@ -1067,6 -1091,11 +1091,11 @@@ M:    Lennert Buytenhek <kernel@wantstofly
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
+ ARM/Allwinner SoC Clock Support
+ M:    Emilio López <emilio@elopez.com.ar>
+ S:    Maintained
+ F:    drivers/clk/sunxi/
  ARM/Allwinner sunXi SoC support
  M:    Maxime Ripard <maxime.ripard@free-electrons.com>
  M:    Chen-Yu Tsai <wens@csie.org>
@@@ -1081,10 -1110,15 +1110,15 @@@ F:   drivers/pinctrl/sunxi
  F:    drivers/soc/sunxi/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git
  
- ARM/Allwinner SoC Clock Support
- M:    Emilio López <emilio@elopez.com.ar>
+ ARM/Amlogic Meson SoC CLOCK FRAMEWORK
+ M:    Neil Armstrong <narmstrong@baylibre.com>
+ M:    Jerome Brunet <jbrunet@baylibre.com>
+ L:    linux-amlogic@lists.infradead.org
  S:    Maintained
- F:    drivers/clk/sunxi/
+ F:    drivers/clk/meson/
+ F:    include/dt-bindings/clock/meson*
+ F:    include/dt-bindings/clock/gxbb*
+ F:    Documentation/devicetree/bindings/clock/amlogic*
  
  ARM/Amlogic Meson SoC support
  M:    Carlo Caione <carlo@caione.org>
@@@ -1096,20 -1130,10 +1130,10 @@@ S:   Maintaine
  F:    arch/arm/mach-meson/
  F:    arch/arm/boot/dts/meson*
  F:    arch/arm64/boot/dts/amlogic/
- F:    drivers/pinctrl/meson/
+ F:    drivers/pinctrl/meson/
  F:    drivers/mmc/host/meson*
  N:    meson
  
- ARM/Amlogic Meson SoC CLOCK FRAMEWORK
- M:    Neil Armstrong <narmstrong@baylibre.com>
- M:    Jerome Brunet <jbrunet@baylibre.com>
- L:    linux-amlogic@lists.infradead.org
- S:    Maintained
- F:    drivers/clk/meson/
- F:    include/dt-bindings/clock/meson*
- F:    include/dt-bindings/clock/gxbb*
- F:    Documentation/devicetree/bindings/clock/amlogic*
  ARM/Annapurna Labs ALPINE ARCHITECTURE
  M:    Tsahee Zidenberg <tsahee@annapurnalabs.com>
  M:    Antoine Tenart <antoine.tenart@free-electrons.com>
@@@ -1132,13 -1156,6 +1156,6 @@@ F:     drivers/clk/axi
  F:    drivers/pinctrl/pinctrl-artpec*
  F:    Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
  
- ARM/ASPEED MACHINE SUPPORT
- M:    Joel Stanley <joel@jms.id.au>
- S:    Maintained
- F:    arch/arm/mach-aspeed/
- F:    arch/arm/boot/dts/aspeed-*
- F:    drivers/*/*aspeed*
  ARM/ASPEED I2C DRIVER
  M:    Brendan Higgins <brendanhiggins@google.com>
  R:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
@@@ -1151,6 -1168,18 +1168,18 @@@ F:    drivers/i2c/busses/i2c-aspeed.
  F:    Documentation/devicetree/bindings/interrupt-controller/aspeed,ast2400-i2c-ic.txt
  F:    Documentation/devicetree/bindings/i2c/i2c-aspeed.txt
  
+ ARM/ASPEED MACHINE SUPPORT
+ M:    Joel Stanley <joel@jms.id.au>
+ S:    Maintained
+ F:    arch/arm/mach-aspeed/
+ F:    arch/arm/boot/dts/aspeed-*
+ F:    drivers/*/*aspeed*
+ ARM/ATMEL AT91 Clock Support
+ M:    Boris Brezillon <boris.brezillon@free-electrons.com>
+ S:    Maintained
+ F:    drivers/clk/at91
  ARM/ATMEL AT91RM9200, AT91SAM9 AND SAMA5 SOC SUPPORT
  M:    Nicolas Ferre <nicolas.ferre@microchip.com>
  M:    Alexandre Belloni <alexandre.belloni@free-electrons.com>
@@@ -1167,11 -1196,6 +1196,6 @@@ F:     arch/arm/boot/dts/sama*.dts
  F:    arch/arm/include/debug/at91.S
  F:    drivers/memory/atmel*
  
- ARM/ATMEL AT91 Clock Support
- M:    Boris Brezillon <boris.brezillon@free-electrons.com>
- S:    Maintained
- F:    drivers/clk/at91
  ARM/CALXEDA HIGHBANK ARCHITECTURE
  M:    Rob Herring <robh@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1198,6 -1222,11 +1222,11 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Odd Fixes
  N:    clps711x
  
+ ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT
+ M:    Lennert Buytenhek <kernel@wantstofly.org>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
  ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
  M:    Hartley Sweeten <hsweeten@visionengravers.com>
  M:    Alexander Sverdlin <alexander.sverdlin@gmail.com>
@@@ -1206,11 -1235,6 +1235,6 @@@ S:     Maintaine
  F:    arch/arm/mach-ep93xx/
  F:    arch/arm/mach-ep93xx/include/mach/
  
- ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT
- M:    Lennert Buytenhek <kernel@wantstofly.org>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
  ARM/CLKDEV SUPPORT
  M:    Russell King <linux@armlinux.org.uk>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1224,6 -1248,13 +1248,13 @@@ M:    Mike Rapoport <mike@compulab.co.il
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
+ ARM/CONEXANT DIGICOLOR MACHINE SUPPORT
+ M:    Baruch Siach <baruch@tkos.co.il>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    arch/arm/boot/dts/cx92755*
+ N:    digicolor
  ARM/CONTEC MICRO9 MACHINE SUPPORT
  M:    Hubert Feurstein <hubert.feurstein@contec.at>
  S:    Maintained
@@@ -1269,13 -1300,6 +1300,6 @@@ F:     drivers/clocksource/timer-prima2.
  F:    drivers/clocksource/timer-atlas7.c
  N:    [^a-z]sirf
  
- ARM/CONEXANT DIGICOLOR MACHINE SUPPORT
- M:    Baruch Siach <baruch@tkos.co.il>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    arch/arm/boot/dts/cx92755*
- N:    digicolor
  ARM/EBSA110 MACHINE SUPPORT
  M:    Russell King <linux@armlinux.org.uk>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1389,6 -1413,11 +1413,11 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    arch/arm/mach-pxa/colibri-pxa270-income.c
  
+ ARM/INTEL IOP13XX ARM ARCHITECTURE
+ M:    Lennert Buytenhek <kernel@wantstofly.org>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
  ARM/INTEL IOP32X ARM ARCHITECTURE
  M:    Lennert Buytenhek <kernel@wantstofly.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1398,11 -1427,6 +1427,6 @@@ ARM/INTEL IOP33X ARM ARCHITECTUR
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Orphan
  
- ARM/INTEL IOP13XX ARM ARCHITECTURE
- M:    Lennert Buytenhek <kernel@wantstofly.org>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
  ARM/INTEL IQ81342EX MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1437,39 -1461,6 +1461,6 @@@ M:     Lennert Buytenhek <kernel@wantstofly
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
- ARM/TEXAS INSTRUMENT KEYSTONE ARCHITECTURE
- M:    Santosh Shilimkar <ssantosh@kernel.org>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    arch/arm/mach-keystone/
- F:    arch/arm/boot/dts/keystone-*
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
- ARM/TEXAS INSTRUMENT KEYSTONE CLOCK FRAMEWORK
- M:    Santosh Shilimkar <ssantosh@kernel.org>
- L:    linux-kernel@vger.kernel.org
- S:    Maintained
- F:    drivers/clk/keystone/
- ARM/TEXAS INSTRUMENT KEYSTONE ClOCKSOURCE
- M:    Santosh Shilimkar <ssantosh@kernel.org>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- L:    linux-kernel@vger.kernel.org
- S:    Maintained
- F:    drivers/clocksource/timer-keystone.c
- ARM/TEXAS INSTRUMENT KEYSTONE RESET DRIVER
- M:    Santosh Shilimkar <ssantosh@kernel.org>
- L:    linux-kernel@vger.kernel.org
- S:    Maintained
- F:    drivers/power/reset/keystone-reset.c
- ARM/TEXAS INSTRUMENT AEMIF/EMIF DRIVERS
- M:    Santosh Shilimkar <ssantosh@kernel.org>
- L:    linux-kernel@vger.kernel.org
- S:    Maintained
- F:    drivers/memory/*emif*
  ARM/LG1K ARCHITECTURE
  M:    Chanho Min <chanho.min@lge.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1512,24 -1503,6 +1503,6 @@@ ARM/MAGICIAN MACHINE SUPPOR
  M:    Philipp Zabel <philipp.zabel@gmail.com>
  S:    Maintained
  
- ARM/Marvell Kirkwood and Armada 370, 375, 38x, 39x, XP, 3700, 7K/8K SOC support
- M:    Jason Cooper <jason@lakedaemon.net>
- M:    Andrew Lunn <andrew@lunn.ch>
- M:    Gregory Clement <gregory.clement@free-electrons.com>
- M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    arch/arm/boot/dts/armada*
- 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/mvebu-cpufreq.c
- F:    drivers/irqchip/irq-armada-370-xp.c
- F:    drivers/irqchip/irq-mvebu-*
- F:    drivers/pinctrl/mvebu/
- F:    drivers/rtc/rtc-armada38x.c
  ARM/Marvell Berlin SoC support
  M:    Jisheng Zhang <jszhang@marvell.com>
  M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
@@@ -1539,7 -1512,6 +1512,6 @@@ F:      arch/arm/mach-berlin
  F:    arch/arm/boot/dts/berlin*
  F:    arch/arm64/boot/dts/marvell/berlin*
  
  ARM/Marvell Dove/MV78xx0/Orion SOC support
  M:    Jason Cooper <jason@lakedaemon.net>
  M:    Andrew Lunn <andrew@lunn.ch>
@@@ -1555,27 -1527,26 +1527,26 @@@ F:   arch/arm/plat-orion
  F:    arch/arm/boot/dts/dove*
  F:    arch/arm/boot/dts/orion5x*
  
- ARM/Orion SoC/Technologic Systems TS-78xx platform support
- M:    Alexander Clouter <alex@digriz.org.uk>
+ ARM/Marvell Kirkwood and Armada 370, 375, 38x, 39x, XP, 3700, 7K/8K SOC support
+ M:    Jason Cooper <jason@lakedaemon.net>
+ M:    Andrew Lunn <andrew@lunn.ch>
+ M:    Gregory Clement <gregory.clement@free-electrons.com>
+ M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- W:    http://www.digriz.org.uk/ts78xx/kernel
  S:    Maintained
- F:    arch/arm/mach-orion5x/ts78xx-*
+ F:    arch/arm/boot/dts/armada*
+ 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/mvebu-cpufreq.c
+ F:    drivers/irqchip/irq-armada-370-xp.c
+ F:    drivers/irqchip/irq-mvebu-*
+ F:    drivers/pinctrl/mvebu/
+ F:    drivers/rtc/rtc-armada38x.c
  
- ARM/OXNAS platform support
- M:    Neil Armstrong <narmstrong@baylibre.com>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- L:    linux-oxnas@lists.tuxfamily.org (moderated for non-subscribers)
- S:    Maintained
- F:    arch/arm/mach-oxnas/
- F:    arch/arm/boot/dts/ox8*.dtsi
- F:    arch/arm/boot/dts/wd-mbwe.dts
- F:    arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts
- N:    oxnas
- ARM/Mediatek RTC DRIVER
- M:    Eddie Huang <eddie.huang@mediatek.com>
+ ARM/Mediatek RTC DRIVER
+ M:    Eddie Huang <eddie.huang@mediatek.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -1627,16 -1598,53 +1598,53 @@@ F:   drivers/pinctrl/nomadik
  F:    drivers/i2c/busses/i2c-nomadik.c
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
  
+ ARM/NUVOTON W90X900 ARM ARCHITECTURE
+ M:    Wan ZongShun <mcuos.com@gmail.com>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ W:    http://www.mcuos.com
+ S:    Maintained
+ F:    arch/arm/mach-w90x900/
+ F:    drivers/input/keyboard/w90p910_keypad.c
+ F:    drivers/input/touchscreen/w90p910_ts.c
+ F:    drivers/watchdog/nuc900_wdt.c
+ F:    drivers/net/ethernet/nuvoton/w90p910_ether.c
+ F:    drivers/mtd/nand/nuc900_nand.c
+ F:    drivers/rtc/rtc-nuc900.c
+ F:    drivers/spi/spi-nuc900.c
+ F:    drivers/usb/host/ehci-w90x900.c
+ F:    drivers/video/fbdev/nuc900fb.c
  ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
  M:    Nelson Castillo <arhuaco@freaks-unidos.net>
  L:    openmoko-kernel@lists.openmoko.org (subscribers-only)
  W:    http://wiki.openmoko.org/wiki/Neo_FreeRunner
  S:    Supported
  
- ARM/TOSA MACHINE SUPPORT
- M:    Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
- M:    Dirk Opfer <dirk@opfer-online.de>
+ ARM/Orion SoC/Technologic Systems TS-78xx platform support
+ M:    Alexander Clouter <alex@digriz.org.uk>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ W:    http://www.digriz.org.uk/ts78xx/kernel
+ S:    Maintained
+ F:    arch/arm/mach-orion5x/ts78xx-*
+ ARM/OXNAS platform support
+ M:    Neil Armstrong <narmstrong@baylibre.com>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ L:    linux-oxnas@lists.tuxfamily.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    arch/arm/mach-oxnas/
+ F:    arch/arm/boot/dts/ox8*.dtsi
+ F:    arch/arm/boot/dts/wd-mbwe.dts
+ F:    arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts
+ N:    oxnas
+ ARM/PALM TREO SUPPORT
+ M:    Tomas Cech <sleep_walker@suse.com>
+ L:    linux-arm-kernel@lists.infradead.org
+ W:    http://hackndev.com
  S:    Maintained
+ F:    arch/arm/mach-pxa/include/mach/palmtreo.h
+ F:    arch/arm/mach-pxa/palmtreo.c
  
  ARM/PALMTX,PALMT5,PALMLD,PALMTE2,PALMTC SUPPORT
  M:    Marek Vasut <marek.vasut@gmail.com>
@@@ -1654,14 -1662,6 +1662,6 @@@ F:     arch/arm/mach-pxa/palmte2.
  F:    arch/arm/mach-pxa/include/mach/palmtc.h
  F:    arch/arm/mach-pxa/palmtc.c
  
- ARM/PALM TREO SUPPORT
- M:    Tomas Cech <sleep_walker@suse.com>
- L:    linux-arm-kernel@lists.infradead.org
- W:    http://hackndev.com
- S:    Maintained
- F:    arch/arm/mach-pxa/include/mach/palmtreo.h
- F:    arch/arm/mach-pxa/palmtreo.c
  ARM/PALMZ72 SUPPORT
  M:    Sergey Lapin <slapin@ossfans.org>
  L:    linux-arm-kernel@lists.infradead.org
@@@ -1802,17 -1802,6 +1802,6 @@@ L:     linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/platform/s5p-g2d/
  
- ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
- M:    Kyungmin Park <kyungmin.park@samsung.com>
- M:    Kamil Debski <kamil@wypas.org>
- M:    Jeongtae Park <jtp.park@samsung.com>
- M:    Andrzej Hajda <a.hajda@samsung.com>
- L:    linux-arm-kernel@lists.infradead.org
- L:    linux-media@vger.kernel.org
- S:    Maintained
- F:    arch/arm/plat-samsung/s5p-dev-mfc.c
- F:    drivers/media/platform/s5p-mfc/
  ARM/SAMSUNG S5P SERIES HDMI CEC SUBSYSTEM SUPPORT
  M:    Marek Szyprowski <m.szyprowski@samsung.com>
  L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
@@@ -1829,6 -1818,17 +1818,17 @@@ L:    linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/platform/s5p-jpeg/
  
+ ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
+ M:    Kyungmin Park <kyungmin.park@samsung.com>
+ M:    Kamil Debski <kamil@wypas.org>
+ M:    Jeongtae Park <jtp.park@samsung.com>
+ M:    Andrzej Hajda <a.hajda@samsung.com>
+ L:    linux-arm-kernel@lists.infradead.org
+ L:    linux-media@vger.kernel.org
+ S:    Maintained
+ F:    arch/arm/plat-samsung/s5p-dev-mfc.c
+ F:    drivers/media/platform/s5p-mfc/
  ARM/SHMOBILE ARM ARCHITECTURE
  M:    Simon Horman <horms@verge.net.au>
  M:    Magnus Damm <magnus.damm@gmail.com>
@@@ -1922,26 -1922,48 +1922,48 @@@ M:   "Mark F. Brown" <mark.brown314@gmail
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
+ ARM/TEXAS INSTRUMENT AEMIF/EMIF DRIVERS
+ M:    Santosh Shilimkar <ssantosh@kernel.org>
+ L:    linux-kernel@vger.kernel.org
+ S:    Maintained
+ F:    drivers/memory/*emif*
+ ARM/TEXAS INSTRUMENT KEYSTONE ARCHITECTURE
+ M:    Santosh Shilimkar <ssantosh@kernel.org>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    arch/arm/mach-keystone/
+ F:    arch/arm/boot/dts/keystone-*
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
+ ARM/TEXAS INSTRUMENT KEYSTONE CLOCK FRAMEWORK
+ M:    Santosh Shilimkar <ssantosh@kernel.org>
+ L:    linux-kernel@vger.kernel.org
+ S:    Maintained
+ F:    drivers/clk/keystone/
+ ARM/TEXAS INSTRUMENT KEYSTONE ClOCKSOURCE
+ M:    Santosh Shilimkar <ssantosh@kernel.org>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ L:    linux-kernel@vger.kernel.org
+ S:    Maintained
+ F:    drivers/clocksource/timer-keystone.c
+ ARM/TEXAS INSTRUMENT KEYSTONE RESET DRIVER
+ M:    Santosh Shilimkar <ssantosh@kernel.org>
+ L:    linux-kernel@vger.kernel.org
+ S:    Maintained
+ F:    drivers/power/reset/keystone-reset.c
  ARM/THECUS N2100 MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
- ARM/NUVOTON W90X900 ARM ARCHITECTURE
- M:    Wan ZongShun <mcuos.com@gmail.com>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- W:    http://www.mcuos.com
+ ARM/TOSA MACHINE SUPPORT
+ M:    Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
+ M:    Dirk Opfer <dirk@opfer-online.de>
  S:    Maintained
- F:    arch/arm/mach-w90x900/
- F:    drivers/input/keyboard/w90p910_keypad.c
- F:    drivers/input/touchscreen/w90p910_ts.c
- F:    drivers/watchdog/nuc900_wdt.c
- F:    drivers/net/ethernet/nuvoton/w90p910_ether.c
- F:    drivers/mtd/nand/nuc900_nand.c
- F:    drivers/rtc/rtc-nuc900.c
- F:    drivers/spi/spi-nuc900.c
- F:    drivers/usb/host/ehci-w90x900.c
- F:    drivers/video/fbdev/nuc900fb.c
  
  ARM/U300 MACHINE SUPPORT
  M:    Linus Walleij <linus.walleij@linaro.org>
@@@ -2086,16 -2108,6 +2108,6 @@@ F:     drivers/i2c/busses/i2c-cadence.
  F:    drivers/mmc/host/sdhci-of-arasan.c
  F:    drivers/edac/synopsys_edac.c
  
- ARM SMMU DRIVERS
- M:    Will Deacon <will.deacon@arm.com>
- R:    Robin Murphy <robin.murphy@arm.com>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    drivers/iommu/arm-smmu.c
- F:    drivers/iommu/arm-smmu-v3.c
- F:    drivers/iommu/io-pgtable-arm.c
- F:    drivers/iommu/io-pgtable-arm-v7s.c
  ARM64 PORT (AARCH64 ARCHITECTURE)
  M:    Catalin Marinas <catalin.marinas@arm.com>
  M:    Will Deacon <will.deacon@arm.com>
@@@ -2207,21 -2219,10 +2219,10 @@@ T:   git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    drivers/net/wireless/ath/ath6kl/
  
- WILOCITY WIL6210 WIRELESS DRIVER
- M:    Maya Erez <qca_merez@qca.qualcomm.com>
- L:    linux-wireless@vger.kernel.org
- L:    wil6210@qca.qualcomm.com
- S:    Supported
- W:    http://wireless.kernel.org/en/users/Drivers/wil6210
- F:    drivers/net/wireless/ath/wil6210/
- F:    include/uapi/linux/wil6210_uapi.h
- CARL9170 LINUX COMMUNITY WIRELESS DRIVER
- M:    Christian Lamparter <chunkeey@googlemail.com>
- L:    linux-wireless@vger.kernel.org
- W:    http://wireless.kernel.org/en/users/Drivers/carl9170
+ ATI_REMOTE2 DRIVER
+ M:    Ville Syrjala <syrjala@sci.fi>
  S:    Maintained
- F:    drivers/net/wireless/ath/carl9170/
+ F:    drivers/input/misc/ati_remote2.c
  
  ATK0110 HWMON DRIVER
  M:    Luca Tettamanti <kronos.it@gmail.com>
@@@ -2229,11 -2230,6 +2230,6 @@@ L:     linux-hwmon@vger.kernel.or
  S:    Maintained
  F:    drivers/hwmon/asus_atk0110.c
  
- ATI_REMOTE2 DRIVER
- M:    Ville Syrjala <syrjala@sci.fi>
- S:    Maintained
- F:    drivers/input/misc/ati_remote2.c
  ATLX ETHERNET DRIVERS
  M:    Jay Cliburn <jcliburn@gmail.com>
  M:    Chris Snook <chris.snook@gmail.com>
@@@ -2263,25 -2259,12 +2259,12 @@@ M:   Nicolas Ferre <nicolas.ferre@microch
  S:    Supported
  F:    drivers/power/reset/at91-sama5d2_shdwc.c
  
- ATMEL SAMA5D2 ADC DRIVER
- M:    Ludovic Desroches <ludovic.desroches@microchip.com>
- L:    linux-iio@vger.kernel.org
- S:    Supported
- F:    drivers/iio/adc/at91-sama5d2_adc.c
  ATMEL Audio ALSA driver
  M:    Nicolas Ferre <nicolas.ferre@microchip.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/atmel
  
- ATMEL XDMA DRIVER
- M:    Ludovic Desroches <ludovic.desroches@microchip.com>
- L:    linux-arm-kernel@lists.infradead.org
- L:    dmaengine@vger.kernel.org
- S:    Supported
- F:    drivers/dma/at_xdmac.c
  ATMEL I2C DRIVER
  M:    Ludovic Desroches <ludovic.desroches@microchip.com>
  L:    linux-i2c@vger.kernel.org
@@@ -2307,6 -2290,14 +2290,14 @@@ M:    Nicolas Ferre <nicolas.ferre@microch
  S:    Supported
  F:    drivers/net/ethernet/cadence/
  
+ ATMEL MAXTOUCH DRIVER
+ M:    Nick Dyer <nick@shmanahar.org>
+ T:    git git://github.com/ndyer/linux.git
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/input/atmel,maxtouch.txt
+ 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>
@@@ -2314,6 -2305,12 +2305,12 @@@ L:    linux-mtd@lists.infradead.or
  S:    Supported
  F:    drivers/mtd/nand/atmel/*
  
+ ATMEL SAMA5D2 ADC DRIVER
+ M:    Ludovic Desroches <ludovic.desroches@microchip.com>
+ L:    linux-iio@vger.kernel.org
+ S:    Supported
+ F:    drivers/iio/adc/at91-sama5d2_adc.c
  ATMEL SDMMC DRIVER
  M:    Ludovic Desroches <ludovic.desroches@microchip.com>
  L:    linux-mmc@vger.kernel.org
@@@ -2353,13 -2350,12 +2350,12 @@@ W:   http://atmelwlandriver.sourceforge.n
  S:    Maintained
  F:    drivers/net/wireless/atmel/atmel*
  
- ATMEL MAXTOUCH DRIVER
- M:    Nick Dyer <nick@shmanahar.org>
- T:    git git://github.com/ndyer/linux.git
- S:    Maintained
- F:    Documentation/devicetree/bindings/input/atmel,maxtouch.txt
- F:    drivers/input/touchscreen/atmel_mxt_ts.c
- F:    include/linux/platform_data/atmel_mxt_ts.h
+ ATMEL XDMA DRIVER
+ M:    Ludovic Desroches <ludovic.desroches@microchip.com>
+ L:    linux-arm-kernel@lists.infradead.org
+ L:    dmaengine@vger.kernel.org
+ S:    Supported
+ F:    drivers/dma/at_xdmac.c
  
  ATOMIC INFRASTRUCTURE
  M:    Will Deacon <will.deacon@arm.com>
@@@ -2413,13 -2409,6 +2409,6 @@@ F:     include/uapi/linux/ax25.
  F:    include/net/ax25.h
  F:    net/ax25/
  
- AXENTIA ASOC DRIVERS
- M:    Peter Rosin <peda@axentia.se>
- L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
- S:    Maintained
- F:    Documentation/devicetree/bindings/sound/axentia,*
- F:    sound/soc/atmel/tse850-pcm5142.c
  AXENTIA ARM DEVICES
  M:    Peter Rosin <peda@axentia.se>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -2428,6 -2417,13 +2417,13 @@@ F:    Documentation/devicetree/bindings/ar
  F:    arch/arm/boot/dts/at91-linea.dtsi
  F:    arch/arm/boot/dts/at91-tse850-3.dts
  
+ AXENTIA ASOC DRIVERS
+ M:    Peter Rosin <peda@axentia.se>
+ L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/sound/axentia,*
+ F:    sound/soc/atmel/tse850-pcm5142.c
  AZ6007 DVB DRIVER
  M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
@@@ -2507,13 -2503,11 +2503,11 @@@ W:   https://linuxtv.or
  S:    Supported
  F:    drivers/media/platform/sti/bdisp
  
- DELTA ST MEDIA DRIVER
- M:    Hugues Fruchet <hugues.fruchet@st.com>
- L:    linux-media@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- W:    https://linuxtv.org
- S:    Supported
- F:    drivers/media/platform/sti/delta
+ BECKHOFF CX5020 ETHERCAT MASTER DRIVER
+ M:    Dariusz Marcinkiewicz <reksio@newterm.pl>
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/ethernet/ec_bhf.c
  
  BEFS FILE SYSTEM
  M:    Luis de Bethencourt <luisbg@kernel.org>
@@@ -2523,11 -2517,13 +2517,13 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/filesystems/befs.txt
  F:    fs/befs/
  
- BECKHOFF CX5020 ETHERCAT MASTER DRIVER
- M:    Dariusz Marcinkiewicz <reksio@newterm.pl>
- L:    netdev@vger.kernel.org
+ BFQ I/O SCHEDULER
+ M:    Paolo Valente <paolo.valente@linaro.org>
+ M:    Jens Axboe <axboe@kernel.dk>
+ L:    linux-block@vger.kernel.org
  S:    Maintained
- F:    drivers/net/ethernet/ec_bhf.c
+ F:    block/bfq-*
+ F:    Documentation/block/bfq-iosched.txt
  
  BFS FILE SYSTEM
  M:    "Tigran A. Aivazian" <aivazian.tigran@gmail.com>
@@@ -2550,47 -2546,47 +2546,47 @@@ W:   http://blackfin.uclinux.or
  S:    Supported
  F:    drivers/net/ethernet/adi/
  
- BLACKFIN RTC DRIVER
+ BLACKFIN I2C TWI DRIVER
+ M:    Sonic Zhang <sonic.zhang@analog.com>
  L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
- W:    http://blackfin.uclinux.org
+ W:    http://blackfin.uclinux.org/
  S:    Supported
- F:    drivers/rtc/rtc-bfin.c
+ F:    drivers/i2c/busses/i2c-bfin-twi.c
  
- BLACKFIN SDH DRIVER
- M:    Sonic Zhang <sonic.zhang@analog.com>
+ BLACKFIN MEDIA DRIVER
+ M:    Scott Jiang <scott.jiang.linux@gmail.com>
  L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
- W:    http://blackfin.uclinux.org
+ W:    http://blackfin.uclinux.org/
  S:    Supported
- F:    drivers/mmc/host/bfin_sdh.c
- BLACKFIN SERIAL DRIVER
- M:    Sonic Zhang <sonic.zhang@analog.com>
+ F:    drivers/media/platform/blackfin/
+ F:    drivers/media/i2c/adv7183*
+ F:    drivers/media/i2c/vs6624*
+ BLACKFIN RTC DRIVER
  L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
  W:    http://blackfin.uclinux.org
  S:    Supported
- F:    drivers/tty/serial/bfin_uart.c
+ F:    drivers/rtc/rtc-bfin.c
  
- BLACKFIN WATCHDOG DRIVER
+ BLACKFIN SDH DRIVER
+ M:    Sonic Zhang <sonic.zhang@analog.com>
  L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
  W:    http://blackfin.uclinux.org
  S:    Supported
- F:    drivers/watchdog/bfin_wdt.c
+ F:    drivers/mmc/host/bfin_sdh.c
  
- BLACKFIN I2C TWI DRIVER
+ BLACKFIN SERIAL DRIVER
  M:    Sonic Zhang <sonic.zhang@analog.com>
  L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
- W:    http://blackfin.uclinux.org/
+ W:    http://blackfin.uclinux.org
  S:    Supported
- F:    drivers/i2c/busses/i2c-bfin-twi.c
+ F:    drivers/tty/serial/bfin_uart.c
  
- BLACKFIN MEDIA DRIVER
- M:    Scott Jiang <scott.jiang.linux@gmail.com>
+ BLACKFIN WATCHDOG DRIVER
  L:    adi-buildroot-devel@lists.sourceforge.net (moderated for non-subscribers)
- W:    http://blackfin.uclinux.org/
+ W:    http://blackfin.uclinux.org
  S:    Supported
- F:    drivers/media/platform/blackfin/
- F:    drivers/media/i2c/adv7183*
- F:    drivers/media/i2c/vs6624*
+ F:    drivers/watchdog/bfin_wdt.c
  
  BLINKM RGB LED DRIVER
  M:    Jan-Simon Moeller <jansimon.moeller@gmx.de>
@@@ -2606,14 -2602,6 +2602,6 @@@ F:     block
  F:    kernel/trace/blktrace.c
  F:    lib/sbitmap.c
  
- BFQ I/O SCHEDULER
- M:    Paolo Valente <paolo.valente@linaro.org>
- M:    Jens Axboe <axboe@kernel.dk>
- L:    linux-block@vger.kernel.org
- S:    Maintained
- F:    block/bfq-*
- F:    Documentation/block/bfq-iosched.txt
  BLOCK2MTD DRIVER
  M:    Joern Engel <joern@lazybastard.org>
  L:    linux-mtd@lists.infradead.org
@@@ -2643,21 -2631,6 +2631,6 @@@ S:     Maintaine
  F:    net/bluetooth/
  F:    include/net/bluetooth/
  
- DMA MAPPING HELPERS
- M:    Christoph Hellwig <hch@lst.de>
- M:    Marek Szyprowski <m.szyprowski@samsung.com>
- R:    Robin Murphy <robin.murphy@arm.com>
- L:    linux-kernel@vger.kernel.org
- T:    git git://git.infradead.org/users/hch/dma-mapping.git
- 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-virt.c
- F:    drivers/base/dma-mapping.c
- F:    drivers/base/dma-coherent.c
- F:    include/linux/dma-mapping.h
  BONDING DRIVER
  M:    Jay Vosburgh <j.vosburgh@gmail.com>
  M:    Veaceslav Falico <vfalico@gmail.com>
@@@ -2705,35 -2678,6 +2678,6 @@@ S:     Supporte
  F:    drivers/net/dsa/b53/*
  F:    include/linux/platform_data/b53.h
  
- BROADCOM GENET ETHERNET DRIVER
- M:    Florian Fainelli <f.fainelli@gmail.com>
- L:    netdev@vger.kernel.org
- S:    Supported
- F:    drivers/net/ethernet/broadcom/genet/
- BROADCOM BNX2 GIGABIT ETHERNET DRIVER
- M:    Rasesh Mody <rasesh.mody@cavium.com>
- M:    Harish Patil <harish.patil@cavium.com>
- M:    Dept-GELinuxNICDev@cavium.com
- L:    netdev@vger.kernel.org
- S:    Supported
- F:    drivers/net/ethernet/broadcom/bnx2.*
- F:    drivers/net/ethernet/broadcom/bnx2_*
- BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
- M:    Yuval Mintz <Yuval.Mintz@cavium.com>
- M:    Ariel Elior <ariel.elior@cavium.com>
- M:    everest-linux-l2@cavium.com
- L:    netdev@vger.kernel.org
- S:    Supported
- F:    drivers/net/ethernet/broadcom/bnx2x/
- BROADCOM BNXT_EN 50 GIGABIT ETHERNET DRIVER
- M:    Michael Chan <michael.chan@broadcom.com>
- L:    netdev@vger.kernel.org
- S:    Supported
- F:    drivers/net/ethernet/broadcom/bnxt/
  BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Ray Jui <rjui@broadcom.com>
@@@ -2812,6 -2756,13 +2756,13 @@@ F:    arch/arm/boot/dts/bcm7*.dts
  F:    drivers/bus/brcmstb_gisb.c
  N:    brcmstb
  
+ BROADCOM BMIPS CPUFREQ DRIVER
+ M:    Markus Mayer <mmayer@broadcom.com>
+ M:    bcm-kernel-feedback-list@broadcom.com
+ L:    linux-pm@vger.kernel.org
+ S:    Maintained
+ F:    drivers/cpufreq/bmips-cpufreq.c
  BROADCOM BMIPS MIPS ARCHITECTURE
  M:    Kevin Cernekee <cernekee@gmail.com>
  M:    Florian Fainelli <f.fainelli@gmail.com>
@@@ -2828,20 -2779,40 +2779,40 @@@ F:   drivers/irqchip/irq-brcmstb
  F:    include/linux/bcm963xx_nvram.h
  F:    include/linux/bcm963xx_tag.h
  
- BROADCOM BMIPS CPUFREQ DRIVER
- M:    Markus Mayer <mmayer@broadcom.com>
- M:    bcm-kernel-feedback-list@broadcom.com
- L:    linux-pm@vger.kernel.org
- S:    Maintained
- F:    drivers/cpufreq/bmips-cpufreq.c
+ BROADCOM BNX2 GIGABIT ETHERNET DRIVER
+ M:    Rasesh Mody <rasesh.mody@cavium.com>
+ M:    Harish Patil <harish.patil@cavium.com>
+ M:    Dept-GELinuxNICDev@cavium.com
+ L:    netdev@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/ethernet/broadcom/bnx2.*
+ F:    drivers/net/ethernet/broadcom/bnx2_*
  
- BROADCOM TG3 GIGABIT ETHERNET DRIVER
- M:    Siva Reddy Kallam <siva.kallam@broadcom.com>
- M:    Prashant Sreedharan <prashant@broadcom.com>
- M:    Michael Chan <mchan@broadcom.com>
+ BROADCOM BNX2FC 10 GIGABIT FCOE DRIVER
+ M:    QLogic-Storage-Upstream@qlogic.com
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ F:    drivers/scsi/bnx2fc/
+ BROADCOM BNX2I 1/10 GIGABIT iSCSI DRIVER
+ M:    QLogic-Storage-Upstream@qlogic.com
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ F:    drivers/scsi/bnx2i/
+ BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
+ M:    Yuval Mintz <Yuval.Mintz@cavium.com>
+ M:    Ariel Elior <ariel.elior@cavium.com>
+ M:    everest-linux-l2@cavium.com
  L:    netdev@vger.kernel.org
  S:    Supported
- F:    drivers/net/ethernet/broadcom/tg3.*
+ F:    drivers/net/ethernet/broadcom/bnx2x/
+ BROADCOM BNXT_EN 50 GIGABIT ETHERNET DRIVER
+ M:    Michael Chan <michael.chan@broadcom.com>
+ L:    netdev@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/ethernet/broadcom/bnxt/
  
  BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
  M:    Arend van Spriel <arend.vanspriel@broadcom.com>
@@@ -2855,17 -2826,18 +2826,18 @@@ L:   brcm80211-dev-list@cypress.co
  S:    Supported
  F:    drivers/net/wireless/broadcom/brcm80211/
  
- BROADCOM BNX2FC 10 GIGABIT FCOE DRIVER
- M:    QLogic-Storage-Upstream@qlogic.com
- L:    linux-scsi@vger.kernel.org
+ BROADCOM BRCMSTB GPIO DRIVER
+ M:    Gregory Fong <gregory.0xf0@gmail.com>
+ L:    bcm-kernel-feedback-list@broadcom.com
  S:    Supported
- F:    drivers/scsi/bnx2fc/
+ F:    drivers/gpio/gpio-brcmstb.c
+ F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
  
- BROADCOM BNX2I 1/10 GIGABIT iSCSI DRIVER
- M:    QLogic-Storage-Upstream@qlogic.com
- L:    linux-scsi@vger.kernel.org
+ BROADCOM GENET ETHERNET DRIVER
+ M:    Florian Fainelli <f.fainelli@gmail.com>
+ L:    netdev@vger.kernel.org
  S:    Supported
- F:    drivers/scsi/bnx2i/
+ F:    drivers/net/ethernet/broadcom/genet/
  
  BROADCOM IPROC ARM ARCHITECTURE
  M:    Ray Jui <rjui@broadcom.com>
@@@ -2892,13 -2864,6 +2864,6 @@@ F:     arch/arm64/boot/dts/broadcom/ns2
  F:    drivers/clk/bcm/clk-ns*
  F:    drivers/pinctrl/bcm/pinctrl-ns*
  
- BROADCOM BRCMSTB GPIO DRIVER
- M:    Gregory Fong <gregory.0xf0@gmail.com>
- L:    bcm-kernel-feedback-list@broadcom.com
- S:    Supported
- F:    drivers/gpio/gpio-brcmstb.c
- F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
  BROADCOM KONA GPIO DRIVER
  M:    Ray Jui <rjui@broadcom.com>
  L:    bcm-kernel-feedback-list@broadcom.com
@@@ -2906,19 -2871,29 +2871,29 @@@ S:   Supporte
  F:    drivers/gpio/gpio-bcm-kona.c
  F:    Documentation/devicetree/bindings/gpio/brcm,kona-gpio.txt
  
+ BROADCOM NETXTREME-E ROCE DRIVER
+ M:    Selvin Xavier <selvin.xavier@broadcom.com>
+ M:    Devesh Sharma <devesh.sharma@broadcom.com>
+ M:    Somnath Kotur <somnath.kotur@broadcom.com>
+ M:    Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
+ L:    linux-rdma@vger.kernel.org
+ W:    http://www.broadcom.com
+ S:    Supported
+ F:    drivers/infiniband/hw/bnxt_re/
+ F:    include/uapi/rdma/bnxt_re-abi.h
  BROADCOM NVRAM DRIVER
  M:    Rafał Miłecki <zajec5@gmail.com>
  L:    linux-mips@linux-mips.org
  S:    Maintained
  F:    drivers/firmware/broadcom/*
  
- BROADCOM STB NAND FLASH DRIVER
- M:    Brian Norris <computersforpeace@gmail.com>
- M:    Kamal Dasu <kdasu.kdev@gmail.com>
- L:    linux-mtd@lists.infradead.org
- L:    bcm-kernel-feedback-list@broadcom.com
+ BROADCOM SPECIFIC AMBA DRIVER (BCMA)
+ M:    Rafał Miłecki <zajec5@gmail.com>
+ L:    linux-wireless@vger.kernel.org
  S:    Maintained
- F:    drivers/mtd/nand/brcmnand/
+ F:    drivers/bcma/
+ F:    include/linux/bcma/
  
  BROADCOM STB AVS CPUFREQ DRIVER
  M:    Markus Mayer <mmayer@broadcom.com>
@@@ -2928,12 -2903,13 +2903,13 @@@ S:   Maintaine
  F:    Documentation/devicetree/bindings/cpufreq/brcm,stb-avs-cpu-freq.txt
  F:    drivers/cpufreq/brcmstb*
  
- BROADCOM SPECIFIC AMBA DRIVER (BCMA)
- M:    Rafał Miłecki <zajec5@gmail.com>
- L:    linux-wireless@vger.kernel.org
+ BROADCOM STB NAND FLASH DRIVER
+ M:    Brian Norris <computersforpeace@gmail.com>
+ M:    Kamal Dasu <kdasu.kdev@gmail.com>
+ L:    linux-mtd@lists.infradead.org
+ L:    bcm-kernel-feedback-list@broadcom.com
  S:    Maintained
- F:    drivers/bcma/
- F:    include/linux/bcma/
+ F:    drivers/mtd/nand/brcmnand/
  
  BROADCOM SYSTEMPORT ETHERNET DRIVER
  M:    Florian Fainelli <f.fainelli@gmail.com>
@@@ -2941,16 -2917,13 +2917,13 @@@ L:   netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bcmsysport.*
  
- BROADCOM NETXTREME-E ROCE DRIVER
- M:    Selvin Xavier <selvin.xavier@broadcom.com>
- M:    Devesh Sharma <devesh.sharma@broadcom.com>
- M:    Somnath Kotur <somnath.kotur@broadcom.com>
- M:    Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
- L:    linux-rdma@vger.kernel.org
- W:    http://www.broadcom.com
+ BROADCOM TG3 GIGABIT ETHERNET DRIVER
+ M:    Siva Reddy Kallam <siva.kallam@broadcom.com>
+ M:    Prashant Sreedharan <prashant@broadcom.com>
+ M:    Michael Chan <mchan@broadcom.com>
+ L:    netdev@vger.kernel.org
  S:    Supported
- F:    drivers/infiniband/hw/bnxt_re/
- F:    include/uapi/rdma/bnxt_re-abi.h
+ F:    drivers/net/ethernet/broadcom/tg3.*
  
  BROCADE BFA FC SCSI DRIVER
  M:    Anil Gurumurthy <anil.gurumurthy@qlogic.com>
@@@ -3013,6 -2986,15 +2986,15 @@@ S:    Odd fixe
  F:    Documentation/media/v4l-drivers/bttv*
  F:    drivers/media/pci/bt8xx/bttv*
  
+ BUS FREQUENCY DRIVER FOR SAMSUNG EXYNOS
+ M:    Chanwoo Choi <cw00.choi@samsung.com>
+ L:    linux-pm@vger.kernel.org
+ L:    linux-samsung-soc@vger.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq.git
+ S:    Maintained
+ F:    drivers/devfreq/exynos-bus.c
+ F:    Documentation/devicetree/bindings/devfreq/exynos-bus.txt
  BUSLOGIC SCSI DRIVER
  M:    Khalid Aziz <khalid@gonehiking.org>
  L:    linux-scsi@vger.kernel.org
@@@ -3087,6 -3069,21 +3069,21 @@@ F:    arch/x86/kernel/tce_64.
  F:    arch/x86/include/asm/calgary.h
  F:    arch/x86/include/asm/tce.h
  
+ CAN NETWORK DRIVERS
+ M:    Wolfgang Grandegger <wg@grandegger.com>
+ M:    Marc Kleine-Budde <mkl@pengutronix.de>
+ L:    linux-can@vger.kernel.org
+ W:    https://github.com/linux-can
+ 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/devicetree/bindings/net/can/
+ F:    drivers/net/can/
+ F:    include/linux/can/dev.h
+ F:    include/linux/can/platform/
+ F:    include/uapi/linux/can/error.h
+ F:    include/uapi/linux/can/netlink.h
  CAN NETWORK LAYER
  M:    Oliver Hartkopp <socketcan@hartkopp.net>
  M:    Marc Kleine-Budde <mkl@pengutronix.de>
@@@ -3103,21 -3100,6 +3100,6 @@@ F:     include/uapi/linux/can/bcm.
  F:    include/uapi/linux/can/raw.h
  F:    include/uapi/linux/can/gw.h
  
- CAN NETWORK DRIVERS
- M:    Wolfgang Grandegger <wg@grandegger.com>
- M:    Marc Kleine-Budde <mkl@pengutronix.de>
- L:    linux-can@vger.kernel.org
- W:    https://github.com/linux-can
- 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/devicetree/bindings/net/can/
- F:    drivers/net/can/
- F:    include/linux/can/dev.h
- F:    include/linux/can/platform/
- F:    include/uapi/linux/can/error.h
- F:    include/uapi/linux/can/netlink.h
  CAPABILITIES
  M:    Serge Hallyn <serge@hallyn.com>
  L:    linux-security-module@vger.kernel.org
@@@ -3132,12 -3114,12 +3114,12 @@@ M:   Kevin Tsai <ktsai@capellamicro.com
  S:    Maintained
  F:    drivers/iio/light/cm*
  
- CAVIUM THUNDERX2 ARM64 SOC
- M:    Jayachandran C <jnair@caviumnetworks.com>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ CARL9170 LINUX COMMUNITY WIRELESS DRIVER
+ M:    Christian Lamparter <chunkeey@googlemail.com>
+ L:    linux-wireless@vger.kernel.org
+ W:    http://wireless.kernel.org/en/users/Drivers/carl9170
  S:    Maintained
- F:    arch/arm64/boot/dts/cavium/thunder2-99xx*
- F:    Documentation/devicetree/bindings/arm/cavium-thunder2.txt
+ F:    drivers/net/wireless/ath/carl9170/
  
  CAVIUM I2C DRIVER
  M:    Jan Glauber <jglauber@cavium.com>
@@@ -3147,6 -3129,16 +3129,16 @@@ S:    Supporte
  F:    drivers/i2c/busses/i2c-octeon*
  F:    drivers/i2c/busses/i2c-thunderx*
  
+ CAVIUM LIQUIDIO NETWORK DRIVER
+ M:    Derek Chickles <derek.chickles@caviumnetworks.com>
+ M:    Satanand Burla <satananda.burla@caviumnetworks.com>
+ M:    Felix Manlunas <felix.manlunas@caviumnetworks.com>
+ M:    Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com>
+ L:    netdev@vger.kernel.org
+ W:    http://www.cavium.com
+ S:    Supported
+ F:    drivers/net/ethernet/cavium/liquidio/
  CAVIUM MMC DRIVER
  M:    Jan Glauber <jglauber@cavium.com>
  M:    David Daney <david.daney@cavium.com>
@@@ -3155,16 -3147,6 +3147,6 @@@ W:     http://www.cavium.co
  S:    Supported
  F:    drivers/mmc/host/cavium*
  
- CAVIUM LIQUIDIO NETWORK DRIVER
- M:     Derek Chickles <derek.chickles@caviumnetworks.com>
- M:     Satanand Burla <satananda.burla@caviumnetworks.com>
- M:     Felix Manlunas <felix.manlunas@caviumnetworks.com>
- M:     Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com>
- L:     netdev@vger.kernel.org
- W:     http://www.cavium.com
- S:     Supported
- F:     drivers/net/ethernet/cavium/liquidio/
  CAVIUM OCTEON-TX CRYPTO DRIVER
  M:    George Cherian <george.cherian@cavium.com>
  L:    linux-crypto@vger.kernel.org
@@@ -3172,6 -3154,13 +3154,13 @@@ W:    http://www.cavium.co
  S:    Supported
  F:    drivers/crypto/cavium/cpt/
  
+ CAVIUM THUNDERX2 ARM64 SOC
+ M:    Jayachandran C <jnair@caviumnetworks.com>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    arch/arm64/boot/dts/cavium/thunder2-99xx*
+ F:    Documentation/devicetree/bindings/arm/cavium-thunder2.txt
  CC2520 IEEE-802.15.4 RADIO DRIVER
  M:    Varka Bhadram <varkabhadram@gmail.com>
  L:    linux-wpan@vger.kernel.org
@@@ -3260,12 -3249,6 +3249,6 @@@ F:     drivers/usb/host/whci
  F:    drivers/usb/wusbcore/
  F:    include/linux/usb/wusb*
  
- HT16K33 LED CONTROLLER DRIVER
- M:    Robin van der Gracht <robin@protonic.nl>
- S:    Maintained
- F:    drivers/auxdisplay/ht16k33.c
- F:    Documentation/devicetree/bindings/display/ht16k33.txt
  CFAG12864B LCD DRIVER
  M:    Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
  W:    http://miguelojeda.es/auxdisplay.htm
@@@ -3337,6 -3320,34 +3320,34 @@@ S:    Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform.git
  F:    drivers/platform/chrome/
  
+ CIRRUS LOGIC AUDIO CODEC DRIVERS
+ M:    Brian Austin <brian.austin@cirrus.com>
+ M:    Paul Handrigan <Paul.Handrigan@cirrus.com>
+ L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    sound/soc/codecs/cs*
+ CIRRUS LOGIC EP93XX ETHERNET DRIVER
+ M:    Hartley Sweeten <hsweeten@visionengravers.com>
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/ethernet/cirrus/ep93xx_eth.c
+ CISCO FCOE HBA DRIVER
+ M:    Satish Kharat <satishkh@cisco.com>
+ M:    Sesidhar Baddela <sebaddel@cisco.com>
+ M:    Karan Tilak Kumar <kartilak@cisco.com>
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ F:    drivers/scsi/fnic/
+ CISCO SCSI HBA DRIVER
+ M:    Karan Tilak Kumar <kartilak@cisco.com>
+ M:    Sesidhar Baddela <sebaddel@cisco.com>
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ F:    drivers/scsi/snic/
  CISCO VIC ETHERNET NIC DRIVER
  M:    Christian Benvenuti <benve@cisco.com>
  M:    Govindarajulu Varadarajan <_govind@gmx.com>
@@@ -3350,19 -3361,6 +3361,6 @@@ M:     Dave Goodell <dgoodell@cisco.com
  S:    Supported
  F:    drivers/infiniband/hw/usnic/
  
- CIRRUS LOGIC EP93XX ETHERNET DRIVER
- M:    Hartley Sweeten <hsweeten@visionengravers.com>
- L:    netdev@vger.kernel.org
- S:    Maintained
- F:    drivers/net/ethernet/cirrus/ep93xx_eth.c
- CIRRUS LOGIC AUDIO CODEC DRIVERS
- M:    Brian Austin <brian.austin@cirrus.com>
- M:    Paul Handrigan <Paul.Handrigan@cirrus.com>
- L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
- S:    Maintained
- F:    sound/soc/codecs/cs*
  CLEANCACHE API
  M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  L:    linux-kernel@vger.kernel.org
@@@ -3384,21 -3382,6 +3382,6 @@@ T:     git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    drivers/clocksource
  
- CISCO FCOE HBA DRIVER
- M:    Satish Kharat <satishkh@cisco.com>
- M:    Sesidhar Baddela <sebaddel@cisco.com>
- M:    Karan Tilak Kumar <kartilak@cisco.com>
- L:    linux-scsi@vger.kernel.org
- S:    Supported
- F:    drivers/scsi/fnic/
- CISCO SCSI HBA DRIVER
- M:    Karan Tilak Kumar <kartilak@cisco.com>
- M:    Sesidhar Baddela <sebaddel@cisco.com>
- L:    linux-scsi@vger.kernel.org
- S:    Supported
- F:    drivers/scsi/snic/
  CMPC ACPI DRIVER
  M:    Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
  M:    Daniel Oliveira Nascimento <don@syst.com.br>
@@@ -3474,17 -3457,17 +3457,17 @@@ L:   linux-pci@vger.kernel.or
  S:    Maintained
  F:    drivers/pci/hotplug/cpci_hotplug*
  
- COMPACTPCI HOTPLUG ZIATECH ZT5550 DRIVER
+ COMPACTPCI HOTPLUG GENERIC DRIVER
  M:    Scott Murray <scott@spiteful.org>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
- F:    drivers/pci/hotplug/cpcihp_zt5550.*
+ F:    drivers/pci/hotplug/cpcihp_generic.c
  
- COMPACTPCI HOTPLUG GENERIC DRIVER
+ COMPACTPCI HOTPLUG ZIATECH ZT5550 DRIVER
  M:    Scott Murray <scott@spiteful.org>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
- F:    drivers/pci/hotplug/cpcihp_generic.c
+ F:    drivers/pci/hotplug/cpcihp_zt5550.*
  
  COMPAL LAPTOP SUPPORT
  M:    Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
@@@ -3587,6 -3570,18 +3570,18 @@@ F:    drivers/cpufreq/arm_big_little.
  F:    drivers/cpufreq/arm_big_little.c
  F:    drivers/cpufreq/arm_big_little_dt.c
  
+ CPU POWER MONITORING SUBSYSTEM
+ M:    Thomas Renninger <trenn@suse.com>
+ L:    linux-pm@vger.kernel.org
+ S:    Maintained
+ F:    tools/power/cpupower/
+ CPUID/MSR DRIVER
+ M:    "H. Peter Anvin" <hpa@zytor.com>
+ S:    Maintained
+ F:    arch/x86/kernel/cpuid.c
+ F:    arch/x86/kernel/msr.c
  CPUIDLE DRIVER - ARM BIG LITTLE
  M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
  M:    Daniel Lezcano <daniel.lezcano@linaro.org>
@@@ -3616,18 -3611,6 +3611,6 @@@ B:     https://bugzilla.kernel.or
  F:    drivers/cpuidle/*
  F:    include/linux/cpuidle.h
  
- CPUID/MSR DRIVER
- M:    "H. Peter Anvin" <hpa@zytor.com>
- S:    Maintained
- F:    arch/x86/kernel/cpuid.c
- F:    arch/x86/kernel/msr.c
- CPU POWER MONITORING SUBSYSTEM
- M:    Thomas Renninger <trenn@suse.com>
- L:    linux-pm@vger.kernel.org
- S:    Maintained
- F:    tools/power/cpupower/
  CRAMFS FILESYSTEM
  W:    http://sourceforge.net/projects/cramfs/
  S:    Orphan / Obsolete
@@@ -3757,6 -3740,13 +3740,13 @@@ S:    Supporte
  F:    drivers/infiniband/hw/cxgb3/
  F:    include/uapi/rdma/cxgb3-abi.h
  
+ CXGB4 CRYPTO DRIVER (chcr)
+ M:    Harsh Jain <harsh@chelsio.com>
+ L:    linux-crypto@vger.kernel.org
+ W:    http://www.chelsio.com
+ S:    Supported
+ F:    drivers/crypto/chelsio
  CXGB4 ETHERNET DRIVER (CXGB4)
  M:    Ganesh Goudar <ganeshgr@chelsio.com>
  L:    netdev@vger.kernel.org
@@@ -3779,13 -3769,6 +3769,6 @@@ S:     Supporte
  F:    drivers/infiniband/hw/cxgb4/
  F:    include/uapi/rdma/cxgb4-abi.h
  
- CXGB4 CRYPTO DRIVER (chcr)
- M:    Harsh Jain <harsh@chelsio.com>
- L:    linux-crypto@vger.kernel.org
- W:    http://www.chelsio.com
- S:    Supported
- F:    drivers/crypto/chelsio
  CXGB4VF ETHERNET DRIVER (CXGB4VF)
  M:    Casey Leedom <leedom@chelsio.com>
  L:    netdev@vger.kernel.org
@@@ -3815,14 -3798,6 +3798,6 @@@ F:     drivers/scsi/cxlflash
  F:    include/uapi/scsi/cxlflash_ioctls.h
  F:    Documentation/powerpc/cxlflash.txt
  
- STMMAC ETHERNET DRIVER
- M:    Giuseppe Cavallaro <peppe.cavallaro@st.com>
- M:    Alexandre Torgue <alexandre.torgue@st.com>
- L:    netdev@vger.kernel.org
- W:    http://www.stlinux.com
- S:    Supported
- F:    drivers/net/ethernet/stmicro/stmmac/
  CYBERPRO FB DRIVER
  M:    Russell King <linux@armlinux.org.uk>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -3946,15 -3921,15 +3921,15 @@@ L:   platform-driver-x86@vger.kernel.or
  S:    Maintained
  F:    drivers/platform/x86/dell-laptop.c
  
- DELL LAPTOP RBTN DRIVER
+ DELL LAPTOP FREEFALL DRIVER
  M:    Pali Rohár <pali.rohar@gmail.com>
  S:    Maintained
- F:    drivers/platform/x86/dell-rbtn.*
+ F:    drivers/platform/x86/dell-smo8800.c
  
- DELL LAPTOP FREEFALL DRIVER
+ DELL LAPTOP RBTN DRIVER
  M:    Pali Rohár <pali.rohar@gmail.com>
  S:    Maintained
- F:    drivers/platform/x86/dell-smo8800.c
+ F:    drivers/platform/x86/dell-rbtn.*
  
  DELL LAPTOP SMM DRIVER
  M:    Pali Rohár <pali.rohar@gmail.com>
@@@ -3974,6 -3949,14 +3949,14 @@@ M:    Pali Rohár <pali.rohar@gmail.com
  S:    Maintained
  F:    drivers/platform/x86/dell-wmi.c
  
+ DELTA ST MEDIA DRIVER
+ M:    Hugues Fruchet <hugues.fruchet@st.com>
+ L:    linux-media@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ W:    https://linuxtv.org
+ S:    Supported
+ F:    drivers/media/platform/sti/delta
  DENALI NAND DRIVER
  M:    Masahiro Yamada <yamada.masahiro@socionext.com>
  L:    linux-mtd@lists.infradead.org
@@@ -4028,15 -4011,6 +4011,6 @@@ F:     drivers/devfreq/devfreq-event.
  F:    include/linux/devfreq-event.h
  F:    Documentation/devicetree/bindings/devfreq/event/
  
- BUS FREQUENCY DRIVER FOR SAMSUNG EXYNOS
- M:    Chanwoo Choi <cw00.choi@samsung.com>
- L:    linux-pm@vger.kernel.org
- L:    linux-samsung-soc@vger.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq.git
- S:    Maintained
- F:    drivers/devfreq/exynos-bus.c
- F:    Documentation/devicetree/bindings/devfreq/exynos-bus.txt
  DEVICE NUMBER REGISTRY
  M:    Torben Mathiasen <device@lanana.org>
  W:    http://lanana.org/docs/device-list/index.html
@@@ -4186,20 -4160,6 +4160,6 @@@ F:     include/linux/*fence.
  F:    Documentation/driver-api/dma-buf.rst
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
- SYNC FILE FRAMEWORK
- M:    Sumit Semwal <sumit.semwal@linaro.org>
- R:    Gustavo Padovan <gustavo@padovan.org>
- S:    Maintained
- L:    linux-media@vger.kernel.org
- L:    dri-devel@lists.freedesktop.org
- F:    drivers/dma-buf/sync_*
- F:    drivers/dma-buf/dma-fence*
- F:    drivers/dma-buf/sw_sync.c
- F:    include/linux/sync_file.h
- F:    include/uapi/linux/sync_file.h
- F:    Documentation/sync_file.txt
- T:    git git://anongit.freedesktop.org/drm/drm-misc
  DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
  M:    Vinod Koul <vinod.koul@intel.com>
  L:    dmaengine@vger.kernel.org
@@@ -4211,6 -4171,21 +4171,21 @@@ F:    Documentation/devicetree/bindings/dm
  F:    Documentation/dmaengine/
  T:    git git://git.infradead.org/users/vkoul/slave-dma.git
  
+ DMA MAPPING HELPERS
+ M:    Christoph Hellwig <hch@lst.de>
+ M:    Marek Szyprowski <m.szyprowski@samsung.com>
+ R:    Robin Murphy <robin.murphy@arm.com>
+ L:    linux-kernel@vger.kernel.org
+ T:    git git://git.infradead.org/users/hch/dma-mapping.git
+ 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-virt.c
+ F:    drivers/base/dma-mapping.c
+ F:    drivers/base/dma-coherent.c
+ F:    include/linux/dma-mapping.h
  DME1737 HARDWARE MONITOR DRIVER
  M:    Juerg Haefliger <juergh@gmail.com>
  L:    linux-hwmon@vger.kernel.org
@@@ -4241,6 -4216,13 +4216,13 @@@ X:    Documentation/sp
  X:    Documentation/media
  T:    git git://git.lwn.net/linux.git docs-next
  
+ DONGWOON DW9714 LENS VOICE COIL DRIVER
+ M:    Sakari Ailus <sakari.ailus@linux.intel.com>
+ L:    linux-media@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ S:    Maintained
+ F:    drivers/media/i2c/dw9714.c
  DOUBLETALK DRIVER
  M:    "James R. Van Zandt" <jrv@vanzandt.mv.com>
  L:    blinux-list@redhat.com
@@@ -4292,36 -4274,13 +4274,13 @@@ F:   include/linux/debugfs.
  F:    include/linux/kobj*
  F:    lib/kobj*
  
- DRM DRIVERS
- M:    David Airlie <airlied@linux.ie>
- L:    dri-devel@lists.freedesktop.org
- T:    git git://people.freedesktop.org/~airlied/linux
- B:    https://bugs.freedesktop.org/
- C:    irc://chat.freenode.net/dri-devel
- S:    Maintained
- F:    drivers/gpu/drm/
- F:    drivers/gpu/vga/
- F:    Documentation/devicetree/bindings/display/
- F:    Documentation/devicetree/bindings/gpu/
- F:    Documentation/devicetree/bindings/video/
- F:    Documentation/gpu/
- F:    include/drm/
- F:    include/uapi/drm/
- 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:    Sean Paul <seanpaul@chromium.org>
- W:    https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html
+ DRIVERS FOR ADAPTIVE VOLTAGE SCALING (AVS)
+ M:    Kevin Hilman <khilman@kernel.org>
+ M:    Nishanth Menon <nm@ti.com>
  S:    Maintained
- T:    git git://anongit.freedesktop.org/drm/drm-misc
- F:    Documentation/gpu/
- F:    drivers/gpu/vga/
- F:    drivers/gpu/drm/*
- F:    include/drm/drm*
- F:    include/uapi/drm/drm*
- F:    include/linux/vga*
+ F:    drivers/power/avs/
+ F:    include/linux/power/smartreflex.h
+ L:    linux-pm@vger.kernel.org
  
  DRM DRIVER FOR ARM PL111 CLCD
  M:    Eric Anholt <eric@anholt.net>
@@@ -4334,14 -4293,6 +4293,6 @@@ M:     Dave Airlie <airlied@redhat.com
  S:    Odd Fixes
  F:    drivers/gpu/drm/ast/
  
- DRM DRIVERS FOR BRIDGE CHIPS
- M:    Archit Taneja <architt@codeaurora.org>
- M:    Andrzej Hajda <a.hajda@samsung.com>
- R:    Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
- S:    Maintained
- T:    git git://anongit.freedesktop.org/drm/drm-misc
- F:    drivers/gpu/drm/bridge/
  DRM DRIVER FOR BOCHS VIRTUAL GPU
  M:    Gerd Hoffmann <kraxel@redhat.com>
  L:    virtualization@lists.linux-foundation.org
@@@ -4349,68 -4300,130 +4300,130 @@@ T: git git://anongit.freedesktop.org/dr
  S:    Maintained
  F:    drivers/gpu/drm/bochs/
  
- DRM DRIVER FOR QEMU'S CIRRUS DEVICE
- M:    Dave Airlie <airlied@redhat.com>
- M:    Gerd Hoffmann <kraxel@redhat.com>
- L:    virtualization@lists.linux-foundation.org
- T:    git git://anongit.freedesktop.org/drm/drm-misc
- S:    Obsolete
- W:    https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/
- F:    drivers/gpu/drm/cirrus/
+ DRM DRIVER FOR INTEL I810 VIDEO CARDS
+ S:    Orphan / Obsolete
+ F:    drivers/gpu/drm/i810/
+ F:    include/uapi/drm/i810_drm.h
  
- RADEON and AMDGPU DRM DRIVERS
- M:    Alex Deucher <alexander.deucher@amd.com>
- M:    Christian König <christian.koenig@amd.com>
- L:    amd-gfx@lists.freedesktop.org
- T:    git git://people.freedesktop.org/~agd5f/linux
- S:    Supported
- F:    drivers/gpu/drm/radeon/
- F:    include/uapi/drm/radeon_drm.h
- F:    drivers/gpu/drm/amd/
- F:    include/uapi/drm/amdgpu_drm.h
+ DRM DRIVER FOR MATROX G200/G400 GRAPHICS CARDS
+ S:    Orphan / Obsolete
+ F:    drivers/gpu/drm/mga/
+ F:    include/uapi/drm/mga_drm.h
  
- DRM PANEL DRIVERS
- M:    Thierry Reding <thierry.reding@gmail.com>
+ DRM DRIVER FOR MGA G200 SERVER GRAPHICS CHIPS
+ M:    Dave Airlie <airlied@redhat.com>
+ S:    Odd Fixes
+ F:    drivers/gpu/drm/mgag200/
+ DRM DRIVER FOR MI0283QT
+ M:    Noralf Trønnes <noralf@tronnes.org>
+ S:    Maintained
+ F:    drivers/gpu/drm/tinydrm/mi0283qt.c
+ F:    Documentation/devicetree/bindings/display/multi-inno,mi0283qt.txt
+ DRM DRIVER FOR MSM ADRENO GPU
+ M:    Rob Clark <robdclark@gmail.com>
+ L:    linux-arm-msm@vger.kernel.org
  L:    dri-devel@lists.freedesktop.org
- T:    git git://anongit.freedesktop.org/tegra/linux.git
+ L:    freedreno@lists.freedesktop.org
+ T:    git git://people.freedesktop.org/~robclark/linux
  S:    Maintained
- F:    drivers/gpu/drm/drm_panel.c
- F:    drivers/gpu/drm/panel/
- F:    include/drm/drm_panel.h
- F:    Documentation/devicetree/bindings/display/panel/
+ F:    drivers/gpu/drm/msm/
+ F:    include/uapi/drm/msm_drm.h
+ F:    Documentation/devicetree/bindings/display/msm/
  
- INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets)
- M:    Daniel Vetter <daniel.vetter@intel.com>
- M:    Jani Nikula <jani.nikula@linux.intel.com>
- L:    intel-gfx@lists.freedesktop.org
- W:    https://01.org/linuxgraphics/
- B:    https://01.org/linuxgraphics/documentation/how-report-bugs
- C:    irc://chat.freenode.net/intel-gfx
- Q:    http://patchwork.freedesktop.org/project/intel-gfx/
- T:    git git://anongit.freedesktop.org/drm-intel
+ DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS
+ M:    Ben Skeggs <bskeggs@redhat.com>
+ L:    dri-devel@lists.freedesktop.org
+ L:    nouveau@lists.freedesktop.org
+ T:    git git://github.com/skeggsb/linux
  S:    Supported
- F:    drivers/gpu/drm/i915/
- F:    include/drm/i915*
- F:    include/uapi/drm/i915_drm.h
- F:    Documentation/gpu/i915.rst
+ F:    drivers/gpu/drm/nouveau/
+ F:    include/uapi/drm/nouveau_drm.h
  
- INTEL GVT-g DRIVERS (Intel GPU Virtualization)
- M:      Zhenyu Wang <zhenyuw@linux.intel.com>
- 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
- S:      Supported
- F:      drivers/gpu/drm/i915/gvt/
+ DRM DRIVER FOR QEMU'S CIRRUS DEVICE
+ M:    Dave Airlie <airlied@redhat.com>
+ M:    Gerd Hoffmann <kraxel@redhat.com>
+ L:    virtualization@lists.linux-foundation.org
+ T:    git git://anongit.freedesktop.org/drm/drm-misc
+ S:    Obsolete
+ W:    https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/
+ F:    drivers/gpu/drm/cirrus/
  
- DRM DRIVERS FOR ATMEL HLCDC
- M:    Boris Brezillon <boris.brezillon@free-electrons.com>
+ DRM DRIVER FOR QXL VIRTUAL GPU
+ M:    Dave Airlie <airlied@redhat.com>
+ M:    Gerd Hoffmann <kraxel@redhat.com>
+ L:    virtualization@lists.linux-foundation.org
+ T:    git git://anongit.freedesktop.org/drm/drm-misc
+ S:    Maintained
+ F:    drivers/gpu/drm/qxl/
+ F:    include/uapi/drm/qxl_drm.h
+ DRM DRIVER FOR RAGE 128 VIDEO CARDS
+ S:    Orphan / Obsolete
+ F:    drivers/gpu/drm/r128/
+ F:    include/uapi/drm/r128_drm.h
+ DRM DRIVER FOR SAVAGE VIDEO CARDS
+ S:    Orphan / Obsolete
+ F:    drivers/gpu/drm/savage/
+ F:    include/uapi/drm/savage_drm.h
+ DRM DRIVER FOR SIS VIDEO CARDS
+ S:    Orphan / Obsolete
+ F:    drivers/gpu/drm/sis/
+ F:    include/uapi/drm/sis_drm.h
+ DRM DRIVER FOR TDFX VIDEO CARDS
+ S:    Orphan / Obsolete
+ F:    drivers/gpu/drm/tdfx/
+ DRM DRIVER FOR USB DISPLAYLINK VIDEO ADAPTERS
+ M:    Dave Airlie <airlied@redhat.com>
+ S:    Odd Fixes
+ F:    drivers/gpu/drm/udl/
+ DRM DRIVER FOR VMWARE VIRTUAL GPU
+ M:    "VMware Graphics" <linux-graphics-maintainer@vmware.com>
+ M:    Sinclair Yeh <syeh@vmware.com>
+ M:    Thomas Hellstrom <thellstrom@vmware.com>
  L:    dri-devel@lists.freedesktop.org
+ T:    git git://people.freedesktop.org/~syeh/repos_linux
+ T:    git git://people.freedesktop.org/~thomash/linux
  S:    Supported
- F:    drivers/gpu/drm/atmel-hlcdc/
- F:    Documentation/devicetree/bindings/drm/atmel/
+ F:    drivers/gpu/drm/vmwgfx/
+ F:    include/uapi/drm/vmwgfx_drm.h
+ DRM DRIVERS
+ M:    David Airlie <airlied@linux.ie>
+ L:    dri-devel@lists.freedesktop.org
+ T:    git git://people.freedesktop.org/~airlied/linux
+ B:    https://bugs.freedesktop.org/
+ C:    irc://chat.freenode.net/dri-devel
+ S:    Maintained
+ F:    drivers/gpu/drm/
+ F:    drivers/gpu/vga/
+ F:    Documentation/devicetree/bindings/display/
+ F:    Documentation/devicetree/bindings/gpu/
+ F:    Documentation/devicetree/bindings/video/
+ F:    Documentation/gpu/
+ F:    include/drm/
+ F:    include/uapi/drm/
+ 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:    Sean Paul <seanpaul@chromium.org>
+ W:    https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html
+ S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
+ F:    Documentation/gpu/
+ F:    drivers/gpu/vga/
+ F:    drivers/gpu/drm/*
+ F:    include/drm/drm*
+ F:    include/uapi/drm/drm*
+ F:    include/linux/vga*
  
  DRM DRIVERS FOR ALLWINNER A10
  M:    Maxime Ripard  <maxime.ripard@free-electrons.com>
@@@ -4432,6 -4445,22 +4445,22 @@@ F:    Documentation/devicetree/bindings/di
  F:    Documentation/gpu/meson.rst
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
+ DRM DRIVERS FOR ATMEL HLCDC
+ M:    Boris Brezillon <boris.brezillon@free-electrons.com>
+ L:    dri-devel@lists.freedesktop.org
+ S:    Supported
+ F:    drivers/gpu/drm/atmel-hlcdc/
+ F:    Documentation/devicetree/bindings/drm/atmel/
+ T:    git git://anongit.freedesktop.org/drm/drm-misc
+ DRM DRIVERS FOR BRIDGE CHIPS
+ M:    Archit Taneja <architt@codeaurora.org>
+ M:    Andrzej Hajda <a.hajda@samsung.com>
+ R:    Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
+ S:    Maintained
+ T:    git git://anongit.freedesktop.org/drm/drm-misc
+ F:    drivers/gpu/drm/bridge/
  DRM DRIVERS FOR EXYNOS
  M:    Inki Dae <inki.dae@samsung.com>
  M:    Joonyoung Shim <jy0922.shim@samsung.com>
@@@ -4480,11 -4509,6 +4509,6 @@@ S:     Maintaine
  F:    drivers/gpu/drm/hisilicon/
  F:    Documentation/devicetree/bindings/display/hisilicon/
  
- DRM DRIVER FOR INTEL I810 VIDEO CARDS
- S:    Orphan / Obsolete
- F:    drivers/gpu/drm/i810/
- F:    include/uapi/drm/i810_drm.h
  DRM DRIVERS FOR MEDIATEK
  M:    CK Hu <ck.hu@mediatek.com>
  M:    Philipp Zabel <p.zabel@pengutronix.de>
@@@ -4493,32 -4517,6 +4517,6 @@@ S:     Supporte
  F:    drivers/gpu/drm/mediatek/
  F:    Documentation/devicetree/bindings/display/mediatek/
  
- DRM DRIVER FOR MI0283QT
- M:    Noralf Trønnes <noralf@tronnes.org>
- S:    Maintained
- F:    drivers/gpu/drm/tinydrm/mi0283qt.c
- F:    Documentation/devicetree/bindings/display/multi-inno,mi0283qt.txt
- DRM DRIVER FOR MSM ADRENO GPU
- M:    Rob Clark <robdclark@gmail.com>
- L:    linux-arm-msm@vger.kernel.org
- L:    dri-devel@lists.freedesktop.org
- L:    freedreno@lists.freedesktop.org
- T:    git git://people.freedesktop.org/~robclark/linux
- S:    Maintained
- F:    drivers/gpu/drm/msm/
- F:    include/uapi/drm/msm_drm.h
- F:    Documentation/devicetree/bindings/display/msm/
- DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS
- M:    Ben Skeggs <bskeggs@redhat.com>
- L:    dri-devel@lists.freedesktop.org
- L:    nouveau@lists.freedesktop.org
- T:    git git://github.com/skeggsb/linux
- S:    Supported
- F:    drivers/gpu/drm/nouveau/
- F:    include/uapi/drm/nouveau_drm.h
  DRM DRIVERS FOR NVIDIA TEGRA
  M:    Thierry Reding <thierry.reding@gmail.com>
  L:    dri-devel@lists.freedesktop.org
@@@ -4531,21 -4529,6 +4529,6 @@@ F:     include/linux/host1x.
  F:    include/uapi/drm/tegra_drm.h
  F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
  
- DRM DRIVER FOR MATROX G200/G400 GRAPHICS CARDS
- S:    Orphan / Obsolete
- F:    drivers/gpu/drm/mga/
- F:    include/uapi/drm/mga_drm.h
- DRM DRIVER FOR MGA G200 SERVER GRAPHICS CHIPS
- M:    Dave Airlie <airlied@redhat.com>
- S:    Odd Fixes
- F:    drivers/gpu/drm/mgag200/
- DRM DRIVER FOR RAGE 128 VIDEO CARDS
- S:    Orphan / Obsolete
- F:    drivers/gpu/drm/r128/
- F:    include/uapi/drm/r128_drm.h
  DRM DRIVERS FOR RENESAS
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    dri-devel@lists.freedesktop.org
@@@ -4558,15 -4541,6 +4541,6 @@@ F:     include/linux/platform_data/shmob_dr
  F:    Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
  F:    Documentation/devicetree/bindings/display/renesas,du.txt
  
- DRM DRIVER FOR QXL VIRTUAL GPU
- M:    Dave Airlie <airlied@redhat.com>
- M:    Gerd Hoffmann <kraxel@redhat.com>
- L:    virtualization@lists.linux-foundation.org
- T:    git git://anongit.freedesktop.org/drm/drm-misc
- S:    Maintained
- F:    drivers/gpu/drm/qxl/
- F:    include/uapi/drm/qxl_drm.h
  DRM DRIVERS FOR ROCKCHIP
  M:    Mark Yao <mark.yao@rock-chips.com>
  L:    dri-devel@lists.freedesktop.org
@@@ -4575,16 -4549,6 +4549,6 @@@ F:     drivers/gpu/drm/rockchip
  F:    Documentation/devicetree/bindings/display/rockchip/
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
- DRM DRIVER FOR SAVAGE VIDEO CARDS
- S:    Orphan / Obsolete
- F:    drivers/gpu/drm/savage/
- F:    include/uapi/drm/savage_drm.h
- DRM DRIVER FOR SIS VIDEO CARDS
- S:    Orphan / Obsolete
- F:    drivers/gpu/drm/sis/
- F:    include/uapi/drm/sis_drm.h
  DRM DRIVERS FOR STI
  M:    Benjamin Gaignard <benjamin.gaignard@linaro.org>
  M:    Vincent Abriou <vincent.abriou@st.com>
@@@ -4605,36 -4569,20 +4569,20 @@@ S:   Maintaine
  F:    drivers/gpu/drm/stm
  F:    Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
  
- DRM DRIVER FOR TDFX VIDEO CARDS
- S:    Orphan / Obsolete
- F:    drivers/gpu/drm/tdfx/
- DRM DRIVER FOR USB DISPLAYLINK VIDEO ADAPTERS
- M:    Dave Airlie <airlied@redhat.com>
- S:    Odd Fixes
- F:    drivers/gpu/drm/udl/
- DRM DRIVERS FOR VIVANTE GPU IP
- M:    Lucas Stach <l.stach@pengutronix.de>
- R:    Russell King <linux+etnaviv@armlinux.org.uk>
- R:    Christian Gmeiner <christian.gmeiner@gmail.com>
- L:    etnaviv@lists.freedesktop.org
+ DRM DRIVERS FOR TI LCDC
+ M:    Jyri Sarha <jsarha@ti.com>
+ R:    Tomi Valkeinen <tomi.valkeinen@ti.com>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
- F:    drivers/gpu/drm/etnaviv/
- F:    include/uapi/drm/etnaviv_drm.h
- F:    Documentation/devicetree/bindings/display/etnaviv/
+ F:    drivers/gpu/drm/tilcdc/
+ F:    Documentation/devicetree/bindings/display/tilcdc/
  
- DRM DRIVER FOR VMWARE VIRTUAL GPU
- M:    "VMware Graphics" <linux-graphics-maintainer@vmware.com>
- M:    Sinclair Yeh <syeh@vmware.com>
- M:    Thomas Hellstrom <thellstrom@vmware.com>
+ DRM DRIVERS FOR TI OMAP
+ M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
  L:    dri-devel@lists.freedesktop.org
- T:    git git://people.freedesktop.org/~syeh/repos_linux
- T:    git git://people.freedesktop.org/~thomash/linux
- S:    Supported
- F:    drivers/gpu/drm/vmwgfx/
- F:    include/uapi/drm/vmwgfx_drm.h
+ S:    Maintained
+ F:    drivers/gpu/drm/omapdrm/
+ F:    Documentation/devicetree/bindings/display/ti/
  
  DRM DRIVERS FOR VC4
  M:    Eric Anholt <eric@anholt.net>
@@@ -4645,20 -4593,16 +4593,16 @@@ F:   include/uapi/drm/vc4_drm.
  F:    Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
- DRM DRIVERS FOR TI OMAP
- M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
- L:    dri-devel@lists.freedesktop.org
- S:    Maintained
- F:    drivers/gpu/drm/omapdrm/
- F:    Documentation/devicetree/bindings/display/ti/
- DRM DRIVERS FOR TI LCDC
- M:    Jyri Sarha <jsarha@ti.com>
- R:    Tomi Valkeinen <tomi.valkeinen@ti.com>
+ DRM DRIVERS FOR VIVANTE GPU IP
+ M:    Lucas Stach <l.stach@pengutronix.de>
+ R:    Russell King <linux+etnaviv@armlinux.org.uk>
+ R:    Christian Gmeiner <christian.gmeiner@gmail.com>
+ L:    etnaviv@lists.freedesktop.org
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
- F:    drivers/gpu/drm/tilcdc/
- F:    Documentation/devicetree/bindings/display/tilcdc/
+ F:    drivers/gpu/drm/etnaviv/
+ F:    include/uapi/drm/etnaviv_drm.h
+ F:    Documentation/devicetree/bindings/display/etnaviv/
  
  DRM DRIVERS FOR ZTE ZX
  M:    Shawn Guo <shawnguo@kernel.org>
@@@ -4668,6 -4612,16 +4612,16 @@@ F:    drivers/gpu/drm/zte
  F:    Documentation/devicetree/bindings/display/zte,vou.txt
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
+ DRM PANEL DRIVERS
+ M:    Thierry Reding <thierry.reding@gmail.com>
+ L:    dri-devel@lists.freedesktop.org
+ T:    git git://anongit.freedesktop.org/tegra/linux.git
+ S:    Maintained
+ F:    drivers/gpu/drm/drm_panel.c
+ F:    drivers/gpu/drm/panel/
+ F:    include/drm/drm_panel.h
+ F:    Documentation/devicetree/bindings/display/panel/
  DSBR100 USB FM RADIO DRIVER
  M:    Alexey Klimov <klimov.linux@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -4799,13 -4753,6 +4753,6 @@@ S:     Maintaine
  F:    drivers/media/usb/dvb-usb-v2/dvb_usb*
  F:    drivers/media/usb/dvb-usb-v2/usb_urb.c
  
- DONGWOON DW9714 LENS VOICE COIL DRIVER
- M:    Sakari Ailus <sakari.ailus@linux.intel.com>
- L:    linux-media@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- S:    Maintained
- F:    drivers/media/i2c/dw9714.c
  DYNAMIC DEBUG
  M:    Jason Baron <jbaron@akamai.com>
  S:    Maintained
@@@ -4861,19 -4808,6 +4808,6 @@@ S:     Supporte
  F:    Documentation/filesystems/ecryptfs.txt
  F:    fs/ecryptfs/
  
- EDAC-CORE
- M:    Borislav Petkov <bp@alien8.de>
- M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
- M:    Mauro Carvalho Chehab <mchehab@kernel.org>
- L:    linux-edac@vger.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git for-next
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac.git linux_next
- S:    Supported
- F:    Documentation/admin-guide/ras.rst
- F:    Documentation/driver-api/edac.rst
- F:    drivers/edac/
- F:    include/linux/edac.h
  EDAC-AMD64
  M:    Borislav Petkov <bp@alien8.de>
  L:    linux-edac@vger.kernel.org
@@@ -4895,6 -4829,19 +4829,19 @@@ S:    Supporte
  F:    drivers/edac/octeon_edac*
  F:    drivers/edac/thunderx_edac*
  
+ EDAC-CORE
+ M:    Borislav Petkov <bp@alien8.de>
+ M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
+ M:    Mauro Carvalho Chehab <mchehab@kernel.org>
+ L:    linux-edac@vger.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git for-next
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac.git linux_next
+ S:    Supported
+ F:    Documentation/admin-guide/ras.rst
+ F:    Documentation/driver-api/edac.rst
+ F:    drivers/edac/
+ F:    include/linux/edac.h
  EDAC-E752X
  M:    Mark Gross <mark.gross@intel.com>
  L:    linux-edac@vger.kernel.org
@@@ -4919,12 -4866,6 +4866,6 @@@ L:     linux-edac@vger.kernel.or
  S:    Maintained
  F:    drivers/edac/ghes_edac.c
  
- EDAC-I82443BXGX
- M:    Tim Small <tim@buttersideup.com>
- L:    linux-edac@vger.kernel.org
- S:    Maintained
- F:    drivers/edac/i82443bxgx_edac.c
  EDAC-I3000
  L:    linux-edac@vger.kernel.org
  S:    Orphan
@@@ -4956,6 -4897,12 +4897,12 @@@ L:    linux-edac@vger.kernel.or
  S:    Maintained
  F:    drivers/edac/i7core_edac.c
  
+ EDAC-I82443BXGX
+ M:    Tim Small <tim@buttersideup.com>
+ L:    linux-edac@vger.kernel.org
+ S:    Maintained
+ F:    drivers/edac/i82443bxgx_edac.c
  EDAC-I82975X
  M:    Ranganathan Desikan <ravi@jetztechnologies.com>
  M:    "Arvind R." <arvino55@gmail.com>
@@@ -4975,18 -4922,18 +4922,18 @@@ L:   linux-edac@vger.kernel.or
  S:    Maintained
  F:    drivers/edac/mpc85xx_edac.[ch]
  
- EDAC-PND2
- M:    Tony Luck <tony.luck@intel.com>
- L:    linux-edac@vger.kernel.org
- S:    Maintained
- F:    drivers/edac/pnd2_edac.[ch]
  EDAC-PASEMI
  M:    Egor Martovetsky <egor@pasemi.com>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/pasemi_edac.c
  
+ EDAC-PND2
+ M:    Tony Luck <tony.luck@intel.com>
+ L:    linux-edac@vger.kernel.org
+ S:    Maintained
+ F:    drivers/edac/pnd2_edac.[ch]
  EDAC-R82600
  M:    Tim Small <tim@buttersideup.com>
  L:    linux-edac@vger.kernel.org
@@@ -5006,13 -4953,6 +4953,6 @@@ L:     linux-edac@vger.kernel.or
  S:    Maintained
  F:    drivers/edac/skx_edac.c
  
- EDAC-XGENE
- APPLIED MICRO (APM) X-GENE SOC EDAC
- M:     Loc Ho <lho@apm.com>
- S:     Supported
- F:     drivers/edac/xgene_edac.c
- F:     Documentation/devicetree/bindings/edac/apm-xgene-edac.txt
  EDIROL UA-101/UA-1000 DRIVER
  M:    Clemens Ladisch <clemens@ladisch.de>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -5020,21 -4960,12 +4960,12 @@@ T:   git git://git.alsa-project.org/alsa-
  S:    Maintained
  F:    sound/usb/misc/ua101.c
  
- EXTENSIBLE FIRMWARE INTERFACE (EFI)
- M:    Matt Fleming <matt@codeblueprint.co.uk>
- M:    Ard Biesheuvel <ard.biesheuvel@linaro.org>
+ EFI TEST DRIVER
  L:    linux-efi@vger.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git
+ M:    Ivan Hu <ivan.hu@canonical.com>
+ M:    Matt Fleming <matt@codeblueprint.co.uk>
  S:    Maintained
- F:    Documentation/efi-stub.txt
- F:    arch/*/kernel/efi.c
- F:    arch/x86/boot/compressed/eboot.[ch]
- F:    arch/*/include/asm/efi.h
- F:    arch/x86/platform/efi/
- F:    drivers/firmware/efi/
- F:    include/linux/efi*.h
- F:    arch/arm/boot/compressed/efi-header.S
- F:    arch/arm64/kernel/efi-entry.S
+ F:    drivers/firmware/efi/test/
  
  EFI VARIABLE FILESYSTEM
  M:    Matthew Garrett <matthew.garrett@nebula.com>
@@@ -5051,13 -4982,6 +4982,6 @@@ M:     Peter Jones <pjones@redhat.com
  S:    Maintained
  F:    drivers/video/fbdev/efifb.c
  
- EFI TEST DRIVER
- L:    linux-efi@vger.kernel.org
- M:    Ivan Hu <ivan.hu@canonical.com>
- M:    Matt Fleming <matt@codeblueprint.co.uk>
- S:    Maintained
- F:    drivers/firmware/efi/test/
  EFS FILESYSTEM
  W:    http://aeschi.ch.eu.org/efs/
  S:    Orphan
@@@ -5086,6 -5010,34 +5010,34 @@@ M:    David Woodhouse <dwmw2@infradead.org
  L:    linux-embedded@vger.kernel.org
  S:    Maintained
  
+ Emulex 10Gbps iSCSI - OneConnect DRIVER
+ M:    Subbu Seetharaman <subbu.seetharaman@broadcom.com>
+ M:    Ketan Mukadam <ketan.mukadam@broadcom.com>
+ M:    Jitendra Bhivare <jitendra.bhivare@broadcom.com>
+ L:    linux-scsi@vger.kernel.org
+ W:    http://www.broadcom.com
+ S:    Supported
+ F:    drivers/scsi/be2iscsi/
+ Emulex 10Gbps NIC BE2, BE3-R, Lancer, Skyhawk-R DRIVER (be2net)
+ M:    Sathya Perla <sathya.perla@broadcom.com>
+ M:    Ajit Khaparde <ajit.khaparde@broadcom.com>
+ M:    Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
+ M:    Somnath Kotur <somnath.kotur@broadcom.com>
+ L:    netdev@vger.kernel.org
+ W:    http://www.emulex.com
+ S:    Supported
+ F:    drivers/net/ethernet/emulex/benet/
+ EMULEX ONECONNECT ROCE DRIVER
+ M:    Selvin Xavier <selvin.xavier@broadcom.com>
+ M:    Devesh Sharma <devesh.sharma@broadcom.com>
+ L:    linux-rdma@vger.kernel.org
+ W:    http://www.broadcom.com
+ S:    Odd Fixes
+ F:    drivers/infiniband/hw/ocrdma/
+ F:    include/uapi/rdma/ocrdma-abi.h
  EMULEX/BROADCOM LPFC FC/FCOE SCSI DRIVER
  M:    James Smart <james.smart@broadcom.com>
  M:    Dick Kennedy <dick.kennedy@broadcom.com>
@@@ -5138,13 -5090,20 +5090,21 @@@ M:   Andrew Lunn <andrew@lunn.ch
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
- F:    include/linux/phy.h
- F:    include/linux/phy_fixed.h
- F:    include/linux/platform_data/mdio-bcm-unimac.h
- F:    drivers/net/phy/
+ F:    Documentation/ABI/testing/sysfs-bus-mdio
+ F:    Documentation/devicetree/bindings/net/mdio*
  F:    Documentation/networking/phy.txt
+ F:    drivers/net/phy/
  F:    drivers/of/of_mdio.c
  F:    drivers/of/of_net.c
+ F:    include/linux/*mdio*.h
+ F:    include/linux/of_net.h
+ F:    include/linux/phy.h
+ F:    include/linux/phy_fixed.h
+ F:    include/linux/platform_data/mdio-gpio.h
++F:    include/linux/platform_data/mdio-bcm-unimac.h
+ F:    include/trace/events/mdio.h
+ F:    include/uapi/linux/mdio.h
+ F:    include/uapi/linux/mii.h
  
  EXT2 FILE SYSTEM
  M:    Jan Kara <jack@suse.com>
@@@ -5172,6 -5131,22 +5132,22 @@@ L:    linux-security-module@vger.kernel.or
  S:    Supported
  F:    security/integrity/evm/
  
+ EXTENSIBLE FIRMWARE INTERFACE (EFI)
+ M:    Matt Fleming <matt@codeblueprint.co.uk>
+ M:    Ard Biesheuvel <ard.biesheuvel@linaro.org>
+ L:    linux-efi@vger.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git
+ S:    Maintained
+ F:    Documentation/efi-stub.txt
+ F:    arch/*/kernel/efi.c
+ F:    arch/x86/boot/compressed/eboot.[ch]
+ F:    arch/*/include/asm/efi.h
+ F:    arch/x86/platform/efi/
+ F:    drivers/firmware/efi/
+ F:    include/linux/efi*.h
+ F:    arch/arm/boot/compressed/efi-header.S
+ F:    arch/arm64/kernel/efi-entry.S
  EXTERNAL CONNECTOR SUBSYSTEM (EXTCON)
  M:    MyungJoo Ham <myungjoo.ham@samsung.com>
  M:    Chanwoo Choi <cw00.choi@samsung.com>
@@@ -5202,6 -5177,19 +5178,19 @@@ S:    Supporte
  F:    arch/arc/plat-eznps
  F:    arch/arc/boot/dts/eznps.dts
  
+ F2FS FILE SYSTEM
+ M:    Jaegeuk Kim <jaegeuk@kernel.org>
+ M:    Chao Yu <yuchao0@huawei.com>
+ L:    linux-f2fs-devel@lists.sourceforge.net
+ W:    https://f2fs.wiki.kernel.org/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git
+ S:    Maintained
+ F:    Documentation/filesystems/f2fs.txt
+ F:    Documentation/ABI/testing/sysfs-fs-f2fs
+ F:    fs/f2fs/
+ F:    include/linux/f2fs_fs.h
+ F:    include/trace/events/f2fs.h
  F71805F HARDWARE MONITORING DRIVER
  M:    Jean Delvare <jdelvare@suse.com>
  L:    linux-hwmon@vger.kernel.org
@@@ -5209,23 -5197,6 +5198,6 @@@ S:     Maintaine
  F:    Documentation/hwmon/f71805f
  F:    drivers/hwmon/f71805f.c
  
- FC0011 TUNER DRIVER
- M:    Michael Buesch <m@bues.ch>
- L:    linux-media@vger.kernel.org
- S:    Maintained
- F:    drivers/media/tuners/fc0011.h
- F:    drivers/media/tuners/fc0011.c
- FC2580 MEDIA DRIVER
- M:    Antti Palosaari <crope@iki.fi>
- L:    linux-media@vger.kernel.org
- W:    https://linuxtv.org
- W:    http://palosaari.fi/linux/
- Q:    http://patchwork.linuxtv.org/project/linux-media/list/
- T:    git git://linuxtv.org/anttip/media_tree.git
- S:    Maintained
- F:    drivers/media/tuners/fc2580*
  FANOTIFY
  M:    Eric Paris <eparis@redhat.com>
  S:    Maintained
@@@ -5250,6 -5221,23 +5222,23 @@@ M:    Thomas Petazzoni <thomas.petazzoni@f
  S:    Maintained
  F:    drivers/staging/fbtft/
  
+ FC0011 TUNER DRIVER
+ M:    Michael Buesch <m@bues.ch>
+ L:    linux-media@vger.kernel.org
+ S:    Maintained
+ F:    drivers/media/tuners/fc0011.h
+ F:    drivers/media/tuners/fc0011.c
+ FC2580 MEDIA DRIVER
+ M:    Antti Palosaari <crope@iki.fi>
+ L:    linux-media@vger.kernel.org
+ W:    https://linuxtv.org
+ W:    http://palosaari.fi/linux/
+ Q:    http://patchwork.linuxtv.org/project/linux-media/list/
+ T:    git git://linuxtv.org/anttip/media_tree.git
+ S:    Maintained
+ F:    drivers/media/tuners/fc2580*
  FCOE SUBSYSTEM (libfc, libfcoe, fcoe)
  M:    Johannes Thumshirn <jth@kernel.org>
  L:    fcoe-devel@open-fcoe.org
@@@ -5409,6 -5397,14 +5398,14 @@@ L:    linuxppc-dev@lists.ozlabs.or
  S:    Maintained
  F:    drivers/dma/fsldma.*
  
+ FREESCALE eTSEC ETHERNET DRIVER (GIANFAR)
+ M:    Claudiu Manoil <claudiu.manoil@freescale.com>
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/ethernet/freescale/gianfar*
+ X:    drivers/net/ethernet/freescale/gianfar_ptp.c
+ F:    Documentation/devicetree/bindings/net/fsl-tsec-phy.txt
  FREESCALE GPMI NAND DRIVER
  M:    Han Xu <han.xu@nxp.com>
  L:    linux-mtd@lists.infradead.org
@@@ -5422,6 -5418,15 +5419,15 @@@ L:    linux-i2c@vger.kernel.or
  S:    Maintained
  F:    drivers/i2c/busses/i2c-cpm.c
  
+ FREESCALE IMX / MXC FEC DRIVER
+ M:    Fugang Duan <fugang.duan@nxp.com>
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/ethernet/freescale/fec_main.c
+ F:    drivers/net/ethernet/freescale/fec_ptp.c
+ F:    drivers/net/ethernet/freescale/fec.h
+ F:    Documentation/devicetree/bindings/net/fsl-fec.txt
  FREESCALE IMX / MXC FRAMEBUFFER DRIVER
  M:    Sascha Hauer <kernel@pengutronix.de>
  L:    linux-fbdev@vger.kernel.org
@@@ -5430,29 -5435,11 +5436,11 @@@ S:   Maintaine
  F:    include/linux/platform_data/video-imxfb.h
  F:    drivers/video/fbdev/imxfb.c
  
- FREESCALE QUAD SPI DRIVER
- M:    Han Xu <han.xu@nxp.com>
- L:    linux-mtd@lists.infradead.org
- S:    Maintained
- F:    drivers/mtd/spi-nor/fsl-quadspi.c
- FREESCALE SOC FS_ENET DRIVER
- M:    Pantelis Antoniou <pantelis.antoniou@gmail.com>
- M:    Vitaly Bordug <vbordug@ru.mvista.com>
- L:    linuxppc-dev@lists.ozlabs.org
- L:    netdev@vger.kernel.org
- S:    Maintained
- F:    drivers/net/ethernet/freescale/fs_enet/
- F:    include/linux/fs_enet_pd.h
- FREESCALE IMX / MXC FEC DRIVER
- M:    Fugang Duan <fugang.duan@nxp.com>
+ FREESCALE QORIQ DPAA ETHERNET DRIVER
+ M:    Madalin Bucur <madalin.bucur@nxp.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
- F:    drivers/net/ethernet/freescale/fec_main.c
- F:    drivers/net/ethernet/freescale/fec_ptp.c
- F:    drivers/net/ethernet/freescale/fec.h
- F:    Documentation/devicetree/bindings/net/fsl-fec.txt
+ F:    drivers/net/ethernet/freescale/dpaa
  
  FREESCALE QORIQ DPAA FMAN DRIVER
  M:    Madalin Bucur <madalin.bucur@nxp.com>
@@@ -5461,20 -5448,11 +5449,11 @@@ S:   Maintaine
  F:    drivers/net/ethernet/freescale/fman
  F:    Documentation/devicetree/bindings/powerpc/fsl/fman.txt
  
- FREESCALE QORIQ DPAA ETHERNET DRIVER
- M:    Madalin Bucur <madalin.bucur@nxp.com>
- L:    netdev@vger.kernel.org
- S:    Maintained
- F:    drivers/net/ethernet/freescale/dpaa
- FREESCALE SOC DRIVERS
- M:    Li Yang <leoyang.li@nxp.com>
- L:    linuxppc-dev@lists.ozlabs.org
- L:    linux-arm-kernel@lists.infradead.org
+ FREESCALE QUAD SPI DRIVER
+ M:    Han Xu <han.xu@nxp.com>
+ L:    linux-mtd@lists.infradead.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/soc/fsl/
- F:    drivers/soc/fsl/
- F:    include/linux/fsl/
+ F:    drivers/mtd/spi-nor/fsl-quadspi.c
  
  FREESCALE QUICC ENGINE LIBRARY
  M:    Qiang Zhao <qiang.zhao@nxp.com>
@@@ -5484,13 -5462,6 +5463,6 @@@ F:     drivers/soc/fsl/qe
  F:    include/soc/fsl/*qe*.h
  F:    include/soc/fsl/*ucc*.h
  
- FREESCALE USB PERIPHERAL DRIVERS
- M:    Li Yang <leoyang.li@nxp.com>
- L:    linux-usb@vger.kernel.org
- L:    linuxppc-dev@lists.ozlabs.org
- S:    Maintained
- F:    drivers/usb/gadget/udc/fsl*
  FREESCALE QUICC ENGINE UCC ETHERNET DRIVER
  M:    Li Yang <leoyang.li@nxp.com>
  L:    netdev@vger.kernel.org
@@@ -5498,14 -5469,6 +5470,6 @@@ L:     linuxppc-dev@lists.ozlabs.or
  S:    Maintained
  F:    drivers/net/ethernet/freescale/ucc_geth*
  
- FREESCALE eTSEC ETHERNET DRIVER (GIANFAR)
- M:    Claudiu Manoil <claudiu.manoil@freescale.com>
- L:    netdev@vger.kernel.org
- S:    Maintained
- F:    drivers/net/ethernet/freescale/gianfar*
- X:    drivers/net/ethernet/freescale/gianfar_ptp.c
- F:    Documentation/devicetree/bindings/net/fsl-tsec-phy.txt
  FREESCALE QUICC ENGINE UCC HDLC DRIVER
  M:    Zhao Qiang <qiang.zhao@nxp.com>
  L:    netdev@vger.kernel.org
@@@ -5519,6 -5482,24 +5483,24 @@@ L:    linuxppc-dev@lists.ozlabs.or
  S:    Maintained
  F:    drivers/tty/serial/ucc_uart.c
  
+ FREESCALE SOC DRIVERS
+ M:    Li Yang <leoyang.li@nxp.com>
+ L:    linuxppc-dev@lists.ozlabs.org
+ L:    linux-arm-kernel@lists.infradead.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/soc/fsl/
+ F:    drivers/soc/fsl/
+ F:    include/linux/fsl/
+ FREESCALE SOC FS_ENET DRIVER
+ M:    Pantelis Antoniou <pantelis.antoniou@gmail.com>
+ M:    Vitaly Bordug <vbordug@ru.mvista.com>
+ L:    linuxppc-dev@lists.ozlabs.org
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/ethernet/freescale/fs_enet/
+ F:    include/linux/fs_enet_pd.h
  FREESCALE SOC SOUND DRIVERS
  M:    Timur Tabi <timur@tabi.org>
  M:    Nicolin Chen <nicoleotsuka@gmail.com>
@@@ -5531,6 -5512,13 +5513,13 @@@ F:    sound/soc/fsl/fsl
  F:    sound/soc/fsl/imx*
  F:    sound/soc/fsl/mpc8610_hpcd.c
  
+ FREESCALE USB PERIPHERAL DRIVERS
+ M:    Li Yang <leoyang.li@nxp.com>
+ L:    linux-usb@vger.kernel.org
+ L:    linuxppc-dev@lists.ozlabs.org
+ S:    Maintained
+ F:    drivers/usb/gadget/udc/fsl*
  FREEVXFS FILESYSTEM
  M:    Christoph Hellwig <hch@infradead.org>
  W:    ftp://ftp.openlinux.org/pub/people/hch/vxfs
@@@ -5571,19 -5559,6 +5560,6 @@@ S:     Supporte
  F:    fs/crypto/
  F:    include/linux/fscrypt*.h
  
- F2FS FILE SYSTEM
- M:    Jaegeuk Kim <jaegeuk@kernel.org>
- M:    Chao Yu <yuchao0@huawei.com>
- L:    linux-f2fs-devel@lists.sourceforge.net
- W:    https://f2fs.wiki.kernel.org/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git
- S:    Maintained
- F:    Documentation/filesystems/f2fs.txt
- F:    Documentation/ABI/testing/sysfs-fs-f2fs
- F:    fs/f2fs/
- F:    include/linux/f2fs_fs.h
- F:    include/trace/events/f2fs.h
  FUJITSU FR-V (FRV) PORT
  S:    Orphan
  F:    arch/frv/
@@@ -5657,6 -5632,12 +5633,12 @@@ S:    Maintaine
  F:    kernel/gcov/
  F:    Documentation/dev-tools/gcov.rst
  
+ GDB KERNEL DEBUGGING HELPER SCRIPTS
+ M:    Jan Kiszka <jan.kiszka@siemens.com>
+ M:    Kieran Bingham <kieran@bingham.xyz>
+ S:    Supported
+ F:    scripts/gdb/
  GDT SCSI DISK ARRAY CONTROLLER DRIVER
  M:    Achim Leubner <achim_leubner@adaptec.com>
  L:    linux-scsi@vger.kernel.org
@@@ -5664,12 -5645,6 +5646,6 @@@ W:     http://www.icp-vortex.com
  S:    Supported
  F:    drivers/scsi/gdt*
  
- GDB KERNEL DEBUGGING HELPER SCRIPTS
- M:    Jan Kiszka <jan.kiszka@siemens.com>
- M:    Kieran Bingham <kieran@bingham.xyz>
- S:    Supported
- F:    scripts/gdb/
  GEMTEK FM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -5736,17 -5711,17 +5712,17 @@@ L:   kvm@vger.kernel.or
  S:    Supported
  F:    drivers/uio/uio_pci_generic.c
  
- GET_MAINTAINER SCRIPT
- M:    Joe Perches <joe@perches.com>
- S:    Maintained
- F:    scripts/get_maintainer.pl
  GENWQE (IBM Generic Workqueue Card)
  M:    Frank Haverkamp <haver@linux.vnet.ibm.com>
  M:    Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
  S:    Supported
  F:    drivers/misc/genwqe/
  
+ GET_MAINTAINER SCRIPT
+ M:    Joe Perches <joe@perches.com>
+ S:    Maintained
+ F:    scripts/get_maintainer.pl
  GFS2 FILE SYSTEM
  M:    Steven Whitehouse <swhiteho@redhat.com>
  M:    Bob Peterson <rpeterso@redhat.com>
@@@ -5779,6 -5754,15 +5755,15 @@@ L:    linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/input/touchscreen/goodix.c
  
+ GPIO ACPI SUPPORT
+ M:    Mika Westerberg <mika.westerberg@linux.intel.com>
+ M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+ L:    linux-gpio@vger.kernel.org
+ L:    linux-acpi@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/acpi/gpio-properties.txt
+ F:    drivers/gpio/gpiolib-acpi.c
  GPIO MOCKUP DRIVER
  M:    Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>
  L:    linux-gpio@vger.kernel.org
@@@ -5802,15 -5786,6 +5787,6 @@@ F:     include/asm-generic/gpio.
  F:    include/uapi/linux/gpio.h
  F:    tools/gpio/
  
- GPIO ACPI SUPPORT
- M:    Mika Westerberg <mika.westerberg@linux.intel.com>
- M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
- L:    linux-gpio@vger.kernel.org
- L:    linux-acpi@vger.kernel.org
- S:    Maintained
- F:    Documentation/acpi/gpio-properties.txt
- F:    drivers/gpio/gpiolib-acpi.c
  GRE DEMULTIPLEXER DRIVER
  M:    Dmitry Kozlov <xeb@mail.ru>
  L:    netdev@vger.kernel.org
@@@ -5825,14 -5800,6 +5801,6 @@@ L:     netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/aeroflex/
  
- GREYBUS SUBSYSTEM
- M:    Johan Hovold <johan@kernel.org>
- M:    Alex Elder <elder@kernel.org>
- M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
- S:    Maintained
- F:    drivers/staging/greybus/
- L:    greybus-dev@lists.linaro.org (moderated for non-subscribers)
  GREYBUS AUDIO PROTOCOLS DRIVERS
  M:    Vaibhav Agarwal <vaibhav.sr@gmail.com>
  M:    Mark Greer <mgreer@animalcreek.com>
@@@ -5844,30 -5811,13 +5812,13 @@@ F:   drivers/staging/greybus/audio_codec.
  F:    drivers/staging/greybus/audio_gb.c
  F:    drivers/staging/greybus/audio_manager.c
  F:    drivers/staging/greybus/audio_manager.h
- F:    drivers/staging/greybus/audio_manager_module.c
- F:    drivers/staging/greybus/audio_manager_private.h
- F:    drivers/staging/greybus/audio_manager_sysfs.c
- F:    drivers/staging/greybus/audio_module.c
- F:    drivers/staging/greybus/audio_topology.c
- GREYBUS PROTOCOLS DRIVERS
- M:    Rui Miguel Silva <rmfrfs@gmail.com>
- S:    Maintained
- F:    drivers/staging/greybus/sdio.c
- F:    drivers/staging/greybus/light.c
- F:    drivers/staging/greybus/gpio.c
- F:    drivers/staging/greybus/power_supply.c
- F:    drivers/staging/greybus/spi.c
- F:    drivers/staging/greybus/spilib.c
- GREYBUS PROTOCOLS DRIVERS
- M:    Bryan O'Donoghue <pure.logic@nexus-software.ie>
- S:    Maintained
- F:    drivers/staging/greybus/loopback.c
- F:    drivers/staging/greybus/timesync.c
- F:    drivers/staging/greybus/timesync_platform.c
+ F:    drivers/staging/greybus/audio_manager_module.c
+ F:    drivers/staging/greybus/audio_manager_private.h
+ F:    drivers/staging/greybus/audio_manager_sysfs.c
+ F:    drivers/staging/greybus/audio_module.c
+ F:    drivers/staging/greybus/audio_topology.c
  
- GREYBUS PROTOCOLS DRIVERS
+ GREYBUS FW/HID/SPI PROTOCOLS DRIVERS
  M:    Viresh Kumar <vireshk@kernel.org>
  S:    Maintained
  F:    drivers/staging/greybus/authentication.c
@@@ -5884,11 -5834,12 +5835,12 @@@ F:   drivers/staging/greybus/spi.
  F:    drivers/staging/greybus/spilib.c
  F:    drivers/staging/greybus/spilib.h
  
- GREYBUS PROTOCOLS DRIVERS
- M:    David Lin <dtwlin@gmail.com>
+ GREYBUS LOOBACK/TIME PROTOCOLS DRIVERS
+ M:    Bryan O'Donoghue <pure.logic@nexus-software.ie>
  S:    Maintained
- F:    drivers/staging/greybus/uart.c
- F:    drivers/staging/greybus/log.c
+ F:    drivers/staging/greybus/loopback.c
+ F:    drivers/staging/greybus/timesync.c
+ F:    drivers/staging/greybus/timesync_platform.c
  
  GREYBUS PLATFORM DRIVERS
  M:    Vaibhav Hiremath <hvaibhav.linux@gmail.com>
@@@ -5897,6 -5848,30 +5849,30 @@@ F:    drivers/staging/greybus/arche-platfo
  F:    drivers/staging/greybus/arche-apb-ctrl.c
  F:    drivers/staging/greybus/arche_platform.h
  
+ GREYBUS SDIO/GPIO/SPI PROTOCOLS DRIVERS
+ M:    Rui Miguel Silva <rmfrfs@gmail.com>
+ S:    Maintained
+ F:    drivers/staging/greybus/sdio.c
+ F:    drivers/staging/greybus/light.c
+ F:    drivers/staging/greybus/gpio.c
+ F:    drivers/staging/greybus/power_supply.c
+ F:    drivers/staging/greybus/spi.c
+ F:    drivers/staging/greybus/spilib.c
+ GREYBUS SUBSYSTEM
+ M:    Johan Hovold <johan@kernel.org>
+ M:    Alex Elder <elder@kernel.org>
+ M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+ S:    Maintained
+ F:    drivers/staging/greybus/
+ L:    greybus-dev@lists.linaro.org (moderated for non-subscribers)
+ GREYBUS UART PROTOCOLS DRIVERS
+ M:    David Lin <dtwlin@gmail.com>
+ S:    Maintained
+ F:    drivers/staging/greybus/uart.c
+ F:    drivers/staging/greybus/log.c
  GS1662 VIDEO SERIALIZER
  M:    Charles-Antoine Couret <charles-antoine.couret@nexvision.fr>
  L:    linux-media@vger.kernel.org
@@@ -5967,13 -5942,6 +5943,6 @@@ L:     linux-efi@vger.kernel.or
  S:    Maintained
  F:    block/partitions/efi.*
  
- STK1160 USB VIDEO CAPTURE DRIVER
- M:    Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
- L:    linux-media@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- S:    Maintained
- F:    drivers/media/usb/stk1160/
  H8/300 ARCHITECTURE
  M:    Yoshinori Sato <ysato@users.sourceforge.jp>
  L:    uclinux-h8-devel@lists.sourceforge.jp (moderated for non-subscribers)
@@@ -5985,33 -5953,6 +5954,6 @@@ F:     drivers/clocksource/h8300_*.
  F:    drivers/clk/h8300/
  F:    drivers/irqchip/irq-renesas-h8*.c
  
- HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
- M:    Frank Seidel <frank@f-seidel.de>
- L:    platform-driver-x86@vger.kernel.org
- W:    http://www.kernel.org/pub/linux/kernel/people/fseidel/hdaps/
- S:    Maintained
- F:    drivers/platform/x86/hdaps.c
- HDPVR USB VIDEO ENCODER DRIVER
- M:    Hans Verkuil <hverkuil@xs4all.nl>
- L:    linux-media@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- W:    https://linuxtv.org
- S:    Odd Fixes
- F:    drivers/media/usb/hdpvr/
- HWPOISON MEMORY FAILURE HANDLING
- M:    Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
- L:    linux-mm@kvack.org
- S:    Maintained
- F:    mm/memory-failure.c
- F:    mm/hwpoison-inject.c
- HYPERVISOR VIRTUAL CONSOLE DRIVER
- L:    linuxppc-dev@lists.ozlabs.org
- S:    Odd Fixes
- F:    drivers/tty/hvc/
  HACKRF MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -6022,6 -5963,13 +5964,13 @@@ T:    git git://linuxtv.org/anttip/media_t
  S:    Maintained
  F:    drivers/media/usb/hackrf/
  
+ HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
+ M:    Frank Seidel <frank@f-seidel.de>
+ L:    platform-driver-x86@vger.kernel.org
+ W:    http://www.kernel.org/pub/linux/kernel/people/fseidel/hdaps/
+ S:    Maintained
+ F:    drivers/platform/x86/hdaps.c
  HARDWARE MONITORING
  M:    Jean Delvare <jdelvare@suse.com>
  M:    Guenter Roeck <linux@roeck-us.net>
@@@ -6060,6 -6008,14 +6009,14 @@@ L:    linux-parisc@vger.kernel.or
  S:    Maintained
  F:    sound/parisc/harmony.*
  
+ HDPVR USB VIDEO ENCODER DRIVER
+ M:    Hans Verkuil <hverkuil@xs4all.nl>
+ L:    linux-media@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ W:    https://linuxtv.org
+ S:    Odd Fixes
+ F:    drivers/media/usb/hdpvr/
  HEWLETT PACKARD ENTERPRISE ILO NMI WATCHDOG DRIVER
  M:    Jimmy Vance <jimmy.vance@hpe.com>
  S:    Supported
@@@ -6086,13 -6042,6 +6043,6 @@@ F:     drivers/block/cciss
  F:    include/linux/cciss_ioctl.h
  F:    include/uapi/linux/cciss_ioctl.h
  
- OPA-VNIC DRIVER
- M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
- M:    Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
- L:    linux-rdma@vger.kernel.org
- S:    Supported
- F:    drivers/infiniband/ulp/opa_vnic
  HFI1 DRIVER
  M:    Mike Marciniszyn <mike.marciniszyn@intel.com>
  M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
@@@ -6270,6 -6219,12 +6220,12 @@@ L:    netdev@vger.kernel.or
  S:    Maintained
  F:    net/hsr/
  
+ HT16K33 LED CONTROLLER DRIVER
+ M:    Robin van der Gracht <robin@protonic.nl>
+ S:    Maintained
+ F:    drivers/auxdisplay/ht16k33.c
+ F:    Documentation/devicetree/bindings/display/ht16k33.txt
  HTCPEN TOUCHSCREEN DRIVER
  M:    Pau Oliva Fora <pof@eslack.org>
  L:    linux-input@vger.kernel.org
@@@ -6289,6 -6244,13 +6245,13 @@@ W:    https://linuxtv.or
  S:    Supported
  F:    drivers/media/platform/sti/hva
  
+ HWPOISON MEMORY FAILURE HANDLING
+ M:    Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
+ L:    linux-mm@kvack.org
+ S:    Maintained
+ F:    mm/memory-failure.c
+ F:    mm/hwpoison-inject.c
  Hyper-V CORE AND DRIVERS
  M:    "K. Y. Srinivasan" <kys@microsoft.com>
  M:    Haiyang Zhang <haiyangz@microsoft.com>
@@@ -6311,6 -6273,18 +6274,18 @@@ F:    include/linux/hyperv.
  F:    tools/hv/
  F:    Documentation/ABI/stable/sysfs-bus-vmbus
  
+ HYPERVISOR VIRTUAL CONSOLE DRIVER
+ L:    linuxppc-dev@lists.ozlabs.org
+ S:    Odd Fixes
+ F:    drivers/tty/hvc/
+ I2C ACPI SUPPORT
+ M:    Mika Westerberg <mika.westerberg@linux.intel.com>
+ L:    linux-i2c@vger.kernel.org
+ L:    linux-acpi@vger.kernel.org
+ S:    Maintained
+ F:    drivers/i2c/i2c-core-acpi.c
  I2C MUXES
  M:    Peter Rosin <peda@axentia.se>
  L:    linux-i2c@vger.kernel.org
@@@ -6333,6 -6307,36 +6308,36 @@@ F:    Documentation/i2c/busses/i2c-parport
  F:    drivers/i2c/busses/i2c-parport.c
  F:    drivers/i2c/busses/i2c-parport-light.c
  
+ I2C SUBSYSTEM
+ M:    Wolfram Sang <wsa@the-dreams.de>
+ L:    linux-i2c@vger.kernel.org
+ W:    https://i2c.wiki.kernel.org/
+ Q:    https://patchwork.ozlabs.org/project/linux-i2c/list/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/i2c/
+ F:    Documentation/i2c/
+ F:    drivers/i2c/
+ F:    drivers/i2c/*/
+ F:    include/linux/i2c.h
+ F:    include/linux/i2c-*.h
+ F:    include/uapi/linux/i2c.h
+ F:    include/uapi/linux/i2c-*.h
+ I2C-TAOS-EVM DRIVER
+ M:    Jean Delvare <jdelvare@suse.com>
+ L:    linux-i2c@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/i2c/busses/i2c-taos-evm
+ F:    drivers/i2c/busses/i2c-taos-evm.c
+ I2C-TINY-USB DRIVER
+ M:    Till Harbaum <till@harbaum.org>
+ L:    linux-i2c@vger.kernel.org
+ W:    http://www.harbaum.org/till/i2c_tiny_usb
+ S:    Maintained
+ F:    drivers/i2c/busses/i2c-tiny-usb.c
  I2C/SMBUS CONTROLLER DRIVERS FOR PC
  M:    Jean Delvare <jdelvare@suse.com>
  L:    linux-i2c@vger.kernel.org
@@@ -6380,43 -6384,6 +6385,6 @@@ L:     linux-i2c@vger.kernel.or
  S:    Maintained
  F:    drivers/i2c/i2c-stub.c
  
- I2C SUBSYSTEM
- M:    Wolfram Sang <wsa@the-dreams.de>
- L:    linux-i2c@vger.kernel.org
- W:    https://i2c.wiki.kernel.org/
- Q:    https://patchwork.ozlabs.org/project/linux-i2c/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
- S:    Maintained
- F:    Documentation/devicetree/bindings/i2c/
- F:    Documentation/i2c/
- F:    drivers/i2c/
- F:    drivers/i2c/*/
- F:    include/linux/i2c.h
- F:    include/linux/i2c-*.h
- F:    include/uapi/linux/i2c.h
- F:    include/uapi/linux/i2c-*.h
- I2C ACPI SUPPORT
- M:    Mika Westerberg <mika.westerberg@linux.intel.com>
- L:    linux-i2c@vger.kernel.org
- L:    linux-acpi@vger.kernel.org
- S:    Maintained
- F:    drivers/i2c/i2c-core-acpi.c
- I2C-TAOS-EVM DRIVER
- M:    Jean Delvare <jdelvare@suse.com>
- L:    linux-i2c@vger.kernel.org
- S:    Maintained
- F:    Documentation/i2c/busses/i2c-taos-evm
- F:    drivers/i2c/busses/i2c-taos-evm.c
- I2C-TINY-USB DRIVER
- M:    Till Harbaum <till@harbaum.org>
- L:    linux-i2c@vger.kernel.org
- W:    http://www.harbaum.org/till/i2c_tiny_usb
- S:    Maintained
- F:    drivers/i2c/busses/i2c-tiny-usb.c
  i386 BOOT CODE
  M:    "H. Peter Anvin" <hpa@zytor.com>
  S:    Maintained
@@@ -6435,17 -6402,15 +6403,15 @@@ T:   git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    arch/ia64/
  
- IBM Power VMX Cryptographic instructions
- M:    Leonidas S. Barbosa <leosilva@linux.vnet.ibm.com>
- M:    Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
- L:    linux-crypto@vger.kernel.org
+ IBM Power 842 compression accelerator
+ M:    Haren Myneni <haren@us.ibm.com>
  S:    Supported
- F:    drivers/crypto/vmx/Makefile
- F:    drivers/crypto/vmx/Kconfig
- F:    drivers/crypto/vmx/vmx.c
- F:    drivers/crypto/vmx/aes*
- F:    drivers/crypto/vmx/ghash*
- F:    drivers/crypto/vmx/ppc-xlate.pl
+ F:    drivers/crypto/nx/Makefile
+ F:    drivers/crypto/nx/Kconfig
+ F:    drivers/crypto/nx/nx-842*
+ F:    include/linux/sw842.h
+ F:    crypto/842.c
+ F:    lib/842/
  
  IBM Power in-Nest Crypto Acceleration
  M:    Leonidas S. Barbosa <leosilva@linux.vnet.ibm.com>
@@@ -6460,33 -6425,29 +6426,29 @@@ F:   drivers/crypto/nx/nx.
  F:    drivers/crypto/nx/nx_csbcpb.h
  F:    drivers/crypto/nx/nx_debugfs.h
  
- IBM Power 842 compression accelerator
- M:    Haren Myneni <haren@us.ibm.com>
- S:    Supported
- F:    drivers/crypto/nx/Makefile
- F:    drivers/crypto/nx/Kconfig
- F:    drivers/crypto/nx/nx-842*
- F:    include/linux/sw842.h
- F:    crypto/842.c
- F:    lib/842/
  IBM Power Linux RAID adapter
  M:    Brian King <brking@us.ibm.com>
  S:    Supported
  F:    drivers/scsi/ipr.*
  
- IBM Power Virtual Ethernet Device Driver
+ IBM Power SRIOV Virtual NIC Device Driver
  M:    Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
+ M:    John Allen <jallen@linux.vnet.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Supported
- F:    drivers/net/ethernet/ibm/ibmveth.*
+ F:    drivers/net/ethernet/ibm/ibmvnic.*
  
- IBM Power SRIOV Virtual NIC Device Driver
+ IBM Power Virtual Ethernet Device Driver
  M:    Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
- M:    John Allen <jallen@linux.vnet.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Supported
- F:    drivers/net/ethernet/ibm/ibmvnic.*
+ F:    drivers/net/ethernet/ibm/ibmveth.*
+ IBM Power Virtual FC Device Drivers
+ M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ F:    drivers/scsi/ibmvscsi/ibmvfc*
  
  IBM Power Virtual SCSI Device Drivers
  M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
@@@ -6503,11 -6464,17 +6465,17 @@@ L:   target-devel@vger.kernel.or
  S:    Supported
  F:    drivers/scsi/ibmvscsi_tgt/
  
- IBM Power Virtual FC Device Drivers
- M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
- L:    linux-scsi@vger.kernel.org
+ IBM Power VMX Cryptographic instructions
+ M:    Leonidas S. Barbosa <leosilva@linux.vnet.ibm.com>
+ M:    Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
+ L:    linux-crypto@vger.kernel.org
  S:    Supported
- F:    drivers/scsi/ibmvscsi/ibmvfc*
+ F:    drivers/crypto/vmx/Makefile
+ F:    drivers/crypto/vmx/Kconfig
+ F:    drivers/crypto/vmx/vmx.c
+ F:    drivers/crypto/vmx/aes*
+ F:    drivers/crypto/vmx/ghash*
+ F:    drivers/crypto/vmx/ppc-xlate.pl
  
  IBM ServeRAID RAID DRIVER
  S:    Orphan
@@@ -6519,11 -6486,6 +6487,6 @@@ S:     Maintaine
  F:    drivers/mfd/lpc_ich.c
  F:    drivers/gpio/gpio-ich.c
  
- IDT VersaClock 5 CLOCK DRIVER
- M:    Marek Vasut <marek.vasut@gmail.com>
- S:    Maintained
- F:    drivers/clk/clk-versaclock5.c
  IDE SUBSYSTEM
  M:    "David S. Miller" <davem@davemloft.net>
  L:    linux-ide@vger.kernel.org
@@@ -6534,6 -6496,13 +6497,13 @@@ F:    Documentation/ide
  F:    drivers/ide/
  F:    include/linux/ide.h
  
+ IDE/ATAPI DRIVERS
+ M:    Borislav Petkov <bp@alien8.de>
+ L:    linux-ide@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/cdrom/ide-cd
+ F:    drivers/ide/ide-cd*
  IDEAPAD LAPTOP EXTRAS DRIVER
  M:    Ike Panhc <ike.pan@canonical.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -6547,13 -6516,11 +6517,11 @@@ L:   linux-input@vger.kernel.or
  W:    https://github.com/o2genum/ideapad-slidebar
  S:    Maintained
  F:    drivers/input/misc/ideapad_slidebar.c
- IDE/ATAPI DRIVERS
- M:    Borislav Petkov <bp@alien8.de>
- L:    linux-ide@vger.kernel.org
+ IDT VersaClock 5 CLOCK DRIVER
+ M:    Marek Vasut <marek.vasut@gmail.com>
  S:    Maintained
- F:    Documentation/cdrom/ide-cd
- F:    drivers/ide/ide-cd*
+ F:    drivers/clk/clk-versaclock5.c
  
  IEEE 802.15.4 SUBSYSTEM
  M:    Alexander Aring <alex.aring@gmail.com>
@@@ -6643,6 -6610,16 +6611,16 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/auxdisplay/img-ascii-lcd.txt
  F:    drivers/auxdisplay/img-ascii-lcd.c
  
+ IMGTEC IR DECODER DRIVER
+ M:    James Hogan <james.hogan@imgtec.com>
+ S:    Maintained
+ F:    drivers/media/rc/img-ir/
+ IMS TWINTURBO FRAMEBUFFER DRIVER
+ L:    linux-fbdev@vger.kernel.org
+ S:    Orphan
+ F:    drivers/video/fbdev/imsttfb.c
  INA209 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <linux@roeck-us.net>
  L:    linux-hwmon@vger.kernel.org
@@@ -6668,37 -6645,6 +6646,6 @@@ W:     http://industrypack.sourceforge.ne
  S:    Maintained
  F:    drivers/ipack/
  
- INGENIC JZ4780 DMA Driver
- M:    Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
- S:    Maintained
- F:    drivers/dma/dma-jz4780.c
- INGENIC JZ4780 NAND DRIVER
- M:    Harvey Hunt <harveyhuntnexus@gmail.com>
- L:    linux-mtd@lists.infradead.org
- S:    Maintained
- F:    drivers/mtd/nand/jz4780_*
- INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
- M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
- M:    Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
- L:    linux-ima-devel@lists.sourceforge.net
- L:    linux-ima-user@lists.sourceforge.net
- L:    linux-security-module@vger.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
- S:    Supported
- F:    security/integrity/ima/
- IMGTEC IR DECODER DRIVER
- M:    James Hogan <james.hogan@imgtec.com>
- S:    Maintained
- F:    drivers/media/rc/img-ir/
- IMS TWINTURBO FRAMEBUFFER DRIVER
- L:    linux-fbdev@vger.kernel.org
- S:    Orphan
- F:    drivers/video/fbdev/imsttfb.c
  INFINIBAND SUBSYSTEM
  M:    Doug Ledford <dledford@redhat.com>
  M:    Sean Hefty <sean.hefty@intel.com>
@@@ -6715,6 -6661,17 +6662,17 @@@ F:    include/uapi/linux/if_infiniband.
  F:    include/uapi/rdma/
  F:    include/rdma/
  
+ INGENIC JZ4780 DMA Driver
+ M:    Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
+ S:    Maintained
+ F:    drivers/dma/dma-jz4780.c
+ INGENIC JZ4780 NAND DRIVER
+ M:    Harvey Hunt <harveyhuntnexus@gmail.com>
+ L:    linux-mtd@lists.infradead.org
+ S:    Maintained
+ F:    drivers/mtd/nand/jz4780_*
  INOTIFY
  M:    John McCutchan <john@johnmccutchan.com>
  M:    Robert Love <rlove@rlove.org>
@@@ -6753,6 -6710,22 +6711,22 @@@ F:    drivers/crypto/inside-secure
  S:    Maintained
  L:    linux-crypto@vger.kernel.org
  
+ INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
+ M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
+ M:    Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
+ L:    linux-ima-devel@lists.sourceforge.net
+ L:    linux-ima-user@lists.sourceforge.net
+ L:    linux-security-module@vger.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
+ S:    Supported
+ F:    security/integrity/ima/
+ INTEL 810/815 FRAMEBUFFER DRIVER
+ M:    Antonino Daplas <adaplas@gmail.com>
+ L:    linux-fbdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/video/fbdev/i810/
  INTEL ASoC BDW/HSW DRIVERS
  M:    Jie Yang <yang.jie@linux.intel.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -6770,17 -6743,74 +6744,74 @@@ T:   git git://git.code.sf.net/p/intel-sa
  S:    Supported
  F:    drivers/scsi/isci/
  
+ INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets)
+ M:    Daniel Vetter <daniel.vetter@intel.com>
+ M:    Jani Nikula <jani.nikula@linux.intel.com>
+ L:    intel-gfx@lists.freedesktop.org
+ W:    https://01.org/linuxgraphics/
+ B:    https://01.org/linuxgraphics/documentation/how-report-bugs
+ C:    irc://chat.freenode.net/intel-gfx
+ Q:    http://patchwork.freedesktop.org/project/intel-gfx/
+ T:    git git://anongit.freedesktop.org/drm-intel
+ S:    Supported
+ F:    drivers/gpu/drm/i915/
+ F:    include/drm/i915*
+ F:    include/uapi/drm/i915_drm.h
+ F:    Documentation/gpu/i915.rst
+ INTEL ETHERNET DRIVERS
+ M:    Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+ L:    intel-wired-lan@lists.osuosl.org (moderated for non-subscribers)
+ W:    http://www.intel.com/support/feedback.htm
+ W:    http://e1000.sourceforge.net/
+ Q:    http://patchwork.ozlabs.org/project/intel-wired-lan/list/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
+ S:    Supported
+ F:    Documentation/networking/e100.txt
+ F:    Documentation/networking/e1000.txt
+ F:    Documentation/networking/e1000e.txt
+ F:    Documentation/networking/igb.txt
+ F:    Documentation/networking/igbvf.txt
+ F:    Documentation/networking/ixgb.txt
+ F:    Documentation/networking/ixgbe.txt
+ F:    Documentation/networking/ixgbevf.txt
+ F:    Documentation/networking/i40e.txt
+ F:    Documentation/networking/i40evf.txt
+ F:    drivers/net/ethernet/intel/
+ F:    drivers/net/ethernet/intel/*/
+ F:    include/linux/avf/virtchnl.h
+ INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
+ M:    Maik Broemme <mbroemme@libmpq.org>
+ L:    linux-fbdev@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/fb/intelfb.txt
+ F:    drivers/video/fbdev/intelfb/
+ INTEL GVT-g DRIVERS (Intel GPU Virtualization)
+ M:    Zhenyu Wang <zhenyuw@linux.intel.com>
+ 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
+ S:    Supported
+ F:    drivers/gpu/drm/i915/gvt/
  INTEL HID EVENT DRIVER
  M:    Alex Hung <alex.hung@canonical.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/intel-hid.c
  
- INTEL VIRTUAL BUTTON DRIVER
- M:    AceLan Kao <acelan.kao@canonical.com>
- L:    platform-driver-x86@vger.kernel.org
- S:    Maintained
- F:    drivers/platform/x86/intel-vbtn.c
+ INTEL I/OAT DMA DRIVER
+ M:    Dave Jiang <dave.jiang@intel.com>
+ R:    Dan Williams <dan.j.williams@intel.com>
+ L:    dmaengine@vger.kernel.org
+ Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
+ S:    Supported
+ F:    drivers/dma/ioat*
  
  INTEL IDLE DRIVER
  M:    Jacob Pan <jacob.jun.pan@linux.intel.com>
@@@ -6798,41 -6828,6 +6829,6 @@@ L:     linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/hid/intel-ish-hid/
  
- INTEL PSTATE DRIVER
- M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
- M:    Len Brown <lenb@kernel.org>
- L:    linux-pm@vger.kernel.org
- S:    Supported
- F:    drivers/cpufreq/intel_pstate.c
- INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
- M:    Maik Broemme <mbroemme@libmpq.org>
- L:    linux-fbdev@vger.kernel.org
- S:    Maintained
- F:    Documentation/fb/intelfb.txt
- F:    drivers/video/fbdev/intelfb/
- INTEL 810/815 FRAMEBUFFER DRIVER
- M:    Antonino Daplas <adaplas@gmail.com>
- L:    linux-fbdev@vger.kernel.org
- S:    Maintained
- F:    drivers/video/fbdev/i810/
- INTEL MENLOW THERMAL DRIVER
- M:    Sujith Thomas <sujith.thomas@intel.com>
- L:    platform-driver-x86@vger.kernel.org
- W:    https://01.org/linux-acpi
- S:    Supported
- F:    drivers/platform/x86/intel_menlow.c
- INTEL I/OAT DMA DRIVER
- M:    Dave Jiang <dave.jiang@intel.com>
- R:    Dan Williams <dan.j.williams@intel.com>
- L:    dmaengine@vger.kernel.org
- Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
- S:    Supported
- F:    drivers/dma/ioat*
  INTEL IOMMU (VT-d)
  M:    David Woodhouse <dwmw2@infradead.org>
  L:    iommu@lists.linux-foundation.org
@@@ -6851,108 -6846,15 +6847,15 @@@ M:  Krzysztof Halasa <khalasa@piap.pl
  S:    Maintained
  F:    arch/arm/mach-ixp4xx/include/mach/qmgr.h
  F:    arch/arm/mach-ixp4xx/include/mach/npe.h
- F:    arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
- F:    arch/arm/mach-ixp4xx/ixp4xx_npe.c
- F:    drivers/net/ethernet/xscale/ixp4xx_eth.c
- F:    drivers/net/wan/ixp4xx_hss.c
- INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT
- M:    Deepak Saxena <dsaxena@plexity.net>
- S:    Maintained
- F:    drivers/char/hw_random/ixp4xx-rng.c
- INTEL ETHERNET DRIVERS
- M:    Jeff Kirsher <jeffrey.t.kirsher@intel.com>
- L:    intel-wired-lan@lists.osuosl.org (moderated for non-subscribers)
- W:    http://www.intel.com/support/feedback.htm
- W:    http://e1000.sourceforge.net/
- Q:    http://patchwork.ozlabs.org/project/intel-wired-lan/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue.git
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
- S:    Supported
- F:    Documentation/networking/e100.txt
- F:    Documentation/networking/e1000.txt
- F:    Documentation/networking/e1000e.txt
- F:    Documentation/networking/igb.txt
- F:    Documentation/networking/igbvf.txt
- F:    Documentation/networking/ixgb.txt
- F:    Documentation/networking/ixgbe.txt
- F:    Documentation/networking/ixgbevf.txt
- F:    Documentation/networking/i40e.txt
- F:    Documentation/networking/i40evf.txt
- F:    drivers/net/ethernet/intel/
- F:    drivers/net/ethernet/intel/*/
- F:    include/linux/avf/virtchnl.h
- INTEL RDMA RNIC DRIVER
- M:     Faisal Latif <faisal.latif@intel.com>
- M:     Shiraz Saleem <shiraz.saleem@intel.com>
- L:     linux-rdma@vger.kernel.org
- S:     Supported
- F:     drivers/infiniband/hw/i40iw/
- INTEL MERRIFIELD GPIO DRIVER
- M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
- L:    linux-gpio@vger.kernel.org
- S:    Maintained
- F:    drivers/gpio/gpio-merrifield.c
- INTEL-MID GPIO DRIVER
- M:    David Cohen <david.a.cohen@linux.intel.com>
- L:    linux-gpio@vger.kernel.org
- S:    Maintained
- F:    drivers/gpio/gpio-intel-mid.c
- INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
- M:    Stanislav Yakovlev <stas.yakovlev@gmail.com>
- L:    linux-wireless@vger.kernel.org
- S:    Maintained
- F:    Documentation/networking/README.ipw2100
- F:    Documentation/networking/README.ipw2200
- F:    drivers/net/wireless/intel/ipw2x00/
- INTEL(R) TRACE HUB
- M:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
- S:    Supported
- F:    Documentation/trace/intel_th.txt
- F:    drivers/hwtracing/intel_th/
- INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
- M:    Ning Sun <ning.sun@intel.com>
- L:    tboot-devel@lists.sourceforge.net
- W:    http://tboot.sourceforge.net
- T:    hg http://tboot.hg.sourceforge.net:8000/hgroot/tboot/tboot
- S:    Supported
- F:    Documentation/intel_txt.txt
- F:    include/linux/tboot.h
- F:    arch/x86/kernel/tboot.c
- INTEL WIRELESS WIMAX CONNECTION 2400
- M:    Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
- M:    linux-wimax@intel.com
- L:    wimax@linuxwimax.org (subscribers-only)
- S:    Supported
- W:    http://linuxwimax.org
- F:    Documentation/wimax/README.i2400m
- F:    drivers/net/wimax/i2400m/
- F:    include/uapi/linux/wimax/i2400m.h
- INTEL WIRELESS 3945ABG/BG, 4965AGN (iwlegacy)
- M:    Stanislaw Gruszka <sgruszka@redhat.com>
- L:    linux-wireless@vger.kernel.org
- S:    Supported
- F:    drivers/net/wireless/intel/iwlegacy/
+ F:    arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
+ F:    arch/arm/mach-ixp4xx/ixp4xx_npe.c
+ F:    drivers/net/ethernet/xscale/ixp4xx_eth.c
+ F:    drivers/net/wan/ixp4xx_hss.c
  
- INTEL WIRELESS WIFI LINK (iwlwifi)
- M:    Johannes Berg <johannes.berg@intel.com>
- M:    Emmanuel Grumbach <emmanuel.grumbach@intel.com>
- M:    Luca Coelho <luciano.coelho@intel.com>
- M:    Intel Linux Wireless <linuxwifi@intel.com>
- L:    linux-wireless@vger.kernel.org
- W:    http://intellinuxwireless.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git
- S:    Supported
- F:    drivers/net/wireless/intel/iwlwifi/
+ INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT
+ M:    Deepak Saxena <dsaxena@plexity.net>
+ S:    Maintained
+ F:    drivers/char/hw_random/ixp4xx-rng.c
  
  INTEL MANAGEMENT ENGINE (mei)
  M:    Tomas Winkler <tomas.winkler@intel.com>
@@@ -6965,6 -6867,19 +6868,19 @@@ F:    drivers/watchdog/mei_wdt.
  F:    Documentation/misc-devices/mei/*
  F:    samples/mei/*
  
+ INTEL MENLOW THERMAL DRIVER
+ M:    Sujith Thomas <sujith.thomas@intel.com>
+ L:    platform-driver-x86@vger.kernel.org
+ W:    https://01.org/linux-acpi
+ S:    Supported
+ F:    drivers/platform/x86/intel_menlow.c
+ INTEL MERRIFIELD GPIO DRIVER
+ M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+ L:    linux-gpio@vger.kernel.org
+ S:    Maintained
+ F:    drivers/gpio/gpio-merrifield.c
  INTEL MIC DRIVERS (mic)
  M:    Sudeep Dutt <sudeep.dutt@intel.com>
  M:    Ashutosh Dixit <ashutosh.dixit@intel.com>
@@@ -6974,13 -6889,21 +6890,21 @@@ W:   http://software.intel.com/en-us/mic-
  F:    include/linux/mic_bus.h
  F:    include/linux/scif.h
  F:    include/uapi/linux/mic_common.h
- F:    include/uapi/linux/mic_ioctl.h
+ F:    include/uapi/linux/mic_ioctl.h
  F:    include/uapi/linux/scif_ioctl.h
  F:    drivers/misc/mic/
  F:    drivers/dma/mic_x100_dma.c
  F:    drivers/dma/mic_x100_dma.h
  F:    Documentation/mic/
  
+ INTEL PMC CORE DRIVER
+ M:    Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
+ M:    Vishwanath Somayaji <vishwanath.somayaji@intel.com>
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Maintained
+ F:    arch/x86/include/asm/pmc_core.h
+ F:    drivers/platform/x86/intel_pmc_core*
  INTEL PMC/P-Unit IPC DRIVER
  M:    Zha Qipeng<qipeng.zha@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -6990,6 -6913,28 +6914,28 @@@ F:    drivers/platform/x86/intel_punit_ipc
  F:    arch/x86/include/asm/intel_pmc_ipc.h
  F:    arch/x86/include/asm/intel_punit_ipc.h
  
+ INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
+ M:    Stanislav Yakovlev <stas.yakovlev@gmail.com>
+ L:    linux-wireless@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/networking/README.ipw2100
+ F:    Documentation/networking/README.ipw2200
+ F:    drivers/net/wireless/intel/ipw2x00/
+ INTEL PSTATE DRIVER
+ M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+ M:    Len Brown <lenb@kernel.org>
+ L:    linux-pm@vger.kernel.org
+ S:    Supported
+ F:    drivers/cpufreq/intel_pstate.c
+ INTEL RDMA RNIC DRIVER
+ M:    Faisal Latif <faisal.latif@intel.com>
+ M:    Shiraz Saleem <shiraz.saleem@intel.com>
+ L:    linux-rdma@vger.kernel.org
+ S:    Supported
+ F:    drivers/infiniband/hw/i40iw/
  INTEL TELEMETRY DRIVER
  M:    Souvik Kumar Chakravarty <souvik.k.chakravarty@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -6997,13 -6942,60 +6943,60 @@@ S:   Maintaine
  F:    arch/x86/include/asm/intel_telemetry.h
  F:    drivers/platform/x86/intel_telemetry*
  
- INTEL PMC CORE DRIVER
- M:    Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
- M:    Vishwanath Somayaji <vishwanath.somayaji@intel.com>
+ INTEL VIRTUAL BUTTON DRIVER
+ M:    AceLan Kao <acelan.kao@canonical.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
- F:    arch/x86/include/asm/pmc_core.h
- F:    drivers/platform/x86/intel_pmc_core*
+ F:    drivers/platform/x86/intel-vbtn.c
+ INTEL WIRELESS 3945ABG/BG, 4965AGN (iwlegacy)
+ M:    Stanislaw Gruszka <sgruszka@redhat.com>
+ L:    linux-wireless@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/wireless/intel/iwlegacy/
+ INTEL WIRELESS WIFI LINK (iwlwifi)
+ M:    Johannes Berg <johannes.berg@intel.com>
+ M:    Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+ M:    Luca Coelho <luciano.coelho@intel.com>
+ M:    Intel Linux Wireless <linuxwifi@intel.com>
+ L:    linux-wireless@vger.kernel.org
+ W:    http://intellinuxwireless.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git
+ S:    Supported
+ F:    drivers/net/wireless/intel/iwlwifi/
+ INTEL WIRELESS WIMAX CONNECTION 2400
+ M:    Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+ M:    linux-wimax@intel.com
+ L:    wimax@linuxwimax.org (subscribers-only)
+ S:    Supported
+ W:    http://linuxwimax.org
+ F:    Documentation/wimax/README.i2400m
+ F:    drivers/net/wimax/i2400m/
+ F:    include/uapi/linux/wimax/i2400m.h
+ INTEL(R) TRACE HUB
+ M:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
+ S:    Supported
+ F:    Documentation/trace/intel_th.txt
+ F:    drivers/hwtracing/intel_th/
+ INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
+ M:    Ning Sun <ning.sun@intel.com>
+ L:    tboot-devel@lists.sourceforge.net
+ W:    http://tboot.sourceforge.net
+ T:    hg http://tboot.hg.sourceforge.net:8000/hgroot/tboot/tboot
+ S:    Supported
+ F:    Documentation/intel_txt.txt
+ F:    include/linux/tboot.h
+ F:    arch/x86/kernel/tboot.c
+ INTEL-MID GPIO DRIVER
+ M:    David Cohen <david.a.cohen@linux.intel.com>
+ L:    linux-gpio@vger.kernel.org
+ S:    Maintained
+ F:    drivers/gpio/gpio-intel-mid.c
  
  INVENSENSE MPU-3050 GYROSCOPE DRIVER
  M:    Linus Walleij <linus.walleij@linaro.org>
@@@ -7049,13 -7041,6 +7042,6 @@@ F:     drivers/char/ipmi
  F:    include/linux/ipmi*
  F:    include/uapi/linux/ipmi*
  
- QCOM AUDIO (ASoC) DRIVERS
- M:    Patrick Lai <plai@codeaurora.org>
- M:    Banajit Goswami <bgoswami@codeaurora.org>
- L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
- S:    Supported
- F:    sound/soc/qcom/
  IPS SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <aacraid@adaptec.com>
  L:    linux-scsi@vger.kernel.org
@@@ -7102,6 -7087,15 +7088,15 @@@ F:    drivers/net/irda
  F:    include/net/irda/
  F:    net/irda/
  
+ IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
+ M:    Marc Zyngier <marc.zyngier@arm.com>
+ S:    Maintained
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
+ F:    Documentation/IRQ-domain.txt
+ F:    include/linux/irqdomain.h
+ F:    kernel/irq/irqdomain.c
+ F:    kernel/irq/msi.c
  IRQ SUBSYSTEM
  M:    Thomas Gleixner <tglx@linutronix.de>
  L:    linux-kernel@vger.kernel.org
@@@ -7120,15 -7114,6 +7115,6 @@@ T:     git git://git.infradead.org/users/jc
  F:    Documentation/devicetree/bindings/interrupt-controller/
  F:    drivers/irqchip/
  
- IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
- M:    Marc Zyngier <marc.zyngier@arm.com>
- S:    Maintained
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
- F:    Documentation/IRQ-domain.txt
- F:    include/linux/irqdomain.h
- F:    kernel/irq/irqdomain.c
- F:    kernel/irq/msi.c
  ISA
  M:    William Breathitt Gray <vilhelm.gray@gmail.com>
  S:    Maintained
@@@ -7136,13 -7121,6 +7122,6 @@@ F:     Documentation/isa.tx
  F:    drivers/base/isa.c
  F:    include/linux/isa.h
  
- ISAPNP
- M:    Jaroslav Kysela <perex@perex.cz>
- S:    Maintained
- F:    Documentation/isapnp.txt
- F:    drivers/pnp/isapnp/
- F:    include/linux/isapnp.h
  ISA RADIO MODULE
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -7151,11 -7129,12 +7130,12 @@@ W:   https://linuxtv.or
  S:    Maintained
  F:    drivers/media/radio/radio-isa*
  
- iSCSI BOOT FIRMWARE TABLE (iBFT) DRIVER
- M:    Peter Jones <pjones@redhat.com>
- M:    Konrad Rzeszutek Wilk <konrad@kernel.org>
+ ISAPNP
+ M:    Jaroslav Kysela <perex@perex.cz>
  S:    Maintained
- F:    drivers/firmware/iscsi_ibft*
+ F:    Documentation/isapnp.txt
+ F:    drivers/pnp/isapnp/
+ F:    include/linux/isapnp.h
  
  ISCSI
  M:    Lee Duncan <lduncan@suse.com>
@@@ -7166,6 -7145,12 +7146,12 @@@ S:    Maintaine
  F:    drivers/scsi/*iscsi*
  F:    include/scsi/*iscsi*
  
+ iSCSI BOOT FIRMWARE TABLE (iBFT) DRIVER
+ M:    Peter Jones <pjones@redhat.com>
+ M:    Konrad Rzeszutek Wilk <konrad@kernel.org>
+ S:    Maintained
+ F:    drivers/firmware/iscsi_ibft*
  ISCSI EXTENSIONS FOR RDMA (ISER) INITIATOR
  M:    Or Gerlitz <ogerlitz@mellanox.com>
  M:    Sagi Grimberg <sagi@grimberg.me>
@@@ -7421,27 -7406,6 +7407,6 @@@ S:     Maintaine
  F:    arch/x86/include/asm/svm.h
  F:    arch/x86/kvm/svm.c
  
- KERNEL VIRTUAL MACHINE (KVM) FOR POWERPC
- M:    Alexander Graf <agraf@suse.com>
- L:    kvm-ppc@vger.kernel.org
- W:    http://www.linux-kvm.org/
- T:    git git://github.com/agraf/linux-2.6.git
- S:    Supported
- F:    arch/powerpc/include/asm/kvm*
- F:    arch/powerpc/kvm/
- KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
- M:    Christian Borntraeger <borntraeger@de.ibm.com>
- M:    Cornelia Huck <cohuck@redhat.com>
- L:    linux-s390@vger.kernel.org
- W:    http://www.ibm.com/developerworks/linux/linux390/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git
- S:    Supported
- F:    Documentation/s390/kvm.txt
- F:    arch/s390/include/asm/kvm*
- F:    arch/s390/kvm/
- F:    arch/s390/mm/gmap.c
  KERNEL VIRTUAL MACHINE (KVM) FOR ARM
  M:    Christoffer Dall <christoffer.dall@linaro.org>
  M:    Marc Zyngier <marc.zyngier@arm.com>
@@@ -7456,6 -7420,15 +7421,15 @@@ F:    arch/arm/kvm
  F:    virt/kvm/arm/
  F:    include/kvm/arm_*
  
+ KERNEL VIRTUAL MACHINE (KVM) FOR POWERPC
+ M:    Alexander Graf <agraf@suse.com>
+ L:    kvm-ppc@vger.kernel.org
+ W:    http://www.linux-kvm.org/
+ T:    git git://github.com/agraf/linux-2.6.git
+ S:    Supported
+ F:    arch/powerpc/include/asm/kvm*
+ F:    arch/powerpc/kvm/
  KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
  M:    Christoffer Dall <christoffer.dall@linaro.org>
  M:    Marc Zyngier <marc.zyngier@arm.com>
@@@ -7474,6 -7447,18 +7448,18 @@@ F:    arch/mips/include/uapi/asm/kvm
  F:    arch/mips/include/asm/kvm*
  F:    arch/mips/kvm/
  
+ KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
+ M:    Christian Borntraeger <borntraeger@de.ibm.com>
+ M:    Cornelia Huck <cohuck@redhat.com>
+ L:    linux-s390@vger.kernel.org
+ W:    http://www.ibm.com/developerworks/linux/linux390/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git
+ S:    Supported
+ F:    Documentation/s390/kvm.txt
+ F:    arch/s390/include/asm/kvm*
+ F:    arch/s390/kvm/
+ F:    arch/s390/mm/gmap.c
  KERNFS
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  M:    Tejun Heo <tj@kernel.org>
@@@ -7491,17 -7476,15 +7477,15 @@@ F:   include/linux/kexec.
  F:    include/uapi/linux/kexec.h
  F:    kernel/kexec*
  
- KEYS/KEYRINGS:
- M:    David Howells <dhowells@redhat.com>
+ KEYS-ENCRYPTED
+ M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
+ M:    David Safford <safford@us.ibm.com>
+ L:    linux-security-module@vger.kernel.org
  L:    keyrings@vger.kernel.org
- S:    Maintained
- F:    Documentation/security/keys/core.rst
- F:    include/linux/key.h
- F:    include/linux/key-type.h
- F:    include/linux/keyctl.h
- F:    include/uapi/linux/keyctl.h
- F:    include/keys/
- F:    security/keys/
+ S:    Supported
+ F:    Documentation/security/keys/trusted-encrypted.rst
+ F:    include/keys/encrypted-type.h
+ F:    security/keys/encrypted-keys/
  
  KEYS-TRUSTED
  M:    David Safford <safford@us.ibm.com>
@@@ -7514,15 -7497,17 +7498,17 @@@ F:   include/keys/trusted-type.
  F:    security/keys/trusted.c
  F:    security/keys/trusted.h
  
- KEYS-ENCRYPTED
- M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
- M:    David Safford <safford@us.ibm.com>
- L:    linux-security-module@vger.kernel.org
+ KEYS/KEYRINGS:
+ M:    David Howells <dhowells@redhat.com>
  L:    keyrings@vger.kernel.org
- S:    Supported
- F:    Documentation/security/keys/trusted-encrypted.rst
- F:    include/keys/encrypted-type.h
- F:    security/keys/encrypted-keys/
+ S:    Maintained
+ F:    Documentation/security/keys/core.rst
+ F:    include/linux/key.h
+ F:    include/linux/key-type.h
+ F:    include/linux/keyctl.h
+ F:    include/uapi/linux/keyctl.h
+ F:    include/keys/
+ F:    security/keys/
  
  KGDB / KDB /debug_core
  M:    Jason Wessel <jason.wessel@windriver.com>
@@@ -7660,21 -7645,11 +7646,11 @@@ M:   Rusty Russell <rusty@rustcorp.com.au
  L:    lguest@lists.ozlabs.org
  W:    http://lguest.ozlabs.org/
  S:    Odd Fixes
- F:    arch/x86/include/asm/lguest*.h
- F:    arch/x86/lguest/
- F:    drivers/lguest/
- F:    include/linux/lguest*.h
- F:    tools/lguest/
- LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
- M:    Tejun Heo <tj@kernel.org>
- L:    linux-ide@vger.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git
- S:    Maintained
- F:    drivers/ata/
- F:    include/linux/ata.h
- F:    include/linux/libata.h
- F:    Documentation/devicetree/bindings/ata/
+ F:    arch/x86/include/asm/lguest*.h
+ F:    arch/x86/lguest/
+ F:    drivers/lguest/
+ F:    include/linux/lguest*.h
+ F:    tools/lguest/
  
  LIBATA PATA ARASAN COMPACT FLASH CONTROLLER
  M:    Viresh Kumar <vireshk@kernel.org>
@@@ -7719,23 -7694,21 +7695,21 @@@ T:   git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/ata/sata_promise.*
  
+ LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
+ M:    Tejun Heo <tj@kernel.org>
+ L:    linux-ide@vger.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git
+ S:    Maintained
+ F:    drivers/ata/
+ F:    include/linux/ata.h
+ F:    include/linux/libata.h
+ F:    Documentation/devicetree/bindings/ata/
  LIBLOCKDEP
  M:    Sasha Levin <alexander.levin@verizon.com>
  S:    Maintained
  F:    tools/lib/lockdep/
  
- LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM
- M:    Dan Williams <dan.j.williams@intel.com>
- L:    linux-nvdimm@lists.01.org
- Q:    https://patchwork.kernel.org/project/linux-nvdimm/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git
- S:    Supported
- F:    drivers/nvdimm/*
- F:    drivers/acpi/nfit/*
- F:    include/linux/nd.h
- F:    include/linux/libnvdimm.h
- F:    include/uapi/linux/ndctl.h
  LIBNVDIMM BLK: MMIO-APERTURE DRIVER
  M:    Ross Zwisler <ross.zwisler@linux.intel.com>
  L:    linux-nvdimm@lists.01.org
@@@ -7758,6 -7731,18 +7732,18 @@@ Q:    https://patchwork.kernel.org/project
  S:    Supported
  F:    drivers/nvdimm/pmem*
  
+ LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM
+ M:    Dan Williams <dan.j.williams@intel.com>
+ L:    linux-nvdimm@lists.01.org
+ Q:    https://patchwork.kernel.org/project/linux-nvdimm/list/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git
+ S:    Supported
+ F:    drivers/nvdimm/*
+ F:    drivers/acpi/nfit/*
+ F:    include/linux/nd.h
+ F:    include/linux/libnvdimm.h
+ F:    include/uapi/linux/ndctl.h
  LIGHTNVM PLATFORM SUPPORT
  M:    Matias Bjorling <mb@lightnvm.io>
  W:    http://github/OpenChannelSSD
@@@ -7767,6 -7752,14 +7753,14 @@@ F:    drivers/lightnvm
  F:    include/linux/lightnvm.h
  F:    include/uapi/linux/lightnvm.h
  
+ LINUX FOR POWER MACINTOSH
+ M:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
+ W:    http://www.penguinppc.org/
+ L:    linuxppc-dev@lists.ozlabs.org
+ S:    Maintained
+ F:    arch/powerpc/platforms/powermac/
+ F:    drivers/macintosh/
  LINUX FOR POWERPC (32-BIT AND 64-BIT)
  M:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
  M:    Paul Mackerras <paulus@samba.org>
@@@ -7800,14 -7793,6 +7794,6 @@@ N:     powern
  N:    [^a-z0-9]ps3
  N:    pseries
  
- LINUX FOR POWER MACINTOSH
- M:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
- W:    http://www.penguinppc.org/
- L:    linuxppc-dev@lists.ozlabs.org
- S:    Maintained
- F:    arch/powerpc/platforms/powermac/
- F:    drivers/macintosh/
  LINUX FOR POWERPC EMBEDDED MPC5XXX
  M:    Anatolij Gustschin <agust@denx.de>
  L:    linuxppc-dev@lists.ozlabs.org
@@@ -7825,19 -7810,6 +7811,6 @@@ S:     Maintaine
  F:    arch/powerpc/platforms/40x/
  F:    arch/powerpc/platforms/44x/
  
- LINUX FOR POWERPC EMBEDDED XILINX VIRTEX
- L:    linuxppc-dev@lists.ozlabs.org
- S:    Orphan
- F:    arch/powerpc/*/*virtex*
- F:    arch/powerpc/*/*/*virtex*
- LINUX FOR POWERPC EMBEDDED PPC8XX
- M:    Vitaly Bordug <vitb@kernel.crashing.org>
- W:    http://www.penguinppc.org/
- L:    linuxppc-dev@lists.ozlabs.org
- S:    Maintained
- F:    arch/powerpc/platforms/8xx/
  LINUX FOR POWERPC EMBEDDED PPC83XX AND PPC85XX
  M:    Scott Wood <oss@buserror.net>
  M:    Kumar Gala <galak@kernel.crashing.org>
@@@ -7849,6 -7821,19 +7822,19 @@@ F:    arch/powerpc/platforms/83xx
  F:    arch/powerpc/platforms/85xx/
  F:    Documentation/devicetree/bindings/powerpc/fsl/
  
+ LINUX FOR POWERPC EMBEDDED PPC8XX
+ M:    Vitaly Bordug <vitb@kernel.crashing.org>
+ W:    http://www.penguinppc.org/
+ L:    linuxppc-dev@lists.ozlabs.org
+ S:    Maintained
+ F:    arch/powerpc/platforms/8xx/
+ LINUX FOR POWERPC EMBEDDED XILINX VIRTEX
+ L:    linuxppc-dev@lists.ozlabs.org
+ S:    Orphan
+ F:    arch/powerpc/*/*virtex*
+ F:    arch/powerpc/*/*/*virtex*
  LINUX FOR POWERPC PA SEMI PWRFICIENT
  L:    linuxppc-dev@lists.ozlabs.org
  S:    Orphan
@@@ -7856,6 -7841,11 +7842,11 @@@ F:    arch/powerpc/platforms/pasemi
  F:    drivers/*/*pasemi*
  F:    drivers/*/*/*pasemi*
  
+ LINUX KERNEL DUMP TEST MODULE (LKDTM)
+ M:    Kees Cook <keescook@chromium.org>
+ S:    Maintained
+ F:    drivers/misc/lkdtm*
  LINUX SECURITY MODULE (LSM) FRAMEWORK
  M:    Chris Wright <chrisw@sous-sol.org>
  L:    linux-security-module@vger.kernel.org
@@@ -7885,11 -7875,6 +7876,6 @@@ F:     samples/livepatch
  L:    live-patching@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching.git
  
- LINUX KERNEL DUMP TEST MODULE (LKDTM)
- M:    Kees Cook <keescook@chromium.org>
- S:    Maintained
- F:    drivers/misc/lkdtm*
  LLC (802.2)
  L:    netdev@vger.kernel.org
  S:    Odd fixes
@@@ -7942,6 -7927,13 +7928,13 @@@ Q:    http://patchwork.linuxtv.org/project
  S:    Maintained
  F:    drivers/media/usb/dvb-usb-v2/lmedm04*
  
+ LOADPIN SECURITY MODULE
+ M:    Kees Cook <keescook@chromium.org>
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git lsm/loadpin
+ S:    Supported
+ F:    security/loadpin/
+ F:    Documentation/admin-guide/LSM/LoadPin.rst
  LOCKING PRIMITIVES
  M:    Peter Zijlstra <peterz@infradead.org>
  M:    Ingo Molnar <mingo@redhat.com>
@@@ -8232,14 -8224,6 +8225,6 @@@ S:     Maintaine
  F:    Documentation/devicetree/bindings/sound/max9860.txt
  F:    sound/soc/codecs/max9860.*
  
- MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
- M:    Krzysztof Kozlowski <krzk@kernel.org>
- M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
- L:    linux-pm@vger.kernel.org
- S:    Supported
- F:    drivers/power/supply/max14577_charger.c
- F:    drivers/power/supply/max77693_charger.c
  MAXIM MAX77802 PMIC REGULATOR DEVICE DRIVER
  M:    Javier Martinez Canillas <javier@dowhile0.org>
  L:    linux-kernel@vger.kernel.org
@@@ -8248,6 -8232,14 +8233,14 @@@ F:    drivers/regulator/max77802-regulator
  F:    Documentation/devicetree/bindings/*/*max77802.txt
  F:    include/dt-bindings/*/*max77802.h
  
+ MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
+ M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
+ L:    linux-pm@vger.kernel.org
+ S:    Supported
+ F:    drivers/power/supply/max14577_charger.c
+ F:    drivers/power/supply/max77693_charger.c
  MAXIM PMIC AND MUIC DRIVERS FOR EXYNOS BASED BOARDS
  M:    Chanwoo Choi <cw00.choi@samsung.com>
  M:    Krzysztof Kozlowski <krzk@kernel.org>
@@@ -8290,14 -8282,25 +8283,25 @@@ L:   linux-iio@vger.kernel.or
  S:    Maintained
  F:    drivers/iio/dac/cio-dac.c
  
- MEDIA DRIVERS FOR RENESAS - DRIF
- M:    Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
+ MEDIA DRIVERS FOR ASCOT2E
+ M:    Sergey Kozlov <serjk@netup.ru>
+ M:    Abylay Ospan <aospan@netup.ru>
  L:    linux-media@vger.kernel.org
- L:    linux-renesas-soc@vger.kernel.org
+ W:    https://linuxtv.org
+ W:    http://netup.tv/
  T:    git git://linuxtv.org/media_tree.git
  S:    Supported
- F:    Documentation/devicetree/bindings/media/renesas,drif.txt
- F:    drivers/media/platform/rcar_drif.c
+ F:    drivers/media/dvb-frontends/ascot2e*
+ MEDIA DRIVERS FOR CXD2841ER
+ M:    Sergey Kozlov <serjk@netup.ru>
+ M:    Abylay Ospan <aospan@netup.ru>
+ L:    linux-media@vger.kernel.org
+ W:    https://linuxtv.org
+ W:    http://netup.tv/
+ T:    git git://linuxtv.org/media_tree.git
+ S:    Supported
+ F:    drivers/media/dvb-frontends/cxd2841er*
  
  MEDIA DRIVERS FOR FREESCALE IMX
  M:    Steve Longerbeam <slongerbeam@gmail.com>
@@@ -8311,43 -8314,6 +8315,6 @@@ F:     drivers/staging/media/imx
  F:    include/linux/imx-media.h
  F:    include/media/imx.h
  
- MEDIA DRIVERS FOR RENESAS - FCP
- M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- L:    linux-media@vger.kernel.org
- L:    linux-renesas-soc@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- S:    Supported
- F:    Documentation/devicetree/bindings/media/renesas,fcp.txt
- F:    drivers/media/platform/rcar-fcp.c
- F:    include/media/rcar-fcp.h
- MEDIA DRIVERS FOR RENESAS - FDP1
- M:    Kieran Bingham <kieran@bingham.xyz>
- L:    linux-media@vger.kernel.org
- L:    linux-renesas-soc@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- S:    Supported
- F:    Documentation/devicetree/bindings/media/renesas,fdp1.txt
- F:    drivers/media/platform/rcar_fdp1.c
- MEDIA DRIVERS FOR RENESAS - VIN
- M:    Niklas Söderlund <niklas.soderlund@ragnatech.se>
- L:    linux-media@vger.kernel.org
- L:    linux-renesas-soc@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- S:    Supported
- F:    Documentation/devicetree/bindings/media/rcar_vin.txt
- F:    drivers/media/platform/rcar-vin/
- MEDIA DRIVERS FOR RENESAS - VSP1
- M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- L:    linux-media@vger.kernel.org
- L:    linux-renesas-soc@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- S:    Supported
- F:    Documentation/devicetree/bindings/media/renesas,vsp1.txt
- F:    drivers/media/platform/vsp1/
  MEDIA DRIVERS FOR HELENE
  M:    Abylay Ospan <aospan@netup.ru>
  L:    linux-media@vger.kernel.org
@@@ -8357,7 -8323,7 +8324,7 @@@ T:      git git://linuxtv.org/media_tree.gi
  S:    Supported
  F:    drivers/media/dvb-frontends/helene*
  
- MEDIA DRIVERS FOR ASCOT2E
+ MEDIA DRIVERS FOR HORUS3A
  M:    Sergey Kozlov <serjk@netup.ru>
  M:    Abylay Ospan <aospan@netup.ru>
  L:    linux-media@vger.kernel.org
@@@ -8365,9 -8331,9 +8332,9 @@@ W:      https://linuxtv.or
  W:    http://netup.tv/
  T:    git git://linuxtv.org/media_tree.git
  S:    Supported
- F:    drivers/media/dvb-frontends/ascot2e*
+ F:    drivers/media/dvb-frontends/horus3a*
  
- MEDIA DRIVERS FOR CXD2841ER
+ MEDIA DRIVERS FOR LNBH25
  M:    Sergey Kozlov <serjk@netup.ru>
  M:    Abylay Ospan <aospan@netup.ru>
  L:    linux-media@vger.kernel.org
@@@ -8375,9 -8341,9 +8342,9 @@@ W:      https://linuxtv.or
  W:    http://netup.tv/
  T:    git git://linuxtv.org/media_tree.git
  S:    Supported
- F:    drivers/media/dvb-frontends/cxd2841er*
+ F:    drivers/media/dvb-frontends/lnbh25*
  
- MEDIA DRIVERS FOR HORUS3A
+ MEDIA DRIVERS FOR NETUP PCI UNIVERSAL DVB devices
  M:    Sergey Kozlov <serjk@netup.ru>
  M:    Abylay Ospan <aospan@netup.ru>
  L:    linux-media@vger.kernel.org
@@@ -8385,27 -8351,53 +8352,53 @@@ W:   https://linuxtv.or
  W:    http://netup.tv/
  T:    git git://linuxtv.org/media_tree.git
  S:    Supported
- F:    drivers/media/dvb-frontends/horus3a*
+ F:    drivers/media/pci/netup_unidvb/*
  
- MEDIA DRIVERS FOR LNBH25
- M:    Sergey Kozlov <serjk@netup.ru>
- M:    Abylay Ospan <aospan@netup.ru>
+ MEDIA DRIVERS FOR RENESAS - DRIF
+ M:    Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
  L:    linux-media@vger.kernel.org
- W:    https://linuxtv.org
- W:    http://netup.tv/
+ L:    linux-renesas-soc@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
  S:    Supported
- F:    drivers/media/dvb-frontends/lnbh25*
+ F:    Documentation/devicetree/bindings/media/renesas,drif.txt
+ F:    drivers/media/platform/rcar_drif.c
  
- MEDIA DRIVERS FOR NETUP PCI UNIVERSAL DVB devices
- M:    Sergey Kozlov <serjk@netup.ru>
- M:    Abylay Ospan <aospan@netup.ru>
+ MEDIA DRIVERS FOR RENESAS - FCP
+ M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-media@vger.kernel.org
- W:    https://linuxtv.org
- W:    http://netup.tv/
+ L:    linux-renesas-soc@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
  S:    Supported
- F:    drivers/media/pci/netup_unidvb/*
+ F:    Documentation/devicetree/bindings/media/renesas,fcp.txt
+ F:    drivers/media/platform/rcar-fcp.c
+ F:    include/media/rcar-fcp.h
+ MEDIA DRIVERS FOR RENESAS - FDP1
+ M:    Kieran Bingham <kieran@bingham.xyz>
+ L:    linux-media@vger.kernel.org
+ L:    linux-renesas-soc@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ S:    Supported
+ F:    Documentation/devicetree/bindings/media/renesas,fdp1.txt
+ F:    drivers/media/platform/rcar_fdp1.c
+ MEDIA DRIVERS FOR RENESAS - VIN
+ M:    Niklas Söderlund <niklas.soderlund@ragnatech.se>
+ L:    linux-media@vger.kernel.org
+ L:    linux-renesas-soc@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ S:    Supported
+ F:    Documentation/devicetree/bindings/media/rcar_vin.txt
+ F:    drivers/media/platform/rcar-vin/
+ MEDIA DRIVERS FOR RENESAS - VSP1
+ M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+ L:    linux-media@vger.kernel.org
+ L:    linux-renesas-soc@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ S:    Supported
+ F:    Documentation/devicetree/bindings/media/renesas,vsp1.txt
+ F:    drivers/media/platform/vsp1/
  
  MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
  M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
@@@ -8444,15 -8436,6 +8437,6 @@@ S:     Supporte
  F:    drivers/media/platform/mtk-jpeg/
  F:    Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt
  
- MEDIATEK MEDIA DRIVER
- M:    Tiffany Lin <tiffany.lin@mediatek.com>
- M:    Andrew-CT Chen <andrew-ct.chen@mediatek.com>
- S:    Supported
- F:    drivers/media/platform/mtk-vcodec/
- F:    drivers/media/platform/mtk-vpu/
- F:    Documentation/devicetree/bindings/media/mediatek-vcodec.txt
- F:    Documentation/devicetree/bindings/media/mediatek-vpu.txt
  MEDIATEK MDP DRIVER
  M:    Minghsiu Tsai <minghsiu.tsai@mediatek.com>
  M:    Houlong Wei <houlong.wei@mediatek.com>
@@@ -8462,6 -8445,15 +8446,15 @@@ F:    drivers/media/platform/mtk-mdp
  F:    drivers/media/platform/mtk-vpu/
  F:    Documentation/devicetree/bindings/media/mediatek-mdp.txt
  
+ MEDIATEK MEDIA DRIVER
+ M:    Tiffany Lin <tiffany.lin@mediatek.com>
+ M:    Andrew-CT Chen <andrew-ct.chen@mediatek.com>
+ S:    Supported
+ F:    drivers/media/platform/mtk-vcodec/
+ F:    drivers/media/platform/mtk-vpu/
+ F:    Documentation/devicetree/bindings/media/mediatek-vcodec.txt
+ F:    Documentation/devicetree/bindings/media/mediatek-vpu.txt
  MEDIATEK MT7601U WIRELESS LAN DRIVER
  M:    Jakub Kicinski <kubakici@wp.pl>
  L:    linux-wireless@vger.kernel.org
@@@ -8469,9 -8461,9 +8462,9 @@@ S:      Maintaine
  F:    drivers/net/wireless/mediatek/mt7601u/
  
  MEDIATEK RANDOM NUMBER GENERATOR SUPPORT
- M:      Sean Wang <sean.wang@mediatek.com>
- S:      Maintained
- F:      drivers/char/hw_random/mtk-rng.c
+ M:    Sean Wang <sean.wang@mediatek.com>
+ S:    Maintained
+ F:    drivers/char/hw_random/mtk-rng.c
  
  MEGACHIPS STDPXXXX-GE-B850V3-FW LVDS/DP++ BRIDGES
  M:    Peter Senna Tschudin <peter.senna@collabora.com>
@@@ -8493,6 -8485,13 +8486,13 @@@ F:    Documentation/scsi/megaraid.tx
  F:    drivers/scsi/megaraid.*
  F:    drivers/scsi/megaraid/
  
+ MELEXIS MLX90614 DRIVER
+ M:    Crt Mori <cmo@melexis.com>
+ L:    linux-iio@vger.kernel.org
+ W:    http://www.melexis.com
+ S:    Supported
+ F:    drivers/iio/temperature/mlx90614.c
  MELFAS MIP4 TOUCHSCREEN DRIVER
  M:    Sangwon Jee <jeesw@melfas.com>
  W:    http://www.melfas.com
@@@ -8553,6 -8552,56 +8553,56 @@@ W:    http://www.mellanox.co
  Q:    http://patchwork.ozlabs.org/project/netdev/list/
  F:    drivers/net/ethernet/mellanox/mlxfw/
  
+ MELLANOX MLX CPLD HOTPLUG DRIVER
+ M:    Vadim Pasternak <vadimp@mellanox.com>
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Supported
+ F:    drivers/platform/x86/mlxcpld-hotplug.c
+ F:    include/linux/platform_data/mlxcpld-hotplug.h
+ MELLANOX MLX4 core VPI driver
+ M:    Tariq Toukan <tariqt@mellanox.com>
+ L:    netdev@vger.kernel.org
+ L:    linux-rdma@vger.kernel.org
+ W:    http://www.mellanox.com
+ Q:    http://patchwork.ozlabs.org/project/netdev/list/
+ S:    Supported
+ F:    drivers/net/ethernet/mellanox/mlx4/
+ F:    include/linux/mlx4/
+ MELLANOX MLX4 IB driver
+ M:    Yishai Hadas <yishaih@mellanox.com>
+ L:    linux-rdma@vger.kernel.org
+ W:    http://www.mellanox.com
+ Q:    http://patchwork.kernel.org/project/linux-rdma/list/
+ S:    Supported
+ F:    drivers/infiniband/hw/mlx4/
+ F:    include/linux/mlx4/
+ F:    include/uapi/rdma/mlx4-abi.h
+ MELLANOX MLX5 core VPI driver
+ M:    Saeed Mahameed <saeedm@mellanox.com>
+ M:    Matan Barak <matanb@mellanox.com>
+ M:    Leon Romanovsky <leonro@mellanox.com>
+ L:    netdev@vger.kernel.org
+ L:    linux-rdma@vger.kernel.org
+ W:    http://www.mellanox.com
+ Q:    http://patchwork.ozlabs.org/project/netdev/list/
+ S:    Supported
+ F:    drivers/net/ethernet/mellanox/mlx5/core/
+ F:    include/linux/mlx5/
+ MELLANOX MLX5 IB driver
+ M:    Matan Barak <matanb@mellanox.com>
+ M:    Leon Romanovsky <leonro@mellanox.com>
+ L:    linux-rdma@vger.kernel.org
+ W:    http://www.mellanox.com
+ Q:    http://patchwork.kernel.org/project/linux-rdma/list/
+ S:    Supported
+ F:    drivers/infiniband/hw/mlx5/
+ F:    include/linux/mlx5/
+ F:    include/uapi/rdma/mlx5-abi.h
  MELLANOX MLXCPLD I2C AND MUX DRIVER
  M:    Vadim Pasternak <vadimp@mellanox.com>
  M:    Michael Shych <michaelsh@mellanox.com>
@@@ -8570,26 -8619,10 +8620,10 @@@ F:   drivers/leds/leds-mlxcpld.
  F:    Documentation/leds/leds-mlxcpld.txt
  
  MELLANOX PLATFORM DRIVER
- M:      Vadim Pasternak <vadimp@mellanox.com>
- L:      platform-driver-x86@vger.kernel.org
- S:      Supported
- F:      drivers/platform/x86/mlx-platform.c
- MELLANOX MLX CPLD HOTPLUG DRIVER
  M:    Vadim Pasternak <vadimp@mellanox.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Supported
- F:    drivers/platform/x86/mlxcpld-hotplug.c
- F:    include/linux/platform_data/mlxcpld-hotplug.h
- SOFT-ROCE DRIVER (rxe)
- M:    Moni Shoua <monis@mellanox.com>
- L:    linux-rdma@vger.kernel.org
- S:    Supported
- W:    https://github.com/SoftRoCE/rxe-dev/wiki/rxe-dev:-Home
- Q:    http://patchwork.kernel.org/project/linux-rdma/list/
- F:    drivers/infiniband/sw/rxe/
- F:    include/uapi/rdma/rdma_user_rxe.h
+ F:    drivers/platform/x86/mlx-platform.c
  
  MEMBARRIER SUPPORT
  M:    Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
@@@ -8711,6 -8744,18 +8745,18 @@@ S:    Maintaine
  F:    drivers/usb/misc/usb251xb.c
  F:    Documentation/devicetree/bindings/usb/usb251xb.txt
  
+ MICROSEMI SMART ARRAY SMARTPQI DRIVER (smartpqi)
+ M:    Don Brace <don.brace@microsemi.com>
+ L:    esc.storagedev@microsemi.com
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ F:    drivers/scsi/smartpqi/smartpqi*.[ch]
+ F:    drivers/scsi/smartpqi/Kconfig
+ F:    drivers/scsi/smartpqi/Makefile
+ F:    include/linux/cciss*.h
+ F:    include/uapi/linux/cciss*.h
+ F:    Documentation/scsi/smartpqi.txt
  MICROSOFT SURFACE PRO 3 BUTTON DRIVER
  M:    Chen Yu <yu.c.chen@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -8733,6 -8778,16 +8779,16 @@@ F:    Documentation/devicetree/bindings/mi
  F:    Documentation/mips/
  F:    arch/mips/
  
+ MIPS BOSTON DEVELOPMENT BOARD
+ M:    Paul Burton <paul.burton@imgtec.com>
+ L:    linux-mips@linux-mips.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/clock/img,boston-clock.txt
+ F:    arch/mips/boot/dts/img/boston.dts
+ F:    arch/mips/configs/generic/board-boston.config
+ F:    drivers/clk/imgtec/clk-boston.c
+ F:    include/dt-bindings/clock/boston-clock.h
  MIPS GENERIC PLATFORM
  M:    Paul Burton <paul.burton@imgtec.com>
  L:    linux-mips@linux-mips.org
@@@ -8748,16 -8803,6 +8804,6 @@@ F:     arch/mips/include/asm/mach-loongson3
  F:    drivers/*/*loongson1*
  F:    drivers/*/*/*loongson1*
  
- MIPS BOSTON DEVELOPMENT BOARD
- M:    Paul Burton <paul.burton@imgtec.com>
- L:    linux-mips@linux-mips.org
- S:    Maintained
- F:    Documentation/devicetree/bindings/clock/img,boston-clock.txt
- F:    arch/mips/boot/dts/img/boston.dts
- F:    arch/mips/configs/generic/board-boston.config
- F:    drivers/clk/imgtec/clk-boston.c
- F:    include/dt-bindings/clock/boston-clock.h
  MIROSOUND PCM20 FM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -8766,67 -8811,15 +8812,15 @@@ W:   https://linuxtv.or
  S:    Odd Fixes
  F:    drivers/media/radio/radio-miropcm20*
  
- MELLANOX MLX4 core VPI driver
- M:    Tariq Toukan <tariqt@mellanox.com>
- L:    netdev@vger.kernel.org
- L:    linux-rdma@vger.kernel.org
- W:    http://www.mellanox.com
- Q:    http://patchwork.ozlabs.org/project/netdev/list/
- S:    Supported
- F:    drivers/net/ethernet/mellanox/mlx4/
- F:    include/linux/mlx4/
- MELLANOX MLX4 IB driver
- M:    Yishai Hadas <yishaih@mellanox.com>
- L:    linux-rdma@vger.kernel.org
- W:    http://www.mellanox.com
- Q:    http://patchwork.kernel.org/project/linux-rdma/list/
- S:    Supported
- F:    drivers/infiniband/hw/mlx4/
- F:    include/linux/mlx4/
- F:    include/uapi/rdma/mlx4-abi.h
- MELLANOX MLX5 core VPI driver
- M:    Saeed Mahameed <saeedm@mellanox.com>
- M:    Matan Barak <matanb@mellanox.com>
- M:    Leon Romanovsky <leonro@mellanox.com>
- L:    netdev@vger.kernel.org
- L:    linux-rdma@vger.kernel.org
- W:    http://www.mellanox.com
- Q:    http://patchwork.ozlabs.org/project/netdev/list/
- S:    Supported
- F:    drivers/net/ethernet/mellanox/mlx5/core/
- F:    include/linux/mlx5/
- MELLANOX MLX5 IB driver
- M:    Matan Barak <matanb@mellanox.com>
- M:    Leon Romanovsky <leonro@mellanox.com>
- L:    linux-rdma@vger.kernel.org
- W:    http://www.mellanox.com
- Q:    http://patchwork.kernel.org/project/linux-rdma/list/
- S:    Supported
- F:    drivers/infiniband/hw/mlx5/
- F:    include/linux/mlx5/
- F:    include/uapi/rdma/mlx5-abi.h
- MELEXIS MLX90614 DRIVER
- M:    Crt Mori <cmo@melexis.com>
- L:    linux-iio@vger.kernel.org
- W:    http://www.melexis.com
- S:    Supported
- F:    drivers/iio/temperature/mlx90614.c
- MICROSEMI SMART ARRAY SMARTPQI DRIVER (smartpqi)
- M:    Don Brace <don.brace@microsemi.com>
- L:    esc.storagedev@microsemi.com
- L:    linux-scsi@vger.kernel.org
- S:    Supported
- F:    drivers/scsi/smartpqi/smartpqi*.[ch]
- F:    drivers/scsi/smartpqi/Kconfig
- F:    drivers/scsi/smartpqi/Makefile
- F:    include/linux/cciss*.h
- F:    include/uapi/linux/cciss*.h
- F:    Documentation/scsi/smartpqi.txt
+ MMP SUPPORT
+ M:    Eric Miao <eric.y.miao@gmail.com>
+ M:    Haojian Zhuang <haojian.zhuang@gmail.com>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ T:    git git://github.com/hzhuang1/linux.git
+ T:    git git://git.linaro.org/people/ycmiao/pxa-linux.git
+ S:    Maintained
+ F:    arch/arm/boot/dts/mmp*
+ F:    arch/arm/mach-mmp/
  
  MN88472 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
@@@ -8960,6 -8953,11 +8954,11 @@@ F:    drivers/mfd
  F:    include/linux/mfd/
  F:    include/dt-bindings/mfd/
  
+ MULTIMEDIA CARD (MMC) ETC. OVER SPI
+ S:    Orphan
+ F:    drivers/mmc/host/mmc_spi.c
+ F:    include/linux/spi/mmc_spi.h
  MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
  M:    Ulf Hansson <ulf.hansson@linaro.org>
  L:    linux-mmc@vger.kernel.org
@@@ -8970,11 -8968,6 +8969,6 @@@ F:     drivers/mmc
  F:    include/linux/mmc/
  F:    include/uapi/linux/mmc/
  
- MULTIMEDIA CARD (MMC) ETC. OVER SPI
- S:    Orphan
- F:    drivers/mmc/host/mmc_spi.c
- F:    include/linux/spi/mmc_spi.h
  MULTIPLEXER SUBSYSTEM
  M:    Peter Rosin <peda@axentia.se>
  S:    Maintained
@@@ -9037,10 -9030,6 +9031,6 @@@ S:     Maintaine
  F:    drivers/mtd/nand/
  F:    include/linux/mtd/nand*.h
  
- NATSEMI ETHERNET DRIVER (DP8381x)
- S:    Orphan
- F:    drivers/net/ethernet/natsemi/natsemi.c
  NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER
  M:    Daniel Mack <zonque@gmail.com>
  S:    Maintained
@@@ -9048,6 -9037,10 +9038,10 @@@ L:    alsa-devel@alsa-project.org (moderat
  W:    http://www.native-instruments.com
  F:    sound/usb/caiaq/
  
+ NATSEMI ETHERNET DRIVER (DP8381x)
+ S:    Orphan
+ F:    drivers/net/ethernet/natsemi/natsemi.c
  NCP FILESYSTEM
  M:    Petr Vandrovec <petr@vandrovec.name>
  S:    Odd Fixes
@@@ -9167,6 -9160,35 +9161,35 @@@ S:    Maintaine
  W:    https://fedorahosted.org/dropwatch/
  F:    net/core/drop_monitor.c
  
+ NETWORKING DRIVERS
+ L:    netdev@vger.kernel.org
+ W:    http://www.linuxfoundation.org/en/Net
+ Q:    http://patchwork.ozlabs.org/project/netdev/list/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
+ S:    Odd Fixes
+ F:    Documentation/devicetree/bindings/net/
+ F:    drivers/net/
+ F:    include/linux/if_*
+ F:    include/linux/netdevice.h
+ F:    include/linux/etherdevice.h
+ F:    include/linux/fcdevice.h
+ F:    include/linux/fddidevice.h
+ F:    include/linux/hippidevice.h
+ F:    include/linux/inetdevice.h
+ F:    include/uapi/linux/if_*
+ F:    include/uapi/linux/netdevice.h
+ NETWORKING DRIVERS (WIRELESS)
+ M:    Kalle Valo <kvalo@codeaurora.org>
+ L:    linux-wireless@vger.kernel.org
+ Q:    http://patchwork.kernel.org/project/linux-wireless/list/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/net/wireless/
+ F:    drivers/net/wireless/
  NETWORKING [DSA]
  M:    Andrew Lunn <andrew@lunn.ch>
  M:    Vivien Didelot <vivien.didelot@savoirfairelinux.com>
@@@ -9198,28 -9220,6 +9221,6 @@@ F:     tools/net
  F:    tools/testing/selftests/net/
  F:    lib/random32.c
  
- NETWORKING [IPv4/IPv6]
- M:    "David S. Miller" <davem@davemloft.net>
- M:    Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
- M:    Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
- L:    netdev@vger.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
- S:    Maintained
- F:    net/ipv4/
- F:    net/ipv6/
- F:    include/net/ip*
- F:    arch/x86/net/*
- NETWORKING [TLS]
- M:    Ilya Lesokhin <ilyal@mellanox.com>
- M:    Aviad Yehezkel <aviadye@mellanox.com>
- M:    Dave Watson <davejwatson@fb.com>
- L:    netdev@vger.kernel.org
- S:    Maintained
- F:    net/tls/*
- F:    include/uapi/linux/tls.h
- F:    include/net/tls.h
  NETWORKING [IPSEC]
  M:    Steffen Klassert <steffen.klassert@secunet.com>
  M:    Herbert Xu <herbert@gondor.apana.org.au>
@@@ -9244,44 -9244,37 +9245,37 @@@ F:   net/ipv6/ip6_vti.
  F:    include/uapi/linux/xfrm.h
  F:    include/net/xfrm.h
  
+ NETWORKING [IPv4/IPv6]
+ M:    "David S. Miller" <davem@davemloft.net>
+ M:    Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
+ M:    Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
+ L:    netdev@vger.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
+ S:    Maintained
+ F:    net/ipv4/
+ F:    net/ipv6/
+ F:    include/net/ip*
+ F:    arch/x86/net/*
  NETWORKING [LABELED] (NetLabel, CIPSO, Labeled IPsec, SECMARK)
  M:    Paul Moore <paul@paul-moore.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  
+ NETWORKING [TLS]
+ M:    Ilya Lesokhin <ilyal@mellanox.com>
+ M:    Aviad Yehezkel <aviadye@mellanox.com>
+ M:    Dave Watson <davejwatson@fb.com>
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    net/tls/*
+ F:    include/uapi/linux/tls.h
+ F:    include/net/tls.h
  NETWORKING [WIRELESS]
  L:    linux-wireless@vger.kernel.org
  Q:    http://patchwork.kernel.org/project/linux-wireless/list/
  
- NETWORKING DRIVERS
- L:    netdev@vger.kernel.org
- W:    http://www.linuxfoundation.org/en/Net
- Q:    http://patchwork.ozlabs.org/project/netdev/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
- S:    Odd Fixes
- F:    Documentation/devicetree/bindings/net/
- F:    drivers/net/
- F:    include/linux/if_*
- F:    include/linux/netdevice.h
- F:    include/linux/etherdevice.h
- F:    include/linux/fcdevice.h
- F:    include/linux/fddidevice.h
- F:    include/linux/hippidevice.h
- F:    include/linux/inetdevice.h
- F:    include/uapi/linux/if_*
- F:    include/uapi/linux/netdevice.h
- NETWORKING DRIVERS (WIRELESS)
- M:    Kalle Valo <kvalo@codeaurora.org>
- L:    linux-wireless@vger.kernel.org
- Q:    http://patchwork.kernel.org/project/linux-wireless/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
- S:    Maintained
- F:    Documentation/devicetree/bindings/net/wireless/
- F:    drivers/net/wireless/
  NETXEN (1/10) GbE SUPPORT
  M:    Manish Chopra <manish.chopra@cavium.com>
  M:    Rahul Verma <rahul.verma@cavium.com>
@@@ -9374,14 -9367,6 +9368,6 @@@ S:     Maintaine
  F:    drivers/media/i2c/et8ek8
  F:    drivers/media/i2c/ad5820.c
  
- NOKIA N900 CAMERA SUPPORT (ET8EK8 SENSOR, AD5820 FOCUS)
- M:    Pavel Machek <pavel@ucw.cz>
- M:    Sakari Ailus <sakari.ailus@iki.fi>
- L:    linux-media@vger.kernel.org
- S:    Maintained
- F:    drivers/media/i2c/et8ek8
- F:    drivers/media/i2c/ad5820.c
  NOKIA N900 POWER SUPPLY DRIVERS
  R:    Pali Rohár <pali.rohar@gmail.com>
  F:    include/linux/power/bq2415x_charger.h
@@@ -9393,6 -9378,12 +9379,12 @@@ F:    drivers/power/supply/bq27xxx_battery
  F:    drivers/power/supply/isp1704_charger.c
  F:    drivers/power/supply/rx51_battery.c
  
+ NTB AMD DRIVER
+ M:    Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
+ L:    linux-ntb@googlegroups.com
+ S:    Supported
+ F:    drivers/ntb/hw/amd/
  NTB DRIVER CORE
  M:    Jon Mason <jdmason@kudzu.us>
  M:    Dave Jiang <dave.jiang@intel.com>
@@@ -9422,12 -9413,6 +9414,6 @@@ W:     https://github.com/jonmason/ntb/wik
  T:    git git://github.com/jonmason/ntb.git
  F:    drivers/ntb/hw/intel/
  
- NTB AMD DRIVER
- M:    Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
- L:    linux-ntb@googlegroups.com
- S:    Supported
- F:    drivers/ntb/hw/amd/
  NTFS FILESYSTEM
  M:    Anton Altaparmakov <anton@tuxera.com>
  L:    linux-ntfs-dev@lists.sourceforge.net
@@@ -9457,15 -9442,6 +9443,6 @@@ F:     drivers/nvme/host
  F:    include/linux/nvme.h
  F:    include/uapi/linux/nvme_ioctl.h
  
- NVM EXPRESS TARGET DRIVER
- M:    Christoph Hellwig <hch@lst.de>
- M:    Sagi Grimberg <sagi@grimberg.me>
- L:    linux-nvme@lists.infradead.org
- T:    git://git.infradead.org/nvme.git
- W:    http://git.infradead.org/nvme.git
- S:    Supported
- F:    drivers/nvme/target/
  NVM EXPRESS FC TRANSPORT DRIVERS
  M:    James Smart <james.smart@broadcom.com>
  L:    linux-nvme@lists.infradead.org
@@@ -9476,6 -9452,15 +9453,15 @@@ F:    drivers/nvme/host/fc.
  F:    drivers/nvme/target/fc.c
  F:    drivers/nvme/target/fcloop.c
  
+ NVM EXPRESS TARGET DRIVER
+ M:    Christoph Hellwig <hch@lst.de>
+ M:    Sagi Grimberg <sagi@grimberg.me>
+ L:    linux-nvme@lists.infradead.org
+ T:    git://git.infradead.org/nvme.git
+ W:    http://git.infradead.org/nvme.git
+ S:    Supported
+ F:    drivers/nvme/target/
  NVMEM FRAMEWORK
  M:    Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  S:    Maintained
@@@ -9484,13 -9469,6 +9470,6 @@@ F:     Documentation/devicetree/bindings/nv
  F:    include/linux/nvmem-consumer.h
  F:    include/linux/nvmem-provider.h
  
- NXP-NCI NFC DRIVER
- M:    Clément Perrochaud <clement.perrochaud@effinnov.com>
- R:    Charles Gorand <charles.gorand@effinnov.com>
- L:    linux-nfc@lists.01.org (moderated for non-subscribers)
- S:    Supported
- F:    drivers/nfc/nxp-nci
  NXP TDA998X DRM DRIVER
  M:    Russell King <linux@armlinux.org.uk>
  S:    Supported
@@@ -9505,55 -9483,31 +9484,31 @@@ L:   alsa-devel@alsa-project.org (moderat
  S:    Maintained
  F:    sound/soc/codecs/tfa9879*
  
+ NXP-NCI NFC DRIVER
+ M:    Clément Perrochaud <clement.perrochaud@effinnov.com>
+ R:    Charles Gorand <charles.gorand@effinnov.com>
+ L:    linux-nfc@lists.01.org (moderated for non-subscribers)
+ S:    Supported
+ F:    drivers/nfc/nxp-nci
  OBJTOOL
  M:    Josh Poimboeuf <jpoimboe@redhat.com>
  S:    Supported
  F:    tools/objtool/
  
- OMAP1 SUPPORT
- M:    Aaro Koskinen <aaro.koskinen@iki.fi>
- M:    Tony Lindgren <tony@atomide.com>
+ OMAP AUDIO SUPPORT
+ M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
+ M:    Jarkko Nikula <jarkko.nikula@bitmer.com>
+ L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  L:    linux-omap@vger.kernel.org
- Q:    http://patchwork.kernel.org/project/linux-omap/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
  S:    Maintained
- F:    arch/arm/mach-omap1/
- F:    arch/arm/plat-omap/
- F:    arch/arm/configs/omap1_defconfig
- F:    drivers/i2c/busses/i2c-omap.c
- F:    include/linux/i2c-omap.h
+ F:    sound/soc/omap/
  
- OMAP2+ SUPPORT
- M:    Tony Lindgren <tony@atomide.com>
+ OMAP CLOCK FRAMEWORK SUPPORT
+ M:    Paul Walmsley <paul@pwsan.com>
  L:    linux-omap@vger.kernel.org
- W:    http://www.muru.com/linux/omap/
- W:    http://linux.omap.com/
- Q:    http://patchwork.kernel.org/project/linux-omap/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
  S:    Maintained
- F:    arch/arm/mach-omap2/
- F:    arch/arm/plat-omap/
- F:    arch/arm/configs/omap2plus_defconfig
- F:    drivers/i2c/busses/i2c-omap.c
- F:    drivers/irqchip/irq-omap-intc.c
- F:    drivers/mfd/*omap*.c
- F:    drivers/mfd/menelaus.c
- F:    drivers/mfd/palmas.c
- F:    drivers/mfd/tps65217.c
- F:    drivers/mfd/tps65218.c
- F:    drivers/mfd/tps65910.c
- F:    drivers/mfd/twl-core.[ch]
- F:    drivers/mfd/twl4030*.c
- F:    drivers/mfd/twl6030*.c
- F:    drivers/mfd/twl6040*.c
- F:    drivers/regulator/palmas-regulator*.c
- F:    drivers/regulator/pbias-regulator.c
- F:    drivers/regulator/tps65217-regulator.c
- F:    drivers/regulator/tps65218-regulator.c
- F:    drivers/regulator/tps65910-regulator.c
- F:    drivers/regulator/twl-regulator.c
- F:    drivers/regulator/twl6030-regulator.c
- F:    include/linux/i2c-omap.h
+ F:    arch/arm/*omap*/*clock*
  
  OMAP DEVICE TREE SUPPORT
  M:    Benoît Cousson <bcousson@baylibre.com>
@@@ -9567,33 -9521,20 +9522,20 @@@ F:   arch/arm/boot/dts/*am4
  F:    arch/arm/boot/dts/*am5*
  F:    arch/arm/boot/dts/*dra7*
  
- OMAP CLOCK FRAMEWORK SUPPORT
- M:    Paul Walmsley <paul@pwsan.com>
- L:    linux-omap@vger.kernel.org
- S:    Maintained
- F:    arch/arm/*omap*/*clock*
- OMAP POWER MANAGEMENT SUPPORT
- M:    Kevin Hilman <khilman@kernel.org>
- L:    linux-omap@vger.kernel.org
- S:    Maintained
- F:    arch/arm/*omap*/*pm*
- F:    drivers/cpufreq/omap-cpufreq.c
- OMAP POWERDOMAIN SOC ADAPTATION LAYER SUPPORT
- M:    Rajendra Nayak <rnayak@codeaurora.org>
- M:    Paul Walmsley <paul@pwsan.com>
+ OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2)
+ M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
  L:    linux-omap@vger.kernel.org
+ L:    linux-fbdev@vger.kernel.org
  S:    Maintained
- F:    arch/arm/mach-omap2/prm*
+ F:    drivers/video/fbdev/omap2/
+ F:    Documentation/arm/OMAP/DSS
  
- OMAP AUDIO SUPPORT
- M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
- M:    Jarkko Nikula <jarkko.nikula@bitmer.com>
- L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
+ OMAP FRAMEBUFFER SUPPORT
+ M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
+ L:    linux-fbdev@vger.kernel.org
  L:    linux-omap@vger.kernel.org
  S:    Maintained
- F:    sound/soc/omap/
+ F:    drivers/video/fbdev/omap/
  
  OMAP GENERAL PURPOSE MEMORY CONTROLLER SUPPORT
  M:    Roger Quadros <rogerq@ti.com>
@@@ -9603,20 -9544,14 +9545,14 @@@ S:   Maintaine
  F:    drivers/memory/omap-gpmc.c
  F:    arch/arm/mach-omap2/*gpmc*
  
- OMAP FRAMEBUFFER SUPPORT
- M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
- L:    linux-fbdev@vger.kernel.org
- L:    linux-omap@vger.kernel.org
- S:    Maintained
- F:    drivers/video/fbdev/omap/
- OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2)
- M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
+ OMAP GPIO DRIVER
+ M:    Grygorii Strashko <grygorii.strashko@ti.com>
+ M:    Santosh Shilimkar <ssantosh@kernel.org>
+ M:    Kevin Hilman <khilman@kernel.org>
  L:    linux-omap@vger.kernel.org
- L:    linux-fbdev@vger.kernel.org
  S:    Maintained
- F:    drivers/video/fbdev/omap2/
- F:    Documentation/arm/OMAP/DSS
+ F:    Documentation/devicetree/bindings/gpio/gpio-omap.txt
+ F:    drivers/gpio/gpio-omap.c
  
  OMAP HARDWARE SPINLOCK SUPPORT
  M:    Ohad Ben-Cohen <ohad@wizery.com>
@@@ -9624,30 -9559,12 +9560,12 @@@ L:   linux-omap@vger.kernel.or
  S:    Maintained
  F:    drivers/hwspinlock/omap_hwspinlock.c
  
- OMAP MMC SUPPORT
- M:    Jarkko Lavinen <jarkko.lavinen@nokia.com>
- L:    linux-omap@vger.kernel.org
- S:    Maintained
- F:    drivers/mmc/host/omap.c
  OMAP HS MMC SUPPORT
  L:    linux-mmc@vger.kernel.org
  L:    linux-omap@vger.kernel.org
  S:    Orphan
  F:    drivers/mmc/host/omap_hsmmc.c
  
- OMAP RANDOM NUMBER GENERATOR SUPPORT
- M:    Deepak Saxena <dsaxena@plexity.net>
- S:    Maintained
- F:    drivers/char/hw_random/omap-rng.c
- OMAP HWMOD SUPPORT
- M:    Benoît Cousson <bcousson@baylibre.com>
- M:    Paul Walmsley <paul@pwsan.com>
- L:    linux-omap@vger.kernel.org
- S:    Maintained
- F:    arch/arm/mach-omap2/omap_hwmod.*
  OMAP HWMOD DATA
  M:    Paul Walmsley <paul@pwsan.com>
  L:    linux-omap@vger.kernel.org
@@@ -9660,6 -9577,13 +9578,13 @@@ L:    linux-omap@vger.kernel.or
  S:    Maintained
  F:    arch/arm/mach-omap2/omap_hwmod_44xx_data.c
  
+ OMAP HWMOD SUPPORT
+ M:    Benoît Cousson <bcousson@baylibre.com>
+ M:    Paul Walmsley <paul@pwsan.com>
+ L:    linux-omap@vger.kernel.org
+ S:    Maintained
+ F:    arch/arm/mach-omap2/omap_hwmod.*
  OMAP IMAGING SUBSYSTEM (OMAP3 ISP and OMAP4 ISS)
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-media@vger.kernel.org
@@@ -9668,6 -9592,31 +9593,31 @@@ F:    Documentation/devicetree/bindings/me
  F:    drivers/media/platform/omap3isp/
  F:    drivers/staging/media/omap4iss/
  
+ OMAP MMC SUPPORT
+ M:    Jarkko Lavinen <jarkko.lavinen@nokia.com>
+ L:    linux-omap@vger.kernel.org
+ S:    Maintained
+ F:    drivers/mmc/host/omap.c
+ OMAP POWER MANAGEMENT SUPPORT
+ M:    Kevin Hilman <khilman@kernel.org>
+ L:    linux-omap@vger.kernel.org
+ S:    Maintained
+ F:    arch/arm/*omap*/*pm*
+ F:    drivers/cpufreq/omap-cpufreq.c
+ OMAP POWERDOMAIN SOC ADAPTATION LAYER SUPPORT
+ M:    Rajendra Nayak <rnayak@codeaurora.org>
+ M:    Paul Walmsley <paul@pwsan.com>
+ L:    linux-omap@vger.kernel.org
+ S:    Maintained
+ F:    arch/arm/mach-omap2/prm*
+ OMAP RANDOM NUMBER GENERATOR SUPPORT
+ M:    Deepak Saxena <dsaxena@plexity.net>
+ S:    Maintained
+ F:    drivers/char/hw_random/omap-rng.c
  OMAP USB SUPPORT
  L:    linux-usb@vger.kernel.org
  L:    linux-omap@vger.kernel.org
@@@ -9675,20 -9624,56 +9625,56 @@@ S:   Orpha
  F:    drivers/usb/*/*omap*
  F:    arch/arm/*omap*/usb*
  
- OMAP GPIO DRIVER
- M:    Grygorii Strashko <grygorii.strashko@ti.com>
- M:    Santosh Shilimkar <ssantosh@kernel.org>
- M:    Kevin Hilman <khilman@kernel.org>
+ OMAP/NEWFLOW NANOBONE MACHINE SUPPORT
+ M:    Mark Jackson <mpfj@newflow.co.uk>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/gpio/gpio-omap.txt
- F:    drivers/gpio/gpio-omap.c
+ F:    arch/arm/boot/dts/am335x-nano.dts
  
- OMAP/NEWFLOW NANOBONE MACHINE SUPPORT
- M:    Mark Jackson <mpfj@newflow.co.uk>
+ OMAP1 SUPPORT
+ M:    Aaro Koskinen <aaro.koskinen@iki.fi>
+ M:    Tony Lindgren <tony@atomide.com>
+ L:    linux-omap@vger.kernel.org
+ Q:    http://patchwork.kernel.org/project/linux-omap/list/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
+ S:    Maintained
+ F:    arch/arm/mach-omap1/
+ F:    arch/arm/plat-omap/
+ F:    arch/arm/configs/omap1_defconfig
+ F:    drivers/i2c/busses/i2c-omap.c
+ F:    include/linux/i2c-omap.h
+ OMAP2+ SUPPORT
+ M:    Tony Lindgren <tony@atomide.com>
  L:    linux-omap@vger.kernel.org
+ W:    http://www.muru.com/linux/omap/
+ W:    http://linux.omap.com/
+ Q:    http://patchwork.kernel.org/project/linux-omap/list/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
  S:    Maintained
- F:    arch/arm/boot/dts/am335x-nano.dts
+ F:    arch/arm/mach-omap2/
+ F:    arch/arm/plat-omap/
+ F:    arch/arm/configs/omap2plus_defconfig
+ F:    drivers/i2c/busses/i2c-omap.c
+ F:    drivers/irqchip/irq-omap-intc.c
+ F:    drivers/mfd/*omap*.c
+ F:    drivers/mfd/menelaus.c
+ F:    drivers/mfd/palmas.c
+ F:    drivers/mfd/tps65217.c
+ F:    drivers/mfd/tps65218.c
+ F:    drivers/mfd/tps65910.c
+ F:    drivers/mfd/twl-core.[ch]
+ F:    drivers/mfd/twl4030*.c
+ F:    drivers/mfd/twl6030*.c
+ F:    drivers/mfd/twl6040*.c
+ F:    drivers/regulator/palmas-regulator*.c
+ F:    drivers/regulator/pbias-regulator.c
+ F:    drivers/regulator/tps65217-regulator.c
+ F:    drivers/regulator/tps65218-regulator.c
+ F:    drivers/regulator/tps65910-regulator.c
+ F:    drivers/regulator/twl-regulator.c
+ F:    drivers/regulator/twl6030-regulator.c
+ F:    include/linux/i2c-omap.h
  
  OMFS FILESYSTEM
  M:    Bob Copeland <me@bobcopeland.com>
@@@ -9709,6 -9694,13 +9695,13 @@@ M:    Harald Welte <laforge@gnumonks.org
  S:    Maintained
  F:    drivers/char/pcmcia/cm4040_cs.*
  
+ OMNIVISION OV13858 SENSOR DRIVER
+ M:    Sakari Ailus <sakari.ailus@linux.intel.com>
+ L:    linux-media@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ S:    Maintained
+ F:    drivers/media/i2c/ov13858.c
  OMNIVISION OV5640 SENSOR DRIVER
  M:    Steve Longerbeam <slongerbeam@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -9731,13 -9723,6 +9724,6 @@@ S:     Maintaine
  F:    drivers/media/i2c/ov7670.c
  F:    Documentation/devicetree/bindings/media/i2c/ov7670.txt
  
- OMNIVISION OV13858 SENSOR DRIVER
- M:    Sakari Ailus <sakari.ailus@linux.intel.com>
- L:    linux-media@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- S:    Maintained
- F:    drivers/media/i2c/ov13858.c
  ONENAND FLASH DRIVER
  M:    Kyungmin Park <kyungmin.park@samsung.com>
  L:    linux-mtd@lists.infradead.org
@@@ -9755,12 -9740,26 +9741,26 @@@ F:   drivers/scsi/osst.
  F:    drivers/scsi/osst_*.h
  F:    drivers/scsi/st.h
  
- OPENCORES I2C BUS DRIVER
- M:    Peter Korsgaard <jacmet@sunsite.dk>
- L:    linux-i2c@vger.kernel.org
+ OP-TEE DRIVER
+ M:    Jens Wiklander <jens.wiklander@linaro.org>
  S:    Maintained
- F:    Documentation/i2c/busses/i2c-ocores
- F:    drivers/i2c/busses/i2c-ocores.c
+ F:    drivers/tee/optee/
+ OPA-VNIC DRIVER
+ M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
+ M:    Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
+ L:    linux-rdma@vger.kernel.org
+ S:    Supported
+ F:    drivers/infiniband/ulp/opa_vnic
+ OPEN FIRMWARE AND DEVICE TREE OVERLAYS
+ M:    Pantelis Antoniou <pantelis.antoniou@konsulko.com>
+ L:    devicetree@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/dynamic-resolution-notes.txt
+ F:    Documentation/devicetree/overlay-notes.txt
+ F:    drivers/of/overlay.c
+ F:    drivers/of/resolver.c
  
  OPEN FIRMWARE AND FLATTENED DEVICE TREE
  M:    Rob Herring <robh+dt@kernel.org>
@@@ -9785,14 -9784,12 +9785,12 @@@ F:   Documentation/devicetree
  F:    arch/*/boot/dts/
  F:    include/dt-bindings/
  
- OPEN FIRMWARE AND DEVICE TREE OVERLAYS
- M:    Pantelis Antoniou <pantelis.antoniou@konsulko.com>
- L:    devicetree@vger.kernel.org
+ OPENCORES I2C BUS DRIVER
+ M:    Peter Korsgaard <jacmet@sunsite.dk>
+ L:    linux-i2c@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/dynamic-resolution-notes.txt
- F:    Documentation/devicetree/overlay-notes.txt
- F:    drivers/of/overlay.c
- F:    drivers/of/resolver.c
+ F:    Documentation/i2c/busses/i2c-ocores
+ F:    drivers/i2c/busses/i2c-ocores.c
  
  OPENRISC ARCHITECTURE
  M:    Jonas Bonn <jonas@southpole.se>
@@@ -9841,11 -9838,6 +9839,6 @@@ F:     arch/*/oprofile
  F:    drivers/oprofile/
  F:    include/linux/oprofile.h
  
- OP-TEE DRIVER
- M:    Jens Wiklander <jens.wiklander@linaro.org>
- S:    Maintained
- F:    drivers/tee/optee/
  ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
  M:    Mark Fasheh <mfasheh@versity.com>
  M:    Joel Becker <jlbec@evilplan.org>
@@@ -9856,6 -9848,14 +9849,14 @@@ F:    Documentation/filesystems/ocfs2.tx
  F:    Documentation/filesystems/dlmfs.txt
  F:    fs/ocfs2/
  
+ ORANGEFS FILESYSTEM
+ M:    Mike Marshall <hubcap@omnibond.com>
+ L:    pvfs2-developers@beowulf-underground.org (subscribers-only)
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux.git
+ S:    Supported
+ F:    fs/orangefs/
+ F:    Documentation/filesystems/orangefs.txt
  ORINOCO DRIVER
  L:    linux-wireless@vger.kernel.org
  W:    http://wireless.kernel.org/en/users/Drivers/orinoco
@@@ -9870,6 -9870,16 +9871,16 @@@ F:    drivers/scsi/osd
  F:    include/scsi/osd_*
  F:    fs/exofs/
  
+ OV2659 OMNIVISION SENSOR DRIVER
+ M:    "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
+ L:    linux-media@vger.kernel.org
+ W:    https://linuxtv.org
+ Q:    http://patchwork.linuxtv.org/project/linux-media/list/
+ T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
+ S:    Maintained
+ F:    drivers/media/i2c/ov2659.c
+ F:    include/media/i2c/ov2659.h
  OVERLAY FILESYSTEM
  M:    Miklos Szeredi <miklos@szeredi.hu>
  L:    linux-unionfs@vger.kernel.org
@@@ -9878,14 -9888,6 +9889,6 @@@ S:     Supporte
  F:    fs/overlayfs/
  F:    Documentation/filesystems/overlayfs.txt
  
- ORANGEFS FILESYSTEM
- M:    Mike Marshall <hubcap@omnibond.com>
- L:    pvfs2-developers@beowulf-underground.org (subscribers-only)
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux.git
- S:    Supported
- F:    fs/orangefs/
- F:    Documentation/filesystems/orangefs.txt
  P54 WIRELESS DRIVER
  M:    Christian Lamparter <chunkeey@googlemail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -9926,11 -9928,11 +9929,11 @@@ F:   Documentation/mn10300
  F:    arch/mn10300/
  
  PARALLEL LCD/KEYPAD PANEL DRIVER
- M:      Willy Tarreau <willy@haproxy.com>
- M:      Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
- S:      Odd Fixes
- F:      Documentation/misc-devices/lcd-panel-cgram.txt
- F:      drivers/misc/panel.c
+ M:    Willy Tarreau <willy@haproxy.com>
+ M:    Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
+ S:    Odd Fixes
+ F:    Documentation/misc-devices/lcd-panel-cgram.txt
+ F:    drivers/misc/panel.c
  
  PARALLEL PORT SUBSYSTEM
  M:    Sudip Mukherjee <sudipm.mukherjee@gmail.com>
@@@ -10026,42 -10028,13 +10029,13 @@@ M:        Khalid Aziz <khalid@gonehiking.org
  S:    Maintained
  F:    drivers/firmware/pcdp.*
  
- PCI ERROR RECOVERY
- M:    Linas Vepstas <linasvepstas@gmail.com>
- L:    linux-pci@vger.kernel.org
- S:    Supported
- F:    Documentation/PCI/pci-error-recovery.txt
- PCI ENHANCED ERROR HANDLING (EEH) FOR POWERPC
- M:    Russell Currey <ruscur@russell.cc>
- L:    linuxppc-dev@lists.ozlabs.org
- S:    Supported
- F:    Documentation/powerpc/eeh-pci-error-recovery.txt
- F:    arch/powerpc/kernel/eeh*.c
- F:    arch/powerpc/platforms/*/eeh*.c
- F:    arch/powerpc/include/*/eeh*.h
- PCI SUBSYSTEM
- M:    Bjorn Helgaas <bhelgaas@google.com>
- L:    linux-pci@vger.kernel.org
- Q:    http://patchwork.ozlabs.org/project/linux-pci/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git
- S:    Supported
- F:    Documentation/devicetree/bindings/pci/
- F:    Documentation/PCI/
- F:    drivers/pci/
- F:    include/linux/pci*
- F:    arch/x86/pci/
- F:    arch/x86/kernel/quirks.c
- PCI ENDPOINT SUBSYSTEM
- M:    Kishon Vijay Abraham I <kishon@ti.com>
+ PCI DRIVER FOR AARDVARK (Marvell Armada 3700)
+ M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  L:    linux-pci@vger.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kishon/pci-endpoint.git
- S:    Supported
- F:    drivers/pci/endpoint/
- F:    drivers/misc/pci_endpoint_test.c
- F:    tools/pci/
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/pci/aardvark-pci.txt
+ F:    drivers/pci/host/pci-aardvark.c
  
  PCI DRIVER FOR ALTERA PCIE IP
  M:    Ley Foon Tan <lftan@altera.com>
@@@ -10071,6 -10044,14 +10045,14 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/pci/altera-pcie.txt
  F:    drivers/pci/host/pcie-altera.c
  
+ PCI DRIVER FOR APPLIEDMICRO XGENE
+ M:    Tanmay Inamdar <tinamdar@apm.com>
+ L:    linux-pci@vger.kernel.org
+ L:    linux-arm-kernel@lists.infradead.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/pci/xgene-pci.txt
+ F:    drivers/pci/host/pci-xgene.c
  PCI DRIVER FOR ARM VERSATILE PLATFORM
  M:    Rob Herring <robh@kernel.org>
  L:    linux-pci@vger.kernel.org
@@@ -10087,14 -10068,6 +10069,6 @@@ S:  Maintaine
  F:    Documentation/devicetree/bindings/pci/pci-armada8k.txt
  F:    drivers/pci/dwc/pcie-armada8k.c
  
- PCI DRIVER FOR APPLIEDMICRO XGENE
- M:    Tanmay Inamdar <tinamdar@apm.com>
- L:    linux-pci@vger.kernel.org
- L:    linux-arm-kernel@lists.infradead.org
- S:    Maintained
- F:    Documentation/devicetree/bindings/pci/xgene-pci.txt
- F:    drivers/pci/host/pci-xgene.c
  PCI DRIVER FOR FREESCALE LAYERSCAPE
  M:    Minghuan Lian <minghuan.Lian@freescale.com>
  M:    Mingkai Hu <mingkai.hu@freescale.com>
@@@ -10105,6 -10078,15 +10079,15 @@@ L: linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    drivers/pci/dwc/*layerscape*
  
+ PCI DRIVER FOR GENERIC OF HOSTS
+ M:    Will Deacon <will.deacon@arm.com>
+ L:    linux-pci@vger.kernel.org
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/pci/host-generic-pci.txt
+ F:    drivers/pci/host/pci-host-common.c
+ F:    drivers/pci/host/pci-host-generic.c
  PCI DRIVER FOR IMX6
  M:    Richard Zhu <hongxing.zhu@nxp.com>
  M:    Lucas Stach <l.stach@pengutronix.de>
@@@ -10114,28 -10096,11 +10097,11 @@@ S:        Maintaine
  F:    Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
  F:    drivers/pci/dwc/*imx6*
  
- PCI DRIVER FOR TI KEYSTONE
- M:    Murali Karicheri <m-karicheri2@ti.com>
- L:    linux-pci@vger.kernel.org
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    drivers/pci/dwc/*keystone*
- PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
- M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
- M:    Jason Cooper <jason@lakedaemon.net>
- L:    linux-pci@vger.kernel.org
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    drivers/pci/host/*mvebu*
- PCI DRIVER FOR AARDVARK (Marvell Armada 3700)
- M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+ PCI DRIVER FOR INTEL VOLUME MANAGEMENT DEVICE (VMD)
+ M:    Keith Busch <keith.busch@intel.com>
  L:    linux-pci@vger.kernel.org
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    Documentation/devicetree/bindings/pci/aardvark-pci.txt
- F:    drivers/pci/host/pci-aardvark.c
+ S:    Supported
+ F:    drivers/pci/host/vmd.c
  
  PCI DRIVER FOR MICROSEMI SWITCHTEC
  M:    Kurt Schwemmer <kurt.schwemmer@microsemi.com>
@@@ -10148,6 -10113,14 +10114,14 @@@ F: Documentation/ABI/testing/sysfs-clas
  F:    drivers/pci/switch/switchtec*
  F:    include/uapi/linux/switchtec_ioctl.h
  
+ PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
+ M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+ M:    Jason Cooper <jason@lakedaemon.net>
+ L:    linux-pci@vger.kernel.org
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    drivers/pci/host/*mvebu*
  PCI DRIVER FOR NVIDIA TEGRA
  M:    Thierry Reding <thierry.reding@gmail.com>
  L:    linux-tegra@vger.kernel.org
@@@ -10156,14 -10129,6 +10130,6 @@@ S:  Supporte
  F:    Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
  F:    drivers/pci/host/pci-tegra.c
  
- PCI DRIVER FOR TI DRA7XX
- M:    Kishon Vijay Abraham I <kishon@ti.com>
- L:    linux-omap@vger.kernel.org
- L:    linux-pci@vger.kernel.org
- S:    Supported
- F:    Documentation/devicetree/bindings/pci/ti-pci.txt
- F:    drivers/pci/dwc/pci-dra7xx.c
  PCI DRIVER FOR RENESAS R-CAR
  M:    Simon Horman <horms@verge.net.au>
  L:    linux-pci@vger.kernel.org
@@@ -10187,26 -10152,44 +10153,44 @@@ S:        Maintaine
  F:    Documentation/devicetree/bindings/pci/designware-pcie.txt
  F:    drivers/pci/dwc/*designware*
  
- PCI DRIVER FOR GENERIC OF HOSTS
- M:    Will Deacon <will.deacon@arm.com>
+ PCI DRIVER FOR TI DRA7XX
+ M:    Kishon Vijay Abraham I <kishon@ti.com>
+ L:    linux-omap@vger.kernel.org
+ L:    linux-pci@vger.kernel.org
+ S:    Supported
+ F:    Documentation/devicetree/bindings/pci/ti-pci.txt
+ F:    drivers/pci/dwc/pci-dra7xx.c
+ PCI DRIVER FOR TI KEYSTONE
+ M:    Murali Karicheri <m-karicheri2@ti.com>
  L:    linux-pci@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
- F:    Documentation/devicetree/bindings/pci/host-generic-pci.txt
- F:    drivers/pci/host/pci-host-common.c
- F:    drivers/pci/host/pci-host-generic.c
+ F:    drivers/pci/dwc/*keystone*
  
- PCI DRIVER FOR INTEL VOLUME MANAGEMENT DEVICE (VMD)
- M:    Keith Busch <keith.busch@intel.com>
+ PCI ENDPOINT SUBSYSTEM
+ M:    Kishon Vijay Abraham I <kishon@ti.com>
  L:    linux-pci@vger.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kishon/pci-endpoint.git
  S:    Supported
- F:    drivers/pci/host/vmd.c
+ F:    drivers/pci/endpoint/
+ F:    drivers/misc/pci_endpoint_test.c
+ F:    tools/pci/
  
- PCIE DRIVER FOR ST SPEAR13XX
- M:    Pratyush Anand <pratyush.anand@gmail.com>
+ PCI ENHANCED ERROR HANDLING (EEH) FOR POWERPC
+ M:    Russell Currey <ruscur@russell.cc>
+ L:    linuxppc-dev@lists.ozlabs.org
+ S:    Supported
+ F:    Documentation/powerpc/eeh-pci-error-recovery.txt
+ F:    arch/powerpc/kernel/eeh*.c
+ F:    arch/powerpc/platforms/*/eeh*.c
+ F:    arch/powerpc/include/*/eeh*.h
+ PCI ERROR RECOVERY
+ M:    Linas Vepstas <linasvepstas@gmail.com>
  L:    linux-pci@vger.kernel.org
- S:    Maintained
- F:    drivers/pci/dwc/*spear*
+ S:    Supported
+ F:    Documentation/PCI/pci-error-recovery.txt
  
  PCI MSI DRIVER FOR ALTERA MSI IP
  M:    Ley Foon Tan <lftan@altera.com>
@@@ -10224,6 -10207,19 +10208,19 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/pci/xgene-pci-msi.txt
  F:    drivers/pci/host/pci-xgene-msi.c
  
+ PCI SUBSYSTEM
+ M:    Bjorn Helgaas <bhelgaas@google.com>
+ L:    linux-pci@vger.kernel.org
+ Q:    http://patchwork.ozlabs.org/project/linux-pci/list/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git
+ S:    Supported
+ F:    Documentation/devicetree/bindings/pci/
+ F:    Documentation/PCI/
+ F:    drivers/pci/
+ F:    include/linux/pci*
+ F:    arch/x86/pci/
+ F:    arch/x86/kernel/quirks.c
  PCIE DRIVER FOR AXIS ARTPEC
  M:    Niklas Cassel <niklas.cassel@axis.com>
  M:    Jesper Nilsson <jesper.nilsson@axis.com>
@@@ -10233,6 -10229,14 +10230,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/pci/axis,artpec*
  F:    drivers/pci/dwc/*artpec*
  
+ PCIE DRIVER FOR CAVIUM THUNDERX
+ M:    David Daney <david.daney@cavium.com>
+ L:    linux-pci@vger.kernel.org
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Supported
+ F:    Documentation/devicetree/bindings/pci/pci-thunder-*
+ F:    drivers/pci/host/pci-thunder-*
  PCIE DRIVER FOR HISILICON
  M:    Zhou Wang <wangzhou1@hisilicon.com>
  M:    Gabriele Paoloni <gabriele.paoloni@huawei.com>
@@@ -10249,6 -10253,21 +10254,21 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/pci/pcie-kirin.txt
  F:    drivers/pci/dwc/pcie-kirin.c
  
+ PCIE DRIVER FOR MEDIATEK
+ M:    Ryder Lee <ryder.lee@mediatek.com>
+ L:    linux-pci@vger.kernel.org
+ L:    linux-mediatek@lists.infradead.org
+ S:    Supported
+ F:    Documentation/devicetree/bindings/pci/mediatek*
+ F:    drivers/pci/host/*mediatek*
+ PCIE DRIVER FOR QUALCOMM MSM
+ M:    Stanimir Varbanov <svarbanov@mm-sol.com>
+ L:    linux-pci@vger.kernel.org
+ L:    linux-arm-msm@vger.kernel.org
+ S:    Maintained
+ F:    drivers/pci/dwc/*qcom*
  PCIE DRIVER FOR ROCKCHIP
  M:    Shawn Lin <shawn.lin@rock-chips.com>
  L:    linux-pci@vger.kernel.org
@@@ -10257,28 -10276,11 +10277,11 @@@ S:        Maintaine
  F:    Documentation/devicetree/bindings/pci/rockchip-pcie.txt
  F:    drivers/pci/host/pcie-rockchip.c
  
- PCIE DRIVER FOR QUALCOMM MSM
- M:     Stanimir Varbanov <svarbanov@mm-sol.com>
- L:     linux-pci@vger.kernel.org
- L:     linux-arm-msm@vger.kernel.org
- S:     Maintained
- F:     drivers/pci/dwc/*qcom*
- PCIE DRIVER FOR CAVIUM THUNDERX
- M:    David Daney <david.daney@cavium.com>
+ PCIE DRIVER FOR ST SPEAR13XX
+ M:    Pratyush Anand <pratyush.anand@gmail.com>
  L:    linux-pci@vger.kernel.org
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Supported
- F:    Documentation/devicetree/bindings/pci/pci-thunder-*
- F:    drivers/pci/host/pci-thunder-*
- PCIE DRIVER FOR MEDIATEK
- M:      Ryder Lee <ryder.lee@mediatek.com>
- L:      linux-pci@vger.kernel.org
- L:      linux-mediatek@lists.infradead.org
- S:      Supported
- F:      Documentation/devicetree/bindings/pci/mediatek*
- F:      drivers/pci/host/*mediatek*
+ S:    Maintained
+ F:    drivers/pci/dwc/*spear*
  
  PCMCIA SUBSYSTEM
  P:    Linux PCMCIA Team
@@@ -10447,14 -10449,14 +10450,14 @@@ S:        Maintaine
  F:    drivers/pinctrl/spear/
  
  PISTACHIO SOC SUPPORT
- M:      James Hartley <james.hartley@imgtec.com>
- M:      Ionela Voinescu <ionela.voinescu@imgtec.com>
- L:      linux-mips@linux-mips.org
- S:      Maintained
- F:      arch/mips/pistachio/
- F:      arch/mips/include/asm/mach-pistachio/
- F:      arch/mips/boot/dts/img/pistachio*
- F:      arch/mips/configs/pistachio*_defconfig
+ M:    James Hartley <james.hartley@imgtec.com>
+ M:    Ionela Voinescu <ionela.voinescu@imgtec.com>
+ L:    linux-mips@linux-mips.org
+ S:    Maintained
+ F:    arch/mips/pistachio/
+ F:    arch/mips/include/asm/mach-pistachio/
+ F:    arch/mips/boot/dts/img/pistachio*
+ F:    arch/mips/configs/pistachio*_defconfig
  
  PKTCDVD DRIVER
  S:    Orphan
@@@ -10497,6 -10499,11 +10500,11 @@@ L: linux-scsi@vger.kernel.or
  S:    Supported
  F:    drivers/scsi/pm8001/
  
+ PNP SUPPORT
+ M:    "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
+ S:    Maintained
+ F:    drivers/pnp/
  POSIX CLOCKS and TIMERS
  M:    Thomas Gleixner <tglx@linutronix.de>
  L:    linux-kernel@vger.kernel.org
@@@ -10518,15 -10525,6 +10526,6 @@@ F:  include/linux/pm_
  F:    include/linux/powercap.h
  F:    drivers/powercap/
  
- POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS
- M:    Sebastian Reichel <sre@kernel.org>
- L:    linux-pm@vger.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git
- S:    Maintained
- F:    Documentation/devicetree/bindings/power/supply/
- F:    include/linux/power_supply.h
- F:    drivers/power/supply/
  POWER STATE COORDINATION INTERFACE (PSCI)
  M:    Mark Rutland <mark.rutland@arm.com>
  M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
@@@ -10536,23 -10534,21 +10535,21 @@@ F:        drivers/firmware/psci*.
  F:    include/linux/psci.h
  F:    include/uapi/linux/psci.h
  
+ POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS
+ M:    Sebastian Reichel <sre@kernel.org>
+ L:    linux-pm@vger.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/power/supply/
+ F:    include/linux/power_supply.h
+ F:    drivers/power/supply/
  POWERNV OPERATOR PANEL LCD DISPLAY DRIVER
  M:    Suraj Jitindar Singh <sjitindarsingh@gmail.com>
  L:    linuxppc-dev@lists.ozlabs.org
  S:    Maintained
  F:    drivers/char/powernv-op-panel.c
  
- PNP SUPPORT
- M:    "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
- S:    Maintained
- F:    drivers/pnp/
- PPP PROTOCOL DRIVERS AND COMPRESSORS
- M:    Paul Mackerras <paulus@samba.org>
- L:    linux-ppp@vger.kernel.org
- S:    Maintained
- F:    drivers/net/ppp/ppp_*
  PPP OVER ATM (RFC 2364)
  M:    Mitchell Blank Jr <mitch@sfgoth.com>
  S:    Maintained
@@@ -10572,6 -10568,12 +10569,12 @@@ F: net/l2tp/l2tp_ppp.
  F:    include/linux/if_pppol2tp.h
  F:    include/uapi/linux/if_pppol2tp.h
  
+ PPP PROTOCOL DRIVERS AND COMPRESSORS
+ M:    Paul Mackerras <paulus@samba.org>
+ L:    linux-ppp@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/ppp/ppp_*
  PPS SUPPORT
  M:    Rodolfo Giometti <giometti@enneenne.com>
  W:    http://wiki.enneenne.com/index.php/LinuxPPS_support
@@@ -10685,7 -10687,6 +10688,6 @@@ F:   drivers/ptp/
  F:    include/linux/ptp_cl*
  
  PTRACE SUPPORT
- M:    Roland McGrath <roland@hack.frob.com>
  M:    Oleg Nesterov <oleg@redhat.com>
  S:    Maintained
  F:    include/asm-generic/syscall.h
@@@ -10693,7 -10694,12 +10695,12 @@@ F: include/linux/ptrace.
  F:    include/linux/regset.h
  F:    include/linux/tracehook.h
  F:    include/uapi/linux/ptrace.h
+ F:    include/uapi/linux/ptrace.h
+ F:    include/asm-generic/ptrace.h
  F:    kernel/ptrace.c
+ F:    arch/*/ptrace*.c
+ F:    arch/*/*/ptrace*.c
+ F:    arch/*/include/asm/ptrace*.h
  
  PULSE8-CEC DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
@@@ -10742,6 -10748,20 +10749,20 @@@ F: include/linux/pwm_backlight.
  F:    drivers/gpio/gpio-mvebu.c
  F:    Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
  
+ PXA GPIO DRIVER
+ M:    Robert Jarzmik <robert.jarzmik@free.fr>
+ L:    linux-gpio@vger.kernel.org
+ S:    Maintained
+ F:    drivers/gpio/gpio-pxa.c
+ PXA MMCI DRIVER
+ S:    Orphan
+ PXA RTC DRIVER
+ M:    Robert Jarzmik <robert.jarzmik@free.fr>
+ L:    linux-rtc@vger.kernel.org
+ S:    Maintained
  PXA2xx/PXA3xx SUPPORT
  M:    Daniel Mack <daniel@zonque.org>
  M:    Haojian Zhuang <haojian.zhuang@gmail.com>
@@@ -10761,36 -10781,12 +10782,12 @@@ F:        include/sound/pxa2xx-lib.
  F:    sound/arm/pxa*
  F:    sound/soc/pxa/
  
- PXA GPIO DRIVER
- M:    Robert Jarzmik <robert.jarzmik@free.fr>
- L:    linux-gpio@vger.kernel.org
- S:    Maintained
- F:    drivers/gpio/gpio-pxa.c
  PXA3xx NAND FLASH DRIVER
  M:    Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
  L:    linux-mtd@lists.infradead.org
  S:    Maintained
  F:    drivers/mtd/nand/pxa3xx_nand.c
  
- MMP SUPPORT
- M:    Eric Miao <eric.y.miao@gmail.com>
- M:    Haojian Zhuang <haojian.zhuang@gmail.com>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- T:    git git://github.com/hzhuang1/linux.git
- T:    git git://git.linaro.org/people/ycmiao/pxa-linux.git
- S:    Maintained
- F:    arch/arm/boot/dts/mmp*
- F:    arch/arm/mach-mmp/
- PXA MMCI DRIVER
- S:    Orphan
- PXA RTC DRIVER
- M:    Robert Jarzmik <robert.jarzmik@free.fr>
- L:    linux-rtc@vger.kernel.org
- S:    Maintained
  QAT DRIVER
  M:    Giovanni Cabiddu <giovanni.cabiddu@intel.com>
  M:    Salvatore Benedetto <salvatore.benedetto@intel.com>
@@@ -10798,12 -10794,56 +10795,56 @@@ L:        qat-linux@intel.co
  S:    Supported
  F:    drivers/crypto/qat/
  
+ QCOM AUDIO (ASoC) DRIVERS
+ M:    Patrick Lai <plai@codeaurora.org>
+ M:    Banajit Goswami <bgoswami@codeaurora.org>
+ L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
+ S:    Supported
+ F:    sound/soc/qcom/
+ QEMU MACHINE EMULATOR AND VIRTUALIZER SUPPORT
+ M:    Gabriel Somlo <somlo@cmu.edu>
+ M:    "Michael S. Tsirkin" <mst@redhat.com>
+ L:    qemu-devel@nongnu.org
+ S:    Maintained
+ F:    drivers/firmware/qemu_fw_cfg.c
  QIB DRIVER
  M:    Mike Marciniszyn <infinipath@intel.com>
  L:    linux-rdma@vger.kernel.org
  S:    Supported
  F:    drivers/infiniband/hw/qib/
  
+ QLOGIC QL41xxx FCOE DRIVER
+ M:    QLogic-Storage-Upstream@cavium.com
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ F:    drivers/scsi/qedf/
+ QLOGIC QL41xxx ISCSI DRIVER
+ M:    QLogic-Storage-Upstream@cavium.com
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ F:    drivers/scsi/qedi/
+ QLOGIC QL4xxx ETHERNET DRIVER
+ M:    Yuval Mintz <Yuval.Mintz@cavium.com>
+ M:    Ariel Elior <Ariel.Elior@cavium.com>
+ M:    everest-linux-l2@cavium.com
+ L:    netdev@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/ethernet/qlogic/qed/
+ F:    include/linux/qed/
+ F:    drivers/net/ethernet/qlogic/qede/
+ QLOGIC QL4xxx RDMA DRIVER
+ M:    Ram Amrani <Ram.Amrani@cavium.com>
+ M:    Ariel Elior <Ariel.Elior@cavium.com>
+ L:    linux-rdma@vger.kernel.org
+ S:    Supported
+ F:    drivers/infiniband/hw/qedr/
+ F:    include/uapi/rdma/qedr-abi.h
  QLOGIC QLA1280 SCSI DRIVER
  M:    Michael Reed <mdr@sgi.com>
  L:    linux-scsi@vger.kernel.org
@@@ -10817,13 -10857,6 +10858,6 @@@ S:  Supporte
  F:    Documentation/scsi/LICENSE.qla2xxx
  F:    drivers/scsi/qla2xxx/
  
- QLOGIC QLA4XXX iSCSI DRIVER
- M:    QLogic-Storage-Upstream@qlogic.com
- L:    linux-scsi@vger.kernel.org
- S:    Supported
- F:    Documentation/scsi/LICENSE.qla4xxx
- F:    drivers/scsi/qla4xxx/
  QLOGIC QLA3XXX NETWORK DRIVER
  M:    Dept-GELinuxNICDev@cavium.com
  L:    netdev@vger.kernel.org
@@@ -10831,6 -10864,13 +10865,13 @@@ S: Supporte
  F:    Documentation/networking/LICENSE.qla3xxx
  F:    drivers/net/ethernet/qlogic/qla3xxx.*
  
+ QLOGIC QLA4XXX iSCSI DRIVER
+ M:    QLogic-Storage-Upstream@qlogic.com
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ F:    Documentation/scsi/LICENSE.qla4xxx
+ F:    drivers/scsi/qla4xxx/
  QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
  M:    Harish Patil <harish.patil@cavium.com>
  M:    Manish Chopra <manish.chopra@cavium.com>
@@@ -10847,36 -10887,6 +10888,6 @@@ L:  netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/qlogic/qlge/
  
- QLOGIC QL4xxx ETHERNET DRIVER
- M:    Yuval Mintz <Yuval.Mintz@cavium.com>
- M:    Ariel Elior <Ariel.Elior@cavium.com>
- M:    everest-linux-l2@cavium.com
- L:    netdev@vger.kernel.org
- S:    Supported
- F:    drivers/net/ethernet/qlogic/qed/
- F:    include/linux/qed/
- F:    drivers/net/ethernet/qlogic/qede/
- QLOGIC QL41xxx ISCSI DRIVER
- M:    QLogic-Storage-Upstream@cavium.com
- L:    linux-scsi@vger.kernel.org
- S:    Supported
- F:    drivers/scsi/qedi/
- QLOGIC QL41xxx FCOE DRIVER
- M:    QLogic-Storage-Upstream@cavium.com
- L:    linux-scsi@vger.kernel.org
- S:    Supported
- F:    drivers/scsi/qedf/
- QLOGIC QL4xxx RDMA DRIVER
- M:    Ram Amrani <Ram.Amrani@cavium.com>
- M:    Ariel Elior <Ariel.Elior@cavium.com>
- L:    linux-rdma@vger.kernel.org
- S:    Supported
- F:    drivers/infiniband/hw/qedr/
- F:    include/uapi/rdma/qedr-abi.h
  QNX4 FILESYSTEM
  M:    Anders Larsen <al@alarsen.net>
  W:    http://www.alarsen.net/linux/qnx4fs/
@@@ -10903,13 -10913,6 +10914,6 @@@ T:  git git://linuxtv.org/anttip/media_t
  S:    Maintained
  F:    drivers/media/tuners/qt1010*
  
- QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
- M:    QCA ath9k Development <ath9k-devel@qca.qualcomm.com>
- L:    linux-wireless@vger.kernel.org
- W:    http://wireless.kernel.org/en/users/Drivers/ath9k
- S:    Supported
- F:    drivers/net/wireless/ath/ath9k/
  QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
  M:    Kalle Valo <kvalo@qca.qualcomm.com>
  L:    ath10k@lists.infradead.org
@@@ -10918,6 -10921,13 +10922,13 @@@ T: git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    drivers/net/wireless/ath/ath10k/
  
+ QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
+ M:    QCA ath9k Development <ath9k-devel@qca.qualcomm.com>
+ L:    linux-wireless@vger.kernel.org
+ W:    http://wireless.kernel.org/en/users/Drivers/ath9k
+ S:    Supported
+ F:    drivers/net/wireless/ath/ath9k/
  QUALCOMM EMAC GIGABIT ETHERNET DRIVER
  M:    Timur Tabi <timur@codeaurora.org>
  L:    netdev@vger.kernel.org
@@@ -10947,33 -10957,24 +10958,24 @@@ T:        git git://github.com/KrasnikovEugene
  S:    Supported
  F:    drivers/net/wireless/ath/wcn36xx/
  
- QEMU MACHINE EMULATOR AND VIRTUALIZER SUPPORT
- M:    Gabriel Somlo <somlo@cmu.edu>
- M:    "Michael S. Tsirkin" <mst@redhat.com>
- L:    qemu-devel@nongnu.org
- S:    Maintained
- F:    drivers/firmware/qemu_fw_cfg.c
  QUANTENNA QTNFMAC WIRELESS DRIVER
- M:   Igor Mitsyanko <imitsyanko@quantenna.com>
- M:   Avinash Patil <avinashp@quantenna.com>
- M:   Sergey Matyukevich <smatyukevich@quantenna.com>
- L:   linux-wireless@vger.kernel.org
- S:   Maintained
- F:   drivers/net/wireless/quantenna
+ M:    Igor Mitsyanko <imitsyanko@quantenna.com>
+ M:    Avinash Patil <avinashp@quantenna.com>
+ M:    Sergey Matyukevich <smatyukevich@quantenna.com>
+ L:    linux-wireless@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/wireless/quantenna
  
- RADOS BLOCK DEVICE (RBD)
- M:    Ilya Dryomov <idryomov@gmail.com>
- M:    Sage Weil <sage@redhat.com>
- M:    Alex Elder <elder@kernel.org>
- L:    ceph-devel@vger.kernel.org
- W:    http://ceph.com/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
- T:    git git://github.com/ceph/ceph-client.git
- S:    Supported
- F:    Documentation/ABI/testing/sysfs-bus-rbd
- F:    drivers/block/rbd.c
- F:    drivers/block/rbd_types.h
+ RADEON and AMDGPU DRM DRIVERS
+ M:    Alex Deucher <alexander.deucher@amd.com>
+ M:    Christian König <christian.koenig@amd.com>
+ L:    amd-gfx@lists.freedesktop.org
+ T:    git git://people.freedesktop.org/~agd5f/linux
+ S:    Supported
+ F:    drivers/gpu/drm/radeon/
+ F:    include/uapi/drm/radeon_drm.h
+ F:    drivers/gpu/drm/amd/
+ F:    include/uapi/drm/amdgpu_drm.h
  
  RADEON FRAMEBUFFER DISPLAY DRIVER
  M:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
@@@ -10997,6 -10998,19 +10999,19 @@@ S: Maintaine
  F:    drivers/media/radio/radio-shark2.c
  F:    drivers/media/radio/radio-tea5777.c
  
+ RADOS BLOCK DEVICE (RBD)
+ M:    Ilya Dryomov <idryomov@gmail.com>
+ M:    Sage Weil <sage@redhat.com>
+ M:    Alex Elder <elder@kernel.org>
+ L:    ceph-devel@vger.kernel.org
+ W:    http://ceph.com/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
+ T:    git git://github.com/ceph/ceph-client.git
+ S:    Supported
+ F:    Documentation/ABI/testing/sysfs-bus-rbd
+ F:    drivers/block/rbd.c
+ F:    drivers/block/rbd_types.h
  RAGE128 FRAMEBUFFER DISPLAY DRIVER
  M:    Paul Mackerras <paulus@samba.org>
  L:    linux-fbdev@vger.kernel.org
@@@ -11076,6 -11090,12 +11091,12 @@@ L: netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/rdc/r6040.c
  
+ RDMAVT - RDMA verbs software
+ M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
+ L:    linux-rdma@vger.kernel.org
+ S:    Supported
+ F:    drivers/infiniband/sw/rdmavt
  RDS - RELIABLE DATAGRAM SOCKETS
  M:    Santosh Shilimkar <santosh.shilimkar@oracle.com>
  L:    netdev@vger.kernel.org
@@@ -11086,12 -11106,6 +11107,6 @@@ S:  Supporte
  F:    net/rds/
  F:    Documentation/networking/rds.txt
  
- RDMAVT - RDMA verbs software
- M:    Dennis Dalessandro <dennis.dalessandro@intel.com>
- L:    linux-rdma@vger.kernel.org
- S:    Supported
- F:    drivers/infiniband/sw/rdmavt
  RDT - RESOURCE ALLOCATION
  M:    Fenghua Yu <fenghua.yu@intel.com>
  L:    linux-kernel@vger.kernel.org
@@@ -11140,11 -11154,6 +11155,6 @@@ S:  Maintaine
  F:    sound/soc/codecs/rt*
  F:    include/sound/rt*.h
  
- REISERFS FILE SYSTEM
- L:    reiserfs-devel@vger.kernel.org
- S:    Supported
- F:    fs/reiserfs/
  REGISTER MAP ABSTRACTION
  M:    Mark Brown <broonie@kernel.org>
  L:    linux-kernel@vger.kernel.org
@@@ -11154,6 -11163,11 +11164,11 @@@ F: Documentation/devicetree/bindings/re
  F:    drivers/base/regmap/
  F:    include/linux/regmap.h
  
+ REISERFS FILE SYSTEM
+ L:    reiserfs-devel@vger.kernel.org
+ S:    Supported
+ F:    fs/reiserfs/
  REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM
  M:    Ohad Ben-Cohen <ohad@wizery.com>
  M:    Bjorn Andersson <bjorn.andersson@linaro.org>
@@@ -11229,16 -11243,16 +11244,16 @@@ S:        Maintaine
  F:    lib/rhashtable.c
  F:    include/linux/rhashtable.h
  
- RICOH SMARTMEDIA/XD DRIVER
+ RICOH R5C592 MEMORYSTICK DRIVER
  M:    Maxim Levitsky <maximlevitsky@gmail.com>
  S:    Maintained
- F:    drivers/mtd/nand/r852.c
- F:    drivers/mtd/nand/r852.h
+ F:    drivers/memstick/host/r592.*
  
- RICOH R5C592 MEMORYSTICK DRIVER
+ RICOH SMARTMEDIA/XD DRIVER
  M:    Maxim Levitsky <maximlevitsky@gmail.com>
  S:    Maintained
- F:    drivers/memstick/host/r592.*
+ F:    drivers/mtd/nand/r852.c
+ F:    drivers/mtd/nand/r852.h
  
  ROCCAT DRIVERS
  M:    Stefan Achatz <erazor_de@users.sourceforge.net>
@@@ -11375,6 -11389,23 +11390,23 @@@ S: Supporte
  F:    drivers/s390/block/dasd*
  F:    block/partitions/ibm.c
  
+ S390 IOMMU (PCI)
+ M:    Gerald Schaefer <gerald.schaefer@de.ibm.com>
+ L:    linux-s390@vger.kernel.org
+ W:    http://www.ibm.com/developerworks/linux/linux390/
+ S:    Supported
+ F:    drivers/iommu/s390-iommu.c
+ S390 IUCV NETWORK LAYER
+ M:    Julian Wiedmann <jwi@linux.vnet.ibm.com>
+ M:    Ursula Braun <ubraun@linux.vnet.ibm.com>
+ L:    linux-s390@vger.kernel.org
+ W:    http://www.ibm.com/developerworks/linux/linux390/
+ S:    Supported
+ F:    drivers/s390/net/*iucv*
+ F:    include/net/iucv/
+ F:    net/iucv/
  S390 NETWORK DRIVERS
  M:    Julian Wiedmann <jwi@linux.vnet.ibm.com>
  M:    Ursula Braun <ubraun@linux.vnet.ibm.com>
@@@ -11392,6 -11423,16 +11424,16 @@@ S: Supporte
  F:    arch/s390/pci/
  F:    drivers/pci/hotplug/s390_pci_hpc.c
  
+ S390 VFIO-CCW DRIVER
+ M:    Cornelia Huck <cohuck@redhat.com>
+ M:    Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
+ L:    linux-s390@vger.kernel.org
+ L:    kvm@vger.kernel.org
+ S:    Supported
+ F:    drivers/s390/cio/vfio_ccw*
+ F:    Documentation/s390/vfio-ccw.txt
+ F:    include/uapi/linux/vfio_ccw.h
  S390 ZCRYPT DRIVER
  M:    Harald Freudenberger <freude@de.ibm.com>
  L:    linux-s390@vger.kernel.org
@@@ -11406,33 -11447,6 +11448,6 @@@ W:  http://www.ibm.com/developerworks/li
  S:    Supported
  F:    drivers/s390/scsi/zfcp_*
  
- S390 IUCV NETWORK LAYER
- M:    Julian Wiedmann <jwi@linux.vnet.ibm.com>
- M:    Ursula Braun <ubraun@linux.vnet.ibm.com>
- L:    linux-s390@vger.kernel.org
- W:    http://www.ibm.com/developerworks/linux/linux390/
- S:    Supported
- F:    drivers/s390/net/*iucv*
- F:    include/net/iucv/
- F:    net/iucv/
- S390 IOMMU (PCI)
- M:    Gerald Schaefer <gerald.schaefer@de.ibm.com>
- L:    linux-s390@vger.kernel.org
- W:    http://www.ibm.com/developerworks/linux/linux390/
- S:    Supported
- F:    drivers/iommu/s390-iommu.c
- S390 VFIO-CCW DRIVER
- M:    Cornelia Huck <cohuck@redhat.com>
- M:    Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
- L:    linux-s390@vger.kernel.org
- L:    kvm@vger.kernel.org
- S:    Supported
- F:    drivers/s390/cio/vfio_ccw*
- F:    Documentation/s390/vfio-ccw.txt
- F:    include/uapi/linux/vfio_ccw.h
  S3C24XX SD/MMC Driver
  M:    Ben Dooks <ben-linux@fluff.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -11466,12 -11480,6 +11481,6 @@@ F:  drivers/media/common/saa7146
  F:    drivers/media/pci/saa7146/
  F:    include/media/saa7146*
  
- SAMSUNG LAPTOP DRIVER
- M:    Corentin Chary <corentin.chary@gmail.com>
- L:    platform-driver-x86@vger.kernel.org
- S:    Maintained
- F:    drivers/platform/x86/samsung-laptop.c
  SAMSUNG AUDIO (ASoC) DRIVERS
  M:    Krzysztof Kozlowski <krzk@kernel.org>
  M:    Sangbeom Kim <sbkim73@samsung.com>
@@@ -11494,6 -11502,12 +11503,12 @@@ L: linux-fbdev@vger.kernel.or
  S:    Maintained
  F:    drivers/video/fbdev/s3c-fb.c
  
+ SAMSUNG LAPTOP DRIVER
+ M:    Corentin Chary <corentin.chary@gmail.com>
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Maintained
+ F:    drivers/platform/x86/samsung-laptop.c
  SAMSUNG MULTIFUNCTION PMIC DEVICE DRIVERS
  M:    Sangbeom Kim <sbkim73@samsung.com>
  M:    Krzysztof Kozlowski <krzk@kernel.org>
@@@ -11512,22 -11526,6 +11527,6 @@@ F:  Documentation/devicetree/bindings/re
  F:    Documentation/devicetree/bindings/regulator/samsung,s5m*.txt
  F:    Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
  
- SAMSUNG S5P Security SubSystem (SSS) DRIVER
- M:    Krzysztof Kozlowski <krzk@kernel.org>
- M:    Vladimir Zapolskiy <vz@mleia.com>
- L:    linux-crypto@vger.kernel.org
- L:    linux-samsung-soc@vger.kernel.org
- S:    Maintained
- F:    drivers/crypto/s5p-sss.c
- SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
- M:    Kyungmin Park <kyungmin.park@samsung.com>
- M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
- L:    linux-media@vger.kernel.org
- Q:    https://patchwork.linuxtv.org/project/linux-media/list/
- S:    Supported
- F:    drivers/media/platform/exynos4-is/
  SAMSUNG S3C24XX/S3C64XX SOC SERIES CAMIF DRIVER
  M:    Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -11536,20 -11534,6 +11535,6 @@@ S:  Maintaine
  F:    drivers/media/platform/s3c-camif/
  F:    include/media/drv-intf/s3c_camif.h
  
- SAMSUNG S5C73M3 CAMERA DRIVER
- M:    Kyungmin Park <kyungmin.park@samsung.com>
- M:    Andrzej Hajda <a.hajda@samsung.com>
- L:    linux-media@vger.kernel.org
- S:    Supported
- F:    drivers/media/i2c/s5c73m3/*
- SAMSUNG S5K5BAF CAMERA DRIVER
- M:    Kyungmin Park <kyungmin.park@samsung.com>
- M:    Andrzej Hajda <a.hajda@samsung.com>
- L:    linux-media@vger.kernel.org
- S:    Supported
- F:    drivers/media/i2c/s5k5baf.c
  SAMSUNG S3FWRN5 NFC DRIVER
  M:    Robert Baldyga <r.baldyga@samsung.com>
  M:    Krzysztof Opasiak <k.opasiak@samsung.com>
@@@ -11557,176 -11541,86 +11542,86 @@@ L:       linux-nfc@lists.01.org (moderated fo
  S:    Supported
  F:    drivers/nfc/s3fwrn5
  
- SAMSUNG SOC CLOCK DRIVERS
- M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
- M:    Tomasz Figa <tomasz.figa@gmail.com>
- M:    Chanwoo Choi <cw00.choi@samsung.com>
- S:    Supported
- L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
- F:    drivers/clk/samsung/
- F:    include/dt-bindings/clock/exynos*.h
- F:    Documentation/devicetree/bindings/clock/exynos*.txt
- SAMSUNG SPI DRIVERS
- M:    Kukjin Kim <kgene@kernel.org>
- M:    Krzysztof Kozlowski <krzk@kernel.org>
- M:    Andi Shyti <andi.shyti@samsung.com>
- L:    linux-spi@vger.kernel.org
- L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
- S:    Maintained
- F:    Documentation/devicetree/bindings/spi/spi-samsung.txt
- F:    drivers/spi/spi-s3c*
- F:    include/linux/platform_data/spi-s3c64xx.h
- SAMSUNG SXGBE DRIVERS
- M:    Byungho An <bh74.an@samsung.com>
- M:    Girish K S <ks.giri@samsung.com>
- M:    Vipul Pandya <vipul.pandya@samsung.com>
- S:    Supported
- L:    netdev@vger.kernel.org
- F:    drivers/net/ethernet/samsung/sxgbe/
- SAMSUNG THERMAL DRIVER
- M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
- L:    linux-pm@vger.kernel.org
- L:    linux-samsung-soc@vger.kernel.org
- S:    Supported
- T:    git https://github.com/lmajewski/linux-samsung-thermal.git
- F:    drivers/thermal/samsung/
- SAMSUNG USB2 PHY DRIVER
- M:    Kamil Debski <kamil@wypas.org>
- M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
- L:    linux-kernel@vger.kernel.org
- S:    Supported
- F:    Documentation/devicetree/bindings/phy/samsung-phy.txt
- F:    Documentation/phy/samsung-usb2.txt
- F:    drivers/phy/samsung/phy-exynos4210-usb2.c
- F:    drivers/phy/samsung/phy-exynos4x12-usb2.c
- F:    drivers/phy/samsung/phy-exynos5250-usb2.c
- F:    drivers/phy/samsung/phy-s5pv210-usb2.c
- F:    drivers/phy/samsung/phy-samsung-usb2.c
- F:    drivers/phy/samsung/phy-samsung-usb2.h
- SERIAL DRIVERS
- M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
- L:    linux-serial@vger.kernel.org
- S:    Maintained
- F:    Documentation/devicetree/bindings/serial/
- F:    drivers/tty/serial/
- SERIAL DEVICE BUS
- M:    Rob Herring <robh@kernel.org>
- L:    linux-serial@vger.kernel.org
- S:    Maintained
- F:    Documentation/devicetree/bindings/serial/slave-device.txt
- F:    drivers/tty/serdev/
- F:    include/linux/serdev.h
- SERIAL IR RECEIVER
- M:    Sean Young <sean@mess.org>
+ SAMSUNG S5C73M3 CAMERA DRIVER
+ M:    Kyungmin Park <kyungmin.park@samsung.com>
+ M:    Andrzej Hajda <a.hajda@samsung.com>
  L:    linux-media@vger.kernel.org
- S:    Maintained
- F:    drivers/media/rc/serial_ir.c
- STI CEC DRIVER
- M:    Benjamin Gaignard <benjamin.gaignard@linaro.org>
- S:    Maintained
- F:    drivers/staging/media/st-cec/
- F:    Documentation/devicetree/bindings/media/stih-cec.txt
- SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
- M:    Ursula Braun <ubraun@linux.vnet.ibm.com>
- L:    linux-s390@vger.kernel.org
- W:    http://www.ibm.com/developerworks/linux/linux390/
- S:    Supported
- F:    net/smc/
- SYNOPSYS DESIGNWARE DMAC DRIVER
- M:    Viresh Kumar <vireshk@kernel.org>
- M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
- S:    Maintained
- F:    include/linux/dma/dw.h
- F:    include/linux/platform_data/dma-dw.h
- F:    drivers/dma/dw/
- SYNOPSYS DESIGNWARE ENTERPRISE ETHERNET DRIVER
- M:    Jie Deng <jiedeng@synopsys.com>
- L:    netdev@vger.kernel.org
  S:    Supported
- F:    drivers/net/ethernet/synopsys/
- SYNOPSYS DESIGNWARE I2C DRIVER
- M:    Jarkko Nikula <jarkko.nikula@linux.intel.com>
- R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
- R:    Mika Westerberg <mika.westerberg@linux.intel.com>
- L:    linux-i2c@vger.kernel.org
- S:    Maintained
- F:    drivers/i2c/busses/i2c-designware-*
- F:    include/linux/platform_data/i2c-designware.h
+ F:    drivers/media/i2c/s5c73m3/*
  
- SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
- M:    Jaehoon Chung <jh80.chung@samsung.com>
- L:    linux-mmc@vger.kernel.org
- S:    Maintained
- F:    drivers/mmc/host/dw_mmc*
+ SAMSUNG S5K5BAF CAMERA DRIVER
+ M:    Kyungmin Park <kyungmin.park@samsung.com>
+ M:    Andrzej Hajda <a.hajda@samsung.com>
+ L:    linux-media@vger.kernel.org
+ S:    Supported
+ F:    drivers/media/i2c/s5k5baf.c
  
- SYSTEM TRACE MODULE CLASS
- M:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
+ SAMSUNG S5P Security SubSystem (SSS) DRIVER
+ M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Vladimir Zapolskiy <vz@mleia.com>
+ L:    linux-crypto@vger.kernel.org
+ L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ash/stm.git
- F:    Documentation/trace/stm.txt
- F:    drivers/hwtracing/stm/
- F:    include/linux/stm.h
- F:    include/uapi/linux/stm.h
+ F:    drivers/crypto/s5p-sss.c
  
- TEE SUBSYSTEM
- M:    Jens Wiklander <jens.wiklander@linaro.org>
- S:    Maintained
- F:    include/linux/tee_drv.h
- F:    include/uapi/linux/tee.h
- F:    drivers/tee/
- F:    Documentation/tee.txt
+ SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
+ M:    Kyungmin Park <kyungmin.park@samsung.com>
+ M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
+ L:    linux-media@vger.kernel.org
+ Q:    https://patchwork.linuxtv.org/project/linux-media/list/
+ S:    Supported
+ F:    drivers/media/platform/exynos4-is/
  
- THUNDERBOLT DRIVER
- M:    Andreas Noever <andreas.noever@gmail.com>
- M:    Michael Jamet <michael.jamet@intel.com>
- M:    Mika Westerberg <mika.westerberg@linux.intel.com>
- M:    Yehezkel Bernat <yehezkel.bernat@intel.com>
+ SAMSUNG SOC CLOCK DRIVERS
+ M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
+ M:    Tomasz Figa <tomasz.figa@gmail.com>
+ M:    Chanwoo Choi <cw00.choi@samsung.com>
+ S:    Supported
+ L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
+ F:    drivers/clk/samsung/
+ F:    include/dt-bindings/clock/exynos*.h
+ F:    Documentation/devicetree/bindings/clock/exynos*.txt
+ SAMSUNG SPI DRIVERS
+ M:    Kukjin Kim <kgene@kernel.org>
+ M:    Krzysztof Kozlowski <krzk@kernel.org>
+ M:    Andi Shyti <andi.shyti@samsung.com>
+ L:    linux-spi@vger.kernel.org
+ L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
  S:    Maintained
- F:    drivers/thunderbolt/
+ F:    Documentation/devicetree/bindings/spi/spi-samsung.txt
+ F:    drivers/spi/spi-s3c*
+ F:    include/linux/platform_data/spi-s3c64xx.h
  
- TI BQ27XXX POWER SUPPLY DRIVER
- R:    Andrew F. Davis <afd@ti.com>
- F:    include/linux/power/bq27xxx_battery.h
- F:    drivers/power/supply/bq27xxx_battery.c
- F:    drivers/power/supply/bq27xxx_battery_i2c.c
+ SAMSUNG SXGBE DRIVERS
+ M:    Byungho An <bh74.an@samsung.com>
+ M:    Girish K S <ks.giri@samsung.com>
+ M:    Vipul Pandya <vipul.pandya@samsung.com>
+ S:    Supported
+ L:    netdev@vger.kernel.org
+ F:    drivers/net/ethernet/samsung/sxgbe/
  
- TIMEKEEPING, CLOCKSOURCE CORE, NTP, ALARMTIMER
- M:    John Stultz <john.stultz@linaro.org>
- M:    Thomas Gleixner <tglx@linutronix.de>
- R:    Stephen Boyd <sboyd@codeaurora.org>
- L:    linux-kernel@vger.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
+ SAMSUNG THERMAL DRIVER
+ M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
+ L:    linux-pm@vger.kernel.org
+ L:    linux-samsung-soc@vger.kernel.org
  S:    Supported
- F:    include/linux/clocksource.h
- F:    include/linux/time.h
- F:    include/linux/timex.h
- F:    include/uapi/linux/time.h
- F:    include/uapi/linux/timex.h
- F:    kernel/time/clocksource.c
- F:    kernel/time/time*.c
- F:    kernel/time/alarmtimer.c
- F:    kernel/time/ntp.c
- F:    tools/testing/selftests/timers/
+ T:    git https://github.com/lmajewski/linux-samsung-thermal.git
+ F:    drivers/thermal/samsung/
  
TI TRF7970A NFC DRIVER
- M:    Mark Greer <mgreer@animalcreek.com>
- L:    linux-wireless@vger.kernel.org
- L:    linux-nfc@lists.01.org (moderated for non-subscribers)
SAMSUNG USB2 PHY DRIVER
+ M:    Kamil Debski <kamil@wypas.org>
+ M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
+ L:    linux-kernel@vger.kernel.org
  S:    Supported
- F:    drivers/nfc/trf7970a.c
- F:    Documentation/devicetree/bindings/net/nfc/trf7970a.txt
+ F:    Documentation/devicetree/bindings/phy/samsung-phy.txt
+ F:    Documentation/phy/samsung-usb2.txt
+ F:    drivers/phy/samsung/phy-exynos4210-usb2.c
+ F:    drivers/phy/samsung/phy-exynos4x12-usb2.c
+ F:    drivers/phy/samsung/phy-exynos5250-usb2.c
+ F:    drivers/phy/samsung/phy-s5pv210-usb2.c
+ F:    drivers/phy/samsung/phy-samsung-usb2.c
+ F:    drivers/phy/samsung/phy-samsung-usb2.h
  
  SC1200 WDT DRIVER
  M:    Zwane Mwaikambo <zwanem@gmail.com>
@@@ -11756,16 -11650,6 +11651,6 @@@ M:  Lubomir Rintel <lkundrak@v3.sk
  S:    Supported
  F:    drivers/char/pcmcia/scr24x_cs.c
  
- SYSTEM CONTROL & POWER INTERFACE (SCPI) Message Protocol drivers
- M:    Sudeep Holla <sudeep.holla@arm.com>
- L:    linux-arm-kernel@lists.infradead.org
- S:    Maintained
- F:    Documentation/devicetree/bindings/arm/arm,scpi.txt
- F:    drivers/clk/clk-scpi.c
- F:    drivers/cpufreq/scpi-cpufreq.c
- F:    drivers/firmware/arm_scpi.c
- F:    include/linux/scpi_protocol.h
  SCSI CDROM DRIVER
  M:    Jens Axboe <axboe@kernel.dk>
  L:    linux-scsi@vger.kernel.org
@@@ -11850,14 -11734,6 +11735,6 @@@ L:  sdricohcs-devel@lists.sourceforge.ne
  S:    Maintained
  F:    drivers/mmc/host/sdricoh_cs.c
  
- SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
- M:    Adrian Hunter <adrian.hunter@intel.com>
- L:    linux-mmc@vger.kernel.org
- T:    git git://git.infradead.org/users/ahunter/linux-sdhci.git
- S:    Maintained
- F:    drivers/mmc/host/sdhci*
- F:    include/linux/mmc/sdhci*
  SECURE COMPUTING
  M:    Kees Cook <keescook@chromium.org>
  R:    Andy Lutomirski <luto@amacapital.net>
@@@ -11880,6 -11756,14 +11757,14 @@@ L: bcm-kernel-feedback-list@broadcom.co
  S:    Maintained
  F:    drivers/mmc/host/sdhci-brcmstb*
  
+ SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
+ M:    Adrian Hunter <adrian.hunter@intel.com>
+ L:    linux-mmc@vger.kernel.org
+ T:    git git://git.infradead.org/users/ahunter/linux-sdhci.git
+ S:    Maintained
+ F:    drivers/mmc/host/sdhci*
+ F:    include/linux/mmc/sdhci*
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) SAMSUNG DRIVER
  M:    Ben Dooks <ben-linux@fluff.org>
  M:    Jaehoon Chung <jh80.chung@samsung.com>
@@@ -11904,6 -11788,10 +11789,10 @@@ F: block/opal_proto.
  F:    include/linux/sed*
  F:    include/uapi/linux/sed*
  
+ SECURITY CONTACT
+ M:    Security Officers <security@kernel.org>
+ S:    Supported
  SECURITY SUBSYSTEM
  M:    James Morris <james.l.morris@oracle.com>
  M:    "Serge E. Hallyn" <serge@hallyn.com>
@@@ -11913,10 -11801,6 +11802,6 @@@ W:  http://kernsec.org
  S:    Supported
  F:    security/
  
- SECURITY CONTACT
- M:    Security Officers <security@kernel.org>
- S:    Supported
  SELINUX SECURITY MODULE
  M:    Paul Moore <paul@paul-moore.com>
  M:    Stephen Smalley <sds@tycho.nsa.gov>
@@@ -11930,62 -11814,32 +11815,32 @@@ F:        security/selinux
  F:    scripts/selinux/
  F:    Documentation/admin-guide/LSM/SELinux.rst
  
- APPARMOR SECURITY MODULE
- M:    John Johansen <john.johansen@canonical.com>
- L:    apparmor@lists.ubuntu.com (subscribers-only, general discussion)
- W:    apparmor.wiki.kernel.org
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jj/apparmor-dev.git
- S:    Supported
- F:    security/apparmor/
- F:    Documentation/admin-guide/LSM/apparmor.rst
- LOADPIN SECURITY MODULE
- M:    Kees Cook <keescook@chromium.org>
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git lsm/loadpin
- S:    Supported
- F:    security/loadpin/
- F:    Documentation/admin-guide/LSM/LoadPin.rst
- YAMA SECURITY MODULE
- M:    Kees Cook <keescook@chromium.org>
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git yama/tip
- S:    Supported
- F:    security/yama/
- F:    Documentation/admin-guide/LSM/Yama.rst
  SENSABLE PHANTOM
  M:    Jiri Slaby <jirislaby@gmail.com>
  S:    Maintained
  F:    drivers/misc/phantom.c
  F:    include/uapi/linux/phantom.h
  
- Emulex 10Gbps iSCSI - OneConnect DRIVER
- M:    Subbu Seetharaman <subbu.seetharaman@broadcom.com>
- M:    Ketan Mukadam <ketan.mukadam@broadcom.com>
- M:    Jitendra Bhivare <jitendra.bhivare@broadcom.com>
- L:    linux-scsi@vger.kernel.org
- W:    http://www.broadcom.com
- S:    Supported
- F:    drivers/scsi/be2iscsi/
+ SERIAL DEVICE BUS
+ M:    Rob Herring <robh@kernel.org>
+ L:    linux-serial@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/serial/slave-device.txt
+ F:    drivers/tty/serdev/
+ F:    include/linux/serdev.h
  
- Emulex 10Gbps NIC BE2, BE3-R, Lancer, Skyhawk-R DRIVER (be2net)
- M:    Sathya Perla <sathya.perla@broadcom.com>
- M:    Ajit Khaparde <ajit.khaparde@broadcom.com>
- M:    Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
- M:    Somnath Kotur <somnath.kotur@broadcom.com>
- L:    netdev@vger.kernel.org
- W:    http://www.emulex.com
- S:    Supported
- F:    drivers/net/ethernet/emulex/benet/
+ SERIAL DRIVERS
+ M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+ L:    linux-serial@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/serial/
+ F:    drivers/tty/serial/
  
- EMULEX ONECONNECT ROCE DRIVER
- M:    Selvin Xavier <selvin.xavier@broadcom.com>
- M:    Devesh Sharma <devesh.sharma@broadcom.com>
- L:    linux-rdma@vger.kernel.org
- W:    http://www.broadcom.com
- S:    Odd Fixes
- F:    drivers/infiniband/hw/ocrdma/
- F:    include/uapi/rdma/ocrdma-abi.h
+ SERIAL IR RECEIVER
+ M:    Sean Young <sean@mess.org>
+ L:    linux-media@vger.kernel.org
+ S:    Maintained
+ F:    drivers/media/rc/serial_ir.c
  
  SFC NETWORK DRIVER
  M:    Solarflare linux maintainers <linux-net-drivers@solarflare.com>
@@@ -12014,6 -11868,24 +11869,24 @@@ M: Robin Holt <robinmholt@gmail.com
  S:    Maintained
  F:    drivers/misc/sgi-xp/
  
+ SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
+ M:    Ursula Braun <ubraun@linux.vnet.ibm.com>
+ L:    linux-s390@vger.kernel.org
+ W:    http://www.ibm.com/developerworks/linux/linux390/
+ S:    Supported
+ F:    net/smc/
+ SH_VEU V4L2 MEM2MEM DRIVER
+ L:    linux-media@vger.kernel.org
+ S:    Orphan
+ F:    drivers/media/platform/sh_veu.c
+ SH_VOU V4L2 OUTPUT DRIVER
+ L:    linux-media@vger.kernel.org
+ S:    Orphan
+ F:    drivers/media/platform/sh_vou.c
+ F:    include/media/drv-intf/sh_vou.h
  SI2157 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -12096,24 -11968,14 +11969,14 @@@ S:        Maintaine
  F:    drivers/input/touchscreen/silead.c
  F:    drivers/platform/x86/silead_dmi.c
  
- SIMPLEFB FB DRIVER
- M:    Hans de Goede <hdegoede@redhat.com>
+ SILICON MOTION SM712 FRAME BUFFER DRIVER
+ M:    Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+ M:    Teddy Wang <teddy.wang@siliconmotion.com>
+ M:    Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
  L:    linux-fbdev@vger.kernel.org
  S:    Maintained
- F:    Documentation/devicetree/bindings/display/simple-framebuffer.txt
- F:    drivers/video/fbdev/simplefb.c
- F:    include/linux/platform_data/simplefb.h
- SH_VEU V4L2 MEM2MEM DRIVER
- L:    linux-media@vger.kernel.org
- S:    Orphan
- F:    drivers/media/platform/sh_veu.c
- SH_VOU V4L2 OUTPUT DRIVER
- L:    linux-media@vger.kernel.org
- S:    Orphan
- F:    drivers/media/platform/sh_vou.c
- F:    include/media/drv-intf/sh_vou.h
+ F:    drivers/video/fbdev/sm712*
+ F:    Documentation/fb/sm712fb.txt
  
  SIMPLE FIRMWARE INTERFACE (SFI)
  M:    Len Brown <lenb@kernel.org>
@@@ -12125,6 -11987,14 +11988,14 @@@ F: arch/x86/platform/sfi
  F:    drivers/sfi/
  F:    include/linux/sfi*.h
  
+ SIMPLEFB FB DRIVER
+ M:    Hans de Goede <hdegoede@redhat.com>
+ L:    linux-fbdev@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/display/simple-framebuffer.txt
+ F:    drivers/video/fbdev/simplefb.c
+ F:    include/linux/platform_data/simplefb.h
  SIMTEC EB110ATX (Chalice CATS)
  P:    Ben Dooks
  P:    Vincent Sanders <vince@simtec.co.uk>
@@@ -12149,61 -12019,6 +12020,6 @@@ F:  lib/siphash.
  F:    lib/test_siphash.c
  F:    include/linux/siphash.h
  
- TI DAVINCI MACHINE SUPPORT
- M:    Sekhar Nori <nsekhar@ti.com>
- M:    Kevin Hilman <khilman@kernel.org>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci.git
- S:    Supported
- F:    arch/arm/mach-davinci/
- F:    drivers/i2c/busses/i2c-davinci.c
- F:    arch/arm/boot/dts/da850*
- TI DAVINCI SERIES MEDIA DRIVER
- M:    "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
- L:    linux-media@vger.kernel.org
- W:    https://linuxtv.org
- Q:    http://patchwork.linuxtv.org/project/linux-media/list/
- T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
- S:    Maintained
- F:    drivers/media/platform/davinci/
- F:    include/media/davinci/
- TI DAVINCI SERIES GPIO DRIVER
- M:    Keerthy <j-keerthy@ti.com>
- L:    linux-gpio@vger.kernel.org
- S:    Maintained
- F:    Documentation/devicetree/bindings/gpio/gpio-davinci.txt
- F:    drivers/gpio/gpio-davinci.c
- TI AM437X VPFE DRIVER
- M:    "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
- L:    linux-media@vger.kernel.org
- W:    https://linuxtv.org
- Q:    http://patchwork.linuxtv.org/project/linux-media/list/
- T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
- S:    Maintained
- F:    drivers/media/platform/am437x/
- OV2659 OMNIVISION SENSOR DRIVER
- M:    "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
- L:    linux-media@vger.kernel.org
- W:    https://linuxtv.org
- Q:    http://patchwork.linuxtv.org/project/linux-media/list/
- T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
- S:    Maintained
- F:    drivers/media/i2c/ov2659.c
- F:    include/media/i2c/ov2659.h
- SILICON MOTION SM712 FRAME BUFFER DRIVER
- M:    Sudip Mukherjee <sudipm.mukherjee@gmail.com>
- M:    Teddy Wang <teddy.wang@siliconmotion.com>
- M:    Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
- L:    linux-fbdev@vger.kernel.org
- S:    Maintained
- F:    drivers/video/fbdev/sm712*
- F:    Documentation/fb/sm712fb.txt
  SIS 190 ETHERNET DRIVER
  M:    Francois Romieu <romieu@fr.zoreil.com>
  L:    netdev@vger.kernel.org
@@@ -12264,14 -12079,6 +12080,6 @@@ S:  Maintaine
  F:    Documentation/admin-guide/LSM/Smack.rst
  F:    security/smack/
  
- DRIVERS FOR ADAPTIVE VOLTAGE SCALING (AVS)
- M:    Kevin Hilman <khilman@kernel.org>
- M:    Nishanth Menon <nm@ti.com>
- S:    Maintained
- F:    drivers/power/avs/
- F:    include/linux/power/smartreflex.h
- L:    linux-pm@vger.kernel.org
  SMC91x ETHERNET DRIVER
  M:    Nicolas Pitre <nico@fluxnic.net>
  S:    Odd Fixes
@@@ -12309,6 -12116,12 +12117,12 @@@ S: Supporte
  F:    Documentation/hwmon/sch5627
  F:    drivers/hwmon/sch5627.c
  
+ SMSC UFX6000 and UFX7000 USB to VGA DRIVER
+ M:    Steve Glendinning <steve.glendinning@shawell.net>
+ L:    linux-fbdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/video/fbdev/smscufx.c
  SMSC47B397 HARDWARE MONITOR DRIVER
  M:    Jean Delvare <jdelvare@suse.com>
  L:    linux-hwmon@vger.kernel.org
@@@ -12329,12 -12142,6 +12143,6 @@@ L:  netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/smsc/smsc9420.*
  
- SMSC UFX6000 and UFX7000 USB to VGA DRIVER
- M:    Steve Glendinning <steve.glendinning@shawell.net>
- L:    linux-fbdev@vger.kernel.org
- S:    Maintained
- F:    drivers/video/fbdev/smscufx.c
  SOC-CAMERA V4L2 SUBSYSTEM
  M:    Guennadi Liakhovetski <g.liakhovetski@gmx.de>
  L:    linux-media@vger.kernel.org
@@@ -12349,6 -12156,15 +12157,15 @@@ M: Chris Boot <bootc@bootc.net
  S:    Maintained
  F:    drivers/leds/leds-net48xx.c
  
+ SOFT-ROCE DRIVER (rxe)
+ M:    Moni Shoua <monis@mellanox.com>
+ L:    linux-rdma@vger.kernel.org
+ S:    Supported
+ W:    https://github.com/SoftRoCE/rxe-dev/wiki/rxe-dev:-Home
+ Q:    http://patchwork.kernel.org/project/linux-rdma/list/
+ F:    drivers/infiniband/sw/rxe/
+ F:    include/uapi/rdma/rdma_user_rxe.h
  SOFTLOGIC 6x10 MPEG CODEC
  M:    Bluecherry Maintainers <maintainers@bluecherrydvr.com>
  M:    Anton Sviridenko <anton@corp.bluecherry.net>
@@@ -12381,16 -12197,6 +12198,6 @@@ S:  Maintaine
  F:    drivers/ssb/
  F:    include/linux/ssb/
  
- SONY VAIO CONTROL DEVICE DRIVER
- M:    Mattia Dongili <malattia@linux.it>
- L:    platform-driver-x86@vger.kernel.org
- W:    http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
- S:    Maintained
- F:    Documentation/laptops/sony-laptop.txt
- F:    drivers/char/sonypi.c
- F:    drivers/platform/x86/sony-laptop.c
- F:    include/linux/sony-laptop.h
  SONY MEMORYSTICK CARD SUPPORT
  M:    Alex Dubov <oakad@yahoo.com>
  W:    http://tifmxx.berlios.de/
@@@ -12402,6 -12208,16 +12209,16 @@@ M: Maxim Levitsky <maximlevitsky@gmail.
  S:    Maintained
  F:    drivers/memstick/core/ms_block.*
  
+ SONY VAIO CONTROL DEVICE DRIVER
+ M:    Mattia Dongili <malattia@linux.it>
+ L:    platform-driver-x86@vger.kernel.org
+ W:    http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
+ S:    Maintained
+ F:    Documentation/laptops/sony-laptop.txt
+ F:    drivers/char/sonypi.c
+ F:    drivers/platform/x86/sony-laptop.c
+ F:    include/linux/sony-laptop.h
  SOUND
  M:    Jaroslav Kysela <perex@perex.cz>
  M:    Takashi Iwai <tiwai@suse.com>
@@@ -12427,6 -12243,13 +12244,13 @@@ F: include/uapi/sound/compress_
  F:    sound/core/compress_offload.c
  F:    sound/soc/soc-compress.c
  
+ SOUND - DMAENGINE HELPERS
+ M:    Lars-Peter Clausen <lars@metafoo.de>
+ S:    Supported
+ F:    include/sound/dmaengine_pcm.h
+ F:    sound/core/pcm_dmaengine.c
+ F:    sound/soc/soc-generic-dmaengine-pcm.c
  SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC)
  M:    Liam Girdwood <lgirdwood@gmail.com>
  M:    Mark Brown <broonie@kernel.org>
@@@ -12439,13 -12262,6 +12263,6 @@@ F:  Documentation/sound/alsa/soc
  F:    sound/soc/
  F:    include/sound/soc*
  
- SOUND - DMAENGINE HELPERS
- M:    Lars-Peter Clausen <lars@metafoo.de>
- S:    Supported
- F:    include/sound/dmaengine_pcm.h
- F:    sound/core/pcm_dmaengine.c
- F:    sound/soc/soc-generic-dmaengine-pcm.c
  SP2 MEDIA DRIVER
  M:    Olli Salonen <olli.salonen@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -12488,21 -12304,21 +12305,21 @@@ T:        git git://git.kernel.org/pub/scm/dev
  S:    Maintained
  F:    include/linux/compiler.h
  
- SPEAR PLATFORM SUPPORT
+ SPEAR CLOCK FRAMEWORK SUPPORT
  M:    Viresh Kumar <vireshk@kernel.org>
- M:    Shiraz Hashim <shiraz.linux.kernel@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.st.com/spear
  S:    Maintained
- F:    arch/arm/boot/dts/spear*
- F:    arch/arm/mach-spear/
+ F:    drivers/clk/spear/
  
- SPEAR CLOCK FRAMEWORK SUPPORT
+ SPEAR PLATFORM SUPPORT
  M:    Viresh Kumar <vireshk@kernel.org>
+ M:    Shiraz Hashim <shiraz.linux.kernel@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.st.com/spear
  S:    Maintained
- F:    drivers/clk/spear/
+ F:    arch/arm/boot/dts/spear*
+ F:    arch/arm/mach-spear/
  
  SPI NOR SUBSYSTEM
  M:    Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>
@@@ -12536,6 -12352,15 +12353,15 @@@ S: Supporte
  F:    Documentation/networking/spider_net.txt
  F:    drivers/net/ethernet/toshiba/spider_net*
  
+ SPMI SUBSYSTEM
+ R:    Stephen Boyd <sboyd@codeaurora.org>
+ L:    linux-arm-msm@vger.kernel.org
+ F:    Documentation/devicetree/bindings/spmi/
+ F:    drivers/spmi/
+ F:    include/dt-bindings/spmi/spmi.h
+ F:    include/linux/spmi.h
+ F:    include/trace/events/spmi.h
  SPU FILE SYSTEM
  M:    Jeremy Kerr <jk@ozlabs.org>
  L:    linuxppc-dev@lists.ozlabs.org
@@@ -12564,13 -12389,6 +12390,6 @@@ L:  stable@vger.kernel.or
  S:    Supported
  F:    Documentation/process/stable-kernel-rules.rst
  
- STAGING SUBSYSTEM
- M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
- L:    devel@driverdev.osuosl.org
- S:    Supported
- F:    drivers/staging/
  STAGING - COMEDI
  M:    Ian Abbott <abbotti@mev.co.uk>
  M:    H Hartley Sweeten <hsweeten@visionengravers.com>
@@@ -12660,11 -12478,39 +12479,39 @@@ M:        Arnaud Patard <arnaud.patard@rtp-net
  S:    Odd Fixes
  F:    drivers/staging/xgifb/
  
+ STAGING SUBSYSTEM
+ M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
+ L:    devel@driverdev.osuosl.org
+ S:    Supported
+ F:    drivers/staging/
  STARFIRE/DURALAN NETWORK DRIVER
  M:    Ion Badulescu <ionut@badula.org>
  S:    Odd Fixes
  F:    drivers/net/ethernet/adaptec/starfire*
  
+ STI CEC DRIVER
+ M:    Benjamin Gaignard <benjamin.gaignard@linaro.org>
+ S:    Maintained
+ F:    drivers/staging/media/st-cec/
+ F:    Documentation/devicetree/bindings/media/stih-cec.txt
+ STK1160 USB VIDEO CAPTURE DRIVER
+ M:    Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+ L:    linux-media@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ S:    Maintained
+ F:    drivers/media/usb/stk1160/
+ STMMAC ETHERNET DRIVER
+ M:    Giuseppe Cavallaro <peppe.cavallaro@st.com>
+ M:    Alexandre Torgue <alexandre.torgue@st.com>
+ L:    netdev@vger.kernel.org
+ W:    http://www.stlinux.com
+ S:    Supported
+ F:    drivers/net/ethernet/stmicro/stmmac/
  SUN3/3X
  M:    Sam Creasey <sammy@sammy.net>
  W:    http://sammy.net/sun3/
@@@ -12736,6 -12582,20 +12583,20 @@@ S: Supporte
  F:    net/switchdev/
  F:    include/net/switchdev.h
  
+ SYNC FILE FRAMEWORK
+ M:    Sumit Semwal <sumit.semwal@linaro.org>
+ R:    Gustavo Padovan <gustavo@padovan.org>
+ S:    Maintained
+ L:    linux-media@vger.kernel.org
+ L:    dri-devel@lists.freedesktop.org
+ F:    drivers/dma-buf/sync_*
+ F:    drivers/dma-buf/dma-fence*
+ F:    drivers/dma-buf/sw_sync.c
+ F:    include/linux/sync_file.h
+ F:    include/uapi/linux/sync_file.h
+ F:    Documentation/sync_file.txt
+ T:    git git://anongit.freedesktop.org/drm/drm-misc
  SYNOPSYS ARC ARCHITECTURE
  M:    Vineet Gupta <vgupta@synopsys.com>
  L:    linux-snps-arc@lists.infradead.org
@@@ -12754,6 -12614,35 +12615,35 @@@ F: arch/arc/plat-axs10
  F:    arch/arc/boot/dts/ax*
  F:    Documentation/devicetree/bindings/arc/axs10*
  
+ SYNOPSYS DESIGNWARE DMAC DRIVER
+ M:    Viresh Kumar <vireshk@kernel.org>
+ M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+ S:    Maintained
+ F:    include/linux/dma/dw.h
+ F:    include/linux/platform_data/dma-dw.h
+ F:    drivers/dma/dw/
+ SYNOPSYS DESIGNWARE ENTERPRISE ETHERNET DRIVER
+ M:    Jie Deng <jiedeng@synopsys.com>
+ L:    netdev@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/ethernet/synopsys/
+ SYNOPSYS DESIGNWARE I2C DRIVER
+ M:    Jarkko Nikula <jarkko.nikula@linux.intel.com>
+ R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+ R:    Mika Westerberg <mika.westerberg@linux.intel.com>
+ L:    linux-i2c@vger.kernel.org
+ S:    Maintained
+ F:    drivers/i2c/busses/i2c-designware-*
+ F:    include/linux/platform_data/i2c-designware.h
+ SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
+ M:    Jaehoon Chung <jh80.chung@samsung.com>
+ L:    linux-mmc@vger.kernel.org
+ S:    Maintained
+ F:    drivers/mmc/host/dw_mmc*
  SYSTEM CONFIGURATION (SYSCON)
  M:    Lee Jones <lee.jones@linaro.org>
  M:    Arnd Bergmann <arnd@arndb.de>
@@@ -12761,6 -12650,16 +12651,16 @@@ T: git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    drivers/mfd/syscon.c
  
+ SYSTEM CONTROL & POWER INTERFACE (SCPI) Message Protocol drivers
+ M:    Sudeep Holla <sudeep.holla@arm.com>
+ L:    linux-arm-kernel@lists.infradead.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/arm/arm,scpi.txt
+ F:    drivers/clk/clk-scpi.c
+ F:    drivers/cpufreq/scpi-cpufreq.c
+ F:    drivers/firmware/arm_scpi.c
+ F:    include/linux/scpi_protocol.h
  SYSTEM RESET/SHUTDOWN DRIVERS
  M:    Sebastian Reichel <sre@kernel.org>
  L:    linux-pm@vger.kernel.org
@@@ -12769,6 -12668,15 +12669,15 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/power/reset/
  F:    drivers/power/reset/
  
+ SYSTEM TRACE MODULE CLASS
+ M:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
+ S:    Maintained
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ash/stm.git
+ F:    Documentation/trace/stm.txt
+ F:    drivers/hwtracing/stm/
+ F:    include/linux/stm.h
+ F:    include/uapi/linux/stm.h
  SYSV FILESYSTEM
  M:    Christoph Hellwig <hch@infradead.org>
  S:    Maintained
@@@ -12938,6 -12846,14 +12847,14 @@@ L: linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/rc/ttusbir.c
  
+ TEE SUBSYSTEM
+ M:    Jens Wiklander <jens.wiklander@linaro.org>
+ S:    Maintained
+ F:    include/linux/tee_drv.h
+ F:    include/uapi/linux/tee.h
+ F:    drivers/tee/
+ F:    Documentation/tee.txt
  TEGRA ARCHITECTURE SUPPORT
  M:    Thierry Reding <thierry.reding@gmail.com>
  M:    Jonathan Hunter <jonathanh@nvidia.com>
@@@ -13067,7 -12983,24 +12984,24 @@@ W: http://ibm-acpi.sourceforge.ne
  W:    http://thinkwiki.org/wiki/Ibm-acpi
  T:    git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
  S:    Maintained
- F:    drivers/platform/x86/thinkpad_acpi.c
+ F:    drivers/platform/x86/thinkpad_acpi.c
+ THUNDERBOLT DRIVER
+ M:    Andreas Noever <andreas.noever@gmail.com>
+ M:    Michael Jamet <michael.jamet@intel.com>
+ M:    Mika Westerberg <mika.westerberg@linux.intel.com>
+ M:    Yehezkel Bernat <yehezkel.bernat@intel.com>
+ S:    Maintained
+ F:    drivers/thunderbolt/
+ TI AM437X VPFE DRIVER
+ M:    "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
+ L:    linux-media@vger.kernel.org
+ W:    https://linuxtv.org
+ Q:    http://patchwork.linuxtv.org/project/linux-media/list/
+ T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
+ S:    Maintained
+ F:    drivers/media/platform/am437x/
  
  TI BANDGAP AND THERMAL DRIVER
  M:    Eduardo Valentin <edubezval@gmail.com>
@@@ -13077,13 -13010,11 +13011,11 @@@ L:        linux-omap@vger.kernel.or
  S:    Maintained
  F:    drivers/thermal/ti-soc-thermal/
  
- TI VPE/CAL DRIVERS
- M:    Benoit Parrot <bparrot@ti.com>
- L:    linux-media@vger.kernel.org
- W:    http://linuxtv.org/
- Q:    http://patchwork.linuxtv.org/project/linux-media/list/
- S:    Maintained
- F:    drivers/media/platform/ti-vpe/
+ TI BQ27XXX POWER SUPPLY DRIVER
+ R:    Andrew F. Davis <afd@ti.com>
+ F:    include/linux/power/bq27xxx_battery.h
+ F:    drivers/power/supply/bq27xxx_battery.c
+ F:    drivers/power/supply/bq27xxx_battery_i2c.c
  
  TI CDCE706 CLOCK DRIVER
  M:    Max Filippov <jcmvbkbc@gmail.com>
@@@ -13097,6 -13028,33 +13029,33 @@@ S: Maintaine
  F:    drivers/clk/ti/
  F:    include/linux/clk/ti.h
  
+ TI DAVINCI MACHINE SUPPORT
+ M:    Sekhar Nori <nsekhar@ti.com>
+ M:    Kevin Hilman <khilman@kernel.org>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci.git
+ S:    Supported
+ F:    arch/arm/mach-davinci/
+ F:    drivers/i2c/busses/i2c-davinci.c
+ F:    arch/arm/boot/dts/da850*
+ TI DAVINCI SERIES GPIO DRIVER
+ M:    Keerthy <j-keerthy@ti.com>
+ L:    linux-gpio@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/gpio/gpio-davinci.txt
+ F:    drivers/gpio/gpio-davinci.c
+ TI DAVINCI SERIES MEDIA DRIVER
+ M:    "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
+ L:    linux-media@vger.kernel.org
+ W:    https://linuxtv.org
+ Q:    http://patchwork.linuxtv.org/project/linux-media/list/
+ T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
+ S:    Maintained
+ F:    drivers/media/platform/davinci/
+ F:    include/media/davinci/
  TI ETHERNET SWITCH DRIVER (CPSW)
  R:    Grygorii Strashko <grygorii.strashko@ti.com>
  L:    linux-omap@vger.kernel.org
@@@ -13120,7 -13078,6 +13079,6 @@@ S:   Maintaine
  F:    drivers/soc/ti/*
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
  
  TI LM49xxx FAMILY ASoC CODEC DRIVERS
  M:    M R Swami Reddy <mr.swami.reddy@ti.com>
  M:    Vishwas A Deshpande <vishwas.a.deshpande@ti.com>
@@@ -13165,12 -13122,28 +13123,28 @@@ L:        alsa-devel@alsa-project.org (moderat
  S:    Odd Fixes
  F:    sound/soc/codecs/tas571x*
  
+ TI TRF7970A NFC DRIVER
+ M:    Mark Greer <mgreer@animalcreek.com>
+ L:    linux-wireless@vger.kernel.org
+ L:    linux-nfc@lists.01.org (moderated for non-subscribers)
+ S:    Supported
+ F:    drivers/nfc/trf7970a.c
+ F:    Documentation/devicetree/bindings/net/nfc/trf7970a.txt
  TI TWL4030 SERIES SOC CODEC DRIVER
  M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Maintained
  F:    sound/soc/codecs/twl4030*
  
+ TI VPE/CAL DRIVERS
+ M:    Benoit Parrot <bparrot@ti.com>
+ L:    linux-media@vger.kernel.org
+ W:    http://linuxtv.org/
+ Q:    http://patchwork.linuxtv.org/project/linux-media/list/
+ S:    Maintained
+ F:    drivers/media/platform/ti-vpe/
  TI WILINK WIRELESS DRIVERS
  L:    linux-wireless@vger.kernel.org
  W:    http://wireless.kernel.org/en/users/Drivers/wl12xx
@@@ -13180,16 -13153,6 +13154,6 @@@ S:  Orpha
  F:    drivers/net/wireless/ti/
  F:    include/linux/wl12xx.h
  
- TIPC NETWORK LAYER
- M:    Jon Maloy <jon.maloy@ericsson.com>
- M:    Ying Xue <ying.xue@windriver.com>
- L:    netdev@vger.kernel.org (core kernel code)
- L:    tipc-discussion@lists.sourceforge.net (user apps, general discussion)
- W:    http://tipc.sourceforge.net/
- S:    Maintained
- F:    include/uapi/linux/tipc*.h
- F:    net/tipc/
  TILE ARCHITECTURE
  M:    Chris Metcalf <cmetcalf@mellanox.com>
  W:    http://www.mellanox.com/repository/solutions/tile-scm/
@@@ -13205,6 -13168,34 +13169,34 @@@ F: drivers/tty/serial/tilegx.
  F:    drivers/usb/host/*-tilegx.c
  F:    include/linux/usb/tilegx.h
  
+ TIMEKEEPING, CLOCKSOURCE CORE, NTP, ALARMTIMER
+ M:    John Stultz <john.stultz@linaro.org>
+ M:    Thomas Gleixner <tglx@linutronix.de>
+ R:    Stephen Boyd <sboyd@codeaurora.org>
+ L:    linux-kernel@vger.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
+ S:    Supported
+ F:    include/linux/clocksource.h
+ F:    include/linux/time.h
+ F:    include/linux/timex.h
+ F:    include/uapi/linux/time.h
+ F:    include/uapi/linux/timex.h
+ F:    kernel/time/clocksource.c
+ F:    kernel/time/time*.c
+ F:    kernel/time/alarmtimer.c
+ F:    kernel/time/ntp.c
+ F:    tools/testing/selftests/timers/
+ TIPC NETWORK LAYER
+ M:    Jon Maloy <jon.maloy@ericsson.com>
+ M:    Ying Xue <ying.xue@windriver.com>
+ L:    netdev@vger.kernel.org (core kernel code)
+ L:    tipc-discussion@lists.sourceforge.net (user apps, general discussion)
+ W:    http://tipc.sourceforge.net/
+ S:    Maintained
+ F:    include/uapi/linux/tipc*.h
+ F:    net/tipc/
  TLAN NETWORK DRIVER
  M:    Samuel Chessman <chessman@tux.org>
  L:    tlan-devel@lists.sourceforge.net (subscribers-only)
@@@ -13213,6 -13204,38 +13205,38 @@@ S: Maintaine
  F:    Documentation/networking/tlan.txt
  F:    drivers/net/ethernet/ti/tlan.*
  
+ TM6000 VIDEO4LINUX DRIVER
+ M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
+ M:    Mauro Carvalho Chehab <mchehab@kernel.org>
+ L:    linux-media@vger.kernel.org
+ W:    https://linuxtv.org
+ T:    git git://linuxtv.org/media_tree.git
+ S:    Odd fixes
+ F:    drivers/media/usb/tm6000/
+ F:    Documentation/media/v4l-drivers/tm6000*
+ TMIO/SDHI MMC DRIVER
+ M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
+ L:    linux-mmc@vger.kernel.org
+ S:    Supported
+ F:    drivers/mmc/host/tmio_mmc*
+ F:    drivers/mmc/host/renesas_sdhi*
+ F:    include/linux/mfd/tmio.h
+ TMP401 HARDWARE MONITOR DRIVER
+ M:    Guenter Roeck <linux@roeck-us.net>
+ L:    linux-hwmon@vger.kernel.org
+ S:    Maintained
+ F:    Documentation/hwmon/tmp401
+ F:    drivers/hwmon/tmp401.c
+ TMPFS (SHMEM FILESYSTEM)
+ M:    Hugh Dickins <hughd@google.com>
+ L:    linux-mm@kvack.org
+ S:    Maintained
+ F:    include/linux/shmem_fs.h
+ F:    mm/shmem.c
  TOMOYO SECURITY MODULE
  M:    Kentaro Takeda <takedakn@nttdata.co.jp>
  M:    Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
@@@ -13249,12 -13272,6 +13273,6 @@@ L:  platform-driver-x86@vger.kernel.or
  S:    Maintained
  F:    drivers/platform/x86/toshiba_haps.c
  
- TOSHIBA WMI HOTKEYS DRIVER
- M:    Azael Avalos <coproscefalo@gmail.com>
- L:    platform-driver-x86@vger.kernel.org
- S:    Maintained
- F:    drivers/platform/x86/toshiba-wmi.c
  TOSHIBA SMM DRIVER
  M:    Jonathan Buzzard <jonathan@buzzard.org.uk>
  W:    http://www.buzzard.org.uk/toshiba/
@@@ -13270,62 -13287,11 +13288,11 @@@ S:        Maintaine
  F:    drivers/media/i2c/tc358743*
  F:    include/media/i2c/tc358743.h
  
- TMIO/SDHI MMC DRIVER
- M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
- L:    linux-mmc@vger.kernel.org
- S:    Supported
- F:    drivers/mmc/host/tmio_mmc*
- F:    drivers/mmc/host/renesas_sdhi*
- F:    include/linux/mfd/tmio.h
- TMP401 HARDWARE MONITOR DRIVER
- M:    Guenter Roeck <linux@roeck-us.net>
- L:    linux-hwmon@vger.kernel.org
- S:    Maintained
- F:    Documentation/hwmon/tmp401
- F:    drivers/hwmon/tmp401.c
- TMPFS (SHMEM FILESYSTEM)
- M:    Hugh Dickins <hughd@google.com>
- L:    linux-mm@kvack.org
- S:    Maintained
- F:    include/linux/shmem_fs.h
- F:    mm/shmem.c
- TM6000 VIDEO4LINUX DRIVER
- M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
- M:    Mauro Carvalho Chehab <mchehab@kernel.org>
- L:    linux-media@vger.kernel.org
- W:    https://linuxtv.org
- T:    git git://linuxtv.org/media_tree.git
- S:    Odd fixes
- F:    drivers/media/usb/tm6000/
- F:    Documentation/media/v4l-drivers/tm6000*
- TW5864 VIDEO4LINUX DRIVER
- M:    Bluecherry Maintainers <maintainers@bluecherrydvr.com>
- M:    Anton Sviridenko <anton@corp.bluecherry.net>
- M:    Andrey Utkin <andrey.utkin@corp.bluecherry.net>
- M:    Andrey Utkin <andrey_utkin@fastmail.com>
- L:    linux-media@vger.kernel.org
- S:    Supported
- F:    drivers/media/pci/tw5864/
- TW68 VIDEO4LINUX DRIVER
- M:    Hans Verkuil <hverkuil@xs4all.nl>
- L:    linux-media@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- W:    https://linuxtv.org
- S:    Odd Fixes
- F:    drivers/media/pci/tw68/
- TW686X VIDEO4LINUX DRIVER
- M:    Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
- L:    linux-media@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- W:    http://linuxtv.org
+ TOSHIBA WMI HOTKEYS DRIVER
+ M:    Azael Avalos <coproscefalo@gmail.com>
+ L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
- F:    drivers/media/pci/tw686x/
+ F:    drivers/platform/x86/toshiba-wmi.c
  
  TPM DEVICE DRIVER
  M:    Peter Huewe <peterhuewe@gmx.de>
@@@ -13427,6 -13393,31 +13394,31 @@@ S: Maintaine
  F:    drivers/tc/
  F:    include/linux/tc.h
  
+ TW5864 VIDEO4LINUX DRIVER
+ M:    Bluecherry Maintainers <maintainers@bluecherrydvr.com>
+ M:    Anton Sviridenko <anton@corp.bluecherry.net>
+ M:    Andrey Utkin <andrey.utkin@corp.bluecherry.net>
+ M:    Andrey Utkin <andrey_utkin@fastmail.com>
+ L:    linux-media@vger.kernel.org
+ S:    Supported
+ F:    drivers/media/pci/tw5864/
+ TW68 VIDEO4LINUX DRIVER
+ M:    Hans Verkuil <hverkuil@xs4all.nl>
+ L:    linux-media@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ W:    https://linuxtv.org
+ S:    Odd Fixes
+ F:    drivers/media/pci/tw68/
+ TW686X VIDEO4LINUX DRIVER
+ M:    Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+ L:    linux-media@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ W:    http://linuxtv.org
+ S:    Maintained
+ F:    drivers/media/pci/tw686x/
  UBI FILE SYSTEM (UBIFS)
  M:    Richard Weinberger <richard@nod.at>
  M:    Artem Bityutskiy <dedekind1@gmail.com>
@@@ -13476,6 -13467,13 +13468,13 @@@ S: Maintaine
  F:    drivers/hid/uhid.c
  F:    include/uapi/linux/uhid.h
  
+ ULPI BUS
+ M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
+ L:    linux-usb@vger.kernel.org
+ S:    Maintained
+ F:    drivers/usb/common/ulpi.c
+ F:    include/linux/ulpi/
  ULTRA-WIDEBAND (UWB) SUBSYSTEM:
  L:    linux-usb@vger.kernel.org
  S:    Orphan
@@@ -13536,6 -13534,14 +13535,14 @@@ F: drivers/mtd/ubi
  F:    include/linux/mtd/ubi.h
  F:    include/uapi/mtd/ubi-user.h
  
+ USB "USBNET" DRIVER FRAMEWORK
+ M:    Oliver Neukum <oneukum@suse.com>
+ L:    netdev@vger.kernel.org
+ W:    http://www.linux-usb.org/usbnet
+ S:    Maintained
+ F:    drivers/net/usb/usbnet.c
+ F:    include/linux/usb/usbnet.h
  USB ACM DRIVER
  M:    Oliver Neukum <oneukum@suse.com>
  L:    linux-usb@vger.kernel.org
@@@ -13759,14 -13765,6 +13766,6 @@@ L:  linux-usb@vger.kernel.or
  S:    Maintained
  F:    drivers/usb/host/uhci*
  
- USB "USBNET" DRIVER FRAMEWORK
- M:    Oliver Neukum <oneukum@suse.com>
- L:    netdev@vger.kernel.org
- W:    http://www.linux-usb.org/usbnet
- S:    Maintained
- F:    drivers/net/usb/usbnet.c
- F:    include/linux/usb/usbnet.h
  USB VIDEO CLASS
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-uvc-devel@lists.sourceforge.net (subscribers-only)
@@@ -13815,18 -13813,11 +13814,11 @@@ USB ZR364XX DRIVE
  M:    Antoine Jacquet <royale@zerezo.com>
  L:    linux-usb@vger.kernel.org
  L:    linux-media@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- W:    http://royale.zerezo.com/zr364xx/
- S:    Maintained
- F:    Documentation/media/v4l-drivers/zr364xx*
- F:    drivers/media/usb/zr364xx/
- ULPI BUS
- M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
- L:    linux-usb@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ W:    http://royale.zerezo.com/zr364xx/
  S:    Maintained
- F:    drivers/usb/common/ulpi.c
- F:    include/linux/ulpi/
+ F:    Documentation/media/v4l-drivers/zr364xx*
+ F:    drivers/media/usb/zr364xx/
  
  USER-MODE LINUX (UML)
  M:    Jeff Dike <jdike@addtoit.com>
@@@ -13921,6 -13912,37 +13913,37 @@@ F: drivers/gpu/vga/vga_switcheroo.
  F:    include/linux/vga_switcheroo.h
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
+ VIA RHINE NETWORK DRIVER
+ S:    Orphan
+ F:    drivers/net/ethernet/via/via-rhine.c
+ VIA SD/MMC CARD CONTROLLER DRIVER
+ M:    Bruce Chang <brucechang@via.com.tw>
+ M:    Harald Welte <HaraldWelte@viatech.com>
+ S:    Maintained
+ F:    drivers/mmc/host/via-sdmmc.c
+ VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
+ M:    Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
+ L:    linux-fbdev@vger.kernel.org
+ S:    Maintained
+ F:    include/linux/via-core.h
+ F:    include/linux/via-gpio.h
+ F:    include/linux/via_i2c.h
+ F:    drivers/video/fbdev/via/
+ VIA VELOCITY NETWORK DRIVER
+ M:    Francois Romieu <romieu@fr.zoreil.com>
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/ethernet/via/via-velocity.*
+ VIDEO MULTIPLEXER DRIVER
+ M:    Philipp Zabel <p.zabel@pengutronix.de>
+ L:    linux-media@vger.kernel.org
+ S:    Maintained
+ F:    drivers/media/platform/video-mux.c
  VIDEOBUF2 FRAMEWORK
  M:    Pawel Osciak <pawel@osciak.com>
  M:    Marek Szyprowski <m.szyprowski@samsung.com>
@@@ -13930,11 -13952,20 +13953,20 @@@ S:        Maintaine
  F:    drivers/media/v4l2-core/videobuf2-*
  F:    include/media/videobuf2-*
  
- VIDEO MULTIPLEXER DRIVER
- M:    Philipp Zabel <p.zabel@pengutronix.de>
+ VIMC VIRTUAL MEDIA CONTROLLER DRIVER
+ M:    Helen Koike <helen.koike@collabora.com>
  L:    linux-media@vger.kernel.org
+ T:    git git://linuxtv.org/media_tree.git
+ W:    https://linuxtv.org
  S:    Maintained
- F:    drivers/media/platform/video-mux.c
+ F:    drivers/media/platform/vimc/*
+ VIRT LIB
+ M:    Alex Williamson <alex.williamson@redhat.com>
+ M:    Paolo Bonzini <pbonzini@redhat.com>
+ L:    kvm@vger.kernel.org
+ S:    Supported
+ F:    virt/lib/
  
  VIRTIO AND VHOST VSOCK DRIVER
  M:    Stefan Hajnoczi <stefanha@redhat.com>
@@@ -13952,12 -13983,6 +13984,6 @@@ F:  drivers/net/vsockmon.
  F:    drivers/vhost/vsock.c
  F:    drivers/vhost/vsock.h
  
- VIRTUAL SERIO DEVICE DRIVER
- M:    Stephen Chandler Paul <thatslyude@gmail.com>
- S:    Maintained
- F:    drivers/input/serio/userio.c
- F:    include/uapi/linux/userio.h
  VIRTIO CONSOLE DRIVER
  M:    Amit Shah <amit@kernel.org>
  L:    virtualization@lists.linux-foundation.org
@@@ -13980,6 -14005,14 +14006,14 @@@ F: include/linux/virtio*.
  F:    include/uapi/linux/virtio_*.h
  F:    drivers/crypto/virtio/
  
+ VIRTIO CRYPTO DRIVER
+ M:    Gonglei <arei.gonglei@huawei.com>
+ L:    virtualization@lists.linux-foundation.org
+ L:    linux-crypto@vger.kernel.org
+ S:    Maintained
+ F:    drivers/crypto/virtio/
+ F:    include/uapi/linux/virtio_crypto.h
  VIRTIO DRIVERS FOR S390
  M:    Cornelia Huck <cohuck@redhat.com>
  M:    Halil Pasic <pasic@linux.vnet.ibm.com>
@@@ -14016,45 -14049,11 +14050,11 @@@ S:        Maintaine
  F:    drivers/virtio/virtio_input.c
  F:    include/uapi/linux/virtio_input.h
  
- VIRTIO CRYPTO DRIVER
- M:  Gonglei <arei.gonglei@huawei.com>
- L:  virtualization@lists.linux-foundation.org
- L:  linux-crypto@vger.kernel.org
- S:  Maintained
- F:  drivers/crypto/virtio/
- F:  include/uapi/linux/virtio_crypto.h
- VIA RHINE NETWORK DRIVER
- S:    Orphan
- F:    drivers/net/ethernet/via/via-rhine.c
- VIA SD/MMC CARD CONTROLLER DRIVER
- M:    Bruce Chang <brucechang@via.com.tw>
- M:    Harald Welte <HaraldWelte@viatech.com>
- S:    Maintained
- F:    drivers/mmc/host/via-sdmmc.c
- VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
- M:    Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
- L:    linux-fbdev@vger.kernel.org
- S:    Maintained
- F:    include/linux/via-core.h
- F:    include/linux/via-gpio.h
- F:    include/linux/via_i2c.h
- F:    drivers/video/fbdev/via/
- VIA VELOCITY NETWORK DRIVER
- M:    Francois Romieu <romieu@fr.zoreil.com>
- L:    netdev@vger.kernel.org
+ VIRTUAL SERIO DEVICE DRIVER
+ M:    Stephen Chandler Paul <thatslyude@gmail.com>
  S:    Maintained
- F:    drivers/net/ethernet/via/via-velocity.*
- VIRT LIB
- M:    Alex Williamson <alex.williamson@redhat.com>
- M:    Paolo Bonzini <pbonzini@redhat.com>
- L:    kvm@vger.kernel.org
- S:    Supported
- F:    virt/lib/
+ F:    drivers/input/serio/userio.c
+ F:    include/uapi/linux/userio.h
  
  VIVID VIRTUAL VIDEO DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
@@@ -14064,14 -14063,6 +14064,6 @@@ W:  https://linuxtv.or
  S:    Maintained
  F:    drivers/media/platform/vivid/*
  
- VIMC VIRTUAL MEDIA CONTROLLER DRIVER
- M:    Helen Koike <helen.koike@collabora.com>
- L:    linux-media@vger.kernel.org
- T:    git git://linuxtv.org/media_tree.git
- W:    https://linuxtv.org
- S:    Maintained
- F:    drivers/media/platform/vimc/*
  VLYNQ BUS
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    openwrt-devel@lists.openwrt.org (subscribers-only)
@@@ -14091,12 -14082,6 +14083,6 @@@ F:  drivers/staging/vme
  F:    drivers/vme/
  F:    include/linux/vme*
  
- VMWARE HYPERVISOR INTERFACE
- M:    Alok Kataria <akataria@vmware.com>
- L:    virtualization@lists.linux-foundation.org
- S:    Supported
- F:    arch/x86/kernel/cpu/vmware.c
  VMWARE BALLOON DRIVER
  M:    Xavier Deguillard <xdeguillard@vmware.com>
  M:    Philip Moltmann <moltmann@vmware.com>
@@@ -14105,6 -14090,27 +14091,27 @@@ L: linux-kernel@vger.kernel.or
  S:    Maintained
  F:    drivers/misc/vmw_balloon.c
  
+ VMWARE HYPERVISOR INTERFACE
+ M:    Alok Kataria <akataria@vmware.com>
+ L:    virtualization@lists.linux-foundation.org
+ S:    Supported
+ F:    arch/x86/kernel/cpu/vmware.c
+ VMWARE PVRDMA DRIVER
+ M:    Adit Ranadive <aditr@vmware.com>
+ M:    VMware PV-Drivers <pv-drivers@vmware.com>
+ L:    linux-rdma@vger.kernel.org
+ S:    Maintained
+ F:    drivers/infiniband/hw/vmw_pvrdma/
+ VMware PVSCSI driver
+ M:    Jim Gill <jgill@vmware.com>
+ M:    VMware PV-Drivers <pv-drivers@vmware.com>
+ L:    linux-scsi@vger.kernel.org
+ S:    Maintained
+ F:    drivers/scsi/vmw_pvscsi.c
+ F:    drivers/scsi/vmw_pvscsi.h
  VMWARE VMMOUSE SUBDRIVER
  M:    "VMware Graphics" <linux-graphics-maintainer@vmware.com>
  M:    "VMware, Inc." <pv-drivers@vmware.com>
@@@ -14120,21 -14126,6 +14127,6 @@@ L:  netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/vmxnet3/
  
- VMware PVSCSI driver
- M:    Jim Gill <jgill@vmware.com>
- M:    VMware PV-Drivers <pv-drivers@vmware.com>
- L:    linux-scsi@vger.kernel.org
- S:    Maintained
- F:    drivers/scsi/vmw_pvscsi.c
- F:    drivers/scsi/vmw_pvscsi.h
- VMWARE PVRDMA DRIVER
- M:    Adit Ranadive <aditr@vmware.com>
- M:    VMware PV-Drivers <pv-drivers@vmware.com>
- L:    linux-rdma@vger.kernel.org
- S:    Maintained
- F:    drivers/infiniband/hw/vmw_pvrdma/
  VOLTAGE AND CURRENT REGULATOR FRAMEWORK
  M:    Liam Girdwood <lgirdwood@gmail.com>
  M:    Mark Brown <broonie@kernel.org>
@@@ -14233,6 -14224,27 +14225,27 @@@ L: linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/hid/hid-wiimote*
  
+ WILOCITY WIL6210 WIRELESS DRIVER
+ M:    Maya Erez <qca_merez@qca.qualcomm.com>
+ L:    linux-wireless@vger.kernel.org
+ L:    wil6210@qca.qualcomm.com
+ S:    Supported
+ W:    http://wireless.kernel.org/en/users/Drivers/wil6210
+ F:    drivers/net/wireless/ath/wil6210/
+ F:    include/uapi/linux/wil6210_uapi.h
+ WIMAX STACK
+ M:    Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+ M:    linux-wimax@intel.com
+ L:    wimax@linuxwimax.org (subscribers-only)
+ S:    Supported
+ W:    http://linuxwimax.org
+ F:    Documentation/wimax/README.wimax
+ F:    include/linux/wimax/debug.h
+ F:    include/net/wimax.h
+ F:    include/uapi/linux/wimax.h
+ F:    net/wimax/
  WINBOND CIR DRIVER
  M:    David Härdeman <david@hardeman.nu>
  S:    Maintained
@@@ -14250,18 -14262,6 +14263,6 @@@ L:  linux-gpio@vger.kernel.or
  S:    Maintained
  F:    drivers/gpio/gpio-ws16c48.c
  
- WIMAX STACK
- M:    Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
- M:    linux-wimax@intel.com
- L:    wimax@linuxwimax.org (subscribers-only)
- S:    Supported
- W:    http://linuxwimax.org
- F:    Documentation/wimax/README.wimax
- F:    include/linux/wimax/debug.h
- F:    include/net/wimax.h
- F:    include/uapi/linux/wimax.h
- F:    net/wimax/
  WISTRON LAPTOP BUTTON DRIVER
  M:    Miloslav Trmac <mitr@volny.cz>
  S:    Maintained
@@@ -14346,15 -14346,6 +14347,6 @@@ S:  Maintaine
  F:    Documentation/x86/
  F:    arch/x86/
  
- X86 PLATFORM DRIVERS
- M:    Darren Hart <dvhart@infradead.org>
- M:    Andy Shevchenko <andy@infradead.org>
- L:    platform-driver-x86@vger.kernel.org
- T:    git git://git.infradead.org/users/dvhart/linux-platform-drivers-x86.git
- S:    Maintained
- F:    drivers/platform/x86/
- F:    drivers/platform/olpc/
  X86 MCE INFRASTRUCTURE
  M:    Tony Luck <tony.luck@intel.com>
  M:    Borislav Petkov <bp@alien8.de>
@@@ -14367,6 -14358,15 +14359,15 @@@ M: Borislav Petkov <bp@alien8.de
  S:    Maintained
  F:    arch/x86/kernel/cpu/microcode/*
  
+ X86 PLATFORM DRIVERS
+ M:    Darren Hart <dvhart@infradead.org>
+ M:    Andy Shevchenko <andy@infradead.org>
+ L:    platform-driver-x86@vger.kernel.org
+ T:    git git://git.infradead.org/users/dvhart/linux-platform-drivers-x86.git
+ S:    Maintained
+ F:    drivers/platform/x86/
+ F:    drivers/platform/olpc/
  X86 VDSO
  M:    Andy Lutomirski <luto@amacapital.net>
  L:    linux-kernel@vger.kernel.org
@@@ -14383,20 -14383,13 +14384,13 @@@ T:        git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/tuners/tuner-xc2028.*
  
- XEN HYPERVISOR INTERFACE
- M:    Boris Ostrovsky <boris.ostrovsky@oracle.com>
- M:    Juergen Gross <jgross@suse.com>
+ XEN BLOCK SUBSYSTEM
+ M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+ M:    Roger Pau Monné <roger.pau@citrix.com>
  L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git
  S:    Supported
- F:    arch/x86/xen/
- F:    drivers/*/xen-*front.c
- F:    drivers/xen/
- F:    arch/x86/include/asm/xen/
- F:    include/xen/
- F:    include/uapi/xen/
- F:    Documentation/ABI/stable/sysfs-hypervisor-xen
- F:    Documentation/ABI/testing/sysfs-hypervisor-xen
+ F:    drivers/block/xen-blkback/*
+ F:    drivers/block/xen*
  
  XEN HYPERVISOR ARM
  M:    Stefano Stabellini <sstabellini@kernel.org>
@@@ -14412,6 -14405,21 +14406,21 @@@ S: Maintaine
  F:    arch/arm64/xen/
  F:    arch/arm64/include/asm/xen/
  
+ XEN HYPERVISOR INTERFACE
+ M:    Boris Ostrovsky <boris.ostrovsky@oracle.com>
+ M:    Juergen Gross <jgross@suse.com>
+ L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git
+ S:    Supported
+ F:    arch/x86/xen/
+ F:    drivers/*/xen-*front.c
+ F:    drivers/xen/
+ F:    arch/x86/include/asm/xen/
+ F:    include/xen/
+ F:    include/uapi/xen/
+ F:    Documentation/ABI/stable/sysfs-hypervisor-xen
+ F:    Documentation/ABI/testing/sysfs-hypervisor-xen
  XEN NETWORK BACKEND DRIVER
  M:    Wei Liu <wei.liu2@citrix.com>
  M:    Paul Durrant <paul.durrant@citrix.com>
@@@ -14427,14 -14435,6 +14436,6 @@@ S:  Supporte
  F:    arch/x86/pci/*xen*
  F:    drivers/pci/*xen*
  
- XEN BLOCK SUBSYSTEM
- M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
- M:    Roger Pau Monné <roger.pau@citrix.com>
- L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
- S:    Supported
- F:    drivers/block/xen-blkback/*
- F:    drivers/block/xen*
  XEN PVSCSI DRIVERS
  M:    Juergen Gross <jgross@suse.com>
  L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
@@@ -14511,6 -14511,13 +14512,13 @@@ S: Maintaine
  F:    drivers/net/hamradio/yam*
  F:    include/linux/yam.h
  
+ YAMA SECURITY MODULE
+ M:    Kees Cook <keescook@chromium.org>
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git yama/tip
+ S:    Supported
+ F:    security/yama/
+ F:    Documentation/admin-guide/LSM/Yama.rst
  YEALINK PHONE DRIVER
  M:    Henk Vergonet <Henk.Vergonet@gmail.com>
  L:    usbb2k-api-dev@nongnu.org
@@@ -14545,23 -14552,23 +14553,23 @@@ L:        zd1211-devs@lists.sourceforge.net (s
  S:    Maintained
  F:    drivers/net/wireless/zydas/zd1211rw/
  
- ZD1301_DEMOD MEDIA DRIVER
+ ZD1301 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org/
  W:    http://palosaari.fi/linux/
  Q:    https://patchwork.linuxtv.org/project/linux-media/list/
  S:    Maintained
- F:    drivers/media/dvb-frontends/zd1301_demod*
+ F:    drivers/media/usb/dvb-usb-v2/zd1301*
  
- ZD1301 MEDIA DRIVER
+ ZD1301_DEMOD MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org/
  W:    http://palosaari.fi/linux/
  Q:    https://patchwork.linuxtv.org/project/linux-media/list/
  S:    Maintained
- F:    drivers/media/usb/dvb-usb-v2/zd1301*
+ F:    drivers/media/dvb-frontends/zd1301_demod*
  
  ZPOOL COMPRESSED PAGE STORAGE API
  M:    Dan Streetman <ddstreet@ieee.org>
index 4775999ee016e54d73f7faca229a4c9fb1a754b3,3a34fdba5301185e9939dc2feff52bef4f3ea68f..b1fdd3cc10d11a54d83471b047ce2515ce90c0a0
@@@ -657,7 -657,6 +657,7 @@@ struct bcmgenet_priv 
  
        struct clk *clk;
        struct platform_device *pdev;
 +      struct platform_device *mii_pdev;
  
        /* WOL */
        struct clk *clk_wol;
@@@ -699,7 -698,7 +699,7 @@@ GENET_IO_MACRO(rbuf, GENET_RBUF_OFF)
  
  /* MDIO routines */
  int bcmgenet_mii_init(struct net_device *dev);
- int bcmgenet_mii_config(struct net_device *dev);
+ int bcmgenet_mii_config(struct net_device *dev, bool init);
  int bcmgenet_mii_probe(struct net_device *dev);
  void bcmgenet_mii_exit(struct net_device *dev);
  void bcmgenet_mii_reset(struct net_device *dev);
index 33d3f60ac74bb6cf2a94181ac8ec12d5e0870b12,30cb97b4a1d7a27f4be917e4d718f86d596734a5..18f5723be2c91b1e533a21ef14e342fb9502961c
  #include <linux/of_net.h>
  #include <linux/of_mdio.h>
  #include <linux/platform_data/bcmgenet.h>
 +#include <linux/platform_data/mdio-bcm-unimac.h>
  
  #include "bcmgenet.h"
  
 -/* read a value from the MII */
 -static int bcmgenet_mii_read(struct mii_bus *bus, int phy_id, int location)
 -{
 -      int ret;
 -      struct net_device *dev = bus->priv;
 -      struct bcmgenet_priv *priv = netdev_priv(dev);
 -      u32 reg;
 -
 -      bcmgenet_umac_writel(priv, (MDIO_RD | (phy_id << MDIO_PMD_SHIFT) |
 -                           (location << MDIO_REG_SHIFT)), UMAC_MDIO_CMD);
 -      /* Start MDIO transaction*/
 -      reg = bcmgenet_umac_readl(priv, UMAC_MDIO_CMD);
 -      reg |= MDIO_START_BUSY;
 -      bcmgenet_umac_writel(priv, reg, UMAC_MDIO_CMD);
 -      wait_event_timeout(priv->wq,
 -                         !(bcmgenet_umac_readl(priv, UMAC_MDIO_CMD)
 -                         & MDIO_START_BUSY),
 -                         HZ / 100);
 -      ret = bcmgenet_umac_readl(priv, UMAC_MDIO_CMD);
 -
 -      /* Some broken devices are known not to release the line during
 -       * turn-around, e.g: Broadcom BCM53125 external switches, so check for
 -       * that condition here and ignore the MDIO controller read failure
 -       * indication.
 -       */
 -      if (!(bus->phy_ignore_ta_mask & 1 << phy_id) && (ret & MDIO_READ_FAIL))
 -              return -EIO;
 -
 -      return ret & 0xffff;
 -}
 -
 -/* write a value to the MII */
 -static int bcmgenet_mii_write(struct mii_bus *bus, int phy_id,
 -                            int location, u16 val)
 -{
 -      struct net_device *dev = bus->priv;
 -      struct bcmgenet_priv *priv = netdev_priv(dev);
 -      u32 reg;
 -
 -      bcmgenet_umac_writel(priv, (MDIO_WR | (phy_id << MDIO_PMD_SHIFT) |
 -                           (location << MDIO_REG_SHIFT) | (0xffff & val)),
 -                           UMAC_MDIO_CMD);
 -      reg = bcmgenet_umac_readl(priv, UMAC_MDIO_CMD);
 -      reg |= MDIO_START_BUSY;
 -      bcmgenet_umac_writel(priv, reg, UMAC_MDIO_CMD);
 -      wait_event_timeout(priv->wq,
 -                         !(bcmgenet_umac_readl(priv, UMAC_MDIO_CMD) &
 -                         MDIO_START_BUSY),
 -                         HZ / 100);
 -
 -      return 0;
 -}
 -
  /* setup netdev link state when PHY link status change and
   * update UMAC and RGMII block when link up
   */
@@@ -186,7 -238,7 +186,7 @@@ static void bcmgenet_moca_phy_setup(str
                                          bcmgenet_fixed_phy_link_update);
  }
  
- int bcmgenet_mii_config(struct net_device *dev)
+ int bcmgenet_mii_config(struct net_device *dev, bool init)
  {
        struct bcmgenet_priv *priv = netdev_priv(dev);
        struct phy_device *phydev = priv->phydev;
                bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
        }
  
-       dev_info_once(kdev, "configuring instance for %s\n", phy_name);
+       if (init)
+               dev_info(kdev, "configuring instance for %s\n", phy_name);
  
        return 0;
  }
@@@ -323,7 -376,7 +324,7 @@@ int bcmgenet_mii_probe(struct net_devic
         * PHY speed which is needed for bcmgenet_mii_config() to configure
         * things appropriately.
         */
-       ret = bcmgenet_mii_config(dev);
+       ret = bcmgenet_mii_config(dev, true);
        if (ret) {
                phy_disconnect(priv->phydev);
                return ret;
        return 0;
  }
  
 -/* Workaround for integrated BCM7xxx Gigabit PHYs which have a problem with
 - * their internal MDIO management controller making them fail to successfully
 - * be read from or written to for the first transaction.  We insert a dummy
 - * BMSR read here to make sure that phy_get_device() and get_phy_id() can
 - * correctly read the PHY MII_PHYSID1/2 registers and successfully register a
 - * PHY device for this peripheral.
 - *
 - * Once the PHY driver is registered, we can workaround subsequent reads from
 - * there (e.g: during system-wide power management).
 - *
 - * bus->reset is invoked before mdiobus_scan during mdiobus_register and is
 - * therefore the right location to stick that workaround. Since we do not want
 - * to read from non-existing PHYs, we either use bus->phy_mask or do a manual
 - * Device Tree scan to limit the search area.
 - */
 -static int bcmgenet_mii_bus_reset(struct mii_bus *bus)
 +static struct device_node *bcmgenet_mii_of_find_mdio(struct bcmgenet_priv *priv)
  {
 -      struct net_device *dev = bus->priv;
 -      struct bcmgenet_priv *priv = netdev_priv(dev);
 -      struct device_node *np = priv->mdio_dn;
 -      struct device_node *child = NULL;
 -      u32 read_mask = 0;
 -      int addr = 0;
 +      struct device_node *dn = priv->pdev->dev.of_node;
 +      struct device *kdev = &priv->pdev->dev;
 +      char *compat;
  
 -      if (!np) {
 -              read_mask = 1 << priv->phy_addr;
 -      } else {
 -              for_each_available_child_of_node(np, child) {
 -                      addr = of_mdio_parse_addr(&dev->dev, child);
 -                      if (addr < 0)
 -                              continue;
 +      compat = kasprintf(GFP_KERNEL, "brcm,genet-mdio-v%d", priv->version);
 +      if (!compat)
 +              return NULL;
  
 -                      read_mask |= 1 << addr;
 -              }
 +      priv->mdio_dn = of_find_compatible_node(dn, NULL, compat);
 +      kfree(compat);
 +      if (!priv->mdio_dn) {
 +              dev_err(kdev, "unable to find MDIO bus node\n");
 +              return NULL;
        }
  
 -      for (addr = 0; addr < PHY_MAX_ADDR; addr++) {
 -              if (read_mask & 1 << addr) {
 -                      dev_dbg(&dev->dev, "Workaround for PHY @ %d\n", addr);
 -                      mdiobus_read(bus, addr, MII_BMSR);
 -              }
 +      return priv->mdio_dn;
 +}
 +
 +static void bcmgenet_mii_pdata_init(struct bcmgenet_priv *priv,
 +                                  struct unimac_mdio_pdata *ppd)
 +{
 +      struct device *kdev = &priv->pdev->dev;
 +      struct bcmgenet_platform_data *pd = kdev->platform_data;
 +
 +      if (pd->phy_interface != PHY_INTERFACE_MODE_MOCA && pd->mdio_enabled) {
 +              /*
 +               * Internal or external PHY with MDIO access
 +               */
 +              if (pd->phy_address >= 0 && pd->phy_address < PHY_MAX_ADDR)
 +                      ppd->phy_mask = 1 << pd->phy_address;
 +              else
 +                      ppd->phy_mask = 0;
        }
 +}
  
 +static int bcmgenet_mii_wait(void *wait_func_data)
 +{
 +      struct bcmgenet_priv *priv = wait_func_data;
 +
 +      wait_event_timeout(priv->wq,
 +                         !(bcmgenet_umac_readl(priv, UMAC_MDIO_CMD)
 +                         & MDIO_START_BUSY),
 +                         HZ / 100);
        return 0;
  }
  
 -static int bcmgenet_mii_alloc(struct bcmgenet_priv *priv)
 +static int bcmgenet_mii_register(struct bcmgenet_priv *priv)
  {
 -      struct mii_bus *bus;
 +      struct platform_device *pdev = priv->pdev;
 +      struct bcmgenet_platform_data *pdata = pdev->dev.platform_data;
 +      struct device_node *dn = pdev->dev.of_node;
 +      struct unimac_mdio_pdata ppd;
 +      struct platform_device *ppdev;
 +      struct resource *pres, res;
 +      int id, ret;
 +
 +      pres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 +      memset(&res, 0, sizeof(res));
 +      memset(&ppd, 0, sizeof(ppd));
 +
 +      ppd.wait_func = bcmgenet_mii_wait;
 +      ppd.wait_func_data = priv;
 +      ppd.bus_name = "bcmgenet MII bus";
 +
 +      /* Unimac MDIO bus controller starts at UniMAC offset + MDIO_CMD
 +       * and is 2 * 32-bits word long, 8 bytes total.
 +       */
 +      res.start = pres->start + GENET_UMAC_OFF + UMAC_MDIO_CMD;
 +      res.end = res.start + 8;
 +      res.flags = IORESOURCE_MEM;
  
 -      if (priv->mii_bus)
 -              return 0;
 +      if (dn)
 +              id = of_alias_get_id(dn, "eth");
 +      else
 +              id = pdev->id;
  
 -      priv->mii_bus = mdiobus_alloc();
 -      if (!priv->mii_bus) {
 -              pr_err("failed to allocate\n");
 +      ppdev = platform_device_alloc(UNIMAC_MDIO_DRV_NAME, id);
 +      if (!ppdev)
                return -ENOMEM;
 -      }
  
 -      bus = priv->mii_bus;
 -      bus->priv = priv->dev;
 -      bus->name = "bcmgenet MII bus";
 -      bus->parent = &priv->pdev->dev;
 -      bus->read = bcmgenet_mii_read;
 -      bus->write = bcmgenet_mii_write;
 -      bus->reset = bcmgenet_mii_bus_reset;
 -      snprintf(bus->id, MII_BUS_ID_SIZE, "%s-%d",
 -               priv->pdev->name, priv->pdev->id);
 +      /* Retain this platform_device pointer for later cleanup */
 +      priv->mii_pdev = ppdev;
 +      ppdev->dev.parent = &pdev->dev;
 +      ppdev->dev.of_node = bcmgenet_mii_of_find_mdio(priv);
 +      if (pdata)
 +              bcmgenet_mii_pdata_init(priv, &ppd);
 +
 +      ret = platform_device_add_resources(ppdev, &res, 1);
 +      if (ret)
 +              goto out;
 +
 +      ret = platform_device_add_data(ppdev, &ppd, sizeof(ppd));
 +      if (ret)
 +              goto out;
 +
 +      ret = platform_device_add(ppdev);
 +      if (ret)
 +              goto out;
  
        return 0;
 +out:
 +      platform_device_put(ppdev);
 +      return ret;
  }
  
  static int bcmgenet_mii_of_init(struct bcmgenet_priv *priv)
  {
        struct device_node *dn = priv->pdev->dev.of_node;
        struct device *kdev = &priv->pdev->dev;
 -      struct phy_device *phydev = NULL;
 -      char *compat;
 +      struct phy_device *phydev;
        int phy_mode;
        int ret;
  
 -      compat = kasprintf(GFP_KERNEL, "brcm,genet-mdio-v%d", priv->version);
 -      if (!compat)
 -              return -ENOMEM;
 -
 -      priv->mdio_dn = of_find_compatible_node(dn, NULL, compat);
 -      kfree(compat);
 -      if (!priv->mdio_dn) {
 -              dev_err(kdev, "unable to find MDIO bus node\n");
 -              return -ENODEV;
 -      }
 -
 -      ret = of_mdiobus_register(priv->mii_bus, priv->mdio_dn);
 -      if (ret) {
 -              dev_err(kdev, "failed to register MDIO bus\n");
 -              return ret;
 -      }
 -
        /* Fetch the PHY phandle */
        priv->phy_dn = of_parse_phandle(dn, "phy-handle", 0);
  
@@@ -501,23 -537,33 +502,23 @@@ static int bcmgenet_mii_pd_init(struct 
  {
        struct device *kdev = &priv->pdev->dev;
        struct bcmgenet_platform_data *pd = kdev->platform_data;
 -      struct mii_bus *mdio = priv->mii_bus;
 +      char phy_name[MII_BUS_ID_SIZE + 3];
 +      char mdio_bus_id[MII_BUS_ID_SIZE];
        struct phy_device *phydev;
 -      int ret;
 +
 +      snprintf(mdio_bus_id, MII_BUS_ID_SIZE, "%s-%d",
 +               UNIMAC_MDIO_DRV_NAME, priv->pdev->id);
  
        if (pd->phy_interface != PHY_INTERFACE_MODE_MOCA && pd->mdio_enabled) {
 +              snprintf(phy_name, MII_BUS_ID_SIZE, PHY_ID_FMT,
 +                       mdio_bus_id, pd->phy_address);
 +
                /*
                 * Internal or external PHY with MDIO access
                 */
 -              if (pd->phy_address >= 0 && pd->phy_address < PHY_MAX_ADDR)
 -                      mdio->phy_mask = ~(1 << pd->phy_address);
 -              else
 -                      mdio->phy_mask = 0;
 -
 -              ret = mdiobus_register(mdio);
 -              if (ret) {
 -                      dev_err(kdev, "failed to register MDIO bus\n");
 -                      return ret;
 -              }
 -
 -              if (pd->phy_address >= 0 && pd->phy_address < PHY_MAX_ADDR)
 -                      phydev = mdiobus_get_phy(mdio, pd->phy_address);
 -              else
 -                      phydev = phy_find_first(mdio);
 -
 +              phydev = phy_attach(priv->dev, phy_name, pd->phy_interface);
                if (!phydev) {
                        dev_err(kdev, "failed to register PHY device\n");
 -                      mdiobus_unregister(mdio);
                        return -ENODEV;
                }
        } else {
@@@ -563,9 -609,10 +564,9 @@@ static int bcmgenet_mii_bus_init(struc
  int bcmgenet_mii_init(struct net_device *dev)
  {
        struct bcmgenet_priv *priv = netdev_priv(dev);
 -      struct device_node *dn = priv->pdev->dev.of_node;
        int ret;
  
 -      ret = bcmgenet_mii_alloc(priv);
 +      ret = bcmgenet_mii_register(priv);
        if (ret)
                return ret;
  
        return 0;
  
  out:
 -      if (of_phy_is_fixed_link(dn))
 -              of_phy_deregister_fixed_link(dn);
 -      of_node_put(priv->phy_dn);
 -      mdiobus_unregister(priv->mii_bus);
 -      mdiobus_free(priv->mii_bus);
 +      bcmgenet_mii_exit(dev);
        return ret;
  }
  
@@@ -588,6 -639,6 +589,6 @@@ void bcmgenet_mii_exit(struct net_devic
        if (of_phy_is_fixed_link(dn))
                of_phy_deregister_fixed_link(dn);
        of_node_put(priv->phy_dn);
 -      mdiobus_unregister(priv->mii_bus);
 -      mdiobus_free(priv->mii_bus);
 +      platform_device_unregister(priv->mii_pdev);
 +      platform_device_put(priv->mii_pdev);
  }
index 7e95cf547ff12d15d89307ceab59a6be2f66b2e3,e588a0cdb074040fe83ba8caaec9cd30c4189689..f1886e1bdd82c1aafe9865a61ae7d33e4d974107
@@@ -22,6 -22,7 +22,7 @@@
  #include <linux/if_vlan.h>
  #include <linux/reset.h>
  #include <linux/tcp.h>
+ #include <linux/interrupt.h>
  
  #include "mtk_eth_soc.h"
  
@@@ -947,6 -948,10 +948,10 @@@ static int mtk_poll_rx(struct napi_stru
                      RX_DMA_FPORT_MASK;
                mac--;
  
+               if (unlikely(mac < 0 || mac >= MTK_MAC_COUNT ||
+                            !eth->netdev[mac]))
+                       goto release_desc;
                netdev = eth->netdev[mac];
  
                if (unlikely(test_bit(MTK_RESETTING, &eth->state)))
@@@ -1027,6 -1032,7 +1032,6 @@@ static int mtk_poll_tx(struct mtk_eth *
        unsigned int done[MTK_MAX_DEVS];
        unsigned int bytes[MTK_MAX_DEVS];
        u32 cpu, dma;
 -      static int condition;
        int total = 0, i;
  
        memset(done, 0, sizeof(done));
                        mac = 1;
  
                skb = tx_buf->skb;
 -              if (!skb) {
 -                      condition = 1;
 +              if (!skb)
                        break;
 -              }
  
                if (skb != (struct sk_buff *)MTK_DMA_DUMMY_DESC) {
                        bytes[mac] += skb->len;
index 802f5b8d87619c13ed31d68a94b75f8bdabbe29b,4b2e0fd7d51e0a6635cdea75055eec9365d21588..add03fa34a2dfbf43b90728d4dd7c9f7ac1df00f
  #include <linux/inetdevice.h>
  #include <linux/netdevice.h>
  #include <linux/if_bridge.h>
 +#include <linux/socket.h>
  #include <net/netevent.h>
  #include <net/neighbour.h>
  #include <net/arp.h>
  #include <net/ip_fib.h>
  #include <net/fib_rules.h>
  #include <net/l3mdev.h>
 +#include <net/addrconf.h>
 +#include <net/ndisc.h>
 +#include <net/ipv6.h>
  
  #include "spectrum.h"
  #include "core.h"
@@@ -308,7 -304,7 +308,7 @@@ static struct mlxsw_sp_rif 
  mlxsw_sp_rif_find_by_dev(const struct mlxsw_sp *mlxsw_sp,
                         const struct net_device *dev);
  
 -#define MLXSW_SP_PREFIX_COUNT (sizeof(struct in6_addr) * BITS_PER_BYTE)
 +#define MLXSW_SP_PREFIX_COUNT (sizeof(struct in6_addr) * BITS_PER_BYTE + 1)
  
  struct mlxsw_sp_prefix_usage {
        DECLARE_BITMAP(b, MLXSW_SP_PREFIX_COUNT);
@@@ -388,23 -384,23 +388,23 @@@ struct mlxsw_sp_fib_node 
        struct mlxsw_sp_fib_key key;
  };
  
 -struct mlxsw_sp_fib_entry_params {
 -      u32 tb_id;
 -      u32 prio;
 -      u8 tos;
 -      u8 type;
 -};
 -
  struct mlxsw_sp_fib_entry {
        struct list_head list;
        struct mlxsw_sp_fib_node *fib_node;
        enum mlxsw_sp_fib_entry_type type;
        struct list_head nexthop_group_node;
        struct mlxsw_sp_nexthop_group *nh_group;
 -      struct mlxsw_sp_fib_entry_params params;
        bool offloaded;
  };
  
 +struct mlxsw_sp_fib4_entry {
 +      struct mlxsw_sp_fib_entry common;
 +      u32 tb_id;
 +      u32 prio;
 +      u8 tos;
 +      u8 type;
 +};
 +
  enum mlxsw_sp_l3proto {
        MLXSW_SP_L3_PROTO_IPV4,
        MLXSW_SP_L3_PROTO_IPV6,
@@@ -432,7 -428,6 +432,7 @@@ struct mlxsw_sp_vr 
        u32 tb_id; /* kernel fib table id */
        unsigned int rif_count;
        struct mlxsw_sp_fib *fib4;
 +      struct mlxsw_sp_fib *fib6;
  };
  
  static const struct rhashtable_params mlxsw_sp_fib_ht_params;
@@@ -630,7 -625,7 +630,7 @@@ static void mlxsw_sp_lpm_fini(struct ml
  
  static bool mlxsw_sp_vr_is_used(const struct mlxsw_sp_vr *vr)
  {
 -      return !!vr->fib4;
 +      return !!vr->fib4 || !!vr->fib6;
  }
  
  static struct mlxsw_sp_vr *mlxsw_sp_vr_find_unused(struct mlxsw_sp *mlxsw_sp)
@@@ -699,7 -694,7 +699,7 @@@ static struct mlxsw_sp_fib *mlxsw_sp_vr
        case MLXSW_SP_L3_PROTO_IPV4:
                return vr->fib4;
        case MLXSW_SP_L3_PROTO_IPV6:
 -              BUG_ON(1);
 +              return vr->fib6;
        }
        return NULL;
  }
@@@ -708,7 -703,6 +708,7 @@@ static struct mlxsw_sp_vr *mlxsw_sp_vr_
                                              u32 tb_id)
  {
        struct mlxsw_sp_vr *vr;
 +      int err;
  
        vr = mlxsw_sp_vr_find_unused(mlxsw_sp);
        if (!vr)
        vr->fib4 = mlxsw_sp_fib_create(vr, MLXSW_SP_L3_PROTO_IPV4);
        if (IS_ERR(vr->fib4))
                return ERR_CAST(vr->fib4);
 +      vr->fib6 = mlxsw_sp_fib_create(vr, MLXSW_SP_L3_PROTO_IPV6);
 +      if (IS_ERR(vr->fib6)) {
 +              err = PTR_ERR(vr->fib6);
 +              goto err_fib6_create;
 +      }
        vr->tb_id = tb_id;
        return vr;
 +
 +err_fib6_create:
 +      mlxsw_sp_fib_destroy(vr->fib4);
 +      vr->fib4 = NULL;
 +      return ERR_PTR(err);
  }
  
  static void mlxsw_sp_vr_destroy(struct mlxsw_sp_vr *vr)
  {
 +      mlxsw_sp_fib_destroy(vr->fib6);
 +      vr->fib6 = NULL;
        mlxsw_sp_fib_destroy(vr->fib4);
        vr->fib4 = NULL;
  }
@@@ -791,8 -773,7 +791,8 @@@ static struct mlxsw_sp_vr *mlxsw_sp_vr_
  
  static void mlxsw_sp_vr_put(struct mlxsw_sp_vr *vr)
  {
 -      if (!vr->rif_count && list_empty(&vr->fib4->node_list))
 +      if (!vr->rif_count && list_empty(&vr->fib4->node_list) &&
 +          list_empty(&vr->fib6->node_list))
                mlxsw_sp_vr_destroy(vr);
  }
  
@@@ -948,15 -929,8 +948,15 @@@ mlxsw_sp_neigh_entry_lookup(struct mlxs
  static void
  mlxsw_sp_router_neighs_update_interval_init(struct mlxsw_sp *mlxsw_sp)
  {
 -      unsigned long interval = NEIGH_VAR(&arp_tbl.parms, DELAY_PROBE_TIME);
 +      unsigned long interval;
  
 +#if IS_ENABLED(CONFIG_IPV6)
 +      interval = min_t(unsigned long,
 +                       NEIGH_VAR(&arp_tbl.parms, DELAY_PROBE_TIME),
 +                       NEIGH_VAR(&nd_tbl.parms, DELAY_PROBE_TIME));
 +#else
 +      interval = NEIGH_VAR(&arp_tbl.parms, DELAY_PROBE_TIME);
 +#endif
        mlxsw_sp->router->neighs_update.interval = jiffies_to_msecs(interval);
  }
  
@@@ -991,44 -965,6 +991,44 @@@ static void mlxsw_sp_router_neigh_ent_i
        neigh_release(n);
  }
  
 +#if IS_ENABLED(IPV6)
 +static void mlxsw_sp_router_neigh_ent_ipv6_process(struct mlxsw_sp *mlxsw_sp,
 +                                                 char *rauhtd_pl,
 +                                                 int rec_index)
 +{
 +      struct net_device *dev;
 +      struct neighbour *n;
 +      struct in6_addr dip;
 +      u16 rif;
 +
 +      mlxsw_reg_rauhtd_ent_ipv6_unpack(rauhtd_pl, rec_index, &rif,
 +                                       (char *) &dip);
 +
 +      if (!mlxsw_sp->router->rifs[rif]) {
 +              dev_err_ratelimited(mlxsw_sp->bus_info->dev, "Incorrect RIF in neighbour entry\n");
 +              return;
 +      }
 +
 +      dev = mlxsw_sp->router->rifs[rif]->dev;
 +      n = neigh_lookup(&nd_tbl, &dip, dev);
 +      if (!n) {
 +              netdev_err(dev, "Failed to find matching neighbour for IP=%pI6c\n",
 +                         &dip);
 +              return;
 +      }
 +
 +      netdev_dbg(dev, "Updating neighbour with IP=%pI6c\n", &dip);
 +      neigh_event_send(n, NULL);
 +      neigh_release(n);
 +}
 +#else
 +static void mlxsw_sp_router_neigh_ent_ipv6_process(struct mlxsw_sp *mlxsw_sp,
 +                                                 char *rauhtd_pl,
 +                                                 int rec_index)
 +{
 +}
 +#endif
 +
  static void mlxsw_sp_router_neigh_rec_ipv4_process(struct mlxsw_sp *mlxsw_sp,
                                                   char *rauhtd_pl,
                                                   int rec_index)
  
  }
  
 +static void mlxsw_sp_router_neigh_rec_ipv6_process(struct mlxsw_sp *mlxsw_sp,
 +                                                 char *rauhtd_pl,
 +                                                 int rec_index)
 +{
 +      /* One record contains one entry. */
 +      mlxsw_sp_router_neigh_ent_ipv6_process(mlxsw_sp, rauhtd_pl,
 +                                             rec_index);
 +}
 +
  static void mlxsw_sp_router_neigh_rec_process(struct mlxsw_sp *mlxsw_sp,
                                              char *rauhtd_pl, int rec_index)
  {
                                                       rec_index);
                break;
        case MLXSW_REG_RAUHTD_TYPE_IPV6:
 -              WARN_ON_ONCE(1);
 +              mlxsw_sp_router_neigh_rec_ipv6_process(mlxsw_sp, rauhtd_pl,
 +                                                     rec_index);
                break;
        }
  }
@@@ -1096,20 -1022,22 +1096,20 @@@ static bool mlxsw_sp_router_rauhtd_is_f
        return false;
  }
  
 -static int mlxsw_sp_router_neighs_update_rauhtd(struct mlxsw_sp *mlxsw_sp)
 +static int
 +__mlxsw_sp_router_neighs_update_rauhtd(struct mlxsw_sp *mlxsw_sp,
 +                                     char *rauhtd_pl,
 +                                     enum mlxsw_reg_rauhtd_type type)
  {
 -      char *rauhtd_pl;
 -      u8 num_rec;
 -      int i, err;
 -
 -      rauhtd_pl = kmalloc(MLXSW_REG_RAUHTD_LEN, GFP_KERNEL);
 -      if (!rauhtd_pl)
 -              return -ENOMEM;
 +      int i, num_rec;
 +      int err;
  
        /* Make sure the neighbour's netdev isn't removed in the
         * process.
         */
        rtnl_lock();
        do {
 -              mlxsw_reg_rauhtd_pack(rauhtd_pl, MLXSW_REG_RAUHTD_TYPE_IPV4);
 +              mlxsw_reg_rauhtd_pack(rauhtd_pl, type);
                err = mlxsw_reg_query(mlxsw_sp->core, MLXSW_REG(rauhtd),
                                      rauhtd_pl);
                if (err) {
        } while (mlxsw_sp_router_rauhtd_is_full(rauhtd_pl));
        rtnl_unlock();
  
 +      return err;
 +}
 +
 +static int mlxsw_sp_router_neighs_update_rauhtd(struct mlxsw_sp *mlxsw_sp)
 +{
 +      enum mlxsw_reg_rauhtd_type type;
 +      char *rauhtd_pl;
 +      int err;
 +
 +      rauhtd_pl = kmalloc(MLXSW_REG_RAUHTD_LEN, GFP_KERNEL);
 +      if (!rauhtd_pl)
 +              return -ENOMEM;
 +
 +      type = MLXSW_REG_RAUHTD_TYPE_IPV4;
 +      err = __mlxsw_sp_router_neighs_update_rauhtd(mlxsw_sp, rauhtd_pl, type);
 +      if (err)
 +              goto out;
 +
 +      type = MLXSW_REG_RAUHTD_TYPE_IPV6;
 +      err = __mlxsw_sp_router_neighs_update_rauhtd(mlxsw_sp, rauhtd_pl, type);
 +out:
        kfree(rauhtd_pl);
        return err;
  }
@@@ -1239,32 -1146,6 +1239,32 @@@ mlxsw_sp_router_neigh_entry_op4(struct 
        mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rauht), rauht_pl);
  }
  
 +static void
 +mlxsw_sp_router_neigh_entry_op6(struct mlxsw_sp *mlxsw_sp,
 +                              struct mlxsw_sp_neigh_entry *neigh_entry,
 +                              enum mlxsw_reg_rauht_op op)
 +{
 +      struct neighbour *n = neigh_entry->key.n;
 +      char rauht_pl[MLXSW_REG_RAUHT_LEN];
 +      const char *dip = n->primary_key;
 +
 +      mlxsw_reg_rauht_pack6(rauht_pl, op, neigh_entry->rif, neigh_entry->ha,
 +                            dip);
 +      mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rauht), rauht_pl);
 +}
 +
 +static bool mlxsw_sp_neigh_ipv6_ignore(struct neighbour *n)
 +{
 +      /* Packets with a link-local destination address are trapped
 +       * after LPM lookup and never reach the neighbour table, so
 +       * there is no need to program such neighbours to the device.
 +       */
 +      if (ipv6_addr_type((struct in6_addr *) &n->primary_key) &
 +          IPV6_ADDR_LINKLOCAL)
 +              return true;
 +      return false;
 +}
 +
  static void
  mlxsw_sp_neigh_entry_update(struct mlxsw_sp *mlxsw_sp,
                            struct mlxsw_sp_neigh_entry *neigh_entry,
        if (!adding && !neigh_entry->connected)
                return;
        neigh_entry->connected = adding;
 -      if (neigh_entry->key.n->tbl == &arp_tbl)
 +      if (neigh_entry->key.n->tbl->family == AF_INET) {
                mlxsw_sp_router_neigh_entry_op4(mlxsw_sp, neigh_entry,
                                                mlxsw_sp_rauht_op(adding));
 -      else
 +      } else if (neigh_entry->key.n->tbl->family == AF_INET6) {
 +              if (mlxsw_sp_neigh_ipv6_ignore(neigh_entry->key.n))
 +                      return;
 +              mlxsw_sp_router_neigh_entry_op6(mlxsw_sp, neigh_entry,
 +                                              mlxsw_sp_rauht_op(adding));
 +      } else {
                WARN_ON_ONCE(1);
 +      }
  }
  
  struct mlxsw_sp_neigh_event_work {
@@@ -1352,8 -1227,7 +1352,8 @@@ int mlxsw_sp_router_netevent_event(stru
                p = ptr;
  
                /* We don't care about changes in the default table. */
 -              if (!p->dev || p->tbl != &arp_tbl)
 +              if (!p->dev || (p->tbl->family != AF_INET &&
 +                              p->tbl->family != AF_INET6))
                        return NOTIFY_DONE;
  
                /* We are in atomic context and can't take RTNL mutex,
        case NETEVENT_NEIGH_UPDATE:
                n = ptr;
  
 -              if (n->tbl != &arp_tbl)
 +              if (n->tbl->family != AF_INET && n->tbl->family != AF_INET6)
                        return NOTIFY_DONE;
  
                mlxsw_sp_port = mlxsw_sp_port_lower_dev_hold(n->dev);
@@@ -1433,16 -1307,25 +1433,16 @@@ static void mlxsw_sp_neigh_fini(struct 
        rhashtable_destroy(&mlxsw_sp->router->neigh_ht);
  }
  
 -static int mlxsw_sp_neigh_rif_flush(struct mlxsw_sp *mlxsw_sp,
 -                                  const struct mlxsw_sp_rif *rif)
 -{
 -      char rauht_pl[MLXSW_REG_RAUHT_LEN];
 -
 -      mlxsw_reg_rauht_pack(rauht_pl, MLXSW_REG_RAUHT_OP_WRITE_DELETE_ALL,
 -                           rif->rif_index, rif->addr);
 -      return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rauht), rauht_pl);
 -}
 -
  static void mlxsw_sp_neigh_rif_gone_sync(struct mlxsw_sp *mlxsw_sp,
                                         struct mlxsw_sp_rif *rif)
  {
        struct mlxsw_sp_neigh_entry *neigh_entry, *tmp;
  
 -      mlxsw_sp_neigh_rif_flush(mlxsw_sp, rif);
        list_for_each_entry_safe(neigh_entry, tmp, &rif->neigh_list,
 -                               rif_list_node)
 +                               rif_list_node) {
 +              mlxsw_sp_neigh_entry_update(mlxsw_sp, neigh_entry, false);
                mlxsw_sp_neigh_entry_destroy(mlxsw_sp, neigh_entry);
 +      }
  }
  
  struct mlxsw_sp_nexthop_key {
@@@ -1457,7 -1340,6 +1457,7 @@@ struct mlxsw_sp_nexthop 
                                                */
        struct rhash_head ht_node;
        struct mlxsw_sp_nexthop_key key;
 +      unsigned char gw_addr[sizeof(struct in6_addr)];
        struct mlxsw_sp_rif *rif;
        u8 should_offload:1, /* set indicates this neigh is connected and
                              * should be put to KVD linear area of this group.
@@@ -1478,7 -1360,6 +1478,7 @@@ struct mlxsw_sp_nexthop_group_key 
  struct mlxsw_sp_nexthop_group {
        struct rhash_head ht_node;
        struct list_head fib_list; /* list of fib entries that use this group */
 +      struct neigh_table *neigh_tbl;
        struct mlxsw_sp_nexthop_group_key key;
        u8 adj_index_valid:1,
           gateway:1; /* routes using the group use a gateway */
@@@ -1631,6 -1512,10 +1631,10 @@@ mlxsw_sp_nexthop_group_mac_update(struc
  static int mlxsw_sp_fib_entry_update(struct mlxsw_sp *mlxsw_sp,
                                     struct mlxsw_sp_fib_entry *fib_entry);
  
+ static bool
+ mlxsw_sp_fib_node_entry_is_first(const struct mlxsw_sp_fib_node *fib_node,
+                                const struct mlxsw_sp_fib_entry *fib_entry);
  static int
  mlxsw_sp_nexthop_fib_entries_update(struct mlxsw_sp *mlxsw_sp,
                                    struct mlxsw_sp_nexthop_group *nh_grp)
        int err;
  
        list_for_each_entry(fib_entry, &nh_grp->fib_list, nexthop_group_node) {
+               if (!mlxsw_sp_fib_node_entry_is_first(fib_entry->fib_node,
+                                                     fib_entry))
+                       continue;
                err = mlxsw_sp_fib_entry_update(mlxsw_sp, fib_entry);
                if (err)
                        return err;
@@@ -1668,7 -1556,7 +1675,7 @@@ mlxsw_sp_nexthop_group_refresh(struct m
        for (i = 0; i < nh_grp->count; i++) {
                nh = &nh_grp->nexthops[i];
  
 -              if (nh->should_offload ^ nh->offloaded) {
 +              if (nh->should_offload != nh->offloaded) {
                        offload_change = true;
                        if (nh->should_offload)
                                nh->update = 1;
@@@ -1752,9 -1640,9 +1759,9 @@@ set_trap
  static void __mlxsw_sp_nexthop_neigh_update(struct mlxsw_sp_nexthop *nh,
                                            bool removing)
  {
 -      if (!removing && !nh->should_offload)
 +      if (!removing)
                nh->should_offload = 1;
 -      else if (removing && nh->offloaded)
 +      else if (nh->offloaded)
                nh->should_offload = 0;
        nh->update = 1;
  }
@@@ -1796,6 -1684,7 +1803,6 @@@ static int mlxsw_sp_nexthop_neigh_init(
                                       struct mlxsw_sp_nexthop *nh)
  {
        struct mlxsw_sp_neigh_entry *neigh_entry;
 -      struct fib_nh *fib_nh = nh->key.fib_nh;
        struct neighbour *n;
        u8 nud_state, dead;
        int err;
                return 0;
  
        /* Take a reference of neigh here ensuring that neigh would
 -       * not be detructed before the nexthop entry is finished.
 +       * not be destructed before the nexthop entry is finished.
         * The reference is taken either in neigh_lookup() or
         * in neigh_create() in case n is not found.
         */
 -      n = neigh_lookup(&arp_tbl, &fib_nh->nh_gw, fib_nh->nh_dev);
 +      n = neigh_lookup(nh->nh_grp->neigh_tbl, &nh->gw_addr, nh->rif->dev);
        if (!n) {
 -              n = neigh_create(&arp_tbl, &fib_nh->nh_gw, fib_nh->nh_dev);
 +              n = neigh_create(nh->nh_grp->neigh_tbl, &nh->gw_addr,
 +                               nh->rif->dev);
                if (IS_ERR(n))
                        return PTR_ERR(n);
                neigh_event_send(n, NULL);
@@@ -1873,10 -1761,10 +1880,10 @@@ static void mlxsw_sp_nexthop_neigh_fini
        neigh_release(n);
  }
  
 -static int mlxsw_sp_nexthop_init(struct mlxsw_sp *mlxsw_sp,
 -                               struct mlxsw_sp_nexthop_group *nh_grp,
 -                               struct mlxsw_sp_nexthop *nh,
 -                               struct fib_nh *fib_nh)
 +static int mlxsw_sp_nexthop4_init(struct mlxsw_sp *mlxsw_sp,
 +                                struct mlxsw_sp_nexthop_group *nh_grp,
 +                                struct mlxsw_sp_nexthop *nh,
 +                                struct fib_nh *fib_nh)
  {
        struct net_device *dev = fib_nh->nh_dev;
        struct in_device *in_dev;
  
        nh->nh_grp = nh_grp;
        nh->key.fib_nh = fib_nh;
 +      memcpy(&nh->gw_addr, &fib_nh->nh_gw, sizeof(fib_nh->nh_gw));
        err = mlxsw_sp_nexthop_insert(mlxsw_sp, nh);
        if (err)
                return err;
@@@ -1915,16 -1802,16 +1922,16 @@@ err_nexthop_neigh_init
        return err;
  }
  
 -static void mlxsw_sp_nexthop_fini(struct mlxsw_sp *mlxsw_sp,
 -                                struct mlxsw_sp_nexthop *nh)
 +static void mlxsw_sp_nexthop4_fini(struct mlxsw_sp *mlxsw_sp,
 +                                 struct mlxsw_sp_nexthop *nh)
  {
        mlxsw_sp_nexthop_neigh_fini(mlxsw_sp, nh);
        mlxsw_sp_nexthop_rif_fini(nh);
        mlxsw_sp_nexthop_remove(mlxsw_sp, nh);
  }
  
 -static void mlxsw_sp_nexthop_event(struct mlxsw_sp *mlxsw_sp,
 -                                 unsigned long event, struct fib_nh *fib_nh)
 +static void mlxsw_sp_nexthop4_event(struct mlxsw_sp *mlxsw_sp,
 +                                  unsigned long event, struct fib_nh *fib_nh)
  {
        struct mlxsw_sp_nexthop_key key;
        struct mlxsw_sp_nexthop *nh;
@@@ -1969,7 -1856,7 +1976,7 @@@ static void mlxsw_sp_nexthop_rif_gone_s
  }
  
  static struct mlxsw_sp_nexthop_group *
 -mlxsw_sp_nexthop_group_create(struct mlxsw_sp *mlxsw_sp, struct fib_info *fi)
 +mlxsw_sp_nexthop4_group_create(struct mlxsw_sp *mlxsw_sp, struct fib_info *fi)
  {
        struct mlxsw_sp_nexthop_group *nh_grp;
        struct mlxsw_sp_nexthop *nh;
        if (!nh_grp)
                return ERR_PTR(-ENOMEM);
        INIT_LIST_HEAD(&nh_grp->fib_list);
 +      nh_grp->neigh_tbl = &arp_tbl;
 +
        nh_grp->gateway = fi->fib_nh->nh_scope == RT_SCOPE_LINK;
        nh_grp->count = fi->fib_nhs;
        nh_grp->key.fi = fi;
        for (i = 0; i < nh_grp->count; i++) {
                nh = &nh_grp->nexthops[i];
                fib_nh = &fi->fib_nh[i];
 -              err = mlxsw_sp_nexthop_init(mlxsw_sp, nh_grp, nh, fib_nh);
 +              err = mlxsw_sp_nexthop4_init(mlxsw_sp, nh_grp, nh, fib_nh);
                if (err)
 -                      goto err_nexthop_init;
 +                      goto err_nexthop4_init;
        }
        err = mlxsw_sp_nexthop_group_insert(mlxsw_sp, nh_grp);
        if (err)
        return nh_grp;
  
  err_nexthop_group_insert:
 -err_nexthop_init:
 +err_nexthop4_init:
        for (i--; i >= 0; i--) {
                nh = &nh_grp->nexthops[i];
 -              mlxsw_sp_nexthop_fini(mlxsw_sp, nh);
 +              mlxsw_sp_nexthop4_fini(mlxsw_sp, nh);
        }
        fib_info_put(nh_grp->key.fi);
        kfree(nh_grp);
  }
  
  static void
 -mlxsw_sp_nexthop_group_destroy(struct mlxsw_sp *mlxsw_sp,
 -                             struct mlxsw_sp_nexthop_group *nh_grp)
 +mlxsw_sp_nexthop4_group_destroy(struct mlxsw_sp *mlxsw_sp,
 +                              struct mlxsw_sp_nexthop_group *nh_grp)
  {
        struct mlxsw_sp_nexthop *nh;
        int i;
        mlxsw_sp_nexthop_group_remove(mlxsw_sp, nh_grp);
        for (i = 0; i < nh_grp->count; i++) {
                nh = &nh_grp->nexthops[i];
 -              mlxsw_sp_nexthop_fini(mlxsw_sp, nh);
 +              mlxsw_sp_nexthop4_fini(mlxsw_sp, nh);
        }
        mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh_grp);
        WARN_ON_ONCE(nh_grp->adj_index_valid);
        kfree(nh_grp);
  }
  
 -static int mlxsw_sp_nexthop_group_get(struct mlxsw_sp *mlxsw_sp,
 -                                    struct mlxsw_sp_fib_entry *fib_entry,
 -                                    struct fib_info *fi)
 +static int mlxsw_sp_nexthop4_group_get(struct mlxsw_sp *mlxsw_sp,
 +                                     struct mlxsw_sp_fib_entry *fib_entry,
 +                                     struct fib_info *fi)
  {
        struct mlxsw_sp_nexthop_group_key key;
        struct mlxsw_sp_nexthop_group *nh_grp;
        key.fi = fi;
        nh_grp = mlxsw_sp_nexthop_group_lookup(mlxsw_sp, key);
        if (!nh_grp) {
 -              nh_grp = mlxsw_sp_nexthop_group_create(mlxsw_sp, fi);
 +              nh_grp = mlxsw_sp_nexthop4_group_create(mlxsw_sp, fi);
                if (IS_ERR(nh_grp))
                        return PTR_ERR(nh_grp);
        }
        return 0;
  }
  
 -static void mlxsw_sp_nexthop_group_put(struct mlxsw_sp *mlxsw_sp,
 -                                     struct mlxsw_sp_fib_entry *fib_entry)
 +static void mlxsw_sp_nexthop4_group_put(struct mlxsw_sp *mlxsw_sp,
 +                                      struct mlxsw_sp_fib_entry *fib_entry)
  {
        struct mlxsw_sp_nexthop_group *nh_grp = fib_entry->nh_group;
  
        list_del(&fib_entry->nexthop_group_node);
        if (!list_empty(&nh_grp->fib_list))
                return;
 -      mlxsw_sp_nexthop_group_destroy(mlxsw_sp, nh_grp);
 +      mlxsw_sp_nexthop4_group_destroy(mlxsw_sp, nh_grp);
 +}
 +
 +static bool
 +mlxsw_sp_fib4_entry_should_offload(const struct mlxsw_sp_fib_entry *fib_entry)
 +{
 +      struct mlxsw_sp_fib4_entry *fib4_entry;
 +
 +      fib4_entry = container_of(fib_entry, struct mlxsw_sp_fib4_entry,
 +                                common);
 +      return !fib4_entry->tos;
  }
  
  static bool
@@@ -2077,14 -1952,8 +2084,14 @@@ mlxsw_sp_fib_entry_should_offload(cons
  {
        struct mlxsw_sp_nexthop_group *nh_group = fib_entry->nh_group;
  
 -      if (fib_entry->params.tos)
 -              return false;
 +      switch (fib_entry->fib_node->fib->proto) {
 +      case MLXSW_SP_L3_PROTO_IPV4:
 +              if (!mlxsw_sp_fib4_entry_should_offload(fib_entry))
 +                      return false;
 +              break;
 +      case MLXSW_SP_L3_PROTO_IPV6:
 +              break;
 +      }
  
        switch (fib_entry->type) {
        case MLXSW_SP_FIB_ENTRY_TYPE_REMOTE:
@@@ -2147,37 -2016,13 +2154,37 @@@ mlxsw_sp_fib_entry_offload_refresh(stru
        }
  }
  
 -static int mlxsw_sp_fib_entry_op4_remote(struct mlxsw_sp *mlxsw_sp,
 -                                       struct mlxsw_sp_fib_entry *fib_entry,
 -                                       enum mlxsw_reg_ralue_op op)
 +static void
 +mlxsw_sp_fib_entry_ralue_pack(char *ralue_pl,
 +                            const struct mlxsw_sp_fib_entry *fib_entry,
 +                            enum mlxsw_reg_ralue_op op)
  {
 -      char ralue_pl[MLXSW_REG_RALUE_LEN];
        struct mlxsw_sp_fib *fib = fib_entry->fib_node->fib;
 -      u32 *p_dip = (u32 *) fib_entry->fib_node->key.addr;
 +      enum mlxsw_reg_ralxx_protocol proto;
 +      u32 *p_dip;
 +
 +      proto = (enum mlxsw_reg_ralxx_protocol) fib->proto;
 +
 +      switch (fib->proto) {
 +      case MLXSW_SP_L3_PROTO_IPV4:
 +              p_dip = (u32 *) fib_entry->fib_node->key.addr;
 +              mlxsw_reg_ralue_pack4(ralue_pl, proto, op, fib->vr->id,
 +                                    fib_entry->fib_node->key.prefix_len,
 +                                    *p_dip);
 +              break;
 +      case MLXSW_SP_L3_PROTO_IPV6:
 +              mlxsw_reg_ralue_pack6(ralue_pl, proto, op, fib->vr->id,
 +                                    fib_entry->fib_node->key.prefix_len,
 +                                    fib_entry->fib_node->key.addr);
 +              break;
 +      }
 +}
 +
 +static int mlxsw_sp_fib_entry_op_remote(struct mlxsw_sp *mlxsw_sp,
 +                                      struct mlxsw_sp_fib_entry *fib_entry,
 +                                      enum mlxsw_reg_ralue_op op)
 +{
 +      char ralue_pl[MLXSW_REG_RALUE_LEN];
        enum mlxsw_reg_ralue_trap_action trap_action;
        u16 trap_id = 0;
        u32 adjacency_index = 0;
                trap_id = MLXSW_TRAP_ID_RTR_INGRESS0;
        }
  
 -      mlxsw_reg_ralue_pack4(ralue_pl,
 -                            (enum mlxsw_reg_ralxx_protocol) fib->proto, op,
 -                            fib->vr->id, fib_entry->fib_node->key.prefix_len,
 -                            *p_dip);
 +      mlxsw_sp_fib_entry_ralue_pack(ralue_pl, fib_entry, op);
        mlxsw_reg_ralue_act_remote_pack(ralue_pl, trap_action, trap_id,
                                        adjacency_index, ecmp_size);
        return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(ralue), ralue_pl);
  }
  
 -static int mlxsw_sp_fib_entry_op4_local(struct mlxsw_sp *mlxsw_sp,
 -                                      struct mlxsw_sp_fib_entry *fib_entry,
 -                                      enum mlxsw_reg_ralue_op op)
 +static int mlxsw_sp_fib_entry_op_local(struct mlxsw_sp *mlxsw_sp,
 +                                     struct mlxsw_sp_fib_entry *fib_entry,
 +                                     enum mlxsw_reg_ralue_op op)
  {
        struct mlxsw_sp_rif *rif = fib_entry->nh_group->nh_rif;
 -      struct mlxsw_sp_fib *fib = fib_entry->fib_node->fib;
        enum mlxsw_reg_ralue_trap_action trap_action;
        char ralue_pl[MLXSW_REG_RALUE_LEN];
 -      u32 *p_dip = (u32 *) fib_entry->fib_node->key.addr;
        u16 trap_id = 0;
        u16 rif_index = 0;
  
                trap_id = MLXSW_TRAP_ID_RTR_INGRESS0;
        }
  
 -      mlxsw_reg_ralue_pack4(ralue_pl,
 -                            (enum mlxsw_reg_ralxx_protocol) fib->proto, op,
 -                            fib->vr->id, fib_entry->fib_node->key.prefix_len,
 -                            *p_dip);
 +      mlxsw_sp_fib_entry_ralue_pack(ralue_pl, fib_entry, op);
        mlxsw_reg_ralue_act_local_pack(ralue_pl, trap_action, trap_id,
                                       rif_index);
        return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(ralue), ralue_pl);
  }
  
 -static int mlxsw_sp_fib_entry_op4_trap(struct mlxsw_sp *mlxsw_sp,
 -                                     struct mlxsw_sp_fib_entry *fib_entry,
 -                                     enum mlxsw_reg_ralue_op op)
 +static int mlxsw_sp_fib_entry_op_trap(struct mlxsw_sp *mlxsw_sp,
 +                                    struct mlxsw_sp_fib_entry *fib_entry,
 +                                    enum mlxsw_reg_ralue_op op)
  {
 -      struct mlxsw_sp_fib *fib = fib_entry->fib_node->fib;
        char ralue_pl[MLXSW_REG_RALUE_LEN];
 -      u32 *p_dip = (u32 *) fib_entry->fib_node->key.addr;
  
 -      mlxsw_reg_ralue_pack4(ralue_pl,
 -                            (enum mlxsw_reg_ralxx_protocol) fib->proto, op,
 -                            fib->vr->id, fib_entry->fib_node->key.prefix_len,
 -                            *p_dip);
 +      mlxsw_sp_fib_entry_ralue_pack(ralue_pl, fib_entry, op);
        mlxsw_reg_ralue_act_ip2me_pack(ralue_pl);
        return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(ralue), ralue_pl);
  }
  
 -static int mlxsw_sp_fib_entry_op4(struct mlxsw_sp *mlxsw_sp,
 -                                struct mlxsw_sp_fib_entry *fib_entry,
 -                                enum mlxsw_reg_ralue_op op)
 +static int __mlxsw_sp_fib_entry_op(struct mlxsw_sp *mlxsw_sp,
 +                                 struct mlxsw_sp_fib_entry *fib_entry,
 +                                 enum mlxsw_reg_ralue_op op)
  {
        switch (fib_entry->type) {
        case MLXSW_SP_FIB_ENTRY_TYPE_REMOTE:
 -              return mlxsw_sp_fib_entry_op4_remote(mlxsw_sp, fib_entry, op);
 +              return mlxsw_sp_fib_entry_op_remote(mlxsw_sp, fib_entry, op);
        case MLXSW_SP_FIB_ENTRY_TYPE_LOCAL:
 -              return mlxsw_sp_fib_entry_op4_local(mlxsw_sp, fib_entry, op);
 +              return mlxsw_sp_fib_entry_op_local(mlxsw_sp, fib_entry, op);
        case MLXSW_SP_FIB_ENTRY_TYPE_TRAP:
 -              return mlxsw_sp_fib_entry_op4_trap(mlxsw_sp, fib_entry, op);
 +              return mlxsw_sp_fib_entry_op_trap(mlxsw_sp, fib_entry, op);
        }
        return -EINVAL;
  }
@@@ -2256,10 -2114,16 +2263,10 @@@ static int mlxsw_sp_fib_entry_op(struc
                                 struct mlxsw_sp_fib_entry *fib_entry,
                                 enum mlxsw_reg_ralue_op op)
  {
 -      int err = -EINVAL;
 +      int err = __mlxsw_sp_fib_entry_op(mlxsw_sp, fib_entry, op);
  
 -      switch (fib_entry->fib_node->fib->proto) {
 -      case MLXSW_SP_L3_PROTO_IPV4:
 -              err = mlxsw_sp_fib_entry_op4(mlxsw_sp, fib_entry, op);
 -              break;
 -      case MLXSW_SP_L3_PROTO_IPV6:
 -              return err;
 -      }
        mlxsw_sp_fib_entry_offload_refresh(fib_entry, op, err);
 +
        return err;
  }
  
@@@ -2309,80 -2173,72 +2316,80 @@@ mlxsw_sp_fib4_entry_type_set(struct mlx
        }
  }
  
 -static struct mlxsw_sp_fib_entry *
 +static struct mlxsw_sp_fib4_entry *
  mlxsw_sp_fib4_entry_create(struct mlxsw_sp *mlxsw_sp,
                           struct mlxsw_sp_fib_node *fib_node,
                           const struct fib_entry_notifier_info *fen_info)
  {
 +      struct mlxsw_sp_fib4_entry *fib4_entry;
        struct mlxsw_sp_fib_entry *fib_entry;
        int err;
  
 -      fib_entry = kzalloc(sizeof(*fib_entry), GFP_KERNEL);
 -      if (!fib_entry) {
 -              err = -ENOMEM;
 -              goto err_fib_entry_alloc;
 -      }
 +      fib4_entry = kzalloc(sizeof(*fib4_entry), GFP_KERNEL);
 +      if (!fib4_entry)
 +              return ERR_PTR(-ENOMEM);
 +      fib_entry = &fib4_entry->common;
  
        err = mlxsw_sp_fib4_entry_type_set(mlxsw_sp, fen_info, fib_entry);
        if (err)
                goto err_fib4_entry_type_set;
  
 -      err = mlxsw_sp_nexthop_group_get(mlxsw_sp, fib_entry, fen_info->fi);
 +      err = mlxsw_sp_nexthop4_group_get(mlxsw_sp, fib_entry, fen_info->fi);
        if (err)
 -              goto err_nexthop_group_get;
 +              goto err_nexthop4_group_get;
  
 -      fib_entry->params.prio = fen_info->fi->fib_priority;
 -      fib_entry->params.tb_id = fen_info->tb_id;
 -      fib_entry->params.type = fen_info->type;
 -      fib_entry->params.tos = fen_info->tos;
 +      fib4_entry->prio = fen_info->fi->fib_priority;
 +      fib4_entry->tb_id = fen_info->tb_id;
 +      fib4_entry->type = fen_info->type;
 +      fib4_entry->tos = fen_info->tos;
  
        fib_entry->fib_node = fib_node;
  
 -      return fib_entry;
 +      return fib4_entry;
  
 -err_nexthop_group_get:
 +err_nexthop4_group_get:
  err_fib4_entry_type_set:
 -      kfree(fib_entry);
 -err_fib_entry_alloc:
 +      kfree(fib4_entry);
        return ERR_PTR(err);
  }
  
  static void mlxsw_sp_fib4_entry_destroy(struct mlxsw_sp *mlxsw_sp,
 -                                      struct mlxsw_sp_fib_entry *fib_entry)
 +                                      struct mlxsw_sp_fib4_entry *fib4_entry)
  {
 -      mlxsw_sp_nexthop_group_put(mlxsw_sp, fib_entry);
 -      kfree(fib_entry);
 +      mlxsw_sp_nexthop4_group_put(mlxsw_sp, &fib4_entry->common);
 +      kfree(fib4_entry);
  }
  
  static struct mlxsw_sp_fib_node *
 -mlxsw_sp_fib4_node_get(struct mlxsw_sp *mlxsw_sp,
 -                     const struct fib_entry_notifier_info *fen_info);
 +mlxsw_sp_fib_node_lookup(struct mlxsw_sp_fib *fib, const void *addr,
 +                       size_t addr_len, unsigned char prefix_len);
  
 -static struct mlxsw_sp_fib_entry *
 +static struct mlxsw_sp_fib4_entry *
  mlxsw_sp_fib4_entry_lookup(struct mlxsw_sp *mlxsw_sp,
                           const struct fib_entry_notifier_info *fen_info)
  {
 -      struct mlxsw_sp_fib_entry *fib_entry;
 +      struct mlxsw_sp_fib4_entry *fib4_entry;
        struct mlxsw_sp_fib_node *fib_node;
 +      struct mlxsw_sp_fib *fib;
 +      struct mlxsw_sp_vr *vr;
  
 -      fib_node = mlxsw_sp_fib4_node_get(mlxsw_sp, fen_info);
 -      if (IS_ERR(fib_node))
 +      vr = mlxsw_sp_vr_find(mlxsw_sp, fen_info->tb_id);
 +      if (!vr)
                return NULL;
 +      fib = mlxsw_sp_vr_fib(vr, MLXSW_SP_L3_PROTO_IPV4);
  
 -      list_for_each_entry(fib_entry, &fib_node->entry_list, list) {
 -              if (fib_entry->params.tb_id == fen_info->tb_id &&
 -                  fib_entry->params.tos == fen_info->tos &&
 -                  fib_entry->params.type == fen_info->type &&
 -                  fib_entry->nh_group->key.fi == fen_info->fi) {
 -                      return fib_entry;
 +      fib_node = mlxsw_sp_fib_node_lookup(fib, &fen_info->dst,
 +                                          sizeof(fen_info->dst),
 +                                          fen_info->dst_len);
 +      if (!fib_node)
 +              return NULL;
 +
 +      list_for_each_entry(fib4_entry, &fib_node->entry_list, common.list) {
 +              if (fib4_entry->tb_id == fen_info->tb_id &&
 +                  fib4_entry->tos == fen_info->tos &&
 +                  fib4_entry->type == fen_info->type &&
 +                  fib4_entry->common.nh_group->key.fi == fen_info->fi) {
 +                      return fib4_entry;
                }
        }
  
@@@ -2539,25 -2395,28 +2546,25 @@@ static void mlxsw_sp_fib_node_fini(stru
  }
  
  static struct mlxsw_sp_fib_node *
 -mlxsw_sp_fib4_node_get(struct mlxsw_sp *mlxsw_sp,
 -                     const struct fib_entry_notifier_info *fen_info)
 +mlxsw_sp_fib_node_get(struct mlxsw_sp *mlxsw_sp, u32 tb_id, const void *addr,
 +                    size_t addr_len, unsigned char prefix_len,
 +                    enum mlxsw_sp_l3proto proto)
  {
        struct mlxsw_sp_fib_node *fib_node;
        struct mlxsw_sp_fib *fib;
        struct mlxsw_sp_vr *vr;
        int err;
  
 -      vr = mlxsw_sp_vr_get(mlxsw_sp, fen_info->tb_id);
 +      vr = mlxsw_sp_vr_get(mlxsw_sp, tb_id);
        if (IS_ERR(vr))
                return ERR_CAST(vr);
 -      fib = mlxsw_sp_vr_fib(vr, MLXSW_SP_L3_PROTO_IPV4);
 +      fib = mlxsw_sp_vr_fib(vr, proto);
  
 -      fib_node = mlxsw_sp_fib_node_lookup(fib, &fen_info->dst,
 -                                          sizeof(fen_info->dst),
 -                                          fen_info->dst_len);
 +      fib_node = mlxsw_sp_fib_node_lookup(fib, addr, addr_len, prefix_len);
        if (fib_node)
                return fib_node;
  
 -      fib_node = mlxsw_sp_fib_node_create(fib, &fen_info->dst,
 -                                          sizeof(fen_info->dst),
 -                                          fen_info->dst_len);
 +      fib_node = mlxsw_sp_fib_node_create(fib, addr, addr_len, prefix_len);
        if (!fib_node) {
                err = -ENOMEM;
                goto err_fib_node_create;
@@@ -2576,8 -2435,8 +2583,8 @@@ err_fib_node_create
        return ERR_PTR(err);
  }
  
 -static void mlxsw_sp_fib4_node_put(struct mlxsw_sp *mlxsw_sp,
 -                                 struct mlxsw_sp_fib_node *fib_node)
 +static void mlxsw_sp_fib_node_put(struct mlxsw_sp *mlxsw_sp,
 +                                struct mlxsw_sp_fib_node *fib_node)
  {
        struct mlxsw_sp_vr *vr = fib_node->fib->vr;
  
        mlxsw_sp_vr_put(vr);
  }
  
 -static struct mlxsw_sp_fib_entry *
 +static struct mlxsw_sp_fib4_entry *
  mlxsw_sp_fib4_node_entry_find(const struct mlxsw_sp_fib_node *fib_node,
 -                            const struct mlxsw_sp_fib_entry_params *params)
 +                            const struct mlxsw_sp_fib4_entry *new4_entry)
  {
 -      struct mlxsw_sp_fib_entry *fib_entry;
 +      struct mlxsw_sp_fib4_entry *fib4_entry;
  
 -      list_for_each_entry(fib_entry, &fib_node->entry_list, list) {
 -              if (fib_entry->params.tb_id > params->tb_id)
 +      list_for_each_entry(fib4_entry, &fib_node->entry_list, common.list) {
 +              if (fib4_entry->tb_id > new4_entry->tb_id)
                        continue;
 -              if (fib_entry->params.tb_id != params->tb_id)
 +              if (fib4_entry->tb_id != new4_entry->tb_id)
                        break;
 -              if (fib_entry->params.tos > params->tos)
 +              if (fib4_entry->tos > new4_entry->tos)
                        continue;
 -              if (fib_entry->params.prio >= params->prio ||
 -                  fib_entry->params.tos < params->tos)
 -                      return fib_entry;
 +              if (fib4_entry->prio >= new4_entry->prio ||
 +                  fib4_entry->tos < new4_entry->tos)
 +                      return fib4_entry;
        }
  
        return NULL;
  }
  
 -static int mlxsw_sp_fib4_node_list_append(struct mlxsw_sp_fib_entry *fib_entry,
 -                                        struct mlxsw_sp_fib_entry *new_entry)
 +static int
 +mlxsw_sp_fib4_node_list_append(struct mlxsw_sp_fib4_entry *fib4_entry,
 +                             struct mlxsw_sp_fib4_entry *new4_entry)
  {
        struct mlxsw_sp_fib_node *fib_node;
  
 -      if (WARN_ON(!fib_entry))
 +      if (WARN_ON(!fib4_entry))
                return -EINVAL;
  
 -      fib_node = fib_entry->fib_node;
 -      list_for_each_entry_from(fib_entry, &fib_node->entry_list, list) {
 -              if (fib_entry->params.tb_id != new_entry->params.tb_id ||
 -                  fib_entry->params.tos != new_entry->params.tos ||
 -                  fib_entry->params.prio != new_entry->params.prio)
 +      fib_node = fib4_entry->common.fib_node;
 +      list_for_each_entry_from(fib4_entry, &fib_node->entry_list,
 +                               common.list) {
 +              if (fib4_entry->tb_id != new4_entry->tb_id ||
 +                  fib4_entry->tos != new4_entry->tos ||
 +                  fib4_entry->prio != new4_entry->prio)
                        break;
        }
  
 -      list_add_tail(&new_entry->list, &fib_entry->list);
 +      list_add_tail(&new4_entry->common.list, &fib4_entry->common.list);
        return 0;
  }
  
  static int
 -mlxsw_sp_fib4_node_list_insert(struct mlxsw_sp_fib_node *fib_node,
 -                             struct mlxsw_sp_fib_entry *new_entry,
 +mlxsw_sp_fib4_node_list_insert(struct mlxsw_sp_fib4_entry *new4_entry,
                               bool replace, bool append)
  {
 -      struct mlxsw_sp_fib_entry *fib_entry;
 +      struct mlxsw_sp_fib_node *fib_node = new4_entry->common.fib_node;
 +      struct mlxsw_sp_fib4_entry *fib4_entry;
  
 -      fib_entry = mlxsw_sp_fib4_node_entry_find(fib_node, &new_entry->params);
 +      fib4_entry = mlxsw_sp_fib4_node_entry_find(fib_node, new4_entry);
  
        if (append)
 -              return mlxsw_sp_fib4_node_list_append(fib_entry, new_entry);
 -      if (replace && WARN_ON(!fib_entry))
 +              return mlxsw_sp_fib4_node_list_append(fib4_entry, new4_entry);
 +      if (replace && WARN_ON(!fib4_entry))
                return -EINVAL;
  
        /* Insert new entry before replaced one, so that we can later
         * remove the second.
         */
 -      if (fib_entry) {
 -              list_add_tail(&new_entry->list, &fib_entry->list);
 +      if (fib4_entry) {
 +              list_add_tail(&new4_entry->common.list,
 +                            &fib4_entry->common.list);
        } else {
 -              struct mlxsw_sp_fib_entry *last;
 +              struct mlxsw_sp_fib4_entry *last;
  
 -              list_for_each_entry(last, &fib_node->entry_list, list) {
 -                      if (new_entry->params.tb_id > last->params.tb_id)
 +              list_for_each_entry(last, &fib_node->entry_list, common.list) {
 +                      if (new4_entry->tb_id > last->tb_id)
                                break;
 -                      fib_entry = last;
 +                      fib4_entry = last;
                }
  
 -              if (fib_entry)
 -                      list_add(&new_entry->list, &fib_entry->list);
 +              if (fib4_entry)
 +                      list_add(&new4_entry->common.list,
 +                               &fib4_entry->common.list);
                else
 -                      list_add(&new_entry->list, &fib_node->entry_list);
 +                      list_add(&new4_entry->common.list,
 +                               &fib_node->entry_list);
        }
  
        return 0;
  }
  
  static void
 -mlxsw_sp_fib4_node_list_remove(struct mlxsw_sp_fib_entry *fib_entry)
 +mlxsw_sp_fib4_node_list_remove(struct mlxsw_sp_fib4_entry *fib4_entry)
  {
 -      list_del(&fib_entry->list);
 +      list_del(&fib4_entry->common.list);
  }
  
 -static int
 -mlxsw_sp_fib4_node_entry_add(struct mlxsw_sp *mlxsw_sp,
 -                           const struct mlxsw_sp_fib_node *fib_node,
 -                           struct mlxsw_sp_fib_entry *fib_entry)
 +static int mlxsw_sp_fib_node_entry_add(struct mlxsw_sp *mlxsw_sp,
 +                                     struct mlxsw_sp_fib_entry *fib_entry)
  {
 +      struct mlxsw_sp_fib_node *fib_node = fib_entry->fib_node;
 +
        if (!mlxsw_sp_fib_node_entry_is_first(fib_node, fib_entry))
                return 0;
  
        return mlxsw_sp_fib_entry_update(mlxsw_sp, fib_entry);
  }
  
 -static void
 -mlxsw_sp_fib4_node_entry_del(struct mlxsw_sp *mlxsw_sp,
 -                           const struct mlxsw_sp_fib_node *fib_node,
 -                           struct mlxsw_sp_fib_entry *fib_entry)
 +static void mlxsw_sp_fib_node_entry_del(struct mlxsw_sp *mlxsw_sp,
 +                                      struct mlxsw_sp_fib_entry *fib_entry)
  {
 +      struct mlxsw_sp_fib_node *fib_node = fib_entry->fib_node;
 +
        if (!mlxsw_sp_fib_node_entry_is_first(fib_node, fib_entry))
                return;
  
  }
  
  static int mlxsw_sp_fib4_node_entry_link(struct mlxsw_sp *mlxsw_sp,
 -                                       struct mlxsw_sp_fib_entry *fib_entry,
 +                                       struct mlxsw_sp_fib4_entry *fib4_entry,
                                         bool replace, bool append)
  {
 -      struct mlxsw_sp_fib_node *fib_node = fib_entry->fib_node;
        int err;
  
 -      err = mlxsw_sp_fib4_node_list_insert(fib_node, fib_entry, replace,
 -                                           append);
 +      err = mlxsw_sp_fib4_node_list_insert(fib4_entry, replace, append);
        if (err)
                return err;
  
 -      err = mlxsw_sp_fib4_node_entry_add(mlxsw_sp, fib_node, fib_entry);
 +      err = mlxsw_sp_fib_node_entry_add(mlxsw_sp, &fib4_entry->common);
        if (err)
 -              goto err_fib4_node_entry_add;
 +              goto err_fib_node_entry_add;
  
        return 0;
  
 -err_fib4_node_entry_add:
 -      mlxsw_sp_fib4_node_list_remove(fib_entry);
 +err_fib_node_entry_add:
 +      mlxsw_sp_fib4_node_list_remove(fib4_entry);
        return err;
  }
  
  static void
  mlxsw_sp_fib4_node_entry_unlink(struct mlxsw_sp *mlxsw_sp,
 -                              struct mlxsw_sp_fib_entry *fib_entry)
 +                              struct mlxsw_sp_fib4_entry *fib4_entry)
  {
 -      struct mlxsw_sp_fib_node *fib_node = fib_entry->fib_node;
 -
 -      mlxsw_sp_fib4_node_entry_del(mlxsw_sp, fib_node, fib_entry);
 -      mlxsw_sp_fib4_node_list_remove(fib_entry);
 +      mlxsw_sp_fib_node_entry_del(mlxsw_sp, &fib4_entry->common);
 +      mlxsw_sp_fib4_node_list_remove(fib4_entry);
  }
  
  static void mlxsw_sp_fib4_entry_replace(struct mlxsw_sp *mlxsw_sp,
 -                                      struct mlxsw_sp_fib_entry *fib_entry,
 +                                      struct mlxsw_sp_fib4_entry *fib4_entry,
                                        bool replace)
  {
 -      struct mlxsw_sp_fib_node *fib_node = fib_entry->fib_node;
 -      struct mlxsw_sp_fib_entry *replaced;
 +      struct mlxsw_sp_fib_node *fib_node = fib4_entry->common.fib_node;
 +      struct mlxsw_sp_fib4_entry *replaced;
  
        if (!replace)
                return;
  
        /* We inserted the new entry before replaced one */
 -      replaced = list_next_entry(fib_entry, list);
 +      replaced = list_next_entry(fib4_entry, common.list);
  
        mlxsw_sp_fib4_node_entry_unlink(mlxsw_sp, replaced);
        mlxsw_sp_fib4_entry_destroy(mlxsw_sp, replaced);
 -      mlxsw_sp_fib4_node_put(mlxsw_sp, fib_node);
 +      mlxsw_sp_fib_node_put(mlxsw_sp, fib_node);
  }
  
  static int
@@@ -2771,80 -2629,76 +2778,80 @@@ mlxsw_sp_router_fib4_add(struct mlxsw_s
                         const struct fib_entry_notifier_info *fen_info,
                         bool replace, bool append)
  {
 -      struct mlxsw_sp_fib_entry *fib_entry;
 +      struct mlxsw_sp_fib4_entry *fib4_entry;
        struct mlxsw_sp_fib_node *fib_node;
        int err;
  
        if (mlxsw_sp->router->aborted)
                return 0;
  
 -      fib_node = mlxsw_sp_fib4_node_get(mlxsw_sp, fen_info);
 +      fib_node = mlxsw_sp_fib_node_get(mlxsw_sp, fen_info->tb_id,
 +                                       &fen_info->dst, sizeof(fen_info->dst),
 +                                       fen_info->dst_len,
 +                                       MLXSW_SP_L3_PROTO_IPV4);
        if (IS_ERR(fib_node)) {
                dev_warn(mlxsw_sp->bus_info->dev, "Failed to get FIB node\n");
                return PTR_ERR(fib_node);
        }
  
 -      fib_entry = mlxsw_sp_fib4_entry_create(mlxsw_sp, fib_node, fen_info);
 -      if (IS_ERR(fib_entry)) {
 +      fib4_entry = mlxsw_sp_fib4_entry_create(mlxsw_sp, fib_node, fen_info);
 +      if (IS_ERR(fib4_entry)) {
                dev_warn(mlxsw_sp->bus_info->dev, "Failed to create FIB entry\n");
 -              err = PTR_ERR(fib_entry);
 +              err = PTR_ERR(fib4_entry);
                goto err_fib4_entry_create;
        }
  
 -      err = mlxsw_sp_fib4_node_entry_link(mlxsw_sp, fib_entry, replace,
 +      err = mlxsw_sp_fib4_node_entry_link(mlxsw_sp, fib4_entry, replace,
                                            append);
        if (err) {
                dev_warn(mlxsw_sp->bus_info->dev, "Failed to link FIB entry to node\n");
                goto err_fib4_node_entry_link;
        }
  
 -      mlxsw_sp_fib4_entry_replace(mlxsw_sp, fib_entry, replace);
 +      mlxsw_sp_fib4_entry_replace(mlxsw_sp, fib4_entry, replace);
  
        return 0;
  
  err_fib4_node_entry_link:
 -      mlxsw_sp_fib4_entry_destroy(mlxsw_sp, fib_entry);
 +      mlxsw_sp_fib4_entry_destroy(mlxsw_sp, fib4_entry);
  err_fib4_entry_create:
 -      mlxsw_sp_fib4_node_put(mlxsw_sp, fib_node);
 +      mlxsw_sp_fib_node_put(mlxsw_sp, fib_node);
        return err;
  }
  
  static void mlxsw_sp_router_fib4_del(struct mlxsw_sp *mlxsw_sp,
                                     struct fib_entry_notifier_info *fen_info)
  {
 -      struct mlxsw_sp_fib_entry *fib_entry;
 +      struct mlxsw_sp_fib4_entry *fib4_entry;
        struct mlxsw_sp_fib_node *fib_node;
  
        if (mlxsw_sp->router->aborted)
                return;
  
 -      fib_entry = mlxsw_sp_fib4_entry_lookup(mlxsw_sp, fen_info);
 -      if (WARN_ON(!fib_entry))
 +      fib4_entry = mlxsw_sp_fib4_entry_lookup(mlxsw_sp, fen_info);
 +      if (WARN_ON(!fib4_entry))
                return;
 -      fib_node = fib_entry->fib_node;
 +      fib_node = fib4_entry->common.fib_node;
  
 -      mlxsw_sp_fib4_node_entry_unlink(mlxsw_sp, fib_entry);
 -      mlxsw_sp_fib4_entry_destroy(mlxsw_sp, fib_entry);
 -      mlxsw_sp_fib4_node_put(mlxsw_sp, fib_node);
 +      mlxsw_sp_fib4_node_entry_unlink(mlxsw_sp, fib4_entry);
 +      mlxsw_sp_fib4_entry_destroy(mlxsw_sp, fib4_entry);
 +      mlxsw_sp_fib_node_put(mlxsw_sp, fib_node);
  }
  
 -static int mlxsw_sp_router_set_abort_trap(struct mlxsw_sp *mlxsw_sp)
 +static int __mlxsw_sp_router_set_abort_trap(struct mlxsw_sp *mlxsw_sp,
 +                                          enum mlxsw_reg_ralxx_protocol proto,
 +                                          u8 tree_id)
  {
        char ralta_pl[MLXSW_REG_RALTA_LEN];
        char ralst_pl[MLXSW_REG_RALST_LEN];
        int i, err;
  
 -      mlxsw_reg_ralta_pack(ralta_pl, true, MLXSW_REG_RALXX_PROTOCOL_IPV4,
 -                           MLXSW_SP_LPM_TREE_MIN);
 +      mlxsw_reg_ralta_pack(ralta_pl, true, proto, tree_id);
        err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(ralta), ralta_pl);
        if (err)
                return err;
  
 -      mlxsw_reg_ralst_pack(ralst_pl, 0xff, MLXSW_SP_LPM_TREE_MIN);
 +      mlxsw_reg_ralst_pack(ralst_pl, 0xff, tree_id);
        err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(ralst), ralst_pl);
        if (err)
                return err;
                if (!mlxsw_sp_vr_is_used(vr))
                        continue;
  
 -              mlxsw_reg_raltb_pack(raltb_pl, vr->id,
 -                                   MLXSW_REG_RALXX_PROTOCOL_IPV4,
 -                                   MLXSW_SP_LPM_TREE_MIN);
 +              mlxsw_reg_raltb_pack(raltb_pl, vr->id, proto, tree_id);
                err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(raltb),
                                      raltb_pl);
                if (err)
                        return err;
  
 -              mlxsw_reg_ralue_pack4(ralue_pl, MLXSW_SP_L3_PROTO_IPV4,
 -                                    MLXSW_REG_RALUE_OP_WRITE_WRITE, vr->id, 0,
 -                                    0);
 +              mlxsw_reg_ralue_pack(ralue_pl, proto,
 +                                   MLXSW_REG_RALUE_OP_WRITE_WRITE, vr->id, 0);
                mlxsw_reg_ralue_act_ip2me_pack(ralue_pl);
                err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(ralue),
                                      ralue_pl);
        return 0;
  }
  
 +static int mlxsw_sp_router_set_abort_trap(struct mlxsw_sp *mlxsw_sp)
 +{
 +      enum mlxsw_reg_ralxx_protocol proto = MLXSW_REG_RALXX_PROTOCOL_IPV4;
 +      int err;
 +
 +      err = __mlxsw_sp_router_set_abort_trap(mlxsw_sp, proto,
 +                                             MLXSW_SP_LPM_TREE_MIN);
 +      if (err)
 +              return err;
 +
 +      proto = MLXSW_REG_RALXX_PROTOCOL_IPV6;
 +      return __mlxsw_sp_router_set_abort_trap(mlxsw_sp, proto,
 +                                              MLXSW_SP_LPM_TREE_MIN + 1);
 +}
 +
  static void mlxsw_sp_fib4_node_flush(struct mlxsw_sp *mlxsw_sp,
                                     struct mlxsw_sp_fib_node *fib_node)
  {
 -      struct mlxsw_sp_fib_entry *fib_entry, *tmp;
 +      struct mlxsw_sp_fib4_entry *fib4_entry, *tmp;
  
 -      list_for_each_entry_safe(fib_entry, tmp, &fib_node->entry_list, list) {
 -              bool do_break = &tmp->list == &fib_node->entry_list;
 +      list_for_each_entry_safe(fib4_entry, tmp, &fib_node->entry_list,
 +                               common.list) {
 +              bool do_break = &tmp->common.list == &fib_node->entry_list;
  
 -              mlxsw_sp_fib4_node_entry_unlink(mlxsw_sp, fib_entry);
 -              mlxsw_sp_fib4_entry_destroy(mlxsw_sp, fib_entry);
 -              mlxsw_sp_fib4_node_put(mlxsw_sp, fib_node);
 +              mlxsw_sp_fib4_node_entry_unlink(mlxsw_sp, fib4_entry);
 +              mlxsw_sp_fib4_entry_destroy(mlxsw_sp, fib4_entry);
 +              mlxsw_sp_fib_node_put(mlxsw_sp, fib_node);
                /* Break when entry list is empty and node was freed.
                 * Otherwise, we'll access freed memory in the next
                 * iteration.
@@@ -2950,17 -2791,10 +2957,17 @@@ static void mlxsw_sp_router_fib_flush(s
                if (!mlxsw_sp_vr_is_used(vr))
                        continue;
                mlxsw_sp_vr_fib_flush(mlxsw_sp, vr, MLXSW_SP_L3_PROTO_IPV4);
 +
 +              /* If virtual router was only used for IPv4, then it's no
 +               * longer used.
 +               */
 +              if (!mlxsw_sp_vr_is_used(vr))
 +                      continue;
 +              mlxsw_sp_vr_fib_flush(mlxsw_sp, vr, MLXSW_SP_L3_PROTO_IPV6);
        }
  }
  
 -static void mlxsw_sp_router_fib4_abort(struct mlxsw_sp *mlxsw_sp)
 +static void mlxsw_sp_router_fib_abort(struct mlxsw_sp *mlxsw_sp)
  {
        int err;
  
@@@ -3005,7 -2839,7 +3012,7 @@@ static void mlxsw_sp_router_fib_event_w
                err = mlxsw_sp_router_fib4_add(mlxsw_sp, &fib_work->fen_info,
                                               replace, append);
                if (err)
 -                      mlxsw_sp_router_fib4_abort(mlxsw_sp);
 +                      mlxsw_sp_router_fib_abort(mlxsw_sp);
                fib_info_put(fib_work->fen_info.fi);
                break;
        case FIB_EVENT_ENTRY_DEL:
        case FIB_EVENT_RULE_DEL:
                rule = fib_work->fr_info.rule;
                if (!fib4_rule_default(rule) && !rule->l3mdev)
 -                      mlxsw_sp_router_fib4_abort(mlxsw_sp);
 +                      mlxsw_sp_router_fib_abort(mlxsw_sp);
                fib_rule_put(rule);
                break;
        case FIB_EVENT_NH_ADD: /* fall through */
        case FIB_EVENT_NH_DEL:
 -              mlxsw_sp_nexthop_event(mlxsw_sp, fib_work->event,
 -                                     fib_work->fnh_info.fib_nh);
 +              mlxsw_sp_nexthop4_event(mlxsw_sp, fib_work->event,
 +                                      fib_work->fnh_info.fib_nh);
                fib_info_put(fib_work->fnh_info.fib_nh->nh_parent);
                break;
        }
@@@ -3114,28 -2948,17 +3121,28 @@@ static void mlxsw_sp_router_rif_gone_sy
        mlxsw_sp_neigh_rif_gone_sync(mlxsw_sp, rif);
  }
  
 -static bool mlxsw_sp_rif_should_config(struct mlxsw_sp_rif *rif,
 -                                     const struct in_device *in_dev,
 -                                     unsigned long event)
 +static bool
 +mlxsw_sp_rif_should_config(struct mlxsw_sp_rif *rif, struct net_device *dev,
 +                         unsigned long event)
  {
 +      struct inet6_dev *inet6_dev;
 +      bool addr_list_empty = true;
 +      struct in_device *idev;
 +
        switch (event) {
        case NETDEV_UP:
 -              if (!rif)
 -                      return true;
 -              return false;
 +              return rif == NULL;
        case NETDEV_DOWN:
 -              if (rif && !in_dev->ifa_list &&
 +              idev = __in_dev_get_rtnl(dev);
 +              if (idev && idev->ifa_list)
 +                      addr_list_empty = false;
 +
 +              inet6_dev = __in6_dev_get(dev);
 +              if (addr_list_empty && inet6_dev &&
 +                  !list_empty(&inet6_dev->addr_list))
 +                      addr_list_empty = false;
 +
 +              if (rif && addr_list_empty &&
                    !netif_is_l3_slave(rif->dev))
                        return true;
                /* It is possible we already removed the RIF ourselves
@@@ -3533,7 -3356,7 +3540,7 @@@ int mlxsw_sp_inetaddr_event(struct noti
                goto out;
  
        rif = mlxsw_sp_rif_find_by_dev(mlxsw_sp, dev);
 -      if (!mlxsw_sp_rif_should_config(rif, ifa->ifa_dev, event))
 +      if (!mlxsw_sp_rif_should_config(rif, dev, event))
                goto out;
  
        err = __mlxsw_sp_inetaddr_event(dev, event);
        return notifier_from_errno(err);
  }
  
 +struct mlxsw_sp_inet6addr_event_work {
 +      struct work_struct work;
 +      struct net_device *dev;
 +      unsigned long event;
 +};
 +
 +static void mlxsw_sp_inet6addr_event_work(struct work_struct *work)
 +{
 +      struct mlxsw_sp_inet6addr_event_work *inet6addr_work =
 +              container_of(work, struct mlxsw_sp_inet6addr_event_work, work);
 +      struct net_device *dev = inet6addr_work->dev;
 +      unsigned long event = inet6addr_work->event;
 +      struct mlxsw_sp *mlxsw_sp;
 +      struct mlxsw_sp_rif *rif;
 +
 +      rtnl_lock();
 +      mlxsw_sp = mlxsw_sp_lower_get(dev);
 +      if (!mlxsw_sp)
 +              goto out;
 +
 +      rif = mlxsw_sp_rif_find_by_dev(mlxsw_sp, dev);
 +      if (!mlxsw_sp_rif_should_config(rif, dev, event))
 +              goto out;
 +
 +      __mlxsw_sp_inetaddr_event(dev, event);
 +out:
 +      rtnl_unlock();
 +      dev_put(dev);
 +      kfree(inet6addr_work);
 +}
 +
 +/* Called with rcu_read_lock() */
 +int mlxsw_sp_inet6addr_event(struct notifier_block *unused,
 +                           unsigned long event, void *ptr)
 +{
 +      struct inet6_ifaddr *if6 = (struct inet6_ifaddr *) ptr;
 +      struct mlxsw_sp_inet6addr_event_work *inet6addr_work;
 +      struct net_device *dev = if6->idev->dev;
 +
 +      if (!mlxsw_sp_port_dev_lower_find_rcu(dev))
 +              return NOTIFY_DONE;
 +
 +      inet6addr_work = kzalloc(sizeof(*inet6addr_work), GFP_ATOMIC);
 +      if (!inet6addr_work)
 +              return NOTIFY_BAD;
 +
 +      INIT_WORK(&inet6addr_work->work, mlxsw_sp_inet6addr_event_work);
 +      inet6addr_work->dev = dev;
 +      inet6addr_work->event = event;
 +      dev_hold(dev);
 +      mlxsw_core_schedule_work(&inet6addr_work->work);
 +
 +      return NOTIFY_DONE;
 +}
 +
  static int mlxsw_sp_rif_edit(struct mlxsw_sp *mlxsw_sp, u16 rif_index,
                             const char *mac, int mtu)
  {
@@@ -3797,11 -3565,6 +3804,11 @@@ static int mlxsw_sp_rif_vlan_configure(
        if (err)
                return err;
  
 +      err = mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_MC,
 +                                   mlxsw_sp_router_port(mlxsw_sp), true);
 +      if (err)
 +              goto err_fid_mc_flood_set;
 +
        err = mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_BC,
                                     mlxsw_sp_router_port(mlxsw_sp), true);
        if (err)
        return 0;
  
  err_fid_bc_flood_set:
 +      mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_MC,
 +                             mlxsw_sp_router_port(mlxsw_sp), false);
 +err_fid_mc_flood_set:
        mlxsw_sp_rif_vlan_fid_op(rif, MLXSW_REG_RITR_VLAN_IF, vid, false);
        return err;
  }
@@@ -3824,8 -3584,6 +3831,8 @@@ static void mlxsw_sp_rif_vlan_deconfigu
  
        mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_BC,
                               mlxsw_sp_router_port(mlxsw_sp), false);
 +      mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_MC,
 +                             mlxsw_sp_router_port(mlxsw_sp), false);
        mlxsw_sp_rif_vlan_fid_op(rif, MLXSW_REG_RITR_VLAN_IF, vid, false);
  }
  
@@@ -3856,11 -3614,6 +3863,11 @@@ static int mlxsw_sp_rif_fid_configure(s
        if (err)
                return err;
  
 +      err = mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_MC,
 +                                   mlxsw_sp_router_port(mlxsw_sp), true);
 +      if (err)
 +              goto err_fid_mc_flood_set;
 +
        err = mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_BC,
                                     mlxsw_sp_router_port(mlxsw_sp), true);
        if (err)
        return 0;
  
  err_fid_bc_flood_set:
 +      mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_MC,
 +                             mlxsw_sp_router_port(mlxsw_sp), false);
 +err_fid_mc_flood_set:
        mlxsw_sp_rif_vlan_fid_op(rif, MLXSW_REG_RITR_FID_IF, fid_index, false);
        return err;
  }
@@@ -3883,8 -3633,6 +3890,8 @@@ static void mlxsw_sp_rif_fid_deconfigur
  
        mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_BC,
                               mlxsw_sp_router_port(mlxsw_sp), false);
 +      mlxsw_sp_fid_flood_set(rif->fid, MLXSW_SP_FLOOD_TYPE_MC,
 +                             mlxsw_sp_router_port(mlxsw_sp), false);
        mlxsw_sp_rif_vlan_fid_op(rif, MLXSW_REG_RITR_FID_IF, fid_index, false);
  }
  
@@@ -3956,7 -3704,7 +3963,7 @@@ static int __mlxsw_sp_router_init(struc
                return -EIO;
        max_rifs = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS);
  
 -      mlxsw_reg_rgcr_pack(rgcr_pl, true);
 +      mlxsw_reg_rgcr_pack(rgcr_pl, true, true);
        mlxsw_reg_rgcr_max_router_interfaces_set(rgcr_pl, max_rifs);
        err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rgcr), rgcr_pl);
        if (err)
@@@ -3968,7 -3716,7 +3975,7 @@@ static void __mlxsw_sp_router_fini(stru
  {
        char rgcr_pl[MLXSW_REG_RGCR_LEN];
  
 -      mlxsw_reg_rgcr_pack(rgcr_pl, false);
 +      mlxsw_reg_rgcr_pack(rgcr_pl, false, false);
        mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rgcr), rgcr_pl);
  }
  
index 8ff4cbf582cc2158d01e9c65c58239874101698c,0d78727f1a14dd9c4ae301f053769437cbe4eb3b..9453eef6d09f8663346255197a750562167a2158
@@@ -33,8 -33,6 +33,8 @@@
  #include <linux/if_vlan.h>
  #include <linux/in.h>
  #include <linux/slab.h>
 +#include <linux/rtnetlink.h>
 +
  #include <net/arp.h>
  #include <net/route.h>
  #include <net/sock.h>
@@@ -71,7 -69,7 +71,7 @@@ static void netvsc_set_multicast_list(s
  static int netvsc_open(struct net_device *net)
  {
        struct net_device_context *ndev_ctx = netdev_priv(net);
 -      struct netvsc_device *nvdev = ndev_ctx->nvdev;
 +      struct netvsc_device *nvdev = rtnl_dereference(ndev_ctx->nvdev);
        struct rndis_device *rdev;
        int ret = 0;
  
@@@ -282,8 -280,9 +282,8 @@@ static u32 fill_pg_buf(struct page *pag
  
  static u32 init_page_array(void *hdr, u32 len, struct sk_buff *skb,
                           struct hv_netvsc_packet *packet,
 -                         struct hv_page_buffer **page_buf)
 +                         struct hv_page_buffer *pb)
  {
 -      struct hv_page_buffer *pb = *page_buf;
        u32 slots_used = 0;
        char *data = skb->data;
        int frags = skb_shinfo(skb)->nr_frags;
        return slots_used;
  }
  
- /* Estimate number of page buffers neede to transmit
-  * Need at most 2 for RNDIS header plus skb body and fragments.
-  */
- static unsigned int netvsc_get_slots(const struct sk_buff *skb)
+ static int count_skb_frag_slots(struct sk_buff *skb)
+ {
+       int i, frags = skb_shinfo(skb)->nr_frags;
+       int pages = 0;
+       for (i = 0; i < frags; i++) {
+               skb_frag_t *frag = skb_shinfo(skb)->frags + i;
+               unsigned long size = skb_frag_size(frag);
+               unsigned long offset = frag->page_offset;
+               /* Skip unused frames from start of page */
+               offset &= ~PAGE_MASK;
+               pages += PFN_UP(offset + size);
+       }
+       return pages;
+ }
+ static int netvsc_get_slots(struct sk_buff *skb)
  {
-       return PFN_UP(offset_in_page(skb->data) + skb_headlen(skb))
-               + skb_shinfo(skb)->nr_frags
-               + 2;
+       char *data = skb->data;
+       unsigned int offset = offset_in_page(data);
+       unsigned int len = skb_headlen(skb);
+       int slots;
+       int frag_slots;
+       slots = DIV_ROUND_UP(offset + len, PAGE_SIZE);
+       frag_slots = count_skb_frag_slots(skb);
+       return slots + frag_slots;
  }
  
  static u32 net_checksum_info(struct sk_buff *skb)
  
                if (ip6->nexthdr == IPPROTO_TCP)
                        return TRANSPORT_INFO_IPV6_TCP;
 -              else if (ipv6_hdr(skb)->nexthdr == IPPROTO_UDP)
 +              else if (ip6->nexthdr == IPPROTO_UDP)
                        return TRANSPORT_INFO_IPV6_UDP;
        }
  
@@@ -358,20 -377,24 +378,23 @@@ static int netvsc_start_xmit(struct sk_
        u32 rndis_msg_size;
        struct rndis_per_packet_info *ppi;
        u32 hash;
 -      struct hv_page_buffer page_buf[MAX_PAGE_BUFFER_COUNT];
 -      struct hv_page_buffer *pb = page_buf;
 +      struct hv_page_buffer pb[MAX_PAGE_BUFFER_COUNT];
  
-       /* We can only transmit MAX_PAGE_BUFFER_COUNT number
+       /* We will atmost need two pages to describe the rndis
+        * header. We can only transmit MAX_PAGE_BUFFER_COUNT number
         * of pages in a single packet. If skb is scattered around
         * more pages we try linearizing it.
         */
-       num_data_pgs = netvsc_get_slots(skb);
+       num_data_pgs = netvsc_get_slots(skb) + 2;
        if (unlikely(num_data_pgs > MAX_PAGE_BUFFER_COUNT)) {
                ++net_device_ctx->eth_stats.tx_scattered;
  
                if (skb_linearize(skb))
                        goto no_memory;
  
-               num_data_pgs = netvsc_get_slots(skb);
+               num_data_pgs = netvsc_get_slots(skb) + 2;
                if (num_data_pgs > MAX_PAGE_BUFFER_COUNT) {
                        ++net_device_ctx->eth_stats.tx_too_big;
                        goto drop;
        rndis_msg->msg_len += rndis_msg_size;
        packet->total_data_buflen = rndis_msg->msg_len;
        packet->page_buf_cnt = init_page_array(rndis_msg, rndis_msg_size,
 -                                             skb, packet, &pb);
 +                                             skb, packet, pb);
  
        /* timestamp packet in software */
        skb_tx_timestamp(skb);
 -      ret = netvsc_send(net_device_ctx->device_ctx, packet,
 -                        rndis_msg, &pb, skb);
 +
 +      ret = netvsc_send(net_device_ctx, packet, rndis_msg, pb, skb);
        if (likely(ret == 0))
                return NETDEV_TX_OK;
  
@@@ -713,16 -736,39 +736,16 @@@ static void netvsc_get_channels(struct 
        }
  }
  
 -static int netvsc_set_queues(struct net_device *net, struct hv_device *dev,
 -                           u32 num_chn)
 -{
 -      struct netvsc_device_info device_info;
 -      int ret;
 -
 -      memset(&device_info, 0, sizeof(device_info));
 -      device_info.num_chn = num_chn;
 -      device_info.ring_size = ring_size;
 -      device_info.max_num_vrss_chns = num_chn;
 -
 -      ret = rndis_filter_device_add(dev, &device_info);
 -      if (ret)
 -              return ret;
 -
 -      ret = netif_set_real_num_tx_queues(net, num_chn);
 -      if (ret)
 -              return ret;
 -
 -      ret = netif_set_real_num_rx_queues(net, num_chn);
 -
 -      return ret;
 -}
 -
  static int netvsc_set_channels(struct net_device *net,
                               struct ethtool_channels *channels)
  {
        struct net_device_context *net_device_ctx = netdev_priv(net);
        struct hv_device *dev = net_device_ctx->device_ctx;
        struct netvsc_device *nvdev = rtnl_dereference(net_device_ctx->nvdev);
 -      unsigned int count = channels->combined_count;
 -      bool was_running;
 -      int ret;
 +      unsigned int orig, count = channels->combined_count;
 +      struct netvsc_device_info device_info;
 +      bool was_opened;
 +      int ret = 0;
  
        /* We do not support separate count for rx, tx, or other */
        if (count == 0 ||
        if (count > nvdev->max_chn)
                return -EINVAL;
  
 -      was_running = netif_running(net);
 -      if (was_running) {
 -              ret = netvsc_close(net);
 -              if (ret)
 -                      return ret;
 -      }
 +      orig = nvdev->num_chn;
 +      was_opened = rndis_filter_opened(nvdev);
 +      if (was_opened)
 +              rndis_filter_close(nvdev);
  
        rndis_filter_device_remove(dev, nvdev);
  
 -      ret = netvsc_set_queues(net, dev, count);
 -      if (ret == 0)
 -              nvdev->num_chn = count;
 -      else
 -              netvsc_set_queues(net, dev, nvdev->num_chn);
 +      memset(&device_info, 0, sizeof(device_info));
 +      device_info.num_chn = count;
 +      device_info.ring_size = ring_size;
 +
 +      nvdev = rndis_filter_device_add(dev, &device_info);
 +      if (!IS_ERR(nvdev)) {
 +              netif_set_real_num_tx_queues(net, nvdev->num_chn);
 +              netif_set_real_num_rx_queues(net, nvdev->num_chn);
 +      } else {
 +              ret = PTR_ERR(nvdev);
 +              device_info.num_chn = orig;
 +              rndis_filter_device_add(dev, &device_info);
 +      }
  
 -      if (was_running)
 -              ret = netvsc_open(net);
 +      if (was_opened)
 +              rndis_filter_open(nvdev);
  
        /* We may have missed link change notifications */
 +      net_device_ctx->last_reconfig = 0;
        schedule_delayed_work(&net_device_ctx->dwork, 0);
  
        return ret;
@@@ -832,40 -871,39 +855,40 @@@ static int netvsc_change_mtu(struct net
        struct net_device_context *ndevctx = netdev_priv(ndev);
        struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev);
        struct hv_device *hdev = ndevctx->device_ctx;
 +      int orig_mtu = ndev->mtu;
        struct netvsc_device_info device_info;
 -      bool was_running;
 +      bool was_opened;
        int ret = 0;
  
        if (!nvdev || nvdev->destroy)
                return -ENODEV;
  
 -      was_running = netif_running(ndev);
 -      if (was_running) {
 -              ret = netvsc_close(ndev);
 -              if (ret)
 -                      return ret;
 -      }
 +      netif_device_detach(ndev);
 +      was_opened = rndis_filter_opened(nvdev);
 +      if (was_opened)
 +              rndis_filter_close(nvdev);
  
        memset(&device_info, 0, sizeof(device_info));
        device_info.ring_size = ring_size;
        device_info.num_chn = nvdev->num_chn;
 -      device_info.max_num_vrss_chns = nvdev->num_chn;
  
        rndis_filter_device_remove(hdev, nvdev);
  
 -      /* 'nvdev' has been freed in rndis_filter_device_remove() ->
 -       * netvsc_device_remove () -> free_netvsc_device().
 -       * We mustn't access it before it's re-created in
 -       * rndis_filter_device_add() -> netvsc_device_add().
 -       */
 -
        ndev->mtu = mtu;
  
 -      rndis_filter_device_add(hdev, &device_info);
 +      nvdev = rndis_filter_device_add(hdev, &device_info);
 +      if (IS_ERR(nvdev)) {
 +              ret = PTR_ERR(nvdev);
 +
 +              /* Attempt rollback to original MTU */
 +              ndev->mtu = orig_mtu;
 +              rndis_filter_device_add(hdev, &device_info);
 +      }
 +
 +      if (was_opened)
 +              rndis_filter_open(nvdev);
  
 -      if (was_running)
 -              ret = netvsc_open(ndev);
 +      netif_device_attach(ndev);
  
        /* We may have missed link change notifications */
        schedule_delayed_work(&ndevctx->dwork, 0);
@@@ -921,8 -959,6 +944,8 @@@ static void netvsc_get_stats64(struct n
  
  static int netvsc_set_mac_addr(struct net_device *ndev, void *p)
  {
 +      struct net_device_context *ndc = netdev_priv(ndev);
 +      struct netvsc_device *nvdev = rtnl_dereference(ndc->nvdev);
        struct sockaddr *addr = p;
        char save_adr[ETH_ALEN];
        unsigned char save_aatype;
        if (err != 0)
                return err;
  
 -      err = rndis_filter_set_device_mac(ndev, addr->sa_data);
 +      if (!nvdev)
 +              return -ENODEV;
 +
 +      err = rndis_filter_set_device_mac(nvdev, addr->sa_data);
        if (err != 0) {
                /* roll back to saved MAC */
                memcpy(ndev->dev_addr, save_adr, ETH_ALEN);
@@@ -984,7 -1017,7 +1007,7 @@@ static void netvsc_get_ethtool_stats(st
                                     struct ethtool_stats *stats, u64 *data)
  {
        struct net_device_context *ndc = netdev_priv(dev);
 -      struct netvsc_device *nvdev = rcu_dereference(ndc->nvdev);
 +      struct netvsc_device *nvdev = rtnl_dereference(ndc->nvdev);
        const void *nds = &ndc->eth_stats;
        const struct netvsc_stats *qstats;
        unsigned int start;
  static void netvsc_get_strings(struct net_device *dev, u32 stringset, u8 *data)
  {
        struct net_device_context *ndc = netdev_priv(dev);
 -      struct netvsc_device *nvdev = rcu_dereference(ndc->nvdev);
 +      struct netvsc_device *nvdev = rtnl_dereference(ndc->nvdev);
        u8 *p = data;
        int i;
  
@@@ -1080,7 -1113,7 +1103,7 @@@ netvsc_get_rxnfc(struct net_device *dev
                 u32 *rules)
  {
        struct net_device_context *ndc = netdev_priv(dev);
 -      struct netvsc_device *nvdev = rcu_dereference(ndc->nvdev);
 +      struct netvsc_device *nvdev = rtnl_dereference(ndc->nvdev);
  
        if (!nvdev)
                return -ENODEV;
@@@ -1130,7 -1163,7 +1153,7 @@@ static int netvsc_get_rxfh(struct net_d
                           u8 *hfunc)
  {
        struct net_device_context *ndc = netdev_priv(dev);
 -      struct netvsc_device *ndev = rcu_dereference(ndc->nvdev);
 +      struct netvsc_device *ndev = rtnl_dereference(ndc->nvdev);
        struct rndis_device *rndis_dev;
        int i;
  
@@@ -1353,7 -1386,7 +1376,7 @@@ static struct net_device *get_netvsc_by
                        continue;       /* not a netvsc device */
  
                net_device_ctx = netdev_priv(dev);
 -              if (net_device_ctx->nvdev == NULL)
 +              if (!rtnl_dereference(net_device_ctx->nvdev))
                        continue;       /* device is removed */
  
                if (rtnl_dereference(net_device_ctx->vf_netdev) == vf_netdev)
@@@ -1518,10 -1551,8 +1541,10 @@@ static int netvsc_probe(struct hv_devic
        memset(&device_info, 0, sizeof(device_info));
        device_info.ring_size = ring_size;
        device_info.num_chn = VRSS_CHANNEL_DEFAULT;
 -      ret = rndis_filter_device_add(dev, &device_info);
 -      if (ret != 0) {
 +
 +      nvdev = rndis_filter_device_add(dev, &device_info);
 +      if (IS_ERR(nvdev)) {
 +              ret = PTR_ERR(nvdev);
                netdev_err(net, "unable to add netvsc device (ret %d)\n", ret);
                free_netdev(net);
                hv_set_drvdata(dev, NULL);
                NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
        net->vlan_features = net->features;
  
 -      /* RCU not necessary here, device not registered */
 -      nvdev = net_device_ctx->nvdev;
        netif_set_real_num_tx_queues(net, nvdev->num_chn);
        netif_set_real_num_rx_queues(net, nvdev->num_chn);
  
 +      netdev_lockdep_set_classes(net);
 +
        /* MTU range: 68 - 1500 or 65521 */
        net->min_mtu = NETVSC_MTU_MIN;
        if (nvdev->nvsp_version >= NVSP_PROTOCOL_VERSION_2)
@@@ -1580,8 -1611,7 +1603,8 @@@ static int netvsc_remove(struct hv_devi
         * removed. Also blocks mtu and channel changes.
         */
        rtnl_lock();
 -      rndis_filter_device_remove(dev, ndev_ctx->nvdev);
 +      rndis_filter_device_remove(dev,
 +                                 rtnl_dereference(ndev_ctx->nvdev));
        rtnl_unlock();
  
        unregister_netdev(net);
diff --combined drivers/net/phy/phy.c
index 3aedf415908bfacd19bfb2680f3dc25d00da2b86,5068c582d502c6944a01a2ee87062d7ffb409034..b9d4922581de7c970fefb13c79eabce48c326dfe
@@@ -30,6 -30,7 +30,6 @@@
  #include <linux/ethtool.h>
  #include <linux/phy.h>
  #include <linux/phy_led_triggers.h>
 -#include <linux/timer.h>
  #include <linux/workqueue.h>
  #include <linux/mdio.h>
  #include <linux/io.h>
@@@ -704,8 -705,8 +704,8 @@@ EXPORT_SYMBOL(phy_start_aneg)
   *
   * Description: The PHY infrastructure can run a state machine
   *   which tracks whether the PHY is starting up, negotiating,
 - *   etc.  This function starts the timer which tracks the state
 - *   of the PHY.  If you want to maintain your own state machine,
 + *   etc.  This function starts the delayed workqueue which tracks
 + *   the state of the PHY. If you want to maintain your own state machine,
   *   do not call this function.
   */
  void phy_start_machine(struct phy_device *phydev)
@@@ -736,9 -737,9 +736,9 @@@ void phy_trigger_machine(struct phy_dev
   * phy_stop_machine - stop the PHY state machine tracking
   * @phydev: target phy_device struct
   *
 - * Description: Stops the state machine timer, sets the state to UP
 - *   (unless it wasn't up yet). This function must be called BEFORE
 - *   phy_detach.
 + * Description: Stops the state machine delayed workqueue, sets the
 + *   state to UP (unless it wasn't up yet). This function must be
 + *   called BEFORE phy_detach.
   */
  void phy_stop_machine(struct phy_device *phydev)
  {
        if (phydev->state > PHY_UP && phydev->state != PHY_HALTED)
                phydev->state = PHY_UP;
        mutex_unlock(&phydev->lock);
+       /* Now we can run the state machine synchronously */
+       phy_state_machine(&phydev->state_queue.work);
  }
  
  /**
@@@ -1225,10 -1229,9 +1228,10 @@@ void phy_state_machine(struct work_stru
        if (err < 0)
                phy_error(phydev);
  
 -      phydev_dbg(phydev, "PHY state change %s -> %s\n",
 -                 phy_state_to_str(old_state),
 -                 phy_state_to_str(phydev->state));
 +      if (old_state != phydev->state)
 +              phydev_dbg(phydev, "PHY state change %s -> %s\n",
 +                         phy_state_to_str(old_state),
 +                         phy_state_to_str(phydev->state));
  
        /* Only re-schedule a PHY state machine change if we are polling the
         * PHY, if PHY_IGNORE_INTERRUPT is set, then we will be moving
diff --combined drivers/net/tun.c
index a93392d7a3405c48f383b0c2cc7db5e08151f1cf,32ad87345f5798498584d8dcfbda2f9ac993e619..68add55f8460fc19c1291e9a19d019d63edb2821
@@@ -199,7 -199,7 +199,7 @@@ struct tun_struct 
        struct net_device       *dev;
        netdev_features_t       set_features;
  #define TUN_USER_FEATURES (NETIF_F_HW_CSUM|NETIF_F_TSO_ECN|NETIF_F_TSO| \
 -                        NETIF_F_TSO6|NETIF_F_UFO)
 +                        NETIF_F_TSO6)
  
        int                     align;
        int                     vnet_hdr_sz;
@@@ -1921,6 -1921,11 +1921,6 @@@ static int set_offload(struct tun_struc
                                features |= NETIF_F_TSO6;
                        arg &= ~(TUN_F_TSO4|TUN_F_TSO6);
                }
 -
 -              if (arg & TUN_F_UFO) {
 -                      features |= NETIF_F_UFO;
 -                      arg &= ~TUN_F_UFO;
 -              }
        }
  
        /* This gives the user a way to test for new features in future by
@@@ -2593,8 -2598,16 +2593,16 @@@ static int __init tun_init(void
                goto err_misc;
        }
  
-       register_netdevice_notifier(&tun_notifier_block);
+       ret = register_netdevice_notifier(&tun_notifier_block);
+       if (ret) {
+               pr_err("Can't register netdevice notifier\n");
+               goto err_notifier;
+       }
        return  0;
+ err_notifier:
+       misc_deregister(&tun_miscdev);
  err_misc:
        rtnl_link_unregister(&tun_link_ops);
  err_linkops:
diff --combined drivers/net/virtio_net.c
index 1902701e15a962238221bedd13800a16680d78b9,98f17b05c68b745276ecbe67d2934918eaf340bd..e90de2186ffc34344d626eb6be878a35391c03a5
@@@ -57,11 -57,6 +57,11 @@@ DECLARE_EWMA(pkt_len, 0, 64
  
  #define VIRTNET_DRIVER_VERSION "1.0.0"
  
 +const unsigned long guest_offloads[] = { VIRTIO_NET_F_GUEST_TSO4,
 +                                       VIRTIO_NET_F_GUEST_TSO6,
 +                                       VIRTIO_NET_F_GUEST_ECN,
 +                                       VIRTIO_NET_F_GUEST_UFO };
 +
  struct virtnet_stats {
        struct u64_stats_sync tx_syncp;
        struct u64_stats_sync rx_syncp;
@@@ -169,13 -164,10 +169,13 @@@ struct virtnet_info 
        u8 ctrl_promisc;
        u8 ctrl_allmulti;
        u16 ctrl_vid;
 +      u64 ctrl_offloads;
  
        /* Ethtool settings */
        u8 duplex;
        u32 speed;
 +
 +      unsigned long guest_offloads;
  };
  
  struct padded_vnet_hdr {
@@@ -278,23 -270,6 +278,23 @@@ static void skb_xmit_done(struct virtqu
                netif_wake_subqueue(vi->dev, vq2txq(vq));
  }
  
 +#define MRG_CTX_HEADER_SHIFT 22
 +static void *mergeable_len_to_ctx(unsigned int truesize,
 +                                unsigned int headroom)
 +{
 +      return (void *)(unsigned long)((headroom << MRG_CTX_HEADER_SHIFT) | truesize);
 +}
 +
 +static unsigned int mergeable_ctx_to_headroom(void *mrg_ctx)
 +{
 +      return (unsigned long)mrg_ctx >> MRG_CTX_HEADER_SHIFT;
 +}
 +
 +static unsigned int mergeable_ctx_to_truesize(void *mrg_ctx)
 +{
 +      return (unsigned long)mrg_ctx & ((1 << MRG_CTX_HEADER_SHIFT) - 1);
 +}
 +
  /* Called from bottom half context */
  static struct sk_buff *page_to_skb(struct virtnet_info *vi,
                                   struct receive_queue *rq,
@@@ -415,85 -390,19 +415,85 @@@ static unsigned int virtnet_get_headroo
        return vi->xdp_queue_pairs ? VIRTIO_XDP_HEADROOM : 0;
  }
  
 +/* We copy the packet for XDP in the following cases:
 + *
 + * 1) Packet is scattered across multiple rx buffers.
 + * 2) Headroom space is insufficient.
 + *
 + * This is inefficient but it's a temporary condition that
 + * we hit right after XDP is enabled and until queue is refilled
 + * with large buffers with sufficient headroom - so it should affect
 + * at most queue size packets.
 + * Afterwards, the conditions to enable
 + * XDP should preclude the underlying device from sending packets
 + * across multiple buffers (num_buf > 1), and we make sure buffers
 + * have enough headroom.
 + */
 +static struct page *xdp_linearize_page(struct receive_queue *rq,
 +                                     u16 *num_buf,
 +                                     struct page *p,
 +                                     int offset,
 +                                     int page_off,
 +                                     unsigned int *len)
 +{
 +      struct page *page = alloc_page(GFP_ATOMIC);
 +
 +      if (!page)
 +              return NULL;
 +
 +      memcpy(page_address(page) + page_off, page_address(p) + offset, *len);
 +      page_off += *len;
 +
 +      while (--*num_buf) {
 +              unsigned int buflen;
 +              void *buf;
 +              int off;
 +
 +              buf = virtqueue_get_buf(rq->vq, &buflen);
 +              if (unlikely(!buf))
 +                      goto err_buf;
 +
 +              p = virt_to_head_page(buf);
 +              off = buf - page_address(p);
 +
 +              /* guard against a misconfigured or uncooperative backend that
 +               * is sending packet larger than the MTU.
 +               */
 +              if ((page_off + buflen) > PAGE_SIZE) {
 +                      put_page(p);
 +                      goto err_buf;
 +              }
 +
 +              memcpy(page_address(page) + page_off,
 +                     page_address(p) + off, buflen);
 +              page_off += buflen;
 +              put_page(p);
 +      }
 +
 +      /* Headroom does not contribute to packet length */
 +      *len = page_off - VIRTIO_XDP_HEADROOM;
 +      return page;
 +err_buf:
 +      __free_pages(page, 0);
 +      return NULL;
 +}
 +
  static struct sk_buff *receive_small(struct net_device *dev,
                                     struct virtnet_info *vi,
                                     struct receive_queue *rq,
 -                                   void *buf, unsigned int len)
 +                                   void *buf, void *ctx,
 +                                   unsigned int len)
  {
        struct sk_buff *skb;
        struct bpf_prog *xdp_prog;
 -      unsigned int xdp_headroom = virtnet_get_headroom(vi);
 +      unsigned int xdp_headroom = (unsigned long)ctx;
        unsigned int header_offset = VIRTNET_RX_PAD + xdp_headroom;
        unsigned int headroom = vi->hdr_len + header_offset;
        unsigned int buflen = SKB_DATA_ALIGN(GOOD_PACKET_LEN + headroom) +
                              SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
 +      struct page *page = virt_to_head_page(buf);
        unsigned int delta = 0;
 +      struct page *xdp_page;
        len -= vi->hdr_len;
  
        rcu_read_lock();
                if (unlikely(hdr->hdr.gso_type || hdr->hdr.flags))
                        goto err_xdp;
  
 +              if (unlikely(xdp_headroom < virtnet_get_headroom(vi))) {
 +                      int offset = buf - page_address(page) + header_offset;
 +                      unsigned int tlen = len + vi->hdr_len;
 +                      u16 num_buf = 1;
 +
 +                      xdp_headroom = virtnet_get_headroom(vi);
 +                      header_offset = VIRTNET_RX_PAD + xdp_headroom;
 +                      headroom = vi->hdr_len + header_offset;
 +                      buflen = SKB_DATA_ALIGN(GOOD_PACKET_LEN + headroom) +
 +                               SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
 +                      xdp_page = xdp_linearize_page(rq, &num_buf, page,
 +                                                    offset, header_offset,
 +                                                    &tlen);
 +                      if (!xdp_page)
 +                              goto err_xdp;
 +
 +                      buf = page_address(xdp_page);
 +                      put_page(page);
 +                      page = xdp_page;
 +              }
 +
                xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len;
                xdp.data = xdp.data_hard_start + xdp_headroom;
                xdp.data_end = xdp.data + len;
  
        skb = build_skb(buf, buflen);
        if (!skb) {
 -              put_page(virt_to_head_page(buf));
 +              put_page(page);
                goto err;
        }
        skb_reserve(skb, headroom - delta);
@@@ -572,7 -460,7 +572,7 @@@ err
  err_xdp:
        rcu_read_unlock();
        dev->stats.rx_dropped++;
 -      put_page(virt_to_head_page(buf));
 +      put_page(page);
  xdp_xmit:
        return NULL;
  }
@@@ -597,6 -485,66 +597,6 @@@ err
        return NULL;
  }
  
 -/* The conditions to enable XDP should preclude the underlying device from
 - * sending packets across multiple buffers (num_buf > 1). However per spec
 - * it does not appear to be illegal to do so but rather just against convention.
 - * So in order to avoid making a system unresponsive the packets are pushed
 - * into a page and the XDP program is run. This will be extremely slow and we
 - * push a warning to the user to fix this as soon as possible. Fixing this may
 - * require resolving the underlying hardware to determine why multiple buffers
 - * are being received or simply loading the XDP program in the ingress stack
 - * after the skb is built because there is no advantage to running it here
 - * anymore.
 - */
 -static struct page *xdp_linearize_page(struct receive_queue *rq,
 -                                     u16 *num_buf,
 -                                     struct page *p,
 -                                     int offset,
 -                                     unsigned int *len)
 -{
 -      struct page *page = alloc_page(GFP_ATOMIC);
 -      unsigned int page_off = VIRTIO_XDP_HEADROOM;
 -
 -      if (!page)
 -              return NULL;
 -
 -      memcpy(page_address(page) + page_off, page_address(p) + offset, *len);
 -      page_off += *len;
 -
 -      while (--*num_buf) {
 -              unsigned int buflen;
 -              void *buf;
 -              int off;
 -
 -              buf = virtqueue_get_buf(rq->vq, &buflen);
 -              if (unlikely(!buf))
 -                      goto err_buf;
 -
 -              p = virt_to_head_page(buf);
 -              off = buf - page_address(p);
 -
 -              /* guard against a misconfigured or uncooperative backend that
 -               * is sending packet larger than the MTU.
 -               */
 -              if ((page_off + buflen) > PAGE_SIZE) {
 -                      put_page(p);
 -                      goto err_buf;
 -              }
 -
 -              memcpy(page_address(page) + page_off,
 -                     page_address(p) + off, buflen);
 -              page_off += buflen;
 -              put_page(p);
 -      }
 -
 -      /* Headroom does not contribute to packet length */
 -      *len = page_off - VIRTIO_XDP_HEADROOM;
 -      return page;
 -err_buf:
 -      __free_pages(page, 0);
 -      return NULL;
 -}
 -
  static struct sk_buff *receive_mergeable(struct net_device *dev,
                                         struct virtnet_info *vi,
                                         struct receive_queue *rq,
        struct sk_buff *head_skb, *curr_skb;
        struct bpf_prog *xdp_prog;
        unsigned int truesize;
 +      unsigned int headroom = mergeable_ctx_to_headroom(ctx);
  
        head_skb = NULL;
  
                u32 act;
  
                /* This happens when rx buffer size is underestimated */
 -              if (unlikely(num_buf > 1)) {
 +              if (unlikely(num_buf > 1 ||
 +                           headroom < virtnet_get_headroom(vi))) {
                        /* linearize data for XDP */
                        xdp_page = xdp_linearize_page(rq, &num_buf,
 -                                                    page, offset, &len);
 +                                                    page, offset,
 +                                                    VIRTIO_XDP_HEADROOM,
 +                                                    &len);
                        if (!xdp_page)
                                goto err_xdp;
                        offset = VIRTIO_XDP_HEADROOM;
        }
        rcu_read_unlock();
  
 -      if (unlikely(len > (unsigned long)ctx)) {
 +      truesize = mergeable_ctx_to_truesize(ctx);
 +      if (unlikely(len > truesize)) {
                pr_debug("%s: rx error: len %u exceeds truesize %lu\n",
                         dev->name, len, (unsigned long)ctx);
                dev->stats.rx_length_errors++;
                goto err_skb;
        }
 -      truesize = (unsigned long)ctx;
 +
        head_skb = page_to_skb(vi, rq, page, offset, len, truesize);
        curr_skb = head_skb;
  
                }
  
                page = virt_to_head_page(buf);
 -              if (unlikely(len > (unsigned long)ctx)) {
 +
 +              truesize = mergeable_ctx_to_truesize(ctx);
 +              if (unlikely(len > truesize)) {
                        pr_debug("%s: rx error: len %u exceeds truesize %lu\n",
                                 dev->name, len, (unsigned long)ctx);
                        dev->stats.rx_length_errors++;
                        goto err_skb;
                }
 -              truesize = (unsigned long)ctx;
  
                num_skb_frags = skb_shinfo(curr_skb)->nr_frags;
                if (unlikely(num_skb_frags == MAX_SKB_FRAGS)) {
@@@ -812,7 -754,7 +812,7 @@@ static int receive_buf(struct virtnet_i
        else if (vi->big_packets)
                skb = receive_big(dev, vi, rq, buf, len);
        else
 -              skb = receive_small(dev, vi, rq, buf, len);
 +              skb = receive_small(dev, vi, rq, buf, ctx, len);
  
        if (unlikely(!skb))
                return 0;
@@@ -845,18 -787,12 +845,18 @@@ frame_err
        return 0;
  }
  
 +/* Unlike mergeable buffers, all buffers are allocated to the
 + * same size, except for the headroom. For this reason we do
 + * not need to use  mergeable_len_to_ctx here - it is enough
 + * to store the headroom as the context ignoring the truesize.
 + */
  static int add_recvbuf_small(struct virtnet_info *vi, struct receive_queue *rq,
                             gfp_t gfp)
  {
        struct page_frag *alloc_frag = &rq->alloc_frag;
        char *buf;
        unsigned int xdp_headroom = virtnet_get_headroom(vi);
 +      void *ctx = (void *)(unsigned long)xdp_headroom;
        int len = vi->hdr_len + VIRTNET_RX_PAD + GOOD_PACKET_LEN + xdp_headroom;
        int err;
  
        alloc_frag->offset += len;
        sg_init_one(rq->sg, buf + VIRTNET_RX_PAD + xdp_headroom,
                    vi->hdr_len + GOOD_PACKET_LEN);
 -      err = virtqueue_add_inbuf(rq->vq, rq->sg, 1, buf, gfp);
 +      err = virtqueue_add_inbuf_ctx(rq->vq, rq->sg, 1, buf, ctx, gfp);
        if (err < 0)
                put_page(virt_to_head_page(buf));
 -
        return err;
  }
  
@@@ -952,21 -889,20 +952,20 @@@ static int add_recvbuf_mergeable(struc
  
        buf = (char *)page_address(alloc_frag->page) + alloc_frag->offset;
        buf += headroom; /* advance address leaving hole at front of pkt */
-       ctx = mergeable_len_to_ctx(len, headroom);
        get_page(alloc_frag->page);
        alloc_frag->offset += len + headroom;
        hole = alloc_frag->size - alloc_frag->offset;
        if (hole < len + headroom) {
                /* To avoid internal fragmentation, if there is very likely not
                 * enough space for another buffer, add the remaining space to
-                * the current buffer. This extra space is not included in
-                * the truesize stored in ctx.
+                * the current buffer.
                 */
                len += hole;
                alloc_frag->offset += hole;
        }
  
        sg_init_one(rq->sg, buf, len);
 -      ctx = (void *)(unsigned long)len;
++      ctx = mergeable_len_to_ctx(len, headroom);
        err = virtqueue_add_inbuf_ctx(rq->vq, rq->sg, 1, buf, ctx, gfp);
        if (err < 0)
                put_page(virt_to_head_page(buf));
@@@ -1078,7 -1014,7 +1077,7 @@@ static int virtnet_receive(struct recei
        void *buf;
        struct virtnet_stats *stats = this_cpu_ptr(vi->stats);
  
 -      if (vi->mergeable_rx_bufs) {
 +      if (!vi->big_packets || vi->mergeable_rx_bufs) {
                void *ctx;
  
                while (received < budget &&
@@@ -1877,6 -1813,7 +1876,6 @@@ static void virtnet_freeze_down(struct 
  }
  
  static int init_vqs(struct virtnet_info *vi);
 -static void _remove_vq_common(struct virtnet_info *vi);
  
  static int virtnet_restore_up(struct virtio_device *vdev)
  {
        return err;
  }
  
 -static int virtnet_reset(struct virtnet_info *vi, int curr_qp, int xdp_qp)
 +static int virtnet_set_guest_offloads(struct virtnet_info *vi, u64 offloads)
  {
 -      struct virtio_device *dev = vi->vdev;
 -      int ret;
 +      struct scatterlist sg;
 +      vi->ctrl_offloads = cpu_to_virtio64(vi->vdev, offloads);
  
 -      virtio_config_disable(dev);
 -      dev->failed = dev->config->get_status(dev) & VIRTIO_CONFIG_S_FAILED;
 -      virtnet_freeze_down(dev);
 -      _remove_vq_common(vi);
 +      sg_init_one(&sg, &vi->ctrl_offloads, sizeof(vi->ctrl_offloads));
  
 -      virtio_add_status(dev, VIRTIO_CONFIG_S_ACKNOWLEDGE);
 -      virtio_add_status(dev, VIRTIO_CONFIG_S_DRIVER);
 +      if (!virtnet_send_command(vi, VIRTIO_NET_CTRL_GUEST_OFFLOADS,
 +                                VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET, &sg)) {
 +              dev_warn(&vi->dev->dev, "Fail to set guest offload. \n");
 +              return -EINVAL;
 +      }
  
 -      ret = virtio_finalize_features(dev);
 -      if (ret)
 -              goto err;
 +      return 0;
 +}
  
 -      vi->xdp_queue_pairs = xdp_qp;
 -      ret = virtnet_restore_up(dev);
 -      if (ret)
 -              goto err;
 -      ret = _virtnet_set_queues(vi, curr_qp);
 -      if (ret)
 -              goto err;
 +static int virtnet_clear_guest_offloads(struct virtnet_info *vi)
 +{
 +      u64 offloads = 0;
  
 -      virtio_add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK);
 -      virtio_config_enable(dev);
 -      return 0;
 -err:
 -      virtio_add_status(dev, VIRTIO_CONFIG_S_FAILED);
 -      return ret;
 +      if (!vi->guest_offloads)
 +              return 0;
 +
 +      if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_CSUM))
 +              offloads = 1ULL << VIRTIO_NET_F_GUEST_CSUM;
 +
 +      return virtnet_set_guest_offloads(vi, offloads);
 +}
 +
 +static int virtnet_restore_guest_offloads(struct virtnet_info *vi)
 +{
 +      u64 offloads = vi->guest_offloads;
 +
 +      if (!vi->guest_offloads)
 +              return 0;
 +      if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_CSUM))
 +              offloads |= 1ULL << VIRTIO_NET_F_GUEST_CSUM;
 +
 +      return virtnet_set_guest_offloads(vi, offloads);
  }
  
  static int virtnet_xdp_set(struct net_device *dev, struct bpf_prog *prog,
        u16 xdp_qp = 0, curr_qp;
        int i, err;
  
 -      if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO4) ||
 -          virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO6) ||
 -          virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_ECN) ||
 -          virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_UFO)) {
 +      if (!virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLOADS)
 +          && (virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO4) ||
 +              virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO6) ||
 +              virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_ECN) ||
 +              virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_UFO))) {
                NL_SET_ERR_MSG_MOD(extack, "Can't set XDP while host is implementing LRO, disable LRO first");
                return -EOPNOTSUPP;
        }
                        return PTR_ERR(prog);
        }
  
 -      /* Changing the headroom in buffers is a disruptive operation because
 -       * existing buffers must be flushed and reallocated. This will happen
 -       * when a xdp program is initially added or xdp is disabled by removing
 -       * the xdp program resulting in number of XDP queues changing.
 -       */
 -      if (vi->xdp_queue_pairs != xdp_qp) {
 -              err = virtnet_reset(vi, curr_qp + xdp_qp, xdp_qp);
 -              if (err) {
 -                      dev_warn(&dev->dev, "XDP reset failure.\n");
 -                      goto virtio_reset_err;
 -              }
 -      }
 +      /* Make sure NAPI is not using any XDP TX queues for RX. */
 +      for (i = 0; i < vi->max_queue_pairs; i++)
 +              napi_disable(&vi->rq[i].napi);
  
        netif_set_real_num_rx_queues(dev, curr_qp + xdp_qp);
 +      err = _virtnet_set_queues(vi, curr_qp + xdp_qp);
 +      if (err)
 +              goto err;
 +      vi->xdp_queue_pairs = xdp_qp;
  
        for (i = 0; i < vi->max_queue_pairs; i++) {
                old_prog = rtnl_dereference(vi->rq[i].xdp_prog);
                rcu_assign_pointer(vi->rq[i].xdp_prog, prog);
 +              if (i == 0) {
 +                      if (!old_prog)
 +                              virtnet_clear_guest_offloads(vi);
 +                      if (!prog)
 +                              virtnet_restore_guest_offloads(vi);
 +              }
                if (old_prog)
                        bpf_prog_put(old_prog);
 +              virtnet_napi_enable(vi->rq[i].vq, &vi->rq[i].napi);
        }
  
        return 0;
  
 -virtio_reset_err:
 -      /* On reset error do our best to unwind XDP changes inflight and return
 -       * error up to user space for resolution. The underlying reset hung on
 -       * us so not much we can do here.
 -       */
 +err:
 +      for (i = 0; i < vi->max_queue_pairs; i++)
 +              virtnet_napi_enable(vi->rq[i].vq, &vi->rq[i].napi);
        if (prog)
                bpf_prog_sub(prog, vi->max_queue_pairs - 1);
        return err;
@@@ -2254,7 -2182,7 +2253,7 @@@ static int virtnet_find_vqs(struct virt
        names = kmalloc(total_vqs * sizeof(*names), GFP_KERNEL);
        if (!names)
                goto err_names;
 -      if (vi->mergeable_rx_bufs) {
 +      if (!vi->big_packets || vi->mergeable_rx_bufs) {
                ctx = kzalloc(total_vqs * sizeof(*ctx), GFP_KERNEL);
                if (!ctx)
                        goto err_ctx;
@@@ -2500,7 -2428,7 +2499,7 @@@ static int virtnet_probe(struct virtio_
                        dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG;
  
                if (virtio_has_feature(vdev, VIRTIO_NET_F_GSO)) {
 -                      dev->hw_features |= NETIF_F_TSO | NETIF_F_UFO
 +                      dev->hw_features |= NETIF_F_TSO
                                | NETIF_F_TSO_ECN | NETIF_F_TSO6;
                }
                /* Individual feature bits: what can host handle? */
                        dev->hw_features |= NETIF_F_TSO6;
                if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_ECN))
                        dev->hw_features |= NETIF_F_TSO_ECN;
 -              if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_UFO))
 -                      dev->hw_features |= NETIF_F_UFO;
  
                dev->features |= NETIF_F_GSO_ROBUST;
  
                if (gso)
 -                      dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO);
 +                      dev->features |= dev->hw_features & NETIF_F_ALL_TSO;
                /* (!csum && gso) case will be fixed by register_netdev() */
        }
        if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM))
                netif_carrier_on(dev);
        }
  
 +      for (i = 0; i < ARRAY_SIZE(guest_offloads); i++)
 +              if (virtio_has_feature(vi->vdev, guest_offloads[i]))
 +                      set_bit(guest_offloads[i], &vi->guest_offloads);
 +
        pr_debug("virtnet: registered device %s with %d RX and TX vq's\n",
                 dev->name, max_queue_pairs);
  
@@@ -2671,6 -2597,15 +2670,6 @@@ free
        return err;
  }
  
 -static void _remove_vq_common(struct virtnet_info *vi)
 -{
 -      vi->vdev->config->reset(vi->vdev);
 -      free_unused_bufs(vi);
 -      _free_receive_bufs(vi);
 -      free_receive_page_frags(vi);
 -      virtnet_del_vqs(vi);
 -}
 -
  static void remove_vq_common(struct virtnet_info *vi)
  {
        vi->vdev->config->reset(vi->vdev);
@@@ -2702,7 -2637,8 +2701,7 @@@ static void virtnet_remove(struct virti
        free_netdev(vi->dev);
  }
  
 -#ifdef CONFIG_PM_SLEEP
 -static int virtnet_freeze(struct virtio_device *vdev)
 +static __maybe_unused int virtnet_freeze(struct virtio_device *vdev)
  {
        struct virtnet_info *vi = vdev->priv;
  
        return 0;
  }
  
 -static int virtnet_restore(struct virtio_device *vdev)
 +static __maybe_unused int virtnet_restore(struct virtio_device *vdev)
  {
        struct virtnet_info *vi = vdev->priv;
        int err;
  
        return 0;
  }
 -#endif
  
  static struct virtio_device_id id_table[] = {
        { VIRTIO_ID_NET, VIRTIO_DEV_ANY_ID },
        VIRTIO_NET_F_CTRL_RX, VIRTIO_NET_F_CTRL_VLAN, \
        VIRTIO_NET_F_GUEST_ANNOUNCE, VIRTIO_NET_F_MQ, \
        VIRTIO_NET_F_CTRL_MAC_ADDR, \
 -      VIRTIO_NET_F_MTU
 +      VIRTIO_NET_F_MTU, VIRTIO_NET_F_CTRL_GUEST_OFFLOADS
  
  static unsigned int features[] = {
        VIRTNET_FEATURES,
@@@ -2805,9 -2742,9 +2804,9 @@@ module_init(virtio_net_driver_init)
  
  static __exit void virtio_net_driver_exit(void)
  {
+       unregister_virtio_driver(&virtio_net_driver);
        cpuhp_remove_multi_state(CPUHP_VIRT_NET_DEAD);
        cpuhp_remove_multi_state(virtionet_online);
-       unregister_virtio_driver(&virtio_net_driver);
  }
  module_exit(virtio_net_driver_exit);
  
diff --combined kernel/bpf/verifier.c
index db6a289ebf0b32fc960b2f608239c79ac283d338,664d939723739e0333fb5921533e3327912a3b84..f6e8b3887eab4862b9db6f366a652bdb719417de
@@@ -1283,14 -1283,6 +1283,14 @@@ static int check_map_func_compatibility
                    func_id != BPF_FUNC_current_task_under_cgroup)
                        goto error;
                break;
 +      /* devmap returns a pointer to a live net_device ifindex that we cannot
 +       * allow to be modified from bpf side. So do not allow lookup elements
 +       * for now.
 +       */
 +      case BPF_MAP_TYPE_DEVMAP:
 +              if (func_id != BPF_FUNC_redirect_map)
 +                      goto error;
 +              break;
        case BPF_MAP_TYPE_ARRAY_OF_MAPS:
        case BPF_MAP_TYPE_HASH_OF_MAPS:
                if (func_id != BPF_FUNC_map_lookup_elem)
                if (map->map_type != BPF_MAP_TYPE_CGROUP_ARRAY)
                        goto error;
                break;
 +      case BPF_FUNC_redirect_map:
 +              if (map->map_type != BPF_MAP_TYPE_DEVMAP)
 +                      goto error;
 +              break;
        default:
                break;
        }
@@@ -1877,10 -1865,12 +1877,12 @@@ static void adjust_reg_min_max_vals(str
         * do our normal operations to the register, we need to set the values
         * to the min/max since they are undefined.
         */
-       if (min_val == BPF_REGISTER_MIN_RANGE)
-               dst_reg->min_value = BPF_REGISTER_MIN_RANGE;
-       if (max_val == BPF_REGISTER_MAX_RANGE)
-               dst_reg->max_value = BPF_REGISTER_MAX_RANGE;
+       if (opcode != BPF_SUB) {
+               if (min_val == BPF_REGISTER_MIN_RANGE)
+                       dst_reg->min_value = BPF_REGISTER_MIN_RANGE;
+               if (max_val == BPF_REGISTER_MAX_RANGE)
+                       dst_reg->max_value = BPF_REGISTER_MAX_RANGE;
+       }
  
        switch (opcode) {
        case BPF_ADD:
                dst_reg->min_align = min(src_align, dst_align);
                break;
        case BPF_SUB:
+               /* If one of our values was at the end of our ranges, then the
+                * _opposite_ value in the dst_reg goes to the end of our range.
+                */
+               if (min_val == BPF_REGISTER_MIN_RANGE)
+                       dst_reg->max_value = BPF_REGISTER_MAX_RANGE;
+               if (max_val == BPF_REGISTER_MAX_RANGE)
+                       dst_reg->min_value = BPF_REGISTER_MIN_RANGE;
                if (dst_reg->min_value != BPF_REGISTER_MIN_RANGE)
-                       dst_reg->min_value -= min_val;
+                       dst_reg->min_value -= max_val;
                if (dst_reg->max_value != BPF_REGISTER_MAX_RANGE)
-                       dst_reg->max_value -= max_val;
+                       dst_reg->max_value -= min_val;
                dst_reg->min_align = min(src_align, dst_align);
                break;
        case BPF_MUL:
diff --combined net/ipv4/tcp_output.c
index 8380464aead1033332662856579af5dd6d662ff5,2f1588bf73dad9b34aebee45ce738a7e9a4515ae..d49bff51bdb7e4cfa03f8c846dd981e413e2a113
@@@ -295,7 -295,9 +295,7 @@@ static u16 tcp_select_window(struct soc
        /* RFC1323 scaling applied */
        new_win >>= tp->rx_opt.rcv_wscale;
  
 -      /* If we advertise zero window, disable fast path. */
        if (new_win == 0) {
 -              tp->pred_flags = 0;
                if (old_win)
                        NET_INC_STATS(sock_net(sk),
                                      LINUX_MIB_TCPTOZEROWINDOWADV);
@@@ -2200,9 -2202,10 +2200,10 @@@ static bool tcp_small_queue_check(struc
  static void tcp_chrono_set(struct tcp_sock *tp, const enum tcp_chrono new)
  {
        const u32 now = tcp_jiffies32;
+       enum tcp_chrono old = tp->chrono_type;
  
-       if (tp->chrono_type > TCP_CHRONO_UNSPEC)
-               tp->chrono_stat[tp->chrono_type - 1] += now - tp->chrono_start;
+       if (old > TCP_CHRONO_UNSPEC)
+               tp->chrono_stat[old - 1] += now - tp->chrono_start;
        tp->chrono_start = now;
        tp->chrono_type = new;
  }
@@@ -2375,6 -2378,7 +2376,6 @@@ bool tcp_schedule_loss_probe(struct soc
        struct inet_connection_sock *icsk = inet_csk(sk);
        struct tcp_sock *tp = tcp_sk(sk);
        u32 timeout, tlp_time_stamp, rto_time_stamp;
 -      u32 rtt = usecs_to_jiffies(tp->srtt_us >> 3);
  
        /* No consecutive loss probes. */
        if (WARN_ON(icsk->icsk_pending == ICSK_TIME_LOSS_PROBE)) {
             tcp_send_head(sk))
                return false;
  
 -      /* Probe timeout is at least 1.5*rtt + TCP_DELACK_MAX to account
 +      /* Probe timeout is 2*rtt. Add minimum RTO to account
         * for delayed ack when there's one outstanding packet. If no RTT
         * sample is available then probe after TCP_TIMEOUT_INIT.
         */
 -      timeout = rtt << 1 ? : TCP_TIMEOUT_INIT;
 -      if (tp->packets_out == 1)
 -              timeout = max_t(u32, timeout,
 -                              (rtt + (rtt >> 1) + TCP_DELACK_MAX));
 -      timeout = max_t(u32, timeout, msecs_to_jiffies(10));
 +      if (tp->srtt_us) {
 +              timeout = usecs_to_jiffies(tp->srtt_us >> 2);
 +              if (tp->packets_out == 1)
 +                      timeout += TCP_RTO_MIN;
 +              else
 +                      timeout += TCP_TIMEOUT_MIN;
 +      } else {
 +              timeout = TCP_TIMEOUT_INIT;
 +      }
  
        /* If RTO is shorter, just schedule TLP in its place. */
        tlp_time_stamp = tcp_jiffies32 + timeout;
diff --combined net/ipv6/ip6_output.c
index c6ec06465ce0bc973e2a44adde96b5a4dd49a0cd,162efba0d0cd851848363588318cf6ade4a5a62c..43ca864327c73015f1724879d7ee8268a0de513b
@@@ -673,8 -673,6 +673,6 @@@ int ip6_fragment(struct net *net, struc
                *prevhdr = NEXTHDR_FRAGMENT;
                tmp_hdr = kmemdup(skb_network_header(skb), hlen, GFP_ATOMIC);
                if (!tmp_hdr) {
-                       IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
-                                     IPSTATS_MIB_FRAGFAILS);
                        err = -ENOMEM;
                        goto fail;
                }
@@@ -789,8 -787,6 +787,6 @@@ slow_path
                frag = alloc_skb(len + hlen + sizeof(struct frag_hdr) +
                                 hroom + troom, GFP_ATOMIC);
                if (!frag) {
-                       IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
-                                     IPSTATS_MIB_FRAGFAILS);
                        err = -ENOMEM;
                        goto fail;
                }
@@@ -1114,6 -1110,69 +1110,6 @@@ struct dst_entry *ip6_sk_dst_lookup_flo
  }
  EXPORT_SYMBOL_GPL(ip6_sk_dst_lookup_flow);
  
 -static inline int ip6_ufo_append_data(struct sock *sk,
 -                      struct sk_buff_head *queue,
 -                      int getfrag(void *from, char *to, int offset, int len,
 -                      int odd, struct sk_buff *skb),
 -                      void *from, int length, int hh_len, int fragheaderlen,
 -                      int exthdrlen, int transhdrlen, int mtu,
 -                      unsigned int flags, const struct flowi6 *fl6)
 -
 -{
 -      struct sk_buff *skb;
 -      int err;
 -
 -      /* There is support for UDP large send offload by network
 -       * device, so create one single skb packet containing complete
 -       * udp datagram
 -       */
 -      skb = skb_peek_tail(queue);
 -      if (!skb) {
 -              skb = sock_alloc_send_skb(sk,
 -                      hh_len + fragheaderlen + transhdrlen + 20,
 -                      (flags & MSG_DONTWAIT), &err);
 -              if (!skb)
 -                      return err;
 -
 -              /* reserve space for Hardware header */
 -              skb_reserve(skb, hh_len);
 -
 -              /* create space for UDP/IP header */
 -              skb_put(skb, fragheaderlen + transhdrlen);
 -
 -              /* initialize network header pointer */
 -              skb_set_network_header(skb, exthdrlen);
 -
 -              /* initialize protocol header pointer */
 -              skb->transport_header = skb->network_header + fragheaderlen;
 -
 -              skb->protocol = htons(ETH_P_IPV6);
 -              skb->csum = 0;
 -
 -              if (flags & MSG_CONFIRM)
 -                      skb_set_dst_pending_confirm(skb, 1);
 -
 -              __skb_queue_tail(queue, skb);
 -      } else if (skb_is_gso(skb)) {
 -              goto append;
 -      }
 -
 -      skb->ip_summed = CHECKSUM_PARTIAL;
 -      /* Specify the length of each IPv6 datagram fragment.
 -       * It has to be a multiple of 8.
 -       */
 -      skb_shinfo(skb)->gso_size = (mtu - fragheaderlen -
 -                                   sizeof(struct frag_hdr)) & ~7;
 -      skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
 -      skb_shinfo(skb)->ip6_frag_id = ipv6_select_ident(sock_net(sk),
 -                                                       &fl6->daddr,
 -                                                       &fl6->saddr);
 -
 -append:
 -      return skb_append_datato_frags(sk, skb, getfrag, from,
 -                                     (length - transhdrlen));
 -}
 -
  static inline struct ipv6_opt_hdr *ip6_opt_dup(struct ipv6_opt_hdr *src,
                                               gfp_t gfp)
  {
@@@ -1322,6 -1381,19 +1318,6 @@@ emsgsize
         */
  
        cork->length += length;
 -      if ((((length + (skb ? skb->len : headersize)) > mtu) ||
 -           (skb && skb_is_gso(skb))) &&
 -          (sk->sk_protocol == IPPROTO_UDP) &&
 -          (rt->dst.dev->features & NETIF_F_UFO) && !dst_xfrm(&rt->dst) &&
 -          (sk->sk_type == SOCK_DGRAM) && !udp_get_no_check6_tx(sk)) {
 -              err = ip6_ufo_append_data(sk, queue, getfrag, from, length,
 -                                        hh_len, fragheaderlen, exthdrlen,
 -                                        transhdrlen, mtu, flags, fl6);
 -              if (err)
 -                      goto error;
 -              return 0;
 -      }
 -
        if (!skb)
                goto alloc_new_skb;
  
diff --combined net/packet/af_packet.c
index e7303f68972d71b722630a4839fb47d67ab906df,0615c2a950fab992134d0071707b5b336f6fb231..5a178047a7cee30fb24d53c8dcb672895d22bd56
@@@ -177,6 -177,8 +177,6 @@@ static int packet_set_ring(struct sock 
  #define BLK_PLUS_PRIV(sz_of_priv) \
        (BLK_HDR_LEN + ALIGN((sz_of_priv), V3_ALIGNMENT))
  
 -#define PGV_FROM_VMALLOC 1
 -
  #define BLOCK_STATUS(x)       ((x)->hdr.bh1.block_status)
  #define BLOCK_NUM_PKTS(x)     ((x)->hdr.bh1.num_pkts)
  #define BLOCK_O2FP(x)         ((x)->hdr.bh1.offset_to_first_pkt)
@@@ -4327,7 -4329,7 +4327,7 @@@ static int packet_set_ring(struct sock 
                register_prot_hook(sk);
        }
        spin_unlock(&po->bind_lock);
-       if (closing && (po->tp_version > TPACKET_V2)) {
+       if (pg_vec && (po->tp_version > TPACKET_V2)) {
                /* Because we don't support block-based V3 on tx-ring */
                if (!tx_ring)
                        prb_shutdown_retire_blk_timer(po, rb_queue);
diff --combined net/socket.c
index 79d9bb964cd850b3984cedf6cea9762976664833,ad22df1ffbd13bbea78df55b8347aa32ae2105ad..cb0fdf799f40d8f64660ce37ea6dc95ffdef3479
@@@ -1916,7 -1916,7 +1916,7 @@@ static int copy_msghdr_from_user(struc
        if (copy_from_user(&msg, umsg, sizeof(*umsg)))
                return -EFAULT;
  
-       kmsg->msg_control = msg.msg_control;
+       kmsg->msg_control = (void __force *)msg.msg_control;
        kmsg->msg_controllen = msg.msg_controllen;
        kmsg->msg_flags = msg.msg_flags;
  
  
        if (msg.msg_name && kmsg->msg_namelen) {
                if (!save_addr) {
-                       err = move_addr_to_kernel(msg.msg_name, kmsg->msg_namelen,
+                       err = move_addr_to_kernel(msg.msg_name,
+                                                 kmsg->msg_namelen,
                                                  kmsg->msg_name);
                        if (err < 0)
                                return err;
@@@ -3404,6 -3405,7 +3405,6 @@@ u32 kernel_sock_ip_overhead(struct soc
        struct inet_sock *inet;
        struct ip_options_rcu *opt;
        u32 overhead = 0;
 -      bool owned_by_user;
  #if IS_ENABLED(CONFIG_IPV6)
        struct ipv6_pinfo *np;
        struct ipv6_txoptions *optv6 = NULL;
        if (!sk)
                return overhead;
  
 -      owned_by_user = sock_owned_by_user(sk);
        switch (sk->sk_family) {
        case AF_INET:
                inet = inet_sk(sk);
                overhead += sizeof(struct iphdr);
                opt = rcu_dereference_protected(inet->inet_opt,
 -                                              owned_by_user);
 +                                              sock_owned_by_user(sk));
                if (opt)
                        overhead += opt->opt.optlen;
                return overhead;
                overhead += sizeof(struct ipv6hdr);
                if (np)
                        optv6 = rcu_dereference_protected(np->opt,
 -                                                        owned_by_user);
 +                                                        sock_owned_by_user(sk));
                if (optv6)
                        overhead += (optv6->opt_flen + optv6->opt_nflen);
                return overhead;