]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'security/next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Thu, 5 Nov 2015 01:54:46 +0000 (12:54 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 5 Nov 2015 01:54:46 +0000 (12:54 +1100)
1  2 
MAINTAINERS
crypto/asymmetric_keys/x509_public_key.c
fs/cifs/connect.c
fs/cifs/smb2pdu.c
fs/ext4/crypto_key.c
security/keys/request_key.c
security/selinux/hooks.c

diff --combined MAINTAINERS
index 9b6497c298bb896d60e0ba08bf8a82a186678974,da9ee415f59629c0cded90335387550dd681a87d..e0dd3ce3c9ec5ea795e930c970512b15e5125580
@@@ -240,12 -240,6 +240,12 @@@ L:       lm-sensors@lm-sensors.or
  S:    Maintained
  F:    drivers/hwmon/abituguru3.c
  
 +ACCES 104-IDIO-16 GPIO DRIVER
 +M:    "William Breathitt Gray" <vilhelm.gray@gmail.com>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-104-idio-16.c
 +
  ACENIC DRIVER
  M:    Jes Sorensen <jes@trained-monkey.org>
  L:    linux-acenic@sunsite.dk
@@@ -660,6 -654,11 +660,6 @@@ F:        drivers/gpu/drm/radeon/radeon_kfd.
  F:    drivers/gpu/drm/radeon/radeon_kfd.h
  F:    include/uapi/linux/kfd_ioctl.h
  
 -AMD MICROCODE UPDATE SUPPORT
 -M:    Borislav Petkov <bp@alien8.de>
 -S:    Maintained
 -F:    arch/x86/kernel/cpu/microcode/amd*
 -
  AMD XGBE DRIVER
  M:    Tom Lendacky <thomas.lendacky@amd.com>
  L:    netdev@vger.kernel.org
@@@ -789,11 -788,6 +789,11 @@@ S:       Maintaine
  F:    drivers/net/appletalk/
  F:    net/appletalk/
  
 +APPLIED MICRO (APM) X-GENE DEVICE TREE SUPPORT
 +M:    Duc Dang <dhdang@apm.com>
 +S:    Supported
 +F:    arch/arm64/boot/dts/apm/
 +
  APPLIED MICRO (APM) X-GENE SOC ETHERNET DRIVER
  M:    Iyappan Subramanian <isubramanian@apm.com>
  M:    Keyur Chudgar <kchudgar@apm.com>
@@@ -828,13 -822,12 +828,13 @@@ F:      arch/arm/include/asm/floppy.
  
  ARM PMU PROFILING AND DEBUGGING
  M:    Will Deacon <will.deacon@arm.com>
 +R:    Mark Rutland <mark.rutland@arm.com>
  S:    Maintained
 -F:    arch/arm/kernel/perf_*
 +F:    arch/arm*/kernel/perf_*
  F:    arch/arm/oprofile/common.c
 -F:    arch/arm/kernel/hw_breakpoint.c
 -F:    arch/arm/include/asm/hw_breakpoint.h
 -F:    arch/arm/include/asm/perf_event.h
 +F:    arch/arm*/kernel/hw_breakpoint.c
 +F:    arch/arm*/include/asm/hw_breakpoint.h
 +F:    arch/arm*/include/asm/perf_event.h
  F:    drivers/perf/arm_pmu.c
  F:    include/linux/perf/arm_pmu.h
  
@@@ -901,12 -894,11 +901,12 @@@ M:      Lennert Buytenhek <kernel@wantstofly
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
 -ARM/Allwinner A1X SoC support
 +ARM/Allwinner sunXi SoC support
  M:    Maxime Ripard <maxime.ripard@free-electrons.com>
 +M:    Chen-Yu Tsai <wens@csie.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -N:    sun[x4567]i
 +N:    sun[x456789]i
  
  ARM/Allwinner SoC Clock Support
  M:    Emilio López <emilio@elopez.com.ar>
@@@ -925,7 -917,7 +925,7 @@@ M: Tsahee Zidenberg <tsahee@annapurnala
  S:    Maintained
  F:    arch/arm/mach-alpine/
  
 -ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES
 +ARM/ATMEL AT91RM9200, AT91SAM9 AND SAMA5 SOC SUPPORT
  M:    Nicolas Ferre <nicolas.ferre@atmel.com>
  M:    Alexandre Belloni <alexandre.belloni@free-electrons.com>
  M:    Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
@@@ -1238,13 -1230,6 +1238,13 @@@ ARM/LPC18XX ARCHITECTUR
  M:    Joachim Eastwood <manabian@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 +F:    arch/arm/boot/dts/lpc43*
 +F:    drivers/clk/nxp/clk-lpc18xx*
 +F:    drivers/clocksource/time-lpc32xx.c
 +F:    drivers/i2c/busses/i2c-lpc2k.c
 +F:    drivers/memory/pl172.c
 +F:    drivers/mtd/spi-nor/nxp-spifi.c
 +F:    drivers/rtc/rtc-lpc24xx.c
  N:    lpc18xx
  
  ARM/MAGICIAN MACHINE SUPPORT
@@@ -1459,12 -1444,7 +1459,12 @@@ F:    arch/arm/mach-exynos*
  F:    drivers/*/*s3c2410*
  F:    drivers/*/*/*s3c2410*
  F:    drivers/spi/spi-s3c*
 +F:    drivers/soc/samsung/*
  F:    sound/soc/samsung/*
 +F:    Documentation/arm/Samsung/
 +F:    Documentation/devicetree/bindings/arm/samsung/
 +F:    Documentation/devicetree/bindings/sram/samsung-sram.txt
 +F:    Documentation/devicetree/bindings/power/pd-samsung.txt
  N:    exynos
  
  ARM/SAMSUNG MOBILE MACHINE SUPPORT
@@@ -1499,14 -1479,6 +1499,14 @@@ L:    linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/platform/s5p-tv/
  
 +ARM/SAMSUNG S5P SERIES JPEG CODEC SUPPORT
 +M:    Andrzej Pietrasiewicz <andrzej.p@samsung.com>
 +M:    Jacek Anaszewski <j.anaszewski@samsung.com>
 +L:    linux-arm-kernel@lists.infradead.org
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/platform/s5p-jpeg/
 +
  ARM/SHMOBILE ARM ARCHITECTURE
  M:    Simon Horman <horms@verge.net.au>
  M:    Magnus Damm <magnus.damm@gmail.com>
@@@ -1519,6 -1491,8 +1519,6 @@@ F:      arch/arm/boot/dts/emev2
  F:    arch/arm/boot/dts/r7s*
  F:    arch/arm/boot/dts/r8a*
  F:    arch/arm/boot/dts/sh*
 -F:    arch/arm/configs/bockw_defconfig
 -F:    arch/arm/configs/marzen_defconfig
  F:    arch/arm/configs/shmobile_defconfig
  F:    arch/arm/include/debug/renesas-scif.S
  F:    arch/arm/mach-shmobile/
@@@ -1553,7 -1527,6 +1553,7 @@@ W:      http://www.stlinux.co
  S:    Maintained
  F:    arch/arm/mach-sti/
  F:    arch/arm/boot/dts/sti*
 +F:    drivers/char/hw_random/st-rng.c
  F:    drivers/clocksource/arm_global_timer.c
  F:    drivers/clocksource/clksrc_st_lpc.c
  F:    drivers/i2c/busses/i2c-st.c
@@@ -1633,10 -1606,7 +1633,10 @@@ M:    Masahiro Yamada <yamada.masahiro@soc
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/uniphier*
 +F:    arch/arm/include/asm/hardware/cache-uniphier.h
  F:    arch/arm/mach-uniphier/
 +F:    arch/arm/mm/cache-uniphier.c
 +F:    drivers/i2c/busses/i2c-uniphier*
  F:    drivers/pinctrl/uniphier/
  F:    drivers/tty/serial/8250/8250_uniphier.c
  N:    uniphier
@@@ -1809,14 -1779,6 +1809,14 @@@ S:    Supporte
  F:    Documentation/aoe/
  F:    drivers/block/aoe/
  
 +ATHEROS 71XX/9XXX GPIO DRIVER
 +M:    Alban Bedel <albeu@free.fr>
 +W:    https://github.com/AlbanBedel/linux
 +T:    git git://github.com/AlbanBedel/linux
 +S:    Maintained
 +F:    drivers/gpio/gpio-ath79.c
 +F:    Documentation/devicetree/bindings/gpio/gpio-ath79.txt
 +
  ATHEROS ATH GENERIC UTILITIES
  M:    "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
  L:    linux-wireless@vger.kernel.org
@@@ -2398,27 -2360,19 +2398,27 @@@ L:   linux-scsi@vger.kernel.or
  S:    Supported
  F:    drivers/scsi/bnx2i/
  
 -BROADCOM CYGNUS/IPROC ARM ARCHITECTURE
 +BROADCOM IPROC ARM ARCHITECTURE
  M:    Ray Jui <rjui@broadcom.com>
  M:    Scott Branden <sbranden@broadcom.com>
 +M:    Jon Mason <jonmason@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    bcm-kernel-feedback-list@broadcom.com
  T:    git git://github.com/broadcom/cygnus-linux.git
  S:    Maintained
  N:    iproc
  N:    cygnus
 +N:    nsp
  N:    bcm9113*
  N:    bcm9583*
 -N:    bcm583*
 +N:    bcm9585*
 +N:    bcm9586*
 +N:    bcm988312
  N:    bcm113*
 +N:    bcm583*
 +N:    bcm585*
 +N:    bcm586*
 +N:    bcm88312
  
  BROADCOM BRCMSTB GPIO DRIVER
  M:    Gregory Fong <gregory.0xf0@gmail.com>
@@@ -2776,10 -2730,9 +2776,10 @@@ S:    Supporte
  F:    drivers/net/ethernet/cisco/enic/
  
  CISCO VIC LOW LATENCY NIC DRIVER
 -M:    Upinder Malhi <umalhi@cisco.com>
 +M:    Christian Benvenuti <benve@cisco.com>
 +M:    Dave Goodell <dgoodell@cisco.com>
  S:    Supported
 -F:    drivers/infiniband/hw/usnic
 +F:    drivers/infiniband/hw/usnic/
  
  CIRRUS LOGIC EP93XX ETHERNET DRIVER
  M:    Hartley Sweeten <hsweeten@visionengravers.com>
@@@ -3414,7 -3367,6 +3414,7 @@@ M:      Support Opensource <support.opensour
  W:    http://www.dialog-semiconductor.com/products
  S:    Supported
  F:    Documentation/hwmon/da90??
 +F:    Documentation/devicetree/bindings/sound/da[79]*.txt
  F:    drivers/gpio/gpio-da90??.c
  F:    drivers/hwmon/da90??-hwmon.c
  F:    drivers/iio/adc/da91??-*.c
@@@ -3632,7 -3584,6 +3632,7 @@@ M:      Daniel Vetter <daniel.vetter@intel.c
  M:    Jani Nikula <jani.nikula@linux.intel.com>
  L:    intel-gfx@lists.freedesktop.org
  L:    dri-devel@lists.freedesktop.org
 +W:    https://01.org/linuxgraphics/
  Q:    http://patchwork.freedesktop.org/project/intel-gfx/
  T:    git git://anongit.freedesktop.org/drm-intel
  S:    Supported
@@@ -3640,13 -3591,6 +3640,13 @@@ F:    drivers/gpu/drm/i915
  F:    include/drm/i915*
  F:    include/uapi/drm/i915*
  
 +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/
 +
  DRM DRIVERS FOR EXYNOS
  M:    Inki Dae <inki.dae@samsung.com>
  M:    Joonyoung Shim <jy0922.shim@samsung.com>
@@@ -3675,14 -3619,6 +3675,14 @@@ S:    Maintaine
  F:    drivers/gpu/drm/imx/
  F:    Documentation/devicetree/bindings/drm/imx/
  
 +DRM DRIVERS FOR GMA500 (Poulsbo, Moorestown and derivative chipsets)
 +M:    Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
 +L:    dri-devel@lists.freedesktop.org
 +T:    git git://github.com/patjak/drm-gma500
 +S:    Maintained
 +F:    drivers/gpu/drm/gma500
 +F:    include/drm/gma500*
 +
  DRM DRIVERS FOR NVIDIA TEGRA
  M:    Thierry Reding <thierry.reding@gmail.com>
  M:    Terje Bergström <tbergstrom@nvidia.com>
@@@ -4067,7 -4003,7 +4067,7 @@@ S:      Maintaine
  F:    sound/usb/misc/ua101.c
  
  EXTENSIBLE FIRMWARE INTERFACE (EFI)
 -M:    Matt Fleming <matt.fleming@intel.com>
 +M:    Matt Fleming <matt@codeblueprint.co.uk>
  L:    linux-efi@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git
  S:    Maintained
@@@ -4082,7 -4018,7 +4082,7 @@@ F:      include/linux/efi*.
  EFI VARIABLE FILESYSTEM
  M:    Matthew Garrett <matthew.garrett@nebula.com>
  M:    Jeremy Kerr <jk@ozlabs.org>
 -M:    Matt Fleming <matt.fleming@intel.com>
 +M:    Matt Fleming <matt@codeblueprint.co.uk>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git
  L:    linux-efi@vger.kernel.org
  S:    Maintained
@@@ -4476,14 -4412,6 +4476,14 @@@ 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 UART DRIVER
  M:    Timur Tabi <timur@tabi.org>
  L:    linuxppc-dev@lists.ozlabs.org
@@@ -5161,7 -5089,6 +5161,7 @@@ S:      Maintaine
  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
@@@ -5503,6 -5430,12 +5503,6 @@@ W:     https://01.org/linux-acp
  S:    Supported
  F:    drivers/platform/x86/intel_menlow.c
  
 -INTEL IA32 MICROCODE UPDATE SUPPORT
 -M:    Borislav Petkov <bp@alien8.de>
 -S:    Maintained
 -F:    arch/x86/kernel/cpu/microcode/core*
 -F:    arch/x86/kernel/cpu/microcode/intel*
 -
  INTEL I/OAT DMA DRIVER
  M:    Dave Jiang <dave.jiang@intel.com>
  R:    Dan Williams <dan.j.williams@intel.com>
@@@ -5613,7 -5546,7 +5613,7 @@@ F:      drivers/net/wireless/iwlegacy
  INTEL WIRELESS WIFI LINK (iwlwifi)
  M:    Johannes Berg <johannes.berg@intel.com>
  M:    Emmanuel Grumbach <emmanuel.grumbach@intel.com>
 -M:    Intel Linux Wireless <ilw@linux.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
@@@ -6160,13 -6093,6 +6160,13 @@@ F:    Documentation/auxdisplay/ks010
  F:    drivers/auxdisplay/ks0108.c
  F:    include/linux/ks0108.h
  
 +L3MDEV
 +M:    David Ahern <dsa@cumulusnetworks.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    net/l3mdev
 +F:    include/net/l3mdev.h
 +
  LAPB module
  L:    linux-x25@vger.kernel.org
  S:    Orphan
@@@ -6317,14 -6243,6 +6317,14 @@@ F:    drivers/nvdimm/pmem.
  F:    include/linux/pmem.h
  F:    arch/*/include/asm/pmem.h
  
 +LIGHTNVM PLATFORM SUPPORT
 +M:    Matias Bjorling <mb@lightnvm.io>
 +W:    http://github/OpenChannelSSD
 +S:    Maintained
 +F:    drivers/lightnvm/
 +F:    include/linux/lightnvm.h
 +F:    include/uapi/linux/lightnvm.h
 +
  LINUX FOR IBM pSERIES (RS/6000)
  M:    Paul Mackerras <paulus@au.ibm.com>
  W:    http://www.ibm.com/linux/ltc/projects/ppc
@@@ -6642,13 -6560,6 +6642,13 @@@ M:    Guenter Roeck <linux@roeck-us.net
  S:    Maintained
  F:    drivers/net/dsa/mv88e6352.c
  
 +MARVELL CRYPTO DRIVER
 +M:    Boris Brezillon <boris.brezillon@free-electrons.com>
 +M:    Arnaud Ebalard <arno@natisbad.org>
 +F:    drivers/crypto/marvell/
 +S:    Maintained
 +L:    linux-crypto@vger.kernel.org
 +
  MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
  M:    Mirko Lindner <mlindner@marvell.com>
  M:    Stephen Hemminger <stephen@networkplumber.org>
@@@ -6867,6 -6778,7 +6867,6 @@@ F:      drivers/scsi/megaraid
  
  MELLANOX ETHERNET DRIVER (mlx4_en)
  M:    Amir Vadai <amirv@mellanox.com>
 -M:    Ido Shamay <idos@mellanox.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://www.mellanox.com
@@@ -7059,7 -6971,6 +7059,7 @@@ M:      Alan Ott <alan@signal11.us
  L:    linux-wpan@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ieee802154/mrf24j40.c
 +F:    Documentation/devicetree/bindings/net/ieee802154/mrf24j40.txt
  
  MSI LAPTOP SUPPORT
  M:    "Lee, Chun-Yi" <jlee@suse.com>
@@@ -7132,6 -7043,7 +7132,6 @@@ F:      drivers/media/i2c/mt9v032.
  F:    include/media/mt9v032.h
  
  MULTIFUNCTION DEVICES (MFD)
 -M:    Samuel Ortiz <sameo@linux.intel.com>
  M:    Lee Jones <lee.jones@linaro.org>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git
  S:    Supported
@@@ -7393,6 -7305,7 +7393,6 @@@ S:      Odd Fixe
  F:    drivers/net/
  F:    include/linux/if_*
  F:    include/linux/netdevice.h
 -F:    include/linux/arcdevice.h
  F:    include/linux/etherdevice.h
  F:    include/linux/fcdevice.h
  F:    include/linux/fddidevice.h
@@@ -7485,10 -7398,10 +7485,10 @@@ NOKIA N900 POWER SUPPLY DRIVER
  M:    Pali Rohár <pali.rohar@gmail.com>
  S:    Maintained
  F:    include/linux/power/bq2415x_charger.h
 -F:    include/linux/power/bq27x00_battery.h
 +F:    include/linux/power/bq27xxx_battery.h
  F:    include/linux/power/isp1704_charger.h
  F:    drivers/power/bq2415x_charger.c
 -F:    drivers/power/bq27x00_battery.c
 +F:    drivers/power/bq27xxx_battery.c
  F:    drivers/power/isp1704_charger.c
  F:    drivers/power/rx51_battery.c
  
@@@ -7531,13 -7444,11 +7531,13 @@@ F:   drivers/video/fbdev/riva
  F:    drivers/video/fbdev/nvidia/
  
  NVM EXPRESS DRIVER
 -M:    Matthew Wilcox <willy@linux.intel.com>
 +M:    Keith Busch <keith.busch@intel.com>
 +M:    Jens Axboe <axboe@fb.com>
  L:    linux-nvme@lists.infradead.org
 -T:    git git://git.infradead.org/users/willy/linux-nvme.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
 +W:    https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux-block/
  S:    Supported
 -F:    drivers/block/nvme*
 +F:    drivers/nvme/host/
  F:    include/linux/nvme.h
  
  NVMEM FRAMEWORK
@@@ -8032,14 -7943,6 +8032,14 @@@ F:    include/linux/pci
  F:    arch/x86/pci/
  F:    arch/x86/kernel/quirks.c
  
 +PCI DRIVER FOR ALTERA PCIE IP
 +M:    Ley Foon Tan <lftan@altera.com>
 +L:    rfi@lists.rocketboards.org (moderated for non-subscribers)
 +L:    linux-pci@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/pci/altera-pcie.txt
 +F:    drivers/pci/host/pcie-altera.c
 +
  PCI DRIVER FOR ARM VERSATILE PLATFORM
  M:    Rob Herring <robh@kernel.org>
  L:    linux-pci@vger.kernel.org
@@@ -8141,14 -8044,6 +8141,14 @@@ L:    linux-pci@vger.kernel.or
  S:    Maintained
  F:    drivers/pci/host/*spear*
  
 +PCI MSI DRIVER FOR ALTERA MSI IP
 +M:    Ley Foon Tan <lftan@altera.com>
 +L:    rfi@lists.rocketboards.org (moderated for non-subscribers)
 +L:    linux-pci@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/pci/altera-pcie-msi.txt
 +F:    drivers/pci/host/pcie-altera-msi.c
 +
  PCI MSI DRIVER FOR APPLIEDMICRO XGENE
  M:    Duc Dang <dhdang@apm.com>
  L:    linux-pci@vger.kernel.org
@@@ -8157,13 -8052,6 +8157,13 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/pci/xgene-pci-msi.txt
  F:    drivers/pci/host/pci-xgene-msi.c
  
 +PCIE DRIVER FOR HISILICON
 +M:    Zhou Wang <wangzhou1@hisilicon.com>
 +L:    linux-pci@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/hisilicon-pcie.txt
 +F:    drivers/pci/host/pcie-hisi.c
 +
  PCMCIA SUBSYSTEM
  P:    Linux PCMCIA Team
  L:    linux-pcmcia@lists.infradead.org
@@@ -8270,13 -8158,6 +8270,13 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    drivers/pinctrl/pinctrl-at91.*
  
 +PIN CONTROLLER - ATMEL AT91 PIO4
 +M:    Ludovic Desroches <ludovic.desroches@atmel.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +L:    linux-gpio@vger.kernel.org
 +S:    Supported
 +F:    drivers/pinctrl/pinctrl-at91-pio4.*
 +
  PIN CONTROLLER - INTEL
  M:    Mika Westerberg <mika.westerberg@linux.intel.com>
  M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
@@@ -8380,6 -8261,12 +8380,6 @@@ M:     "Rafael J. Wysocki" <rafael.j.wysock
  S:    Maintained
  F:    drivers/pnp/
  
 -PNXxxxx I2C DRIVER
 -M:    Vitaly Wool <vitalywool@gmail.com>
 -L:    linux-i2c@vger.kernel.org
 -S:    Maintained
 -F:    drivers/i2c/busses/i2c-pnx.c
 -
  PPP PROTOCOL DRIVERS AND COMPRESSORS
  M:    Paul Mackerras <paulus@samba.org>
  L:    linux-ppp@vger.kernel.org
@@@ -8632,16 -8519,6 +8632,16 @@@ L:    netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/qlogic/qlge/
  
 +QLOGIC QL4xxx ETHERNET DRIVER
 +M:    Yuval Mintz <Yuval.Mintz@qlogic.com>
 +M:    Ariel Elior <Ariel.Elior@qlogic.com>
 +M:    everest-linux-l2@qlogic.com
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/ethernet/qlogic/qed/
 +F:    include/linux/qed/
 +F:    drivers/net/ethernet/qlogic/qede/
 +
  QNX4 FILESYSTEM
  M:    Anders Larsen <al@alarsen.net>
  W:    http://www.alarsen.net/linux/qnx4fs/
@@@ -8993,13 -8870,6 +8993,13 @@@ S:    Maintaine
  F:    drivers/net/wireless/rtlwifi/
  F:    drivers/net/wireless/rtlwifi/rtl8192ce/
  
 +RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
 +M:    Jes Sorensen <Jes.Sorensen@redhat.com>
 +L:    linux-wireless@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8723au-mac80211
 +S:    Maintained
 +F:    drivers/net/wireless/realtek/rtl8xxxu/
 +
  S3 SAVAGE FRAMEBUFFER DRIVER
  M:    Antonino Daplas <adaplas@gmail.com>
  L:    linux-fbdev@vger.kernel.org
@@@ -9231,15 -9101,6 +9231,15 @@@ S: Supporte
  F: Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
  F: drivers/net/ethernet/synopsys/dwc_eth_qos.c
  
 +SYNOPSYS DESIGNWARE I2C DRIVER
 +M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
 +M:    Jarkko Nikula <jarkko.nikula@linux.intel.com>
 +M:    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:    Seungwon Jeon <tgih.jun@samsung.com>
  M:    Jaehoon Chung <jh80.chung@samsung.com>
@@@ -9292,16 -9153,6 +9292,16 @@@ W:    http://www.sunplus.co
  S:    Supported
  F:    arch/score/
  
 +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
@@@ -10063,6 -9914,7 +10063,6 @@@ S:    Maintaine
  F:    drivers/staging/lustre
  
  STAGING - NVIDIA COMPLIANT EMBEDDED CONTROLLER INTERFACE (nvec)
 -M:    Julian Andres Klode <jak@jak-linux.org>
  M:    Marc Dietrich <marvin24@gmx.de>
  L:    ac100@lists.launchpad.net (moderated for non-subscribers)
  L:    linux-tegra@vger.kernel.org
@@@ -10217,7 -10069,6 +10217,7 @@@ F:   include/net/switchdev.
  
  SYNOPSYS ARC ARCHITECTURE
  M:    Vineet Gupta <vgupta@synopsys.com>
 +L:    linux-snps-arc@lists.infraded.org
  S:    Supported
  F:    arch/arc/
  F:    Documentation/devicetree/bindings/arc/*
@@@ -10735,6 -10586,7 +10735,7 @@@ F:   drivers/media/pci/tw68
  TPM DEVICE DRIVER
  M:    Peter Huewe <peterhuewe@gmx.de>
  M:    Marcel Selhorst <tpmdd@selhorst.net>
+ M:    Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
  R:    Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
  W:    http://tpmdd.sourceforge.net
  L:    tpmdd-devel@lists.sourceforge.net (moderated for non-subscribers)
@@@ -11219,12 -11071,6 +11220,12 @@@ S: Maintaine
  F:    Documentation/fb/uvesafb.txt
  F:    drivers/video/fbdev/uvesafb.*
  
 +VF610 NAND DRIVER
 +M:    Stefan Agner <stefan@agner.ch>
 +L:    linux-mtd@lists.infradead.org
 +S:    Supported
 +F:    drivers/mtd/nand/vf610_nfc.c
 +
  VFAT/FAT/MSDOS FILESYSTEM
  M:    OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
  S:    Maintained
@@@ -11255,12 -11101,6 +11256,12 @@@ S: Maintaine
  F:    drivers/media/v4l2-core/videobuf2-*
  F:    include/media/videobuf2-*
  
 +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.shah@redhat.com>
  L:    virtualization@lists.linux-foundation.org
@@@ -11426,6 -11266,7 +11427,6 @@@ M:   Shrijeet Mukherjee <shm@cumulusnetwo
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/vrf.c
 -F:    include/net/vrf.h
  F:    Documentation/networking/vrf.txt
  
  VT1211 HARDWARE MONITOR DRIVER
@@@ -11538,15 -11379,21 +11539,15 @@@ W:        http://oops.ghostprotocols.net:81/bl
  S:    Maintained
  F:    drivers/net/wireless/wl3501*
  
 -WM97XX TOUCHSCREEN DRIVERS
 -M:    Mark Brown <broonie@kernel.org>
 -M:    Liam Girdwood <lrg@slimlogic.co.uk>
 -L:    linux-input@vger.kernel.org
 -W:    https://github.com/CirrusLogic/linux-drivers/wiki
 -S:    Supported
 -F:    drivers/input/touchscreen/*wm97*
 -F:    include/linux/wm97xx.h
 -
  WOLFSON MICROELECTRONICS DRIVERS
  L:    patches@opensource.wolfsonmicro.com
  T:    git https://github.com/CirrusLogic/linux-drivers.git
  W:    https://github.com/CirrusLogic/linux-drivers/wiki
  S:    Supported
  F:    Documentation/hwmon/wm83??
 +F:    Documentation/devicetree/bindings/extcon/extcon-arizona.txt
 +F:    Documentation/devicetree/bindings/regulator/arizona-regulator.txt
 +F:    Documentation/devicetree/bindings/mfd/arizona.txt
  F:    arch/arm/mach-s3c64xx/mach-crag6410*
  F:    drivers/clk/clk-wm83*.c
  F:    drivers/extcon/extcon-arizona.c
@@@ -11615,11 -11462,6 +11616,11 @@@ L: linux-edac@vger.kernel.or
  S:    Maintained
  F:    arch/x86/kernel/cpu/mcheck/*
  
 +X86 MICROCODE UPDATE SUPPORT
 +M:    Borislav Petkov <bp@alien8.de>
 +S:    Maintained
 +F:    arch/x86/kernel/cpu/microcode/*
 +
  X86 VDSO
  M:    Andy Lutomirski <luto@amacapital.net>
  L:    linux-kernel@vger.kernel.org
@@@ -11820,7 -11662,6 +11821,7 @@@ F:   drivers/tty/serial/zs.
  ZSMALLOC COMPRESSED SLAB MEMORY ALLOCATOR
  M:    Minchan Kim <minchan@kernel.org>
  M:    Nitin Gupta <ngupta@vflare.org>
 +R:    Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    mm/zsmalloc.c
index 68c3c40501ab058e7d0d1a6c13fc630d0d542c9d,64d42981a8d741e488f0986d144ed7fa1515e74b..2a44b3752471d0b34d19fbe4a66305863dfcafb8
@@@ -194,15 -194,14 +194,15 @@@ int x509_get_sig_params(struct x509_cer
         * digest storage space.
         */
        ret = -ENOMEM;
 -      digest = kzalloc(digest_size + desc_size, GFP_KERNEL);
 +      digest = kzalloc(ALIGN(digest_size, __alignof__(*desc)) + desc_size,
 +                       GFP_KERNEL);
        if (!digest)
                goto error;
  
        cert->sig.digest = digest;
        cert->sig.digest_size = digest_size;
  
 -      desc = digest + digest_size;
 +      desc = PTR_ALIGN(digest + digest_size, __alignof__(*desc));
        desc->tfm = tfm;
        desc->flags = CRYPTO_TFM_REQ_MAY_SLEEP;
  
@@@ -267,7 -266,8 +267,8 @@@ static int x509_validate_trust(struct x
        if (!IS_ERR(key))  {
                if (!use_builtin_keys
                    || test_bit(KEY_FLAG_BUILTIN, &key->flags))
-                       ret = x509_check_signature(key->payload.data, cert);
+                       ret = x509_check_signature(key->payload.data[asym_crypto],
+                                                  cert);
                key_put(key);
        }
        return ret;
@@@ -353,9 -353,9 +354,9 @@@ static int x509_key_preparse(struct key
  
        /* We're pinning the module by being linked against it */
        __module_get(public_key_subtype.owner);
-       prep->type_data[0] = &public_key_subtype;
-       prep->type_data[1] = kids;
-       prep->payload[0] = cert->pub;
+       prep->payload.data[asym_subtype] = &public_key_subtype;
+       prep->payload.data[asym_key_ids] = kids;
+       prep->payload.data[asym_crypto] = cert->pub;
        prep->description = desc;
        prep->quotalen = 100;
  
diff --combined fs/cifs/connect.c
index 4042996ddc7c6f6a7ccc5c389b20c5147751800b,3f2228570d441840b7e6d11c10a3b814a2b60962..ecb0803bdb0e50479f50b0e874a4e87cb064e2d0
@@@ -87,8 -87,6 +87,8 @@@ enum 
        Opt_sign, Opt_seal, Opt_noac,
        Opt_fsc, Opt_mfsymlinks,
        Opt_multiuser, Opt_sloppy, Opt_nosharesock,
 +      Opt_persistent, Opt_nopersistent,
 +      Opt_resilient, Opt_noresilient,
  
        /* Mount options which take numeric value */
        Opt_backupuid, Opt_backupgid, Opt_uid,
@@@ -171,10 -169,6 +171,10 @@@ static const match_table_t cifs_mount_o
        { Opt_multiuser, "multiuser" },
        { Opt_sloppy, "sloppy" },
        { Opt_nosharesock, "nosharesock" },
 +      { Opt_persistent, "persistenthandles"},
 +      { Opt_nopersistent, "nopersistenthandles"},
 +      { Opt_resilient, "resilienthandles"},
 +      { Opt_noresilient, "noresilienthandles"},
  
        { Opt_backupuid, "backupuid=%s" },
        { Opt_backupgid, "backupgid=%s" },
@@@ -1503,33 -1497,6 +1503,33 @@@ cifs_parse_mount_options(const char *mo
                case Opt_nosharesock:
                        vol->nosharesock = true;
                        break;
 +              case Opt_nopersistent:
 +                      vol->nopersistent = true;
 +                      if (vol->persistent) {
 +                              cifs_dbg(VFS,
 +                                "persistenthandles mount options conflict\n");
 +                              goto cifs_parse_mount_err;
 +                      }
 +                      break;
 +              case Opt_persistent:
 +                      vol->persistent = true;
 +                      if ((vol->nopersistent) || (vol->resilient)) {
 +                              cifs_dbg(VFS,
 +                                "persistenthandles mount options conflict\n");
 +                              goto cifs_parse_mount_err;
 +                      }
 +                      break;
 +              case Opt_resilient:
 +                      vol->resilient = true;
 +                      if (vol->persistent) {
 +                              cifs_dbg(VFS,
 +                                "persistenthandles mount options conflict\n");
 +                              goto cifs_parse_mount_err;
 +                      }
 +                      break;
 +              case Opt_noresilient:
 +                      vol->resilient = false; /* already the default */
 +                      break;
  
                /* Numeric Values */
                case Opt_backupuid:
@@@ -2358,13 -2325,14 +2358,14 @@@ static in
  cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
  {
        int rc = 0;
-       char *desc, *delim, *payload;
+       const char *delim, *payload;
+       char *desc;
        ssize_t len;
        struct key *key;
        struct TCP_Server_Info *server = ses->server;
        struct sockaddr_in *sa;
        struct sockaddr_in6 *sa6;
-       struct user_key_payload *upayload;
+       const struct user_key_payload *upayload;
  
        desc = kmalloc(CIFSCREDS_DESC_SIZE, GFP_KERNEL);
        if (!desc)
        }
  
        down_read(&key->sem);
-       upayload = key->payload.data;
+       upayload = user_key_payload(key);
        if (IS_ERR_OR_NULL(upayload)) {
                rc = upayload ? PTR_ERR(upayload) : -EINVAL;
                goto out_key_put;
        }
  
        /* find first : in payload */
-       payload = (char *)upayload->data;
+       payload = upayload->data;
        delim = strnchr(payload, upayload->datalen, ':');
        cifs_dbg(FYI, "payload=%s\n", payload);
        if (!delim) {
@@@ -2687,42 -2655,6 +2688,42 @@@ cifs_get_tcon(struct cifs_ses *ses, str
                cifs_dbg(FYI, "DFS disabled (%d)\n", tcon->Flags);
        }
        tcon->seal = volume_info->seal;
 +      tcon->use_persistent = false;
 +      /* check if SMB2 or later, CIFS does not support persistent handles */
 +      if (volume_info->persistent) {
 +              if (ses->server->vals->protocol_id == 0) {
 +                      cifs_dbg(VFS,
 +                           "SMB3 or later required for persistent handles\n");
 +                      rc = -EOPNOTSUPP;
 +                      goto out_fail;
 +#ifdef CONFIG_CIFS_SMB2
 +              } else if (ses->server->capabilities &
 +                         SMB2_GLOBAL_CAP_PERSISTENT_HANDLES)
 +                      tcon->use_persistent = true;
 +              else /* persistent handles requested but not supported */ {
 +                      cifs_dbg(VFS,
 +                              "Persistent handles not supported on share\n");
 +                      rc = -EOPNOTSUPP;
 +                      goto out_fail;
 +#endif /* CONFIG_CIFS_SMB2 */
 +              }
 +#ifdef CONFIG_CIFS_SMB2
 +      } else if ((tcon->capabilities & SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY)
 +           && (ses->server->capabilities & SMB2_GLOBAL_CAP_PERSISTENT_HANDLES)
 +           && (volume_info->nopersistent == false)) {
 +              cifs_dbg(FYI, "enabling persistent handles\n");
 +              tcon->use_persistent = true;
 +#endif /* CONFIG_CIFS_SMB2 */
 +      } else if (volume_info->resilient) {
 +              if (ses->server->vals->protocol_id == 0) {
 +                      cifs_dbg(VFS,
 +                           "SMB2.1 or later required for resilient handles\n");
 +                      rc = -EOPNOTSUPP;
 +                      goto out_fail;
 +              }
 +              tcon->use_resilient = true;
 +      }
 +
        /*
         * We can have only one retry value for a connection to a share so for
         * resources mounted more than once to the same server share the last
@@@ -3571,15 -3503,6 +3572,15 @@@ try_mount_again
                goto mount_fail_check;
        }
  
 +#ifdef CONFIG_CIFS_SMB2
 +      if ((volume_info->persistent == true) && ((ses->server->capabilities &
 +              SMB2_GLOBAL_CAP_PERSISTENT_HANDLES) == 0)) {
 +              cifs_dbg(VFS, "persistent handles not supported by server\n");
 +              rc = -EOPNOTSUPP;
 +              goto mount_fail_check;
 +      }
 +#endif /* CONFIG_CIFS_SMB2*/
 +
        /* search for existing tcon to this server share */
        tcon = cifs_get_tcon(ses, volume_info);
        if (IS_ERR(tcon)) {
diff --combined fs/cifs/smb2pdu.c
index 2520ed5ded48b7bb20d0187c8d56dc6723cb6fef,52d14c9cf0522e3bf3afc1627cf6a2e57a378781..767555518d40ccd357b6f5540f2758bb8be6e654
@@@ -660,7 -660,7 +660,7 @@@ ssetup_ntlmssp_authenticate
                        goto ssetup_exit;
                }
  
-               msg = spnego_key->payload.data;
+               msg = spnego_key->payload.data[0];
                /*
                 * check version field to make sure that cifs.upcall is
                 * sending us a response in an expected form
@@@ -922,7 -922,7 +922,7 @@@ SMB2_tcon(const unsigned int xid, struc
        if (tcon && tcon->bad_network_name)
                return -ENOENT;
  
 -      if ((tcon->seal) &&
 +      if ((tcon && tcon->seal) &&
            ((ses->server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION) == 0)) {
                cifs_dbg(VFS, "encryption requested but no server support");
                return -EOPNOTSUPP;
@@@ -1151,130 -1151,13 +1151,130 @@@ add_lease_context(struct TCP_Server_Inf
        return 0;
  }
  
 +static struct create_durable_v2 *
 +create_durable_v2_buf(struct cifs_fid *pfid)
 +{
 +      struct create_durable_v2 *buf;
 +
 +      buf = kzalloc(sizeof(struct create_durable_v2), GFP_KERNEL);
 +      if (!buf)
 +              return NULL;
 +
 +      buf->ccontext.DataOffset = cpu_to_le16(offsetof
 +                                      (struct create_durable_v2, dcontext));
 +      buf->ccontext.DataLength = cpu_to_le32(sizeof(struct durable_context_v2));
 +      buf->ccontext.NameOffset = cpu_to_le16(offsetof
 +                              (struct create_durable_v2, Name));
 +      buf->ccontext.NameLength = cpu_to_le16(4);
 +
 +      buf->dcontext.Timeout = 0; /* Should this be configurable by workload */
 +      buf->dcontext.Flags = cpu_to_le32(SMB2_DHANDLE_FLAG_PERSISTENT);
 +      get_random_bytes(buf->dcontext.CreateGuid, 16);
 +      memcpy(pfid->create_guid, buf->dcontext.CreateGuid, 16);
 +
 +      /* SMB2_CREATE_DURABLE_HANDLE_REQUEST is "DH2Q" */
 +      buf->Name[0] = 'D';
 +      buf->Name[1] = 'H';
 +      buf->Name[2] = '2';
 +      buf->Name[3] = 'Q';
 +      return buf;
 +}
 +
 +static struct create_durable_handle_reconnect_v2 *
 +create_reconnect_durable_v2_buf(struct cifs_fid *fid)
 +{
 +      struct create_durable_handle_reconnect_v2 *buf;
 +
 +      buf = kzalloc(sizeof(struct create_durable_handle_reconnect_v2),
 +                      GFP_KERNEL);
 +      if (!buf)
 +              return NULL;
 +
 +      buf->ccontext.DataOffset =
 +              cpu_to_le16(offsetof(struct create_durable_handle_reconnect_v2,
 +                                   dcontext));
 +      buf->ccontext.DataLength =
 +              cpu_to_le32(sizeof(struct durable_reconnect_context_v2));
 +      buf->ccontext.NameOffset =
 +              cpu_to_le16(offsetof(struct create_durable_handle_reconnect_v2,
 +                          Name));
 +      buf->ccontext.NameLength = cpu_to_le16(4);
 +
 +      buf->dcontext.Fid.PersistentFileId = fid->persistent_fid;
 +      buf->dcontext.Fid.VolatileFileId = fid->volatile_fid;
 +      buf->dcontext.Flags = cpu_to_le32(SMB2_DHANDLE_FLAG_PERSISTENT);
 +      memcpy(buf->dcontext.CreateGuid, fid->create_guid, 16);
 +
 +      /* SMB2_CREATE_DURABLE_HANDLE_RECONNECT_V2 is "DH2C" */
 +      buf->Name[0] = 'D';
 +      buf->Name[1] = 'H';
 +      buf->Name[2] = '2';
 +      buf->Name[3] = 'C';
 +      return buf;
 +}
 +
  static int
 -add_durable_context(struct kvec *iov, unsigned int *num_iovec,
 +add_durable_v2_context(struct kvec *iov, unsigned int *num_iovec,
 +                  struct cifs_open_parms *oparms)
 +{
 +      struct smb2_create_req *req = iov[0].iov_base;
 +      unsigned int num = *num_iovec;
 +
 +      iov[num].iov_base = create_durable_v2_buf(oparms->fid);
 +      if (iov[num].iov_base == NULL)
 +              return -ENOMEM;
 +      iov[num].iov_len = sizeof(struct create_durable_v2);
 +      if (!req->CreateContextsOffset)
 +              req->CreateContextsOffset =
 +                      cpu_to_le32(sizeof(struct smb2_create_req) - 4 +
 +                                                              iov[1].iov_len);
 +      le32_add_cpu(&req->CreateContextsLength, sizeof(struct create_durable_v2));
 +      inc_rfc1001_len(&req->hdr, sizeof(struct create_durable_v2));
 +      *num_iovec = num + 1;
 +      return 0;
 +}
 +
 +static int
 +add_durable_reconnect_v2_context(struct kvec *iov, unsigned int *num_iovec,
                    struct cifs_open_parms *oparms)
  {
        struct smb2_create_req *req = iov[0].iov_base;
        unsigned int num = *num_iovec;
  
 +      /* indicate that we don't need to relock the file */
 +      oparms->reconnect = false;
 +
 +      iov[num].iov_base = create_reconnect_durable_v2_buf(oparms->fid);
 +      if (iov[num].iov_base == NULL)
 +              return -ENOMEM;
 +      iov[num].iov_len = sizeof(struct create_durable_handle_reconnect_v2);
 +      if (!req->CreateContextsOffset)
 +              req->CreateContextsOffset =
 +                      cpu_to_le32(sizeof(struct smb2_create_req) - 4 +
 +                                                              iov[1].iov_len);
 +      le32_add_cpu(&req->CreateContextsLength,
 +                      sizeof(struct create_durable_handle_reconnect_v2));
 +      inc_rfc1001_len(&req->hdr,
 +                      sizeof(struct create_durable_handle_reconnect_v2));
 +      *num_iovec = num + 1;
 +      return 0;
 +}
 +
 +static int
 +add_durable_context(struct kvec *iov, unsigned int *num_iovec,
 +                  struct cifs_open_parms *oparms, bool use_persistent)
 +{
 +      struct smb2_create_req *req = iov[0].iov_base;
 +      unsigned int num = *num_iovec;
 +
 +      if (use_persistent) {
 +              if (oparms->reconnect)
 +                      return add_durable_reconnect_v2_context(iov, num_iovec,
 +                                                              oparms);
 +              else
 +                      return add_durable_v2_context(iov, num_iovec, oparms);
 +      }
 +
        if (oparms->reconnect) {
                iov[num].iov_base = create_reconnect_durable_buf(oparms->fid);
                /* indicate that we don't need to relock the file */
@@@ -1392,9 -1275,7 +1392,9 @@@ SMB2_open(const unsigned int xid, struc
                        ccontext->Next =
                                cpu_to_le32(server->vals->create_lease_size);
                }
 -              rc = add_durable_context(iov, &num_iovecs, oparms);
 +
 +              rc = add_durable_context(iov, &num_iovecs, oparms,
 +                                      tcon->use_persistent);
                if (rc) {
                        cifs_small_buf_release(req);
                        kfree(copy_path);
diff --combined fs/ext4/crypto_key.c
index f9270ec2a1325cce3ae87ab69dc36481fef2ca5c,5c52c79dea4625c4a73d7d6195da9c1e39d6f02b..c5882b36e5582d0005582d0fe3ac86cab70d9c9c
@@@ -71,6 -71,7 +71,6 @@@ static int ext4_derive_key_aes(char der
                                     EXT4_AES_256_XTS_KEY_SIZE, NULL);
        res = crypto_ablkcipher_encrypt(req);
        if (res == -EINPROGRESS || res == -EBUSY) {
 -              BUG_ON(req->base.data != &ecr);
                wait_for_completion(&ecr.completion);
                res = ecr.res;
        }
@@@ -120,7 -121,7 +120,7 @@@ int _ext4_get_encryption_info(struct in
        struct key *keyring_key = NULL;
        struct ext4_encryption_key *master_key;
        struct ext4_encryption_context ctx;
-       struct user_key_payload *ukp;
+       const struct user_key_payload *ukp;
        struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
        struct crypto_ablkcipher *ctfm;
        const char *cipher_str;
@@@ -207,13 -208,8 +207,13 @@@ retry
                goto out;
        }
        crypt_info->ci_keyring_key = keyring_key;
 -      BUG_ON(keyring_key->type != &key_type_logon);
 +      if (keyring_key->type != &key_type_logon) {
 +              printk_once(KERN_WARNING
 +                          "ext4: key type must be logon\n");
 +              res = -ENOKEY;
 +              goto out;
 +      }
-       ukp = ((struct user_key_payload *)keyring_key->payload.data);
+       ukp = user_key_payload(keyring_key);
        if (ukp->datalen != sizeof(struct ext4_encryption_key)) {
                res = -EINVAL;
                goto out;
        master_key = (struct ext4_encryption_key *)ukp->data;
        BUILD_BUG_ON(EXT4_AES_128_ECB_KEY_SIZE !=
                     EXT4_KEY_DERIVATION_NONCE_SIZE);
 -      BUG_ON(master_key->size != EXT4_AES_256_XTS_KEY_SIZE);
 +      if (master_key->size != EXT4_AES_256_XTS_KEY_SIZE) {
 +              printk_once(KERN_WARNING
 +                          "ext4: key size incorrect: %d\n",
 +                          master_key->size);
 +              res = -ENOKEY;
 +              goto out;
 +      }
        res = ext4_derive_key_aes(ctx.nonce, master_key->raw,
                                  raw_key);
        if (res)
index 0d625312427831b63ed18784719cd0b424f03a41,95d5cfc172c624a6c2ffec7f8d77a7832bca2173..c7a117c9a8f3030d66afc6cbf5767ce5069c813b
@@@ -271,7 -271,7 +271,7 @@@ static void construct_get_dest_keyring(
                        if (cred->request_key_auth) {
                                authkey = cred->request_key_auth;
                                down_read(&authkey->sem);
-                               rka = authkey->payload.data;
+                               rka = authkey->payload.data[0];
                                if (!test_bit(KEY_FLAG_REVOKED,
                                              &authkey->flags))
                                        dest_keyring =
@@@ -440,9 -440,6 +440,9 @@@ static struct key *construct_key_and_li
  
        kenter("");
  
 +      if (ctx->index_key.type == &key_type_keyring)
 +              return ERR_PTR(-EPERM);
 +      
        user = key_user_lookup(current_fsuid());
        if (!user)
                return ERR_PTR(-ENOMEM);
@@@ -596,7 -593,7 +596,7 @@@ int wait_for_key_construction(struct ke
                return -ERESTARTSYS;
        if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) {
                smp_rmb();
-               return key->type_data.reject_error;
+               return key->reject_error;
        }
        return key_validate(key);
  }
diff --combined security/selinux/hooks.c
index 26f4039d54b8f6bd8dd0aba99837835ba13c871b,3053992250109bc7fcf7a3e7fc9d161fdc7dea6b..9e591e5989bef8db6369d2afb4354b0a1e96efa4
@@@ -126,6 -126,7 +126,7 @@@ int selinux_enabled = 1
  #endif
  
  static struct kmem_cache *sel_inode_cache;
+ static struct kmem_cache *file_security_cache;
  
  /**
   * selinux_secmark_enabled - Check to see if SECMARK is currently enabled
@@@ -287,7 -288,7 +288,7 @@@ static int file_alloc_security(struct f
        struct file_security_struct *fsec;
        u32 sid = current_sid();
  
-       fsec = kzalloc(sizeof(struct file_security_struct), GFP_KERNEL);
+       fsec = kmem_cache_zalloc(file_security_cache, GFP_KERNEL);
        if (!fsec)
                return -ENOMEM;
  
@@@ -302,7 -303,7 +303,7 @@@ static void file_free_security(struct f
  {
        struct file_security_struct *fsec = file->f_security;
        file->f_security = NULL;
-       kfree(fsec);
+       kmem_cache_free(file_security_cache, fsec);
  }
  
  static int superblock_alloc_security(struct super_block *sb)
@@@ -674,10 -675,9 +675,9 @@@ static int selinux_set_mnt_opts(struct 
  
                if (flags[i] == SBLABEL_MNT)
                        continue;
-               rc = security_context_to_sid(mount_options[i],
-                                            strlen(mount_options[i]), &sid, GFP_KERNEL);
+               rc = security_context_str_to_sid(mount_options[i], &sid, GFP_KERNEL);
                if (rc) {
-                       printk(KERN_WARNING "SELinux: security_context_to_sid"
+                       printk(KERN_WARNING "SELinux: security_context_str_to_sid"
                               "(%s) failed for (dev %s, type %s) errno=%d\n",
                               mount_options[i], sb->s_id, name, rc);
                        goto out;
@@@ -2617,15 -2617,12 +2617,12 @@@ static int selinux_sb_remount(struct su
  
        for (i = 0; i < opts.num_mnt_opts; i++) {
                u32 sid;
-               size_t len;
  
                if (flags[i] == SBLABEL_MNT)
                        continue;
-               len = strlen(mount_options[i]);
-               rc = security_context_to_sid(mount_options[i], len, &sid,
-                                            GFP_KERNEL);
+               rc = security_context_str_to_sid(mount_options[i], &sid, GFP_KERNEL);
                if (rc) {
-                       printk(KERN_WARNING "SELinux: security_context_to_sid"
+                       printk(KERN_WARNING "SELinux: security_context_str_to_sid"
                               "(%s) failed for (dev %s, type %s) errno=%d\n",
                               mount_options[i], sb->s_id, sb->s_type->name, rc);
                        goto out_free_opts;
@@@ -2946,7 -2943,8 +2943,8 @@@ static int selinux_inode_setattr(struc
                        ATTR_ATIME_SET | ATTR_MTIME_SET | ATTR_TIMES_SET))
                return dentry_has_perm(cred, dentry, FILE__SETATTR);
  
-       if (selinux_policycap_openperm && (ia_valid & ATTR_SIZE))
+       if (selinux_policycap_openperm && (ia_valid & ATTR_SIZE)
+                       && !(ia_valid & ATTR_FILE))
                av |= FILE__OPEN;
  
        return dentry_has_perm(cred, dentry, av);
@@@ -3166,7 -3164,7 +3164,7 @@@ static int selinux_inode_setsecurity(st
        if (!value || !size)
                return -EACCES;
  
-       rc = security_context_to_sid((void *)value, size, &newsid, GFP_KERNEL);
+       rc = security_context_to_sid(value, size, &newsid, GFP_KERNEL);
        if (rc)
                return rc;
  
@@@ -3238,7 -3236,7 +3236,7 @@@ static void selinux_file_free_security(
   * Check whether a task has the ioctl permission and cmd
   * operation to an inode.
   */
- int ioctl_has_perm(const struct cred *cred, struct file *file,
static int ioctl_has_perm(const struct cred *cred, struct file *file,
                u32 requested, u16 cmd)
  {
        struct common_audit_data ad;
@@@ -4866,7 -4864,7 +4864,7 @@@ static unsigned int selinux_ip_forward(
        return NF_ACCEPT;
  }
  
 -static unsigned int selinux_ipv4_forward(const struct nf_hook_ops *ops,
 +static unsigned int selinux_ipv4_forward(void *priv,
                                         struct sk_buff *skb,
                                         const struct nf_hook_state *state)
  {
  }
  
  #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 -static unsigned int selinux_ipv6_forward(const struct nf_hook_ops *ops,
 +static unsigned int selinux_ipv6_forward(void *priv,
                                         struct sk_buff *skb,
                                         const struct nf_hook_state *state)
  {
@@@ -4898,7 -4896,7 +4896,7 @@@ static unsigned int selinux_ip_output(s
        if (sk) {
                struct sk_security_struct *sksec;
  
 -              if (sk->sk_state == TCP_LISTEN)
 +              if (sk_listener(sk))
                        /* if the socket is the listening state then this
                         * packet is a SYN-ACK packet which means it needs to
                         * be labeled based on the connection/request_sock and
        return NF_ACCEPT;
  }
  
 -static unsigned int selinux_ipv4_output(const struct nf_hook_ops *ops,
 +static unsigned int selinux_ipv4_output(void *priv,
                                        struct sk_buff *skb,
                                        const struct nf_hook_state *state)
  {
@@@ -5005,7 -5003,7 +5003,7 @@@ static unsigned int selinux_ip_postrout
         *       unfortunately, this means more work, but it is only once per
         *       connection. */
        if (skb_dst(skb) != NULL && skb_dst(skb)->xfrm != NULL &&
 -          !(sk != NULL && sk->sk_state == TCP_LISTEN))
 +          !(sk && sk_listener(sk)))
                return NF_ACCEPT;
  #endif
  
                        secmark_perm = PACKET__SEND;
                        peer_sid = SECINITSID_KERNEL;
                }
 -      } else if (sk->sk_state == TCP_LISTEN) {
 +      } else if (sk_listener(sk)) {
                /* Locally generated packet but the associated socket is in the
                 * listening state which means this is a SYN-ACK packet.  In
                 * this particular case the correct security label is assigned
                 * selinux_inet_conn_request().  See also selinux_ip_output()
                 * for similar problems. */
                u32 skb_sid;
 -              struct sk_security_struct *sksec = sk->sk_security;
 +              struct sk_security_struct *sksec;
 +
 +              if (sk->sk_state == TCP_NEW_SYN_RECV)
 +                      sk = inet_reqsk(sk)->rsk_listener;
 +              sksec = sk->sk_security;
                if (selinux_skb_peerlbl_sid(skb, family, &skb_sid))
                        return NF_DROP;
                /* At this point, if the returned skb peerlbl is SECSID_NULL
        return NF_ACCEPT;
  }
  
 -static unsigned int selinux_ipv4_postroute(const struct nf_hook_ops *ops,
 +static unsigned int selinux_ipv4_postroute(void *priv,
                                           struct sk_buff *skb,
                                           const struct nf_hook_state *state)
  {
  }
  
  #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 -static unsigned int selinux_ipv6_postroute(const struct nf_hook_ops *ops,
 +static unsigned int selinux_ipv6_postroute(void *priv,
                                           struct sk_buff *skb,
                                           const struct nf_hook_state *state)
  {
@@@ -6093,6 -6087,9 +6091,9 @@@ static __init int selinux_init(void
        sel_inode_cache = kmem_cache_create("selinux_inode_security",
                                            sizeof(struct inode_security_struct),
                                            0, SLAB_PANIC, NULL);
+       file_security_cache = kmem_cache_create("selinux_file_security",
+                                           sizeof(struct file_security_struct),
+                                           0, SLAB_PANIC, NULL);
        avc_init();
  
        security_add_hooks(selinux_hooks, ARRAY_SIZE(selinux_hooks));
@@@ -6131,18 -6128,21 +6132,18 @@@ security_initcall(selinux_init)
  static struct nf_hook_ops selinux_nf_ops[] = {
        {
                .hook =         selinux_ipv4_postroute,
 -              .owner =        THIS_MODULE,
                .pf =           NFPROTO_IPV4,
                .hooknum =      NF_INET_POST_ROUTING,
                .priority =     NF_IP_PRI_SELINUX_LAST,
        },
        {
                .hook =         selinux_ipv4_forward,
 -              .owner =        THIS_MODULE,
                .pf =           NFPROTO_IPV4,
                .hooknum =      NF_INET_FORWARD,
                .priority =     NF_IP_PRI_SELINUX_FIRST,
        },
        {
                .hook =         selinux_ipv4_output,
 -              .owner =        THIS_MODULE,
                .pf =           NFPROTO_IPV4,
                .hooknum =      NF_INET_LOCAL_OUT,
                .priority =     NF_IP_PRI_SELINUX_FIRST,
  #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
        {
                .hook =         selinux_ipv6_postroute,
 -              .owner =        THIS_MODULE,
                .pf =           NFPROTO_IPV6,
                .hooknum =      NF_INET_POST_ROUTING,
                .priority =     NF_IP6_PRI_SELINUX_LAST,
        },
        {
                .hook =         selinux_ipv6_forward,
 -              .owner =        THIS_MODULE,
                .pf =           NFPROTO_IPV6,
                .hooknum =      NF_INET_FORWARD,
                .priority =     NF_IP6_PRI_SELINUX_FIRST,