]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/commitdiff
kernel: Update to version 4.1.3
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 2 Aug 2015 21:02:47 +0000 (22:02 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 2 Aug 2015 21:02:47 +0000 (22:02 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 files changed:
kernel/config-arm-generic
kernel/config-arm32-generic
kernel/config-arm64-generic
kernel/config-armv5tel-default
kernel/config-armv7hl-default
kernel/config-armv7hl-lpae
kernel/config-generic
kernel/config-i686-default
kernel/config-i686-legacy
kernel/config-x86-generic
kernel/config-x86_64-default
kernel/kernel.nm
kernel/patches/grsecurity-3.1-4.1.3-201507261932.patch [moved from kernel/patches/grsecurity-3.1-4.0.4-201505272113.patch with 91% similarity]
kernel/patches/linux-4.0-arm-exynos-thumb2-fix-build.patch [deleted file]

index c73a0663d7e3632a24067c940c9e9d19db407977..b9b348e5bf30e1f7863621e7e75756d1fe5b7569 100644 (file)
@@ -1,9 +1,11 @@
 CONFIG_SWIOTLB=y
 CONFIG_IOMMU_HELPER=y
+CONFIG_PGTABLE_LEVELS=2
 
 #
 # IRQ subsystem
 #
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_HANDLE_DOMAIN_IRQ=y
 
@@ -61,6 +63,11 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
 CONFIG_PM_OPP=y
 CONFIG_CPU_PM=y
 
+#
+# ARM CPU Idle Drivers
+#
+# CONFIG_ARM_CPUIDLE is not set
+
 #
 # CPU Frequency scaling
 #
@@ -103,6 +110,9 @@ CONFIG_CMA_ALIGNMENT=8
 #
 # Bus devices
 #
+CONFIG_ARM_CCI=y
+CONFIG_ARM_CCI400_COMMON=y
+CONFIG_ARM_CCI400_PMU=y
 # CONFIG_ARM_CCN is not set
 CONFIG_VEXPRESS_CONFIG=y
 CONFIG_DTC=y
@@ -124,6 +134,10 @@ CONFIG_OF_PCI_IRQ=y
 CONFIG_OF_RESERVED_MEM=y
 # CONFIG_OF_OVERLAY is not set
 # CONFIG_PARPORT is not set
+
+#
+# Protocols
+#
 # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
 # CONFIG_BLK_CPQ_CISS_DA is not set
 # CONFIG_BLK_DEV_DAC960 is not set
@@ -146,10 +160,7 @@ CONFIG_VEXPRESS_SYSCFG=y
 # SCSI Transports
 #
 CONFIG_AIC79XX_RESET_DELAY_MS=5000
-CONFIG_AIC79XX_DEBUG_ENABLE=y
 CONFIG_AIC79XX_REG_PRETTY_PRINT=y
-CONFIG_AIC94XX_DEBUG=y
-CONFIG_SCSI_MVSAS_DEBUG=y
 # CONFIG_SCSI_MVSAS_TASKLET is not set
 # CONFIG_MEGARAID_NEWGEN is not set
 
@@ -196,7 +207,6 @@ CONFIG_SMC91X=m
 CONFIG_MDIO_BUS_MUX=m
 CONFIG_MDIO_BUS_MUX_GPIO=m
 CONFIG_MDIO_BUS_MUX_MMIOREG=m
-# CONFIG_ATH5K_DEBUG is not set
 CONFIG_WIL6210_TRACING=y
 # CONFIG_IPW2100_MONITOR is not set
 # CONFIG_IPW2200_MONITOR is not set
@@ -210,6 +220,7 @@ CONFIG_WIL6210_TRACING=y
 CONFIG_KEYBOARD_OMAP4=m
 # CONFIG_KEYBOARD_TC3589X is not set
 # CONFIG_KEYBOARD_CAP11XX is not set
+CONFIG_KEYBOARD_BCM=m
 CONFIG_INPUT_MAX77693_HAPTIC=m
 # CONFIG_INPUT_MAX8997_HAPTIC is not set
 # CONFIG_INPUT_GPIO_BEEPER is not set
@@ -271,26 +282,27 @@ CONFIG_OF_GPIO=y
 CONFIG_GPIO_GENERIC=y
 
 #
-# Memory mapped GPIO drivers:
+# Memory mapped GPIO drivers
 #
 CONFIG_GPIO_74XX_MMIO=m
+CONFIG_GPIO_ALTERA=m
 CONFIG_GPIO_GENERIC_PLATFORM=y
-# CONFIG_GPIO_SYSCON is not set
 # CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_SYSCON is not set
 
 #
-# I2C GPIO expanders:
+# I2C GPIO expanders
 #
-# CONFIG_GPIO_STMPE is not set
 CONFIG_GPIO_ADNP=m
 
 #
-# SPI GPIO expanders:
+# MFD GPIO expanders
 #
-# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_STMPE is not set
+# CONFIG_GPIO_TC3589X is not set
 
 #
-# USB GPIO expanders:
+# USB GPIO expanders
 #
 # CONFIG_MAX8925_POWER is not set
 # CONFIG_WM831X_BACKUP is not set
@@ -310,12 +322,17 @@ CONFIG_POWER_RESET_GPIO_RESTART=y
 CONFIG_POWER_RESET_LTC2952=y
 CONFIG_POWER_RESET_VEXPRESS=y
 CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
 
 #
 # Native drivers
 #
 CONFIG_SENSORS_PWM_FAN=m
 CONFIG_SENSORS_VEXPRESS=m
+
+#
+# ACPI drivers
+#
 CONFIG_THERMAL_OF=y
 # CONFIG_CPU_THERMAL is not set
 CONFIG_CLOCK_THERMAL=y
@@ -346,6 +363,7 @@ CONFIG_MFD_STMPE=y
 # STMicroelectronics STMPE Interface Drivers
 #
 CONFIG_STMPE_I2C=y
+CONFIG_MFD_TC3589X=y
 CONFIG_MFD_VEXPRESS_SYSREG=y
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
 # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
@@ -391,6 +409,7 @@ CONFIG_DVB_TTUSB_DEC=y
 # CONFIG_DVB_PT1 is not set
 # CONFIG_MANTIS_CORE is not set
 # CONFIG_DVB_NGENE is not set
+# CONFIG_VIDEO_XILINX is not set
 
 #
 # DVB-S (satellite) frontends
@@ -419,6 +438,7 @@ CONFIG_DVB_LNBP21=y
 # I2C encoder or helper chips
 #
 CONFIG_DRM_PTN3460=m
+CONFIG_DRM_PS8622=m
 # CONFIG_DRM_RADEON is not set
 # CONFIG_DRM_NOUVEAU is not set
 
@@ -460,6 +480,7 @@ CONFIG_SND_SOC_FSL_SSI=m
 CONFIG_SND_SOC_FSL_SPDIF=m
 CONFIG_SND_SOC_FSL_ESAI=m
 CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_SOC_QCOM=m
 CONFIG_SND_SOC_I2C_AND_SPI=m
 
 #
@@ -519,16 +540,23 @@ CONFIG_SND_SOC_WM8750=m
 CONFIG_SND_SOC_WM8753=m
 CONFIG_SND_SOC_WM8776=m
 CONFIG_SND_SOC_WM8804=m
+CONFIG_SND_SOC_WM8804_I2C=m
 CONFIG_SND_SOC_WM8903=m
 CONFIG_SND_SOC_WM8962=m
 CONFIG_SND_SOC_WM8978=m
 CONFIG_SND_SOC_TPA6130A2=m
 CONFIG_SND_SIMPLE_CARD=m
 
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+CONFIG_USB_CHIPIDEA_OF=m
+
 #
 # USB Physical Layer drivers
 #
 CONFIG_USB_ULPI=y
+CONFIG_USB_ULPI_VIEWPORT=y
 
 #
 # MMC/SD/SDIO Host Controller Drivers
@@ -570,7 +598,6 @@ CONFIG_RTC_DRV_SNVS=m
 #
 # CONFIG_DW_DMAC is not set
 CONFIG_FSL_EDMA=m
-CONFIG_DMA_VIRTUAL_CHANNELS=m
 CONFIG_DMA_OF=y
 
 #
@@ -590,24 +617,13 @@ CONFIG_COMMON_CLK_MAX_GEN=y
 CONFIG_COMMON_CLK_MAX77802=m
 CONFIG_COMMON_CLK_RK808=m
 CONFIG_COMMON_CLK_SI570=m
-CONFIG_COMMON_CLK_QCOM=m
-CONFIG_APQ_GCC_8084=m
-CONFIG_APQ_MMCC_8084=m
-CONFIG_IPQ_GCC_806X=m
-CONFIG_IPQ_LCC_806X=m
-CONFIG_MSM_GCC_8660=m
-CONFIG_MSM_GCC_8960=m
-CONFIG_MSM_LCC_8960=m
-CONFIG_MSM_MMCC_8960=m
-CONFIG_MSM_GCC_8974=m
-CONFIG_MSM_MMCC_8974=m
+CONFIG_COMMON_CLK_PWM=m
 
 #
 # Clock Source drivers
 #
 CONFIG_CLKSRC_OF=y
 CONFIG_CLKSRC_MMIO=y
-CONFIG_CLKSRC_VERSATILE=y
 
 #
 # Analog to digital converters
@@ -626,6 +642,11 @@ CONFIG_PWM=y
 CONFIG_PWM_SYSFS=y
 CONFIG_IRQCHIP=y
 
+#
+# Firmware Drivers
+#
+# CONFIG_FIRMWARE_MEMMAP is not set
+
 #
 # RCU Debugging
 #
@@ -636,6 +657,7 @@ CONFIG_IRQCHIP=y
 #
 # CONFIG_DEBUG_SET_MODULE_RONX is not set
 CONFIG_DEBUG_RODATA=y
+# CONFIG_CORESIGHT is not set
 
 #
 # Logging Options
index b8b88c394e0ea018cd2ff65261fe71912333435a..bce2c57822344b4d7ac25038ad17f1c644b48502 100644 (file)
@@ -21,14 +21,12 @@ CONFIG_KERNEL_XZ=y
 #
 # IRQ subsystem
 #
-CONFIG_GENERIC_IRQ_CHIP=y
 CONFIG_IRQ_FORCED_THREADING=y
 
 #
 # RCU Subsystem
 #
 CONFIG_CONTEXT_TRACKING_FORCE=y
-CONFIG_UID16=y
 
 #
 # Kernel Performance Events And Counters
@@ -38,7 +36,6 @@ CONFIG_ARCH_USE_BUILTIN_BSWAP=y
 CONFIG_GENERIC_IDLE_POLL_SETUP=y
 CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
 CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_OLD_SIGACTION=y
 
 #
@@ -52,7 +49,6 @@ CONFIG_LBDAF=y
 CONFIG_ARCH_MULTIPLATFORM=y
 # CONFIG_ARCH_REALVIEW is not set
 # CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_AT91 is not set
 # CONFIG_ARCH_CLPS711X is not set
 # CONFIG_ARCH_GEMINI is not set
 # CONFIG_ARCH_EBSA110 is not set
@@ -71,7 +67,6 @@ CONFIG_ARCH_MULTIPLATFORM=y
 # CONFIG_ARCH_W90X900 is not set
 # CONFIG_ARCH_LPC32XX is not set
 # CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
 # CONFIG_ARCH_SHMOBILE_LEGACY is not set
 # CONFIG_ARCH_RPC is not set
 # CONFIG_ARCH_SA1100 is not set
@@ -84,12 +79,12 @@ CONFIG_ARCH_MULTIPLATFORM=y
 # CPU Core family selection
 #
 # CONFIG_ARCH_MULTI_V6 is not set
+# CONFIG_ARCH_AT91 is not set
 
 #
 # Hisilicon platform type
 #
 CONFIG_ARCH_MXC=y
-# CONFIG_MXC_DEBUG_BOARD is not set
 
 #
 # OMAP Legacy Platform Data Board Type
@@ -108,7 +103,6 @@ CONFIG_CPU_CP15_MMU=y
 # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
 CONFIG_ARM_THUMB=y
 # CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
 CONFIG_KUSER_HELPERS=y
 CONFIG_OUTER_CACHE=y
 CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
@@ -121,6 +115,7 @@ CONFIG_MULTI_IRQ_HANDLER=y
 CONFIG_PCIE_DW=y
 CONFIG_PCI_HOST_GENERIC=y
 CONFIG_PCI_LAYERSCAPE=y
+CONFIG_PCIE_IPROC=m
 # CONFIG_PCCARD is not set
 
 #
@@ -159,6 +154,7 @@ CONFIG_AUTO_ZRELADDR=y
 # CPU frequency scaling drivers
 #
 CONFIG_ARM_IMX6Q_CPUFREQ=m
+CONFIG_QORIQ_CPUFREQ=m
 
 #
 # At least one emulation must be selected
@@ -213,7 +209,6 @@ CONFIG_PATA_IMX=m
 #
 # Distributed Switch Architecture drivers
 #
-CONFIG_NET_CADENCE=y
 CONFIG_NET_VENDOR_CIRRUS=y
 CONFIG_CS89x0=m
 CONFIG_CS89x0_PLATFORM=y
@@ -224,6 +219,8 @@ CONFIG_FTMAC100=m
 CONFIG_FTGMAC100=m
 CONFIG_NET_VENDOR_FREESCALE=y
 CONFIG_FEC=m
+CONFIG_FSL_PQ_MDIO=m
+CONFIG_FSL_XGMAC_MDIO=m
 CONFIG_NET_VENDOR_HISILICON=y
 CONFIG_HIX5HD2_GMAC=m
 CONFIG_HIP04_ETH=m
@@ -279,21 +276,23 @@ CONFIG_PINCTRL=y
 #
 CONFIG_PINMUX=y
 CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
 # CONFIG_DEBUG_PINCTRL is not set
 # CONFIG_PINCTRL_AS3722 is not set
+CONFIG_PINCTRL_AMD=y
 # CONFIG_PINCTRL_PALMAS is not set
 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
 
 #
-# Memory mapped GPIO drivers:
+# Memory mapped GPIO drivers
 #
 # CONFIG_GPIO_DWAPB is not set
 # CONFIG_GPIO_EM is not set
-# CONFIG_GPIO_ZEVIO is not set
 CONFIG_GPIO_MXC=y
+# CONFIG_GPIO_ZEVIO is not set
 
 #
-# USB GPIO expanders:
+# USB GPIO expanders
 #
 # CONFIG_APM_POWER is not set
 CONFIG_POWER_RESET_VERSATILE=y
@@ -301,7 +300,6 @@ CONFIG_POWER_RESET_VERSATILE=y
 #
 # Watchdog Device Drivers
 #
-CONFIG_CADENCE_WATCHDOG=m
 CONFIG_MAX63XX_WATCHDOG=m
 CONFIG_IMX2_WDT=m
 
@@ -410,6 +408,7 @@ CONFIG_USB_MXS_PHY=m
 CONFIG_MMC_SDHCI_IO_ACCESSORS=y
 CONFIG_MMC_SDHCI_OF_ARASAN=m
 CONFIG_MMC_SDHCI_ESDHC_IMX=m
+CONFIG_MMC_SDHCI_PXAV3=m
 CONFIG_MMC_MXC=m
 
 #
@@ -441,10 +440,15 @@ CONFIG_NBPFAXI_DMA=m
 #
 # CONFIG_VFIO is not set
 
+#
+# Android
+#
+CONFIG_CHROME_PLATFORMS=y
+
 #
 # Common Clock Framework
 #
-# CONFIG_CLK_QORIQ is not set
+CONFIG_CLK_QORIQ=y
 
 #
 # Clock Source drivers
@@ -480,7 +484,6 @@ CONFIG_ARM_UNWIND=y
 CONFIG_DEBUG_IMX_UART_PORT=1
 # CONFIG_DEBUG_UART_8250 is not set
 CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
-# CONFIG_CORESIGHT is not set
 
 #
 # PaX
@@ -527,22 +530,16 @@ CONFIG_GRKERNSEC_KERN_LOCKOUT=y
 #
 # CONFIG_GRKERNSEC_SETXID is not set
 
-#
-# Digest
-#
-CONFIG_CRYPTO_SHA1_ARM=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES_ARM=m
-
 #
 # Random Number Generation
 #
 CONFIG_CRYPTO_DEV_HIFN_795X=m
 CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 CONFIG_CRYPTO_DEV_SAHARA=m
+CONFIG_ARM_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM=m
+CONFIG_CRYPTO_SHA256_ARM=m
+CONFIG_CRYPTO_AES_ARM=m
 
 #
 # Library routines
index b8cbadd0c7c5c8744f36d7237ffb60d73c9adbb8..2dec4e948223501515f8bce62fd9e3234c1cca51 100644 (file)
@@ -46,6 +46,12 @@ CONFIG_SYSCTL_EXCEPTION_TRACE=y
 CONFIG_SLUB_CPU_PARTIAL=y
 CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
 CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+
+#
+# Partition Types
+#
+CONFIG_BLOCK_COMPAT=y
 
 #
 # IO Schedulers
@@ -62,17 +68,21 @@ CONFIG_LOCK_SPIN_ON_OWNER=y
 # CONFIG_ARCH_EXYNOS7 is not set
 # CONFIG_ARCH_FSL_LS2085A is not set
 # CONFIG_ARCH_MEDIATEK is not set
+# CONFIG_ARCH_QCOM is not set
 CONFIG_ARCH_SEATTLE=y
 # CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_SPRD is not set
 # CONFIG_ARCH_THUNDER is not set
 CONFIG_ARCH_VEXPRESS=y
 CONFIG_ARCH_XGENE=y
+# CONFIG_ARCH_ZYNQMP is not set
 
 #
 # Bus support
 #
 CONFIG_PCI_DOMAINS=y
 CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_BUS_ADDR_T_64BIT=y
 CONFIG_PCI_LABEL=y
 
 #
@@ -81,6 +91,8 @@ CONFIG_PCI_LABEL=y
 CONFIG_PCI_XGENE=y
 CONFIG_HOTPLUG_PCI_PCIE=y
 CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=y
 CONFIG_HOTPLUG_PCI_CPCI=y
 CONFIG_HOTPLUG_PCI_SHPC=m
 
@@ -92,12 +104,12 @@ CONFIG_ARM64_ERRATUM_827319=y
 CONFIG_ARM64_ERRATUM_824069=y
 CONFIG_ARM64_ERRATUM_819472=y
 CONFIG_ARM64_ERRATUM_832075=y
+CONFIG_ARM64_ERRATUM_845719=y
 # CONFIG_ARM64_4K_PAGES is not set
 CONFIG_ARM64_64K_PAGES=y
 CONFIG_ARM64_VA_BITS_42=y
 # CONFIG_ARM64_VA_BITS_48 is not set
 CONFIG_ARM64_VA_BITS=42
-CONFIG_ARM64_PGTABLE_LEVELS=2
 CONFIG_SMP=y
 CONFIG_SCHED_MC=y
 CONFIG_SCHED_SMT=y
@@ -123,6 +135,10 @@ CONFIG_MMU_NOTIFIER=y
 CONFIG_GENERIC_EARLY_IOREMAP=y
 # CONFIG_XEN is not set
 CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
 
 #
 # Boot options
@@ -133,25 +149,27 @@ CONFIG_EFI=y
 CONFIG_DMI=y
 
 #
-# Power management options
+# Userspace binary formats
 #
-CONFIG_PM_SLEEP_SMP=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_COMPAT=y
+CONFIG_SYSVIPC_COMPAT=y
 
 #
-# CPU Idle
+# Power management options
 #
-CONFIG_DT_IDLE_STATES=y
+CONFIG_PM_SLEEP_SMP=y
 
 #
-# ARM64 CPU Idle Drivers
+# ARM CPU Idle Drivers
 #
-CONFIG_ARM64_CPUIDLE=y
 # CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
 
 #
 # CPU frequency scaling drivers
 #
 # CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
+CONFIG_COMPAT_NETLINK_MESSAGES=y
 
 #
 # Classification
@@ -176,6 +194,13 @@ CONFIG_GENERIC_CPU_AUTOPROBE=y
 #
 # Device Tree and Open Firmware support
 #
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
 CONFIG_BLK_DEV_SKD=m
 
 #
@@ -187,16 +212,32 @@ CONFIG_BLK_DEV_SKD=m
 # SCSI Transports
 #
 # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_ZPODD=y
 
 #
 # Controllers with non-SFF native interface
 #
 CONFIG_AHCI_XGENE=m
 
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+
 #
 # Distributed Switch Architecture drivers
 #
 CONFIG_VORTEX=m
+CONFIG_AMD_XGBE=m
+CONFIG_NET_XGENE=m
+CONFIG_MACB=m
+CONFIG_NET_SB1000=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_AMD_XGBE_PHY=m
 
 #
 # Input device support
@@ -213,6 +254,12 @@ CONFIG_INPUT_MATRIXKMAP=m
 #
 # CONFIG_SERIO_AMBAKMI is not set
 
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_FINTEK=m
+
 #
 # Non-8250 serial port support
 #
@@ -220,6 +267,21 @@ CONFIG_SERIAL_AMBA_PL010=m
 CONFIG_SERIAL_AMBA_PL011=m
 CONFIG_HW_RANDOM_XGENE=m
 
+#
+# PCMCIA character devices
+#
+# CONFIG_HPET is not set
+
+#
+# I2C support
+#
+CONFIG_ACPI_I2C_OPREGION=y
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
@@ -242,17 +304,28 @@ CONFIG_PPS=m
 CONFIG_PTP_1588_CLOCK=m
 
 #
-# Memory mapped GPIO drivers:
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_GPIO_ACPI=y
+
+#
+# Memory mapped GPIO drivers
 #
+CONFIG_GPIO_DWAPB=m
 CONFIG_GPIO_PL061=y
 CONFIG_GPIO_XGENE=y
 CONFIG_GPIO_XGENE_SB=m
 
 #
-# USB GPIO expanders:
+# USB GPIO expanders
 #
 CONFIG_POWER_RESET_XGENE=y
 
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+
 #
 # Watchdog Device Drivers
 #
@@ -274,6 +347,14 @@ CONFIG_ARM_SP805_WATCHDOG=m
 # CONFIG_REGULATOR_LP8788 is not set
 # CONFIG_REGULATOR_TWL4030 is not set
 
+#
+# Media drivers
+#
+# CONFIG_IR_ENE is not set
+# CONFIG_IR_ITE_CIR is not set
+# CONFIG_IR_FINTEK is not set
+# CONFIG_IR_NUVOTON is not set
+
 #
 # Media digital TV PCI Adapters
 #
@@ -322,16 +403,12 @@ CONFIG_DUMMY_CONSOLE_ROWS=25
 #
 CONFIG_MUSB_PIO_ONLY=y
 
-#
-# USB Physical Layer drivers
-#
-CONFIG_NOP_USB_XCEIV=m
-
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
 CONFIG_MMC_ARMMMCI=m
 # CONFIG_MMC_RICOH_MMC is not set
+CONFIG_MMC_SDHCI_ACPI=m
 # CONFIG_MMC_SDHCI_OF_ARASAN is not set
 
 #
@@ -353,13 +430,17 @@ CONFIG_RTC_DRV_PL031=m
 #
 # DMA Devices
 #
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
 # CONFIG_AMBA_PL08X is not set
 # CONFIG_DW_DMAC_PCI is not set
 # CONFIG_PL330_DMA is not set
+CONFIG_XGENE_DMA=m
+CONFIG_DMA_ACPI=y
 
 #
 # DMA Clients
 #
+CONFIG_DMA_ENGINE_RAID=y
 # CONFIG_UIO_AEC is not set
 # CONFIG_UIO_SERCOS3 is not set
 # CONFIG_UIO_PCI_GENERIC is not set
@@ -369,6 +450,7 @@ CONFIG_RTC_DRV_PL031=m
 # Android
 #
 CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+# CONFIG_FSL_MC_BUS is not set
 
 #
 # Common Clock Framework
@@ -386,7 +468,9 @@ CONFIG_COMMON_CLK_XGENE=y
 CONFIG_ARM_ARCH_TIMER=y
 CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
 # CONFIG_SH_TIMER_TMU is not set
+CONFIG_ARM_MHU=m
 # CONFIG_PL320_MBOX is not set
+# CONFIG_PCC is not set
 
 #
 # Generic IOMMU Pagetable Support
@@ -422,7 +506,6 @@ CONFIG_PHY_XGENE=m
 #
 # Firmware Drivers
 #
-# CONFIG_FIRMWARE_MEMMAP is not set
 CONFIG_DMIID=y
 CONFIG_DMI_SYSFS=y
 
@@ -435,6 +518,22 @@ CONFIG_EFI_VARS_PSTORE=y
 CONFIG_EFI_PARAMS_FROM_FDT=y
 CONFIG_EFI_RUNTIME_WRAPPERS=y
 CONFIG_EFI_ARMSTUB=y
+CONFIG_ACPI=y
+CONFIG_ACPI_GENERIC_GSI=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+# CONFIG_ACPI_EC_DEBUGFS is not set
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_IPMI=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_PCI_SLOT is not set
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_HED=m
+CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y
+# CONFIG_PMIC_OPREGION is not set
 
 #
 # File systems
@@ -449,11 +548,10 @@ CONFIG_DCACHE_WORD_ACCESS=y
 CONFIG_EFIVAR_FS=y
 CONFIG_KVM_MMIO=y
 CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_KVM_COMPAT=y
 CONFIG_KVM=y
 CONFIG_KVM_ARM_HOST=y
 CONFIG_KVM_ARM_MAX_VCPUS=4
-CONFIG_KVM_ARM_VGIC=y
-CONFIG_KVM_ARM_TIMER=y
 
 #
 # Compile-time checks and compiler options
@@ -519,6 +617,7 @@ CONFIG_CRYPTO_CRC32_ARM64=m
 # Library routines
 #
 CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
+CONFIG_AUDIT_COMPAT_GENERIC=y
 CONFIG_HAS_IOPORT_MAP=y
 CONFIG_CPU_RMAP=y
 CONFIG_UCS2_STRING=y
index 045bce1cff1c5f9c44842e635096c91ea214c265..20dc2719108c23254a81a883bb4e109a0fd9bc63 100644 (file)
@@ -42,13 +42,6 @@ CONFIG_MACH_NETXBIG=y
 #
 # CONFIG_MACH_MX21ADS is not set
 
-#
-# MX25 platforms:
-#
-# CONFIG_MACH_MX25_3DS is not set
-# CONFIG_MACH_EUKREA_CPUIMX25SD is not set
-# CONFIG_MACH_IMX25_DT is not set
-
 #
 # MX27 platforms:
 #
@@ -57,6 +50,11 @@ CONFIG_MACH_NETXBIG=y
 # CONFIG_MACH_IMX27_VISSTRIM_M10 is not set
 # CONFIG_MACH_PCA100 is not set
 # CONFIG_MACH_IMX27_DT is not set
+
+#
+# Device tree only
+#
+# CONFIG_SOC_IMX25 is not set
 # CONFIG_ARCH_MXS is not set
 # CONFIG_ARCH_NOMADIK is not set
 # CONFIG_ARCH_NSPIRE is not set
@@ -80,6 +78,7 @@ CONFIG_CPU_USE_DOMAINS=y
 #
 # Processor Features
 #
+# CONFIG_CPU_DCACHE_DISABLE is not set
 CONFIG_NEED_KUSER_HELPERS=y
 CONFIG_CACHE_FEROCEON_L2=y
 # CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
@@ -149,6 +148,7 @@ CONFIG_AHCI_MVEBU=m
 # Distributed Switch Architecture drivers
 #
 # CONFIG_VORTEX is not set
+CONFIG_MACB=m
 CONFIG_MV643XX_ETH=m
 CONFIG_MVNETA=m
 
@@ -190,12 +190,12 @@ CONFIG_PINCTRL_MVEBU=y
 CONFIG_PINCTRL_KIRKWOOD=y
 
 #
-# Memory mapped GPIO drivers:
+# Memory mapped GPIO drivers
 #
 CONFIG_GPIO_MVEBU=y
 
 #
-# USB GPIO expanders:
+# USB GPIO expanders
 #
 # CONFIG_CHARGER_LP8788 is not set
 # CONFIG_POWER_RESET_BRCMSTB is not set
@@ -306,11 +306,6 @@ CONFIG_USB_IMX21_HCD=m
 #
 CONFIG_MUSB_PIO_ONLY=y
 
-#
-# USB Physical Layer drivers
-#
-CONFIG_NOP_USB_XCEIV=m
-
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
@@ -333,6 +328,7 @@ CONFIG_RTC_DRV_ARMADA38X=m
 # DMA Devices
 #
 CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+CONFIG_DW_DMAC_CORE=m
 CONFIG_DW_DMAC_PCI=m
 CONFIG_MV_XOR=y
 CONFIG_IMX_SDMA=m
index a79b0c52a23809e676748c627f610f6fe5c83571..950be1000655e7a8c730e38a1fe509a417fa8fa3 100644 (file)
@@ -5,6 +5,7 @@ CONFIG_ARCH_HAS_BANDGAP=y
 # IRQ subsystem
 #
 CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
 CONFIG_ARCH_HAS_TICK_BROADCAST=y
 CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 
@@ -53,6 +54,7 @@ CONFIG_ARCH_MULTI_V6_V7=y
 # CONFIG_ARCH_MULTI_CPU_AUTO is not set
 CONFIG_ARCH_VIRT=y
 # CONFIG_ARCH_MVEBU is not set
+# CONFIG_ARCH_ALPINE is not set
 CONFIG_ARCH_BCM=y
 
 #
@@ -154,24 +156,20 @@ CONFIG_OMAP_PACKAGE_CUS=y
 # OMAP Legacy Platform Data Board Type
 #
 CONFIG_MACH_OMAP3_BEAGLE=y
-CONFIG_MACH_DEVKIT8000=y
 CONFIG_MACH_OMAP_LDP=y
 CONFIG_MACH_OMAP3530_LV_SOM=y
 CONFIG_MACH_OMAP3_TORPEDO=y
 CONFIG_MACH_OVERO=y
 CONFIG_MACH_OMAP3517EVM=y
 CONFIG_MACH_OMAP3_PANDORA=y
-CONFIG_MACH_TOUCHBOOK=y
 CONFIG_MACH_NOKIA_RX51=y
 CONFIG_MACH_CM_T35=y
 CONFIG_MACH_CM_T3730=y
-CONFIG_MACH_SBC3530=y
 # CONFIG_OMAP3_SDRC_AC_TIMING is not set
 CONFIG_ARCH_QCOM=y
 # CONFIG_ARCH_MSM8X60 is not set
 # CONFIG_ARCH_MSM8960 is not set
 # CONFIG_ARCH_MSM8974 is not set
-CONFIG_QCOM_SCM=y
 CONFIG_ARCH_ROCKCHIP=y
 # CONFIG_ARCH_SOCFPGA is not set
 CONFIG_ARCH_STI=y
@@ -218,10 +216,12 @@ CONFIG_ARCH_SHMOBILE_MULTI=y
 # CONFIG_ARCH_R7S72100 is not set
 # CONFIG_ARCH_R8A73A4 is not set
 # CONFIG_ARCH_R8A7740 is not set
+# CONFIG_ARCH_R8A7778 is not set
 CONFIG_ARCH_R8A7779=y
 # CONFIG_ARCH_R8A7790 is not set
 # CONFIG_ARCH_R8A7791 is not set
 # CONFIG_ARCH_R8A7794 is not set
+# CONFIG_ARCH_SH73A0 is not set
 
 #
 # Renesas ARM SoCs Board Type
@@ -300,6 +300,7 @@ CONFIG_CPU_HAS_ASID=y
 CONFIG_ARM_VIRT_EXT=y
 CONFIG_SWP_EMULATE=y
 # CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_VDSO=y
 CONFIG_OUTER_CACHE_SYNC=y
 CONFIG_MIGHT_HAVE_CACHE_L2X0=y
 CONFIG_CACHE_L2X0=y
@@ -311,7 +312,7 @@ CONFIG_ARM_L1_CACHE_SHIFT_6=y
 CONFIG_ARM_L1_CACHE_SHIFT=6
 CONFIG_ARM_DMA_MEM_BUFFERABLE=y
 # CONFIG_ARM_ERRATA_430973 is not set
-# CONFIG_ARM_ERRATA_643719 is not set
+CONFIG_ARM_ERRATA_643719=y
 CONFIG_ARM_ERRATA_720789=y
 CONFIG_ARM_ERRATA_754322=y
 CONFIG_ARM_ERRATA_754327=y
@@ -338,6 +339,7 @@ CONFIG_PCI_RCAR_GEN2=y
 CONFIG_PCI_RCAR_GEN2_PCIE=y
 CONFIG_PCI_KEYSTONE=y
 CONFIG_PCIE_XILINX=y
+CONFIG_PCIE_IPROC_PLATFORM=m
 
 #
 # Kernel Features
@@ -385,6 +387,7 @@ CONFIG_ARM_EXYNOS5250_CPUFREQ=y
 # CONFIG_ARM_EXYNOS_CPU_FREQ_BOOST_SW is not set
 CONFIG_ARM_EXYNOS5440_CPUFREQ=y
 CONFIG_ARM_HIGHBANK_CPUFREQ=m
+CONFIG_ARM_HISI_ACPU_CPUFREQ=m
 # CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
 CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
 CONFIG_ARM_TEGRA_CPUFREQ=y
@@ -436,10 +439,11 @@ CONFIG_REGMAP_SPMI=m
 #
 # Bus devices
 #
+CONFIG_ARM_CCI400_PORT_CTRL=y
 # CONFIG_IMX_WEIM is not set
-# CONFIG_OMAP_OCP2SCP is not set
 CONFIG_OMAP_INTERCONNECT=y
-CONFIG_ARM_CCI=y
+# CONFIG_OMAP_OCP2SCP is not set
+CONFIG_SIMPLE_PM_BUS=y
 
 #
 # Misc devices
@@ -470,6 +474,7 @@ CONFIG_SATA_RCAR=m
 CONFIG_NET_VENDOR_ALLWINNER=y
 CONFIG_SUN4I_EMAC=m
 # CONFIG_MACB is not set
+CONFIG_BGMAC=m
 CONFIG_NET_CALXEDA_XGMAC=m
 CONFIG_PXA168_ETH=m
 CONFIG_SH_ETH=m
@@ -502,6 +507,7 @@ CONFIG_KEYBOARD_SAMSUNG=y
 CONFIG_KEYBOARD_SH_KEYSC=m
 CONFIG_KEYBOARD_SUN4I_LRADC=m
 # CONFIG_INPUT_AB8500_PONKEY is not set
+CONFIG_INPUT_PM8941_PWRKEY=m
 CONFIG_INPUT_SIRFSOC_ONKEY=y
 
 #
@@ -532,6 +538,7 @@ CONFIG_SERIAL_SH_SCI_NR_UARTS=2
 # CONFIG_SERIAL_MSM is not set
 # CONFIG_SERIAL_VT8500 is not set
 CONFIG_SERIAL_OMAP=m
+CONFIG_HW_RANDOM_IPROC_RNG200=m
 CONFIG_HW_RANDOM_OMAP=y
 CONFIG_HW_RANDOM_OMAP3_ROM=y
 CONFIG_HW_RANDOM_EXYNOS=y
@@ -590,7 +597,7 @@ CONFIG_PTP_1588_CLOCK=y
 #
 # Pin controllers
 #
-CONFIG_GENERIC_PINCONF=y
+CONFIG_PINCTRL_MESON=y
 CONFIG_PINCTRL_ROCKCHIP=y
 CONFIG_PINCTRL_SINGLE=y
 CONFIG_PINCTRL_SIRF=y
@@ -641,9 +648,11 @@ CONFIG_PINCTRL_SUN8I_A23=y
 CONFIG_PINCTRL_SUN8I_A23_R=y
 CONFIG_PINCTRL_SUN9I_A80=y
 # CONFIG_PINCTRL_WM8850 is not set
+CONFIG_PINCTRL_MTK_COMMON=y
+CONFIG_PINCTRL_MT8135=y
 
 #
-# Memory mapped GPIO drivers:
+# Memory mapped GPIO drivers
 #
 # CONFIG_GPIO_DAVINCI is not set
 CONFIG_GPIO_MSM_V2=m
@@ -655,7 +664,7 @@ CONFIG_GPIO_VF610=y
 CONFIG_GPIO_ZYNQ=m
 
 #
-# USB GPIO expanders:
+# USB GPIO expanders
 #
 CONFIG_POWER_RESET_BRCMSTB=y
 CONFIG_POWER_RESET_HISI=y
@@ -787,6 +796,7 @@ CONFIG_DRM_SHMOBILE=m
 CONFIG_DRM_MSM=m
 # CONFIG_DRM_MSM_FBDEV is not set
 # CONFIG_DRM_MSM_REGISTER_LOGGING is not set
+CONFIG_DRM_MSM_DSI=y
 CONFIG_DRM_TEGRA=m
 CONFIG_DRM_TEGRA_FBDEV=y
 # CONFIG_DRM_TEGRA_DEBUG is not set
@@ -842,6 +852,9 @@ CONFIG_SND_AM33XX_SOC_EVM=m
 #
 # SoC Audio support for Freescale i.MX boards:
 #
+CONFIG_SND_SOC_LPASS_CPU=m
+CONFIG_SND_SOC_LPASS_PLATFORM=m
+CONFIG_SND_SOC_STORM=m
 CONFIG_SND_SOC_ROCKCHIP=m
 CONFIG_SND_SOC_ROCKCHIP_I2S=m
 CONFIG_SND_SOC_SAMSUNG=m
@@ -860,6 +873,7 @@ CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631=m
 #
 CONFIG_SND_SOC_SH4_FSI=m
 CONFIG_SND_SOC_RCAR=m
+CONFIG_SND_SOC_RSRC_CARD=m
 CONFIG_SND_SOC_SIRF=m
 CONFIG_SND_SOC_SIRF_AUDIO=m
 CONFIG_SND_SOC_SIRF_AUDIO_PORT=m
@@ -873,6 +887,7 @@ CONFIG_SND_SOC_UX500_PLAT_DMA=m
 CONFIG_SND_SOC_WM_HUBS=m
 CONFIG_SND_SOC_MAX98090=m
 CONFIG_SND_SOC_MAX98095=m
+CONFIG_SND_SOC_MAX98357A=m
 CONFIG_SND_SOC_WM8994=m
 
 #
@@ -918,10 +933,8 @@ CONFIG_USB_DWC3_QCOM=m
 #
 # CONFIG_AB8500_USB is not set
 CONFIG_KEYSTONE_USB_PHY=m
-CONFIG_NOP_USB_XCEIV=y
 CONFIG_USB_MSM_OTG=m
 CONFIG_USB_RCAR_PHY=m
-CONFIG_USB_ULPI_VIEWPORT=y
 
 #
 # MMC/SD/SDIO Host Controller Drivers
@@ -932,6 +945,7 @@ CONFIG_MMC_SDHCI_TEGRA=m
 CONFIG_MMC_SDHCI_S3C=m
 CONFIG_MMC_SDHCI_SIRF=m
 CONFIG_MMC_SDHCI_S3C_DMA=y
+CONFIG_MMC_SDHCI_IPROC=m
 CONFIG_MMC_SDHCI_ST=m
 CONFIG_MMC_OMAP=m
 CONFIG_MMC_OMAP_HS=m
@@ -972,8 +986,8 @@ CONFIG_SH_DMAE_BASE=y
 # CONFIG_SH_DMAE is not set
 # CONFIG_SUDMAC is not set
 # CONFIG_RCAR_HPB_DMAE is not set
-# CONFIG_RCAR_AUDMAC_PP is not set
 CONFIG_RCAR_DMAC=m
+CONFIG_RENESAS_USB_DMAC=m
 # CONFIG_STE_DMA40 is not set
 # CONFIG_SIRF_DMA is not set
 # CONFIG_TI_EDMA is not set
@@ -1011,6 +1025,18 @@ CONFIG_CLK_VEXPRESS_OSC=y
 CONFIG_COMMON_CLK_MAX77686=y
 # CONFIG_COMMON_CLK_AXI_CLKGEN is not set
 CONFIG_COMMON_CLK_KEYSTONE=y
+CONFIG_COMMON_CLK_QCOM=m
+CONFIG_APQ_GCC_8084=m
+CONFIG_APQ_MMCC_8084=m
+CONFIG_IPQ_GCC_806X=m
+CONFIG_IPQ_LCC_806X=m
+CONFIG_MSM_GCC_8660=m
+CONFIG_MSM_GCC_8916=m
+CONFIG_MSM_GCC_8960=m
+CONFIG_MSM_LCC_8960=m
+CONFIG_MSM_MMCC_8960=m
+CONFIG_MSM_GCC_8974=m
+CONFIG_MSM_MMCC_8974=m
 CONFIG_COMMON_CLK_SAMSUNG=y
 
 #
@@ -1043,6 +1069,8 @@ CONFIG_CLKSRC_SAMSUNG_PWM=y
 CONFIG_MTK_TIMER=y
 CONFIG_SYS_SUPPORTS_SH_TMU=y
 CONFIG_SH_TIMER_TMU=y
+CONFIG_CLKSRC_VERSATILE=y
+CONFIG_ARM_MHU=m
 CONFIG_PL320_MBOX=y
 CONFIG_OMAP2PLUS_MBOX=m
 CONFIG_OMAP_MBOX_KFIFO_SIZE=256
@@ -1072,6 +1100,7 @@ CONFIG_RPMSG=m
 #
 # SOC (System On Chip) specific Drivers
 #
+# CONFIG_MTK_PMIC_WRAP is not set
 CONFIG_QCOM_GSBI=m
 # CONFIG_KEYSTONE_NAVIGATOR_QMSS is not set
 CONFIG_KEYSTONE_NAVIGATOR_DMA=m
@@ -1137,6 +1166,7 @@ CONFIG_STIH407_RESET=y
 #
 CONFIG_PHY_BERLIN_USB=m
 CONFIG_PHY_BERLIN_SATA=m
+CONFIG_PHY_DM816X_USB=m
 CONFIG_PHY_EXYNOS_MIPI_VIDEO=y
 CONFIG_PHY_MIPHY28LP=m
 CONFIG_PHY_MIPHY365X=m
@@ -1147,6 +1177,7 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=y
 CONFIG_PHY_EXYNOS5250_SATA=m
 CONFIG_PHY_HIX5HD2_SATA=m
 CONFIG_PHY_SUN4I_USB=m
+CONFIG_PHY_SUN9I_USB=m
 CONFIG_PHY_EXYNOS4210_USB2=y
 CONFIG_PHY_EXYNOS4X12_USB2=y
 CONFIG_PHY_EXYNOS5250_USB2=y
@@ -1156,6 +1187,12 @@ CONFIG_PHY_QCOM_IPQ806X_SATA=m
 CONFIG_PHY_ROCKCHIP_USB=m
 CONFIG_PHY_STIH407_USB=m
 CONFIG_PHY_STIH41X_USB=m
+CONFIG_PHY_QCOM_UFS=m
+
+#
+# Firmware Drivers
+#
+CONFIG_QCOM_SCM=y
 
 #
 # File systems
@@ -1216,17 +1253,6 @@ CONFIG_GRKERNSEC_RWXMAP_LOG=y
 CONFIG_CRYPTO_PCRYPT=m
 CONFIG_CRYPTO_ABLK_HELPER=m
 
-#
-# Digest
-#
-CONFIG_CRYPTO_SHA1_ARM_NEON=m
-CONFIG_CRYPTO_SHA512_ARM_NEON=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES_ARM_BS=m
-
 #
 # Random Number Generation
 #
@@ -1236,6 +1262,13 @@ CONFIG_CRYPTO_DEV_OMAP_DES=m
 CONFIG_CRYPTO_DEV_S5P=m
 # CONFIG_CRYPTO_DEV_UX500 is not set
 CONFIG_CRYPTO_DEV_QCE=m
+CONFIG_CRYPTO_SHA1_ARM_NEON=m
+CONFIG_CRYPTO_SHA1_ARM_CE=m
+CONFIG_CRYPTO_SHA2_ARM_CE=m
+CONFIG_CRYPTO_SHA512_ARM_NEON=m
+CONFIG_CRYPTO_AES_ARM_BS=m
+CONFIG_CRYPTO_AES_ARM_CE=m
+CONFIG_CRYPTO_GHASH_ARM_CE=m
 
 #
 # Library routines
index 9898dab35943181eee996456d67306ae39a5114e..0329ba10d7227d98c7f3ce0499857cdb9c6e6708 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_PGTABLE_LEVELS=3
 
 #
 # IO Schedulers
@@ -21,6 +22,17 @@ CONFIG_ARM_LPAE=y
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
 CONFIG_ARCH_DMA_ADDR_T_64BIT=y
 
+#
+# Bus support
+#
+CONFIG_PCI_BUS_ADDR_T_64BIT=y
+
+#
+# PCI host controller drivers
+#
+CONFIG_PCIE_IPROC=y
+CONFIG_PCIE_IPROC_PLATFORM=y
+
 #
 # Kernel Features
 #
@@ -29,13 +41,18 @@ CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_MMU_NOTIFIER=y
 # CONFIG_TRANSPARENT_HUGEPAGE is not set
 
+#
+# Bus devices
+#
+# CONFIG_SIMPLE_PM_BUS is not set
+
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
 CONFIG_I2C_AXXIA=m
 
 #
-# USB GPIO expanders:
+# USB GPIO expanders
 #
 CONFIG_POWER_RESET_AXXIA=y
 CONFIG_ROCKCHIP_IODOMAIN=m
@@ -88,5 +105,3 @@ CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
 CONFIG_KVM=y
 CONFIG_KVM_ARM_HOST=y
 CONFIG_KVM_ARM_MAX_VCPUS=4
-CONFIG_KVM_ARM_VGIC=y
-CONFIG_KVM_ARM_TIMER=y
index c0f75538805e3b004d018dd0fddca4e69d2c318a..a850914ac5bc39d75c94c9f0bb350780668d8212 100644 (file)
@@ -42,11 +42,11 @@ CONFIG_AUDIT_TREE=y
 #
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_CHIP=y
 CONFIG_IRQ_DOMAIN=y
 # CONFIG_IRQ_DOMAIN_DEBUG is not set
 CONFIG_SPARSE_IRQ=y
 CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
 
 #
 # Timers subsystem
@@ -74,6 +74,7 @@ CONFIG_SRCU=y
 # CONFIG_TASKS_RCU is not set
 # CONFIG_TREE_RCU_TRACE is not set
 CONFIG_RCU_KTHREAD_PRIO=0
+# CONFIG_RCU_EXPEDITE_BOOT is not set
 # CONFIG_BUILD_BIN2C is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=18
@@ -112,8 +113,11 @@ CONFIG_RD_LZ4=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
+CONFIG_HAVE_UID16=y
 CONFIG_BPF=y
 CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_MULTIUSER=y
 CONFIG_SGETMASK_SYSCALL=y
 CONFIG_SYSFS_SYSCALL=y
 # CONFIG_SYSCTL_SYSCALL is not set
@@ -142,7 +146,7 @@ CONFIG_HAVE_PERF_EVENTS=y
 CONFIG_PERF_EVENTS=y
 # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG is not set
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
@@ -169,20 +173,21 @@ CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_CC_STACKPROTECTOR_NONE is not set
 # CONFIG_CC_STACKPROTECTOR_REGULAR is not set
 CONFIG_CC_STACKPROTECTOR_STRONG=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_OLD_SIGSUSPEND3=y
 
 #
 # GCOV-based kernel profiling
 #
 # CONFIG_GCOV_KERNEL is not set
 CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
 CONFIG_BASE_SMALL=0
 CONFIG_MODULES=y
 # CONFIG_MODULE_FORCE_LOAD is not set
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
+CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
 # CONFIG_MODULE_COMPRESS is not set
@@ -262,6 +267,7 @@ CONFIG_CLEANCACHE=y
 # CONFIG_FRONTSWAP is not set
 CONFIG_CMA=y
 # CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
 CONFIG_CMA_AREAS=7
 CONFIG_ZPOOL=m
 # CONFIG_ZBUD is not set
@@ -341,7 +347,6 @@ CONFIG_PCIE_PME=y
 # Executable file formats / Emulations
 #
 CONFIG_BINFMT_ELF=y
-CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
 CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
 CONFIG_BINFMT_SCRIPT=y
 CONFIG_BINFMT_MISC=y
@@ -660,13 +665,13 @@ CONFIG_IP_VS_PE_SIP=m
 CONFIG_NF_DEFRAG_IPV4=y
 CONFIG_NF_CONNTRACK_IPV4=y
 # CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
-CONFIG_NF_LOG_ARP=m
-CONFIG_NF_LOG_IPV4=m
 CONFIG_NF_TABLES_IPV4=m
 CONFIG_NFT_CHAIN_ROUTE_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
 CONFIG_NFT_REJECT_IPV4=m
 CONFIG_NF_TABLES_ARP=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
 CONFIG_NF_NAT_IPV4=m
 CONFIG_NFT_CHAIN_NAT_IPV4=m
 CONFIG_NF_NAT_MASQUERADE_IPV4=m
@@ -688,8 +693,8 @@ CONFIG_NF_DEFRAG_IPV6=y
 CONFIG_NF_CONNTRACK_IPV6=y
 CONFIG_NF_TABLES_IPV6=m
 CONFIG_NFT_CHAIN_ROUTE_IPV6=m
-CONFIG_NF_REJECT_IPV6=m
 CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NF_REJECT_IPV6=m
 CONFIG_NF_LOG_IPV6=m
 CONFIG_NF_NAT_IPV6=m
 CONFIG_NFT_CHAIN_NAT_IPV6=m
@@ -851,7 +856,9 @@ CONFIG_OPENVSWITCH_VXLAN=m
 CONFIG_VSOCKETS=m
 CONFIG_NETLINK_MMAP=y
 CONFIG_NETLINK_DIAG=m
+CONFIG_MPLS=y
 CONFIG_NET_MPLS_GSO=m
+CONFIG_MPLS_ROUTING=m
 # CONFIG_HSR is not set
 CONFIG_NET_SWITCHDEV=y
 CONFIG_CGROUP_NET_PRIO=y
@@ -878,17 +885,23 @@ CONFIG_BT_CMTP=m
 CONFIG_BT_HIDP=m
 CONFIG_BT_LE=y
 # CONFIG_BT_SELFTEST is not set
+# CONFIG_BT_DEBUGFS is not set
 
 #
 # Bluetooth device drivers
 #
+CONFIG_BT_INTEL=m
+CONFIG_BT_BCM=m
 CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTUSB_BCM=y
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
 CONFIG_BT_HCIUART_BCSP=y
 CONFIG_BT_HCIUART_ATH3K=y
 CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_INTEL=y
+CONFIG_BT_HCIUART_BCM=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
 CONFIG_BT_HCIBFUSB=m
@@ -913,6 +926,7 @@ CONFIG_CFG80211_DEFAULT_PS=y
 # CONFIG_CFG80211_DEBUGFS is not set
 # CONFIG_CFG80211_INTERNAL_REGDB is not set
 CONFIG_CFG80211_WEXT=y
+CONFIG_CFG80211_WEXT_EXPORT=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
 CONFIG_LIB80211_CRYPT_CCMP=m
@@ -987,6 +1001,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
 # CONFIG_BLK_DEV_OSD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_PMEM=m
 # CONFIG_CDROM_PKTCDVD is not set
 # CONFIG_ATA_OVER_ETH is not set
 CONFIG_VIRTIO_BLK=m
@@ -1106,14 +1121,17 @@ CONFIG_SCSI_AACRAID=m
 CONFIG_SCSI_AIC7XXX=m
 CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
 CONFIG_AIC7XXX_RESET_DELAY_MS=5000
-CONFIG_AIC7XXX_DEBUG_ENABLE=y
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
 CONFIG_AIC7XXX_DEBUG_MASK=0
 CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
 CONFIG_SCSI_AIC79XX=m
 CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
 CONFIG_AIC79XX_DEBUG_MASK=0
 CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
 CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
 # CONFIG_SCSI_MVUMI is not set
 CONFIG_SCSI_ARCMSR=m
 CONFIG_SCSI_ESAS2R=m
@@ -1269,11 +1287,13 @@ CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
 CONFIG_MD_MULTIPATH=m
 CONFIG_MD_FAULTY=m
+CONFIG_MD_CLUSTER=m
 CONFIG_BCACHE=m
 # CONFIG_BCACHE_DEBUG is not set
 # CONFIG_BCACHE_CLOSURES_DEBUG is not set
 CONFIG_BLK_DEV_DM_BUILTIN=y
 CONFIG_BLK_DEV_DM=y
+# CONFIG_DM_MQ_DEFAULT is not set
 # CONFIG_DM_DEBUG is not set
 CONFIG_DM_BUFIO=y
 CONFIG_DM_BIO_PRISON=m
@@ -1298,6 +1318,7 @@ CONFIG_DM_UEVENT=y
 # CONFIG_DM_FLAKEY is not set
 CONFIG_DM_VERITY=m
 CONFIG_DM_SWITCH=m
+# CONFIG_DM_LOG_WRITES is not set
 # CONFIG_TARGET_CORE is not set
 # CONFIG_FUSION is not set
 
@@ -1363,8 +1384,6 @@ CONFIG_ACENIC=m
 CONFIG_ALTERA_TSE=m
 CONFIG_NET_VENDOR_AMD=y
 CONFIG_PCNET32=m
-CONFIG_AMD_XGBE=m
-CONFIG_NET_XGENE=m
 CONFIG_NET_VENDOR_ARC=y
 CONFIG_NET_VENDOR_ATHEROS=y
 CONFIG_ATL2=m
@@ -1372,6 +1391,7 @@ CONFIG_ATL1=m
 CONFIG_ATL1E=m
 CONFIG_ATL1C=m
 CONFIG_ALX=m
+CONFIG_NET_CADENCE=y
 CONFIG_NET_VENDOR_BROADCOM=y
 CONFIG_B44=m
 CONFIG_B44_PCI_AUTOSELECT=y
@@ -1437,7 +1457,7 @@ CONFIG_NET_VENDOR_MELLANOX=y
 CONFIG_MLX4_EN=m
 CONFIG_MLX4_EN_VXLAN=y
 CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
+# CONFIG_MLX4_DEBUG is not set
 # CONFIG_MLX5_CORE is not set
 CONFIG_NET_VENDOR_MICREL=y
 # CONFIG_KS8842 is not set
@@ -1521,7 +1541,6 @@ CONFIG_PHYLIB=y
 #
 CONFIG_AT803X_PHY=m
 CONFIG_AMD_PHY=m
-CONFIG_AMD_XGBE_PHY=m
 CONFIG_MARVELL_PHY=m
 CONFIG_DAVICOM_PHY=m
 CONFIG_QSEMI_PHY=m
@@ -1616,6 +1635,7 @@ CONFIG_ATH_COMMON=m
 CONFIG_ATH_CARDS=m
 # CONFIG_ATH_DEBUG is not set
 CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
 # CONFIG_ATH5K_TRACER is not set
 CONFIG_ATH5K_PCI=y
 CONFIG_ATH9K_HW=m
@@ -1956,6 +1976,7 @@ CONFIG_INPUT_MISC=y
 # CONFIG_INPUT_AD714X is not set
 # CONFIG_INPUT_BMA150 is not set
 # CONFIG_INPUT_E3X0_BUTTON is not set
+# CONFIG_INPUT_MAX77843_HAPTIC is not set
 # CONFIG_INPUT_MAX8925_ONKEY is not set
 # CONFIG_INPUT_MMA8450 is not set
 # CONFIG_INPUT_MPU3050 is not set
@@ -2041,7 +2062,6 @@ CONFIG_SERIAL_8250_DW=m
 #
 # Non-8250 serial port support
 #
-# CONFIG_SERIAL_MFD_HSU is not set
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_SERIAL_SC16IS7XX=m
@@ -2189,66 +2209,53 @@ CONFIG_GPIO_DEVRES=y
 CONFIG_GPIOLIB_IRQCHIP=y
 # CONFIG_DEBUG_GPIO is not set
 CONFIG_GPIO_SYSFS=y
-# CONFIG_GPIO_DA9052 is not set
-# CONFIG_GPIO_DA9055 is not set
 
 #
-# Memory mapped GPIO drivers:
+# Memory mapped GPIO drivers
 #
 # CONFIG_GPIO_SCH311X is not set
 # CONFIG_GPIO_VX855 is not set
 
 #
-# I2C GPIO expanders:
+# I2C GPIO expanders
 #
-CONFIG_GPIO_CRYSTAL_COVE=m
-# CONFIG_GPIO_LP3943 is not set
+# CONFIG_GPIO_ADP5588 is not set
 # CONFIG_GPIO_MAX7300 is not set
 # CONFIG_GPIO_MAX732X is not set
 # CONFIG_GPIO_PCA953X is not set
 # CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_RC5T583 is not set
 # CONFIG_GPIO_SX150X is not set
-# CONFIG_GPIO_TC3589X is not set
+
+#
+# MFD GPIO expanders
+#
+# CONFIG_GPIO_ADP5520 is not set
+CONFIG_GPIO_CRYSTAL_COVE=m
+# CONFIG_GPIO_DA9052 is not set
+# CONFIG_GPIO_DA9055 is not set
+# CONFIG_GPIO_KEMPLD is not set
+# CONFIG_GPIO_LP3943 is not set
+# CONFIG_GPIO_PALMAS is not set
+# CONFIG_GPIO_RC5T583 is not set
+# CONFIG_GPIO_TPS6586X is not set
+# CONFIG_GPIO_TPS65910 is not set
 # CONFIG_GPIO_TPS65912 is not set
 # CONFIG_GPIO_TWL4030 is not set
 # CONFIG_GPIO_TWL6040 is not set
 # CONFIG_GPIO_WM831X is not set
 # CONFIG_GPIO_WM8350 is not set
 # CONFIG_GPIO_WM8994 is not set
-# CONFIG_GPIO_ADP5520 is not set
-# CONFIG_GPIO_ADP5588 is not set
 
 #
-# PCI GPIO expanders:
+# PCI GPIO expanders
 #
-# CONFIG_GPIO_BT8XX is not set
 # CONFIG_GPIO_AMD8111 is not set
+# CONFIG_GPIO_BT8XX is not set
 # CONFIG_GPIO_ML_IOH is not set
 # CONFIG_GPIO_RDC321X is not set
 
 #
-# SPI GPIO expanders:
-#
-
-#
-# AC97 GPIO expanders:
-#
-
-#
-# LPC GPIO expanders:
-#
-# CONFIG_GPIO_KEMPLD is not set
-
-#
-# MODULbus GPIO expanders:
-#
-# CONFIG_GPIO_PALMAS is not set
-# CONFIG_GPIO_TPS6586X is not set
-# CONFIG_GPIO_TPS65910 is not set
-
-#
-# USB GPIO expanders:
+# USB GPIO expanders
 #
 CONFIG_GPIO_VIPERBOARD=m
 # CONFIG_W1 is not set
@@ -2262,6 +2269,7 @@ CONFIG_GENERIC_ADC_BATTERY=m
 # CONFIG_BATTERY_DS2782 is not set
 # CONFIG_BATTERY_SBS is not set
 # CONFIG_BATTERY_BQ27x00 is not set
+CONFIG_AXP288_FUEL_GAUGE=m
 # CONFIG_BATTERY_MAX17040 is not set
 # CONFIG_BATTERY_MAX17042 is not set
 # CONFIG_CHARGER_ISP1704 is not set
@@ -2364,6 +2372,7 @@ CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_NCT6683=m
 CONFIG_SENSORS_NCT6775=m
 CONFIG_SENSORS_NCT7802=m
+CONFIG_SENSORS_NCT7904=m
 CONFIG_SENSORS_PCF8591=m
 CONFIG_PMBUS=m
 CONFIG_SENSORS_PMBUS=m
@@ -2452,6 +2461,7 @@ CONFIG_MENF21BMC_WATCHDOG=m
 CONFIG_WM831X_WATCHDOG=m
 CONFIG_WM8350_WATCHDOG=m
 CONFIG_XILINX_WATCHDOG=m
+CONFIG_CADENCE_WATCHDOG=m
 CONFIG_DW_WATCHDOG=m
 CONFIG_RN5T618_WATCHDOG=m
 CONFIG_TWL4030_WATCHDOG=m
@@ -2497,6 +2507,7 @@ CONFIG_BCMA_BLOCKIO=y
 CONFIG_BCMA_HOST_PCI_POSSIBLE=y
 CONFIG_BCMA_HOST_PCI=y
 CONFIG_BCMA_HOST_SOC=y
+CONFIG_BCMA_DRIVER_PCI=y
 CONFIG_BCMA_DRIVER_GMAC_CMN=y
 # CONFIG_BCMA_DRIVER_GPIO is not set
 # CONFIG_BCMA_DEBUG is not set
@@ -2530,10 +2541,12 @@ CONFIG_MFD_88PM805=m
 CONFIG_MFD_88PM860X=y
 CONFIG_MFD_MAX14577=y
 CONFIG_MFD_MAX77693=y
+CONFIG_MFD_MAX77843=y
 CONFIG_MFD_MAX8907=m
 CONFIG_MFD_MAX8925=y
 CONFIG_MFD_MAX8997=y
 CONFIG_MFD_MAX8998=y
+CONFIG_MFD_MT6397=m
 CONFIG_MFD_MENF21BMC=m
 CONFIG_MFD_VIPERBOARD=m
 CONFIG_MFD_RETU=m
@@ -2548,6 +2561,7 @@ CONFIG_MFD_SEC_CORE=y
 # CONFIG_MFD_SI476X_CORE is not set
 CONFIG_MFD_SM501=m
 CONFIG_MFD_SM501_GPIO=y
+CONFIG_MFD_SKY81452=m
 CONFIG_MFD_SMSC=y
 CONFIG_MFD_SYSCON=y
 # CONFIG_MFD_TI_AM335X_TSCADC is not set
@@ -2570,7 +2584,6 @@ CONFIG_MFD_TWL4030_AUDIO=y
 CONFIG_TWL6040_CORE=y
 CONFIG_MFD_WL1273_CORE=m
 CONFIG_MFD_LM3533=m
-CONFIG_MFD_TC3589X=y
 # CONFIG_MFD_TMIO is not set
 # CONFIG_MFD_ARIZONA_I2C is not set
 CONFIG_MFD_WM8400=y
@@ -2613,6 +2626,8 @@ CONFIG_REGULATOR_MAX8973=m
 CONFIG_REGULATOR_MAX8997=m
 CONFIG_REGULATOR_MAX8998=m
 CONFIG_REGULATOR_MAX77693=m
+CONFIG_REGULATOR_MAX77843=m
+CONFIG_REGULATOR_MT6397=m
 CONFIG_REGULATOR_PALMAS=m
 CONFIG_REGULATOR_PFUZE100=m
 CONFIG_REGULATOR_RC5T583=m
@@ -2621,6 +2636,7 @@ CONFIG_REGULATOR_RT5033=m
 CONFIG_REGULATOR_S2MPA01=m
 CONFIG_REGULATOR_S2MPS11=m
 CONFIG_REGULATOR_S5M8767=m
+CONFIG_REGULATOR_SKY81452=m
 CONFIG_REGULATOR_TPS51632=m
 CONFIG_REGULATOR_TPS62360=m
 CONFIG_REGULATOR_TPS65023=m
@@ -3004,7 +3020,6 @@ CONFIG_MEDIA_TUNER_FC0013=m
 CONFIG_MEDIA_TUNER_TDA18212=m
 CONFIG_MEDIA_TUNER_E4000=m
 CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_M88TS2022=m
 CONFIG_MEDIA_TUNER_M88RS6000T=m
 CONFIG_MEDIA_TUNER_TUA9001=m
 CONFIG_MEDIA_TUNER_SI2157=m
@@ -3084,6 +3099,7 @@ CONFIG_DVB_NXT200X=m
 CONFIG_DVB_BCM3510=m
 CONFIG_DVB_LGDT330X=m
 CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_LGDT3306A=m
 CONFIG_DVB_S5H1409=m
 CONFIG_DVB_AU8522=m
 CONFIG_DVB_AU8522_DTV=m
@@ -3152,6 +3168,7 @@ CONFIG_DRM_R128=m
 CONFIG_DRM_MGA=m
 CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VGEM=m
 CONFIG_DRM_VMWGFX=m
 # CONFIG_DRM_VMWGFX_FBCON is not set
 CONFIG_DRM_UDL=m
@@ -3243,6 +3260,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
 # CONFIG_BACKLIGHT_AAT2870 is not set
 # CONFIG_BACKLIGHT_LM3639 is not set
 # CONFIG_BACKLIGHT_PANDORA is not set
+# CONFIG_BACKLIGHT_SKY81452 is not set
 # CONFIG_BACKLIGHT_AS3711 is not set
 # CONFIG_BACKLIGHT_GPIO is not set
 # CONFIG_BACKLIGHT_LV5207LP is not set
@@ -3284,9 +3302,7 @@ CONFIG_SND_MAX_CARDS=32
 # CONFIG_SND_SUPPORT_OLD_API is not set
 CONFIG_SND_VERBOSE_PROCFS=y
 CONFIG_SND_VERBOSE_PRINTK=y
-CONFIG_SND_DEBUG=y
-# CONFIG_SND_DEBUG_VERBOSE is not set
-CONFIG_SND_PCM_XRUN_DEBUG=y
+# CONFIG_SND_DEBUG is not set
 CONFIG_SND_VMASTER=y
 CONFIG_SND_KCTL_JACK=y
 CONFIG_SND_RAWMIDI_SEQ=m
@@ -3398,6 +3414,7 @@ CONFIG_SND_HDA_CODEC_CMEDIA=m
 CONFIG_SND_HDA_CODEC_SI3054=m
 CONFIG_SND_HDA_GENERIC=m
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDA_CORE=m
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
 CONFIG_SND_USB_UA101=m
@@ -3444,7 +3461,6 @@ CONFIG_HID_CYPRESS=y
 CONFIG_HID_EZKEY=y
 # CONFIG_HID_HOLTEK is not set
 CONFIG_HID_GT683R=m
-# CONFIG_HID_HUION is not set
 CONFIG_HID_KEYTOUCH=m
 CONFIG_HID_KYE=y
 # CONFIG_HID_UCLOGIC is not set
@@ -3499,6 +3515,7 @@ CONFIG_HID_THINGM=m
 # CONFIG_HID_ZEROPLUS is not set
 CONFIG_HID_ZYDACRON=m
 CONFIG_HID_SENSOR_HUB=m
+# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
 
 #
 # USB HID support
@@ -3617,7 +3634,6 @@ CONFIG_USB_DWC3_PCI=m
 # Debugging features
 #
 # CONFIG_USB_DWC3_DEBUG is not set
-CONFIG_DWC3_HOST_USB3_LPM_ENABLE=y
 CONFIG_USB_DWC2=y
 CONFIG_USB_DWC2_HOST=y
 
@@ -3629,6 +3645,7 @@ CONFIG_USB_DWC2_PCI=y
 # CONFIG_USB_DWC2_DEBUG is not set
 # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
 CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_PCI=m
 # CONFIG_USB_CHIPIDEA_HOST is not set
 # CONFIG_USB_CHIPIDEA_DEBUG is not set
 CONFIG_USB_ISP1760=m
@@ -3719,6 +3736,7 @@ CONFIG_USB_YUREX=m
 CONFIG_USB_EZUSB_FX2=m
 CONFIG_USB_HSIC_USB3503=m
 CONFIG_USB_LINK_LAYER_TEST=m
+CONFIG_USB_CHAOSKEY=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -3729,6 +3747,7 @@ CONFIG_USB_XUSBATM=m
 # USB Physical Layer drivers
 #
 CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
 CONFIG_USB_GPIO_VBUS=m
 CONFIG_USB_ISP1301=m
 # CONFIG_USB_GADGET is not set
@@ -3818,6 +3837,7 @@ CONFIG_LEDS_MENF21BMC=m
 # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
 #
 CONFIG_LEDS_BLINKM=m
+CONFIG_LEDS_PM8941_WLED=m
 
 #
 # LED Triggers
@@ -3860,6 +3880,7 @@ CONFIG_RTC_INTF_DEV=y
 CONFIG_RTC_DRV_88PM860X=m
 CONFIG_RTC_DRV_88PM80X=m
 CONFIG_RTC_DRV_ABB5ZES3=m
+CONFIG_RTC_DRV_ABX80X=m
 CONFIG_RTC_DRV_DS1307=m
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1374_WDT=y
@@ -3947,8 +3968,10 @@ CONFIG_DMADEVICES=y
 #
 # DMA Devices
 #
-CONFIG_DW_DMAC_CORE=m
+CONFIG_HSU_DMA=m
+CONFIG_HSU_DMA_PCI=m
 CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=m
 
 #
 # DMA Clients
@@ -3970,6 +3993,7 @@ CONFIG_VIRTIO=m
 CONFIG_VIRTIO_PCI=m
 CONFIG_VIRTIO_PCI_LEGACY=y
 CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
 CONFIG_VIRTIO_MMIO=m
 # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
 
@@ -4061,6 +4085,7 @@ CONFIG_SENSORS_HMC5843_I2C=m
 # CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set
 # CONFIG_IIO_SIMPLE_DUMMY is not set
 # CONFIG_FB_SM7XX is not set
+# CONFIG_FB_SM750 is not set
 # CONFIG_FB_XGI is not set
 # CONFIG_FT1000 is not set
 
@@ -4247,6 +4272,7 @@ CONFIG_DHT11=m
 # CONFIG_APDS9300 is not set
 CONFIG_CM32181=m
 # CONFIG_CM3232 is not set
+# CONFIG_CM3323 is not set
 # CONFIG_CM36651 is not set
 # CONFIG_GP2AP020A00F is not set
 # CONFIG_ISL29125 is not set
@@ -4289,6 +4315,7 @@ CONFIG_IIO_INTERRUPT_TRIGGER=m
 # CONFIG_HID_SENSOR_PRESS is not set
 # CONFIG_MPL115 is not set
 CONFIG_MPL3115=m
+# CONFIG_MS5611 is not set
 CONFIG_IIO_ST_PRESS=m
 CONFIG_IIO_ST_PRESS_I2C=m
 # CONFIG_T5403 is not set
@@ -4345,6 +4372,8 @@ CONFIG_EXT4_FS=y
 CONFIG_EXT4_USE_FOR_EXT23=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_ENCRYPTION=m
+CONFIG_EXT4_FS_ENCRYPTION=y
 # CONFIG_EXT4_DEBUG is not set
 CONFIG_JBD2=y
 # CONFIG_JBD2_DEBUG is not set
@@ -4371,6 +4400,7 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
 # CONFIG_BTRFS_DEBUG is not set
 # CONFIG_BTRFS_ASSERT is not set
 # CONFIG_NILFS2_FS is not set
+# CONFIG_F2FS_FS is not set
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
 CONFIG_FILE_LOCKING=y
@@ -4462,7 +4492,6 @@ CONFIG_PSTORE=y
 # CONFIG_SYSV_FS is not set
 # CONFIG_UFS_FS is not set
 # CONFIG_EXOFS_FS is not set
-# CONFIG_F2FS_FS is not set
 CONFIG_ORE=m
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
@@ -4608,7 +4637,6 @@ CONFIG_DEBUG_KERNEL=y
 #
 # CONFIG_PAGE_EXTENSION is not set
 # CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
 # CONFIG_SLUB_STATS is not set
 CONFIG_HAVE_DEBUG_KMEMLEAK=y
 # CONFIG_DEBUG_KMEMLEAK is not set
@@ -4627,9 +4655,10 @@ CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
 # CONFIG_PANIC_ON_OOPS is not set
 CONFIG_PANIC_ON_OOPS_VALUE=0
 CONFIG_PANIC_TIMEOUT=120
-CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHED_DEBUG is not set
 CONFIG_SCHEDSTATS=y
 CONFIG_SCHED_STACK_END_CHECK=y
+# CONFIG_DEBUG_TIMEKEEPING is not set
 CONFIG_TIMER_STATS=y
 
 #
@@ -4653,6 +4682,7 @@ CONFIG_DEBUG_LIST=y
 #
 # RCU Debugging
 #
+# CONFIG_PROVE_RCU is not set
 # CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_TORTURE_TEST is not set
 # CONFIG_RCU_TORTURE_TEST is not set
@@ -4693,6 +4723,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
 # CONFIG_TRACEPOINT_BENCHMARK is not set
 CONFIG_RING_BUFFER_BENCHMARK=m
 # CONFIG_RING_BUFFER_STARTUP_TEST is not set
+# CONFIG_TRACE_ENUM_MAP_FILE is not set
 
 #
 # Runtime Testing
@@ -4716,6 +4747,7 @@ CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_TEST_BPF is not set
 # CONFIG_TEST_FIRMWARE is not set
 # CONFIG_TEST_UDELAY is not set
+# CONFIG_MEMTEST is not set
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
@@ -4759,7 +4791,7 @@ CONFIG_GRKERNSEC_PROC_GID=10
 #
 CONFIG_PAX_MEMORY_SANITIZE=y
 CONFIG_PAX_MEMORY_STRUCTLEAK=y
-# CONFIG_PAX_LATENT_ENTROPY is not set
+CONFIG_PAX_LATENT_ENTROPY=y
 
 #
 # Memory Protections
@@ -4770,7 +4802,8 @@ CONFIG_GRKERNSEC_BPF_HARDEN=y
 CONFIG_GRKERNSEC_BRUTE=y
 # CONFIG_GRKERNSEC_MODHARDEN is not set
 CONFIG_GRKERNSEC_HIDESYM=y
-# CONFIG_GRKERNSEC_RANDSTRUCT is not set
+CONFIG_GRKERNSEC_RANDSTRUCT=y
+CONFIG_GRKERNSEC_RANDSTRUCT_PERFORMANCE=y
 
 #
 # Role Based Access Control Options
@@ -4859,7 +4892,7 @@ CONFIG_GRKERNSEC_FLOODBURST=6
 CONFIG_KEYS=y
 CONFIG_PERSISTENT_KEYRINGS=y
 # CONFIG_BIG_KEYS is not set
-# CONFIG_ENCRYPTED_KEYS is not set
+CONFIG_ENCRYPTED_KEYS=m
 CONFIG_SECURITY_DMESG_RESTRICT=y
 CONFIG_SECURITY=y
 CONFIG_SECURITYFS=y
index ee28ec1156eedc13ffb5caa3ec9fc18c2b131627..e35bd6d313d5d1bcfd5e3caf6423edcec6a02f5f 100644 (file)
@@ -2,10 +2,9 @@
 CONFIG_X86_32=y
 CONFIG_OUTPUT_FORMAT="elf32-i386"
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
-# CONFIG_ZONE_DMA32 is not set
-# CONFIG_AUDIT_ARCH is not set
 CONFIG_X86_32_SMP=y
 CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
+CONFIG_PGTABLE_LEVELS=3
 
 #
 # Timers subsystem
@@ -233,9 +232,13 @@ CONFIG_SCx200_ACB=m
 CONFIG_PTP_1588_CLOCK_PCH=m
 
 #
-# PCI GPIO expanders:
+# MFD GPIO expanders
 #
 # CONFIG_GPIO_CS5535 is not set
+
+#
+# PCI GPIO expanders
+#
 # CONFIG_GPIO_PCH is not set
 
 #
index baa12a65caa678e67fbffbdb1e35cba710fbe28e..bf8ef09f202356653829b0af5acfaf045984b2df 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_PGTABLE_LEVELS=2
 
 #
 # Processor type and features
@@ -91,7 +92,9 @@ CONFIG_MDIO_BUS_MUX_MMIOREG=m
 #
 CONFIG_KEYBOARD_STMPE=m
 CONFIG_KEYBOARD_OMAP4=m
+CONFIG_KEYBOARD_TC3589X=m
 CONFIG_KEYBOARD_CAP11XX=m
+CONFIG_KEYBOARD_BCM=m
 CONFIG_MOUSE_PS2_OLPC=y
 CONFIG_INPUT_MAX77693_HAPTIC=m
 CONFIG_INPUT_MAX8997_HAPTIC=m
@@ -135,35 +138,35 @@ CONFIG_PINCTRL_AS3722=y
 # CONFIG_PINCTRL_SINGLE is not set
 CONFIG_PINCTRL_PALMAS=y
 CONFIG_OF_GPIO=y
-CONFIG_GPIO_GENERIC=m
 
 #
-# Memory mapped GPIO drivers:
+# Memory mapped GPIO drivers
 #
 CONFIG_GPIO_74XX_MMIO=m
+CONFIG_GPIO_ALTERA=m
+# CONFIG_GPIO_GRGPIO is not set
 # CONFIG_GPIO_SYSCON is not set
 # CONFIG_GPIO_XILINX is not set
-# CONFIG_GPIO_GRGPIO is not set
 
 #
-# I2C GPIO expanders:
+# I2C GPIO expanders
 #
-# CONFIG_GPIO_STMPE is not set
 CONFIG_GPIO_ADNP=m
 
 #
-# PCI GPIO expanders:
+# MFD GPIO expanders
 #
 CONFIG_GPIO_CS5535=y
-# CONFIG_GPIO_SODAVILLE is not set
+# CONFIG_GPIO_STMPE is not set
+# CONFIG_GPIO_TC3589X is not set
 
 #
-# SPI GPIO expanders:
+# PCI GPIO expanders
 #
-# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_SODAVILLE is not set
 
 #
-# USB GPIO expanders:
+# USB GPIO expanders
 #
 CONFIG_BATTERY_OLPC=y
 CONFIG_POWER_RESET_AS3722=y
@@ -171,6 +174,7 @@ CONFIG_POWER_RESET_GPIO=y
 CONFIG_POWER_RESET_GPIO_RESTART=y
 CONFIG_POWER_RESET_LTC2952=y
 CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
 
 #
 # Native drivers
@@ -202,6 +206,7 @@ CONFIG_MFD_STMPE=y
 # STMicroelectronics STMPE Interface Drivers
 #
 CONFIG_STMPE_I2C=y
+CONFIG_MFD_TC3589X=y
 CONFIG_REGULATOR_AS3722=m
 CONFIG_REGULATOR_HI6421=m
 CONFIG_REGULATOR_MAX77686=m
@@ -210,10 +215,16 @@ CONFIG_REGULATOR_PWM=m
 CONFIG_REGULATOR_RK808=m
 CONFIG_REGULATOR_TPS65218=m
 
+#
+# Media digital TV PCI Adapters
+#
+# CONFIG_VIDEO_XILINX is not set
+
 #
 # I2C encoder or helper chips
 #
 CONFIG_DRM_PTN3460=m
+CONFIG_DRM_PS8622=m
 
 #
 # Display Panels
@@ -232,6 +243,11 @@ CONFIG_BACKLIGHT_PWM=m
 # CONFIG_BACKLIGHT_LP8788 is not set
 # CONFIG_BACKLIGHT_OT200 is not set
 
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+CONFIG_USB_CHIPIDEA_OF=m
+
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
@@ -266,7 +282,6 @@ CONFIG_RTC_DRV_SNVS=m
 # DMA Devices
 #
 CONFIG_FSL_EDMA=m
-CONFIG_DMA_VIRTUAL_CHANNELS=m
 CONFIG_DMA_OF=y
 
 #
@@ -290,17 +305,7 @@ CONFIG_COMMON_CLK_MAX77802=m
 CONFIG_COMMON_CLK_RK808=m
 # CONFIG_COMMON_CLK_SI5351 is not set
 CONFIG_COMMON_CLK_SI570=m
-CONFIG_COMMON_CLK_QCOM=m
-CONFIG_APQ_GCC_8084=m
-CONFIG_APQ_MMCC_8084=m
-CONFIG_IPQ_GCC_806X=m
-CONFIG_IPQ_LCC_806X=m
-CONFIG_MSM_GCC_8660=m
-CONFIG_MSM_GCC_8960=m
-CONFIG_MSM_LCC_8960=m
-CONFIG_MSM_MMCC_8960=m
-CONFIG_MSM_GCC_8974=m
-CONFIG_MSM_MMCC_8974=m
+CONFIG_COMMON_CLK_PWM=m
 
 #
 # Generic IOMMU Pagetable Support
index 6f3ba6908aeba72bd6bb7eb685b7c3813fa29228..ed613edb7fa33fbeb8662197cd33b4688cea69a4 100644 (file)
@@ -55,7 +55,6 @@ CONFIG_RCU_NOCB_CPU=y
 CONFIG_RCU_NOCB_CPU_ALL=y
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
 CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_UID16=y
 CONFIG_PCSPKR_PLATFORM=y
 
 #
@@ -67,7 +66,6 @@ CONFIG_OPROFILE_NMI_TIMER=y
 CONFIG_ARCH_USE_BUILTIN_BSWAP=y
 CONFIG_USER_RETURN_NOTIFIER=y
 CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_OLD_SIGSUSPEND3=y
 
 #
 # IO Schedulers
@@ -102,7 +100,6 @@ CONFIG_KVM_GUEST=y
 # CONFIG_KVM_DEBUG_FS is not set
 CONFIG_PARAVIRT_TIME_ACCOUNTING=y
 CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_MEMTEST is not set
 # CONFIG_MK8 is not set
 # CONFIG_MCORE2 is not set
 # CONFIG_MATOM is not set
@@ -122,7 +119,6 @@ CONFIG_DMI=y
 CONFIG_NR_CPUS=64
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
-CONFIG_X86_UP_APIC_MSI=y
 CONFIG_X86_LOCAL_APIC=y
 CONFIG_X86_IO_APIC=y
 CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
@@ -137,8 +133,6 @@ CONFIG_MICROCODE=m
 CONFIG_MICROCODE_INTEL=y
 CONFIG_MICROCODE_AMD=y
 CONFIG_MICROCODE_OLD_INTERFACE=y
-# CONFIG_MICROCODE_INTEL_EARLY is not set
-# CONFIG_MICROCODE_AMD_EARLY is not set
 # CONFIG_X86_MSR is not set
 CONFIG_X86_CPUID=y
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
@@ -159,6 +153,7 @@ CONFIG_TRANSPARENT_HUGEPAGE=y
 CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
 # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_X86_PMEM_LEGACY=y
 CONFIG_X86_CHECK_BIOS_CORRUPTION=y
 CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
 CONFIG_X86_RESERVE_LOW=64
@@ -187,6 +182,7 @@ CONFIG_HOTPLUG_CPU=y
 # CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
 # CONFIG_DEBUG_HOTPLUG_CPU0 is not set
 # CONFIG_CMDLINE_BOOL is not set
+# CONFIG_DEFAULT_MODIFY_LDT_SYSCALL is not set
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 
 #
@@ -196,9 +192,10 @@ CONFIG_PM_SLEEP_SMP=y
 CONFIG_ACPI=y
 CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
 CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
+CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
 CONFIG_ACPI_SLEEP=y
 # CONFIG_ACPI_PROCFS_POWER is not set
-CONFIG_ACPI_EC_DEBUGFS=m
+# CONFIG_ACPI_EC_DEBUGFS is not set
 CONFIG_ACPI_AC=y
 CONFIG_ACPI_BATTERY=y
 CONFIG_ACPI_BUTTON=y
@@ -273,6 +270,7 @@ CONFIG_PCIE_ECRC=y
 CONFIG_PCIEAER_INJECT=m
 # CONFIG_PCIEASPM_DEFAULT is not set
 CONFIG_PCIEASPM_POWERSAVE=y
+CONFIG_PCI_BUS_ADDR_T_64BIT=y
 CONFIG_PCI_MSI=y
 CONFIG_PCI_STUB=y
 CONFIG_HT_IRQ=y
@@ -394,10 +392,7 @@ CONFIG_VMWARE_VMCI=m
 # SCSI Transports
 #
 CONFIG_AIC79XX_RESET_DELAY_MS=4000
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
-# CONFIG_AIC94XX_DEBUG is not set
-# CONFIG_SCSI_MVSAS_DEBUG is not set
 CONFIG_SCSI_MVSAS_TASKLET=y
 CONFIG_SCSI_DPT_I2O=m
 CONFIG_SCSI_ADVANSYS=m
@@ -462,6 +457,7 @@ CONFIG_VHOST=m
 #
 CONFIG_VORTEX=m
 CONFIG_AMD8111_ETH=m
+CONFIG_MACB=m
 CONFIG_BNX2X_SRIOV=y
 CONFIG_CHELSIO_T1_1G=y
 CONFIG_CX_ECAT=m
@@ -496,7 +492,6 @@ CONFIG_NET_SB1000=m
 #
 # CONFIG_PLIP is not set
 CONFIG_AIRO=m
-CONFIG_ATH5K_DEBUG=y
 # CONFIG_WIL6210_TRACING is not set
 CONFIG_IPW2100_MONITOR=y
 CONFIG_IPW2200_MONITOR=y
@@ -520,8 +515,8 @@ CONFIG_INPUT_MATRIXKMAP=m
 #
 CONFIG_KEYBOARD_ADP5520=m
 CONFIG_KEYBOARD_SAMSUNG=m
-CONFIG_KEYBOARD_TC3589X=m
 CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_VMMOUSE=y
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_APANEL=m
 CONFIG_INPUT_GPIO_BEEPER=m
@@ -637,32 +632,32 @@ CONFIG_PINMUX=y
 CONFIG_PINCONF=y
 CONFIG_GENERIC_PINCONF=y
 # CONFIG_DEBUG_PINCTRL is not set
+CONFIG_PINCTRL_AMD=y
 # CONFIG_PINCTRL_BAYTRAIL is not set
 CONFIG_PINCTRL_CHERRYVIEW=m
+CONFIG_PINCTRL_INTEL=m
+CONFIG_PINCTRL_SUNRISEPOINT=m
 CONFIG_GPIO_ACPI=y
+CONFIG_GPIO_GENERIC=m
 
 #
-# Memory mapped GPIO drivers:
+# Memory mapped GPIO drivers
 #
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-# CONFIG_GPIO_IT8761E is not set
+CONFIG_GPIO_DWAPB=m
 # CONFIG_GPIO_F7188X is not set
-CONFIG_GPIO_SCH=m
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
 CONFIG_GPIO_ICH=m
+# CONFIG_GPIO_IT8761E is not set
 # CONFIG_GPIO_LYNXPOINT is not set
+CONFIG_GPIO_SCH=m
 
 #
-# PCI GPIO expanders:
+# PCI GPIO expanders
 #
 # CONFIG_GPIO_INTEL_MID is not set
 
 #
-# SPI GPIO expanders:
-#
-CONFIG_GPIO_MCP23S08=m
-
-#
-# USB GPIO expanders:
+# USB GPIO expanders
 #
 CONFIG_MAX8925_POWER=m
 CONFIG_WM831X_BACKUP=m
@@ -748,6 +743,7 @@ CONFIG_WDTPCI=m
 #
 # Multifunction device drivers
 #
+CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
 CONFIG_LPC_ICH=m
 CONFIG_MFD_RTSX_PCI=m
 # CONFIG_ABX500_CORE is not set
@@ -928,6 +924,7 @@ CONFIG_DRM_MIPI_DSI=y
 # CONFIG_DRM_I2C_SIL164 is not set
 CONFIG_DRM_I2C_NXP_TDA998X=m
 CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_USERPTR is not set
 # CONFIG_DRM_RADEON_UMS is not set
 CONFIG_DRM_NOUVEAU=m
 CONFIG_NOUVEAU_DEBUG=5
@@ -1003,11 +1000,6 @@ CONFIG_MUSB_PIO_ONLY=y
 CONFIG_USB_USS720=m
 CONFIG_USB_SERIAL_MOS7715_PARPORT=y
 
-#
-# USB Physical Layer drivers
-#
-CONFIG_NOP_USB_XCEIV=m
-
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
@@ -1059,8 +1051,8 @@ CONFIG_RTC_DRV_CMOS=y
 #
 # DMA Devices
 #
-# CONFIG_INTEL_MID_DMAC is not set
 CONFIG_INTEL_IOATDMA=m
+CONFIG_DW_DMAC_CORE=m
 CONFIG_DW_DMAC=m
 CONFIG_DW_DMAC_PCI=m
 CONFIG_DMA_ACPI=y
index da287bb41ae1bfaaa66f831ee43dcdb564297c6e..beaf5cad3f589e0a8002513705d0c5ec0500d0b1 100644 (file)
@@ -7,6 +7,7 @@ CONFIG_ZONE_DMA32=y
 CONFIG_AUDIT_ARCH=y
 CONFIG_X86_64_SMP=y
 CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
+CONFIG_PGTABLE_LEVELS=4
 
 #
 # Timers subsystem
@@ -30,7 +31,6 @@ CONFIG_RCU_USER_QS=y
 CONFIG_CONTEXT_TRACKING_FORCE=y
 CONFIG_RCU_FANOUT=64
 CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
-CONFIG_ARCH_SUPPORTS_INT128=y
 # CONFIG_NUMA_BALANCING is not set
 
 #
@@ -63,7 +63,7 @@ CONFIG_SWIOTLB=y
 CONFIG_IOMMU_HELPER=y
 # CONFIG_MAXSMP is not set
 CONFIG_X86_VSYSCALL_EMULATION=y
-CONFIG_DIRECT_GBPAGES=y
+CONFIG_X86_DIRECT_GBPAGES=y
 CONFIG_NUMA=y
 CONFIG_AMD_NUMA=y
 CONFIG_X86_64_ACPI_NUMA=y
@@ -212,7 +212,6 @@ CONFIG_QUOTACTL_COMPAT=y
 #
 # Memory Debugging
 #
-# CONFIG_KASAN is not set
 CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
 
 #
index 0978786724c244d5323415fbb41c64a014e8514f..45369472c2787dd3fa497c35c0b2e5b82be52dec 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = kernel
-version    = 4.0.4
-release    = 2
+version    = 4.1.3
+release    = 1
 thisapp    = linux-%{version}
 
 maintainer = Arne Fitzenreiter <arne.fitzenreiter@ipfire.org>
similarity index 91%
rename from kernel/patches/grsecurity-3.1-4.0.4-201505272113.patch
rename to kernel/patches/grsecurity-3.1-4.1.3-201507261932.patch
index b338663c231cf3f455cd453b168cb93a2b95e405..c2c4dedcf4f057892ad3f51b1b7f5de257ccce82 100644 (file)
@@ -313,10 +313,10 @@ index 74b6c6d..eac0e77 100644
        A typical pattern in a Kbuild file looks like this:
  
 diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
-index 4d68ec8..9546b75 100644
+index 6726139..c825c0a 100644
 --- a/Documentation/kernel-parameters.txt
 +++ b/Documentation/kernel-parameters.txt
-@@ -1203,6 +1203,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -1223,6 +1223,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
                        Default: 1024
  
@@ -330,7 +330,7 @@ index 4d68ec8..9546b75 100644
        hashdist=       [KNL,NUMA] Large hashes allocated during boot
                        are distributed across NUMA nodes.  Defaults on
                        for 64-bit NUMA, off otherwise.
-@@ -2300,6 +2307,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -2333,6 +2340,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        noexec=on: enable non-executable mappings (default)
                        noexec=off: disable non-executable mappings
  
@@ -341,7 +341,7 @@ index 4d68ec8..9546b75 100644
        nosmap          [X86]
                        Disable SMAP (Supervisor Mode Access Prevention)
                        even if it is supported by processor.
-@@ -2601,6 +2612,30 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -2631,6 +2642,30 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        the specified number of seconds.  This is to be used if
                        your oopses keep scrolling off the screen.
  
@@ -372,11 +372,44 @@ index 4d68ec8..9546b75 100644
        pcbit=          [HW,ISDN]
  
        pcd.            [PARIDE]
+diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt
+index c831001..1bfbbf6 100644
+--- a/Documentation/sysctl/kernel.txt
++++ b/Documentation/sysctl/kernel.txt
+@@ -41,6 +41,7 @@ show up in /proc/sys/kernel:
+ - kptr_restrict
+ - kstack_depth_to_print       [ X86 only ]
+ - l2cr                        [ PPC only ]
++- modify_ldt                  [ X86 only ]
+ - modprobe                    ==> Documentation/debugging-modules.txt
+ - modules_disabled
+ - msg_next_id               [ sysv ipc ]
+@@ -391,6 +392,20 @@ This flag controls the L2 cache of G3 processor boards. If
+ ==============================================================
++modify_ldt: (X86 only)
++
++Enables (1) or disables (0) the modify_ldt syscall. Modifying the LDT
++(Local Descriptor Table) may be needed to run a 16-bit or segmented code
++such as Dosemu or Wine. This is done via a system call which is not needed
++to run portable applications, and which can sometimes be abused to exploit
++some weaknesses of the architecture, opening new vulnerabilities.
++
++This sysctl allows one to increase the system's security by disabling the
++system call, or to restore compatibility with specific applications when it
++was already disabled.
++
++==============================================================
++
+ modules_disabled:
+ A toggle value indicating if modules are allowed to be loaded
 diff --git a/Makefile b/Makefile
-index 3d16bcc..c31faf4 100644
+index e3cdec4..56ae73d 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -298,7 +298,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
+@@ -299,7 +299,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
  HOSTCC       = gcc
  HOSTCXX      = g++
  HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
@@ -387,7 +420,7 @@ index 3d16bcc..c31faf4 100644
  
  ifeq ($(shell $(HOSTCC) -v 2>&1 | grep -c "clang version"), 1)
  HOSTCFLAGS  += -Wno-unused-value -Wno-unused-parameter \
-@@ -446,8 +448,8 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
+@@ -444,8 +446,8 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
  # Rules shared between *config targets and build targets
  
  # Basic helpers built in scripts/
@@ -398,7 +431,7 @@ index 3d16bcc..c31faf4 100644
        $(Q)$(MAKE) $(build)=scripts/basic
        $(Q)rm -f .tmp_quiet_recordmcount
  
-@@ -622,6 +624,74 @@ endif
+@@ -620,6 +622,74 @@ endif
  # Tell gcc to never replace conditional load with a non-conditional one
  KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
  
@@ -473,7 +506,7 @@ index 3d16bcc..c31faf4 100644
  ifdef CONFIG_READABLE_ASM
  # Disable optimizations that make assembler listings hard to read.
  # reorder blocks reorders the control in the function
-@@ -714,7 +784,7 @@ KBUILD_CFLAGS   += $(call cc-option, -gsplit-dwarf, -g)
+@@ -712,7 +782,7 @@ KBUILD_CFLAGS   += $(call cc-option, -gsplit-dwarf, -g)
  else
  KBUILD_CFLAGS += -g
  endif
@@ -482,7 +515,7 @@ index 3d16bcc..c31faf4 100644
  endif
  ifdef CONFIG_DEBUG_INFO_DWARF4
  KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,)
-@@ -884,7 +954,7 @@ export mod_sign_cmd
+@@ -883,7 +953,7 @@ export mod_sign_cmd
  
  
  ifeq ($(KBUILD_EXTMOD),)
@@ -491,7 +524,7 @@ index 3d16bcc..c31faf4 100644
  
  vmlinux-dirs  := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
                     $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
-@@ -934,6 +1004,8 @@ endif
+@@ -933,6 +1003,8 @@ endif
  
  # The actual objects are generated when descending,
  # make sure no implicit rule kicks in
@@ -500,7 +533,7 @@ index 3d16bcc..c31faf4 100644
  $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
  
  # Handle descending into subdirectories listed in $(vmlinux-dirs)
-@@ -943,7 +1015,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
+@@ -942,7 +1014,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
  # Error messages still appears in the original language
  
  PHONY += $(vmlinux-dirs)
@@ -509,7 +542,7 @@ index 3d16bcc..c31faf4 100644
        $(Q)$(MAKE) $(build)=$@
  
  define filechk_kernel.release
-@@ -986,10 +1058,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
+@@ -985,10 +1057,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
  
  archprepare: archheaders archscripts prepare1 scripts_basic
  
@@ -523,7 +556,7 @@ index 3d16bcc..c31faf4 100644
  prepare: prepare0
  
  # Generate some files
-@@ -1103,6 +1178,8 @@ all: modules
+@@ -1096,6 +1171,8 @@ all: modules
  # using awk while concatenating to the final file.
  
  PHONY += modules
@@ -532,7 +565,7 @@ index 3d16bcc..c31faf4 100644
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
        $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
        @$(kecho) '  Building modules, stage 2.';
-@@ -1118,7 +1195,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
+@@ -1111,7 +1188,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
  
  # Target to prepare building external modules
  PHONY += modules_prepare
@@ -541,7 +574,7 @@ index 3d16bcc..c31faf4 100644
  
  # Target to install modules
  PHONY += modules_install
-@@ -1184,7 +1261,10 @@ MRPROPER_FILES += .config .config.old .version .old_version \
+@@ -1177,7 +1254,10 @@ MRPROPER_FILES += .config .config.old .version .old_version \
                  Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
                  signing_key.priv signing_key.x509 x509.genkey         \
                  extra_certificates signing_key.x509.keyid             \
@@ -553,7 +586,7 @@ index 3d16bcc..c31faf4 100644
  
  # clean - Delete most, but leave enough to build external modules
  #
-@@ -1223,7 +1303,7 @@ distclean: mrproper
+@@ -1216,7 +1296,7 @@ distclean: mrproper
        @find $(srctree) $(RCS_FIND_IGNORE) \
                \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
                -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
@@ -562,7 +595,7 @@ index 3d16bcc..c31faf4 100644
                -type f -print | xargs rm -f
  
  
-@@ -1389,6 +1469,8 @@ PHONY += $(module-dirs) modules
+@@ -1382,6 +1462,8 @@ PHONY += $(module-dirs) modules
  $(module-dirs): crmodverdir $(objtree)/Module.symvers
        $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
  
@@ -571,7 +604,7 @@ index 3d16bcc..c31faf4 100644
  modules: $(module-dirs)
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1529,17 +1611,21 @@ else
+@@ -1522,17 +1604,21 @@ else
          target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
  endif
  
@@ -597,7 +630,7 @@ index 3d16bcc..c31faf4 100644
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
  %.symtypes: %.c prepare scripts FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-@@ -1551,11 +1637,15 @@ endif
+@@ -1544,11 +1630,15 @@ endif
        $(build)=$(build-dir)
  # Make sure the latest headers are built for Documentation
  Documentation/: headers_install
@@ -731,10 +764,10 @@ index 2fd00b7..cfd5069 100644
  
        for (i = 0; i < n; i++) {
 diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
-index e51f578..16c64a3 100644
+index 36dc91a..6769cb0 100644
 --- a/arch/alpha/kernel/osf_sys.c
 +++ b/arch/alpha/kernel/osf_sys.c
-@@ -1296,10 +1296,11 @@ SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
+@@ -1295,10 +1295,11 @@ SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
     generic version except that we know how to honor ADDR_LIMIT_32BIT.  */
  
  static unsigned long
@@ -748,7 +781,7 @@ index e51f578..16c64a3 100644
  
        info.flags = 0;
        info.length = len;
-@@ -1307,6 +1308,7 @@ arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
+@@ -1306,6 +1307,7 @@ arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
        info.high_limit = limit;
        info.align_mask = 0;
        info.align_offset = 0;
@@ -756,7 +789,7 @@ index e51f578..16c64a3 100644
        return vm_unmapped_area(&info);
  }
  
-@@ -1339,20 +1341,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -1338,20 +1340,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
           merely specific addresses, but regions of memory -- perhaps
           this feature should be incorporated into all ports?  */
  
@@ -946,10 +979,10 @@ index 9d0ac09..479a962 100644
                /* Allow reads even for write-only mappings */
                if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index cf4c0c9..a87ecf5 100644
+index 45df48b..952017a 100644
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1735,7 +1735,7 @@ config ALIGNMENT_TRAP
+@@ -1716,7 +1716,7 @@ config ALIGNMENT_TRAP
  
  config UACCESS_WITH_MEMCPY
        bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
@@ -958,7 +991,7 @@ index cf4c0c9..a87ecf5 100644
        default y if CPU_FEROCEON
        help
          Implement faster copy_to_user and clear_user methods for CPU
-@@ -1999,6 +1999,7 @@ config XIP_PHYS_ADDR
+@@ -1951,6 +1951,7 @@ config XIP_PHYS_ADDR
  config KEXEC
        bool "Kexec system call (EXPERIMENTAL)"
        depends on (!SMP || PM_SLEEP_SMP)
@@ -1618,6 +1651,19 @@ index abb2c37..96db950 100644
  
  #include <asm-generic/cmpxchg-local.h>
  
+diff --git a/arch/arm/include/asm/cpuidle.h b/arch/arm/include/asm/cpuidle.h
+index 0f84249..8e83c55 100644
+--- a/arch/arm/include/asm/cpuidle.h
++++ b/arch/arm/include/asm/cpuidle.h
+@@ -32,7 +32,7 @@ struct device_node;
+ struct cpuidle_ops {
+       int (*suspend)(int cpu, unsigned long arg);
+       int (*init)(struct device_node *, int cpu);
+-};
++} __no_const;
+ struct of_cpuidle_method {
+       const char *method;
 diff --git a/arch/arm/include/asm/domain.h b/arch/arm/include/asm/domain.h
 index 6ddbe44..b5e38b1a 100644
 --- a/arch/arm/include/asm/domain.h
@@ -1680,10 +1726,10 @@ index 6ddbe44..b5e38b1a 100644
  static inline void set_domain(unsigned val) { }
  static inline void modify_domain(unsigned dom, unsigned type) { }
 diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
-index 674d03f..9a0bac0 100644
+index d2315ff..f60b47b 100644
 --- a/arch/arm/include/asm/elf.h
 +++ b/arch/arm/include/asm/elf.h
-@@ -115,7 +115,14 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
+@@ -117,7 +117,14 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
     the loader.  We need to make sure that it is out of the way of the program
     that it will "exec", and that there is sufficient room for the brk.  */
  
@@ -1699,17 +1745,6 @@ index 674d03f..9a0bac0 100644
  
  /* When the program starts, a1 contains a pointer to a function to be 
     registered with atexit, as per the SVR4 ABI.  A value of 0 means we 
-@@ -125,10 +132,6 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
- extern void elf_set_personality(const struct elf32_hdr *);
- #define SET_PERSONALITY(ex)   elf_set_personality(&(ex))
--struct mm_struct;
--extern unsigned long arch_randomize_brk(struct mm_struct *mm);
--#define arch_randomize_brk arch_randomize_brk
--
- #ifdef CONFIG_MMU
- #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
- struct linux_binprm;
 diff --git a/arch/arm/include/asm/fncpy.h b/arch/arm/include/asm/fncpy.h
 index de53547..52b9a28 100644
 --- a/arch/arm/include/asm/fncpy.h
@@ -1725,7 +1760,7 @@ index de53547..52b9a28 100644
                (unsigned long)(dest_buf) + (size));                    \
                                                                        \
 diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h
-index 53e69da..3fdc896 100644
+index 4e78065..f265b48 100644
 --- a/arch/arm/include/asm/futex.h
 +++ b/arch/arm/include/asm/futex.h
 @@ -46,6 +46,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
@@ -2110,10 +2145,10 @@ index 18f5a55..5072a40 100644
  struct of_cpu_method {
        const char *method;
 diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
-index 72812a1..335f4f3 100644
+index bd32ede..bd90a0b 100644
 --- a/arch/arm/include/asm/thread_info.h
 +++ b/arch/arm/include/asm/thread_info.h
-@@ -77,9 +77,9 @@ struct thread_info {
+@@ -74,9 +74,9 @@ struct thread_info {
        .flags          = 0,                                            \
        .preempt_count  = INIT_PREEMPT_COUNT,                           \
        .addr_limit     = KERNEL_DS,                                    \
@@ -2126,7 +2161,7 @@ index 72812a1..335f4f3 100644
  }
  
  #define init_thread_info      (init_thread_union.thread_info)
-@@ -155,7 +155,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
+@@ -152,7 +152,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
  #define TIF_SYSCALL_AUDIT     9
  #define TIF_SYSCALL_TRACEPOINT        10
  #define TIF_SECCOMP           11      /* seccomp syscall filtering active */
@@ -2139,7 +2174,7 @@ index 72812a1..335f4f3 100644
  #define TIF_USING_IWMMXT      17
  #define TIF_MEMDIE            18      /* is terminating due to OOM killer */
  #define TIF_RESTORE_SIGMASK   20
-@@ -169,10 +173,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
+@@ -166,10 +170,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
  #define _TIF_SYSCALL_TRACEPOINT       (1 << TIF_SYSCALL_TRACEPOINT)
  #define _TIF_SECCOMP          (1 << TIF_SECCOMP)
  #define _TIF_USING_IWMMXT     (1 << TIF_USING_IWMMXT)
@@ -2175,7 +2210,7 @@ index 5f833f7..76e6644 100644
                }
  
 diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
-index ce0786e..a80c264 100644
+index 74b17d0..57a4bf4 100644
 --- a/arch/arm/include/asm/uaccess.h
 +++ b/arch/arm/include/asm/uaccess.h
 @@ -18,6 +18,7 @@
@@ -2405,8 +2440,21 @@ index a88671c..1cc895e 100644
  
  EXPORT_SYMBOL(__get_user_1);
  EXPORT_SYMBOL(__get_user_2);
+diff --git a/arch/arm/kernel/cpuidle.c b/arch/arm/kernel/cpuidle.c
+index 318da33..373689f 100644
+--- a/arch/arm/kernel/cpuidle.c
++++ b/arch/arm/kernel/cpuidle.c
+@@ -19,7 +19,7 @@ extern struct of_cpuidle_method __cpuidle_method_of_table[];
+ static const struct of_cpuidle_method __cpuidle_method_of_table_sentinel
+       __used __section(__cpuidle_method_of_table_end);
+-static struct cpuidle_ops cpuidle_ops[NR_CPUS];
++static struct cpuidle_ops cpuidle_ops[NR_CPUS] __read_only;
+ /**
+  * arm_cpuidle_simple_enter() - a wrapper to cpu_do_idle()
 diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
-index 672b219..4aa120a 100644
+index 570306c..c87f193 100644
 --- a/arch/arm/kernel/entry-armv.S
 +++ b/arch/arm/kernel/entry-armv.S
 @@ -48,6 +48,87 @@
@@ -2576,7 +2624,7 @@ index 672b219..4aa120a 100644
        str     r2, [sp, #S_PC]                 @ it's a 2x16bit instr, update
 @@ -547,7 +650,8 @@ ENDPROC(__und_usr)
   */
-       .pushsection .fixup, "ax"
+       .pushsection .text.fixup, "ax"
        .align  2
 -4:    str     r4, [sp, #S_PC]                 @ retry current instruction
 +4:    pax_close_userland
@@ -2603,7 +2651,7 @@ index 672b219..4aa120a 100644
  #endif
        mov     r5, r0
 diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
-index f8ccc21..83d192f 100644
+index 4e7f40c..0f9ee2c 100644
 --- a/arch/arm/kernel/entry-common.S
 +++ b/arch/arm/kernel/entry-common.S
 @@ -11,18 +11,46 @@
@@ -2656,7 +2704,7 @@ index f8ccc21..83d192f 100644
        .align  5
  /*
   * This is the fast syscall return path.  We do as little as
-@@ -171,6 +199,12 @@ ENTRY(vector_swi)
+@@ -173,6 +201,12 @@ ENTRY(vector_swi)
   USER(        ldr     scno, [lr, #-4]         )       @ get SWI instruction
  #endif
  
@@ -2770,7 +2818,7 @@ index 059c3da..8e45cfc 100644
                flush_icache_range((unsigned long)base + offset, offset +
                                   length);
 diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
-index 0196327..50ac8895 100644
+index 3637973..cb29657 100644
 --- a/arch/arm/kernel/head.S
 +++ b/arch/arm/kernel/head.S
 @@ -444,7 +444,7 @@ __enable_mmu:
@@ -2783,7 +2831,7 @@ index 0196327..50ac8895 100644
        mcr     p15, 0, r4, c2, c0, 0           @ load page table pointer
  #endif
 diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
-index 2e11961..07f0704 100644
+index af791f4..3ff9821 100644
 --- a/arch/arm/kernel/module.c
 +++ b/arch/arm/kernel/module.c
 @@ -38,12 +38,39 @@
@@ -2849,27 +2897,10 @@ index 69bda1a..755113a 100644
        if (waddr != addr) {
                flush_kernel_vmap_range(waddr, twopage ? size / 2 : size);
 diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
-index 2bf1a16..d959d40 100644
+index f192a2a..1a40523 100644
 --- a/arch/arm/kernel/process.c
 +++ b/arch/arm/kernel/process.c
-@@ -213,6 +213,7 @@ void machine_power_off(void)
-       if (pm_power_off)
-               pm_power_off();
-+      BUG();
- }
- /*
-@@ -226,7 +227,7 @@ void machine_power_off(void)
-  * executing pre-reset code, and using RAM that the primary CPU's code wishes
-  * to use. Implementing such co-ordination would be essentially impossible.
-  */
--void machine_restart(char *cmd)
-+__noreturn void machine_restart(char *cmd)
- {
-       local_irq_disable();
-       smp_send_stop();
-@@ -252,8 +253,8 @@ void __show_regs(struct pt_regs *regs)
+@@ -105,8 +105,8 @@ void __show_regs(struct pt_regs *regs)
  
        show_regs_print_info(KERN_DEFAULT);
  
@@ -2880,7 +2911,7 @@ index 2bf1a16..d959d40 100644
        printk("pc : [<%08lx>]    lr : [<%08lx>]    psr: %08lx\n"
               "sp : %08lx  ip : %08lx  fp : %08lx\n",
                regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr,
-@@ -430,12 +431,6 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -283,12 +283,6 @@ unsigned long get_wchan(struct task_struct *p)
        return 0;
  }
  
@@ -2893,7 +2924,7 @@ index 2bf1a16..d959d40 100644
  #ifdef CONFIG_MMU
  #ifdef CONFIG_KUSER_HELPERS
  /*
-@@ -451,7 +446,7 @@ static struct vm_area_struct gate_vma = {
+@@ -304,7 +298,7 @@ static struct vm_area_struct gate_vma = {
  
  static int __init gate_vma_init(void)
  {
@@ -2902,12 +2933,12 @@ index 2bf1a16..d959d40 100644
        return 0;
  }
  arch_initcall(gate_vma_init);
-@@ -480,81 +475,13 @@ const char *arch_vma_name(struct vm_area_struct *vma)
+@@ -333,91 +327,13 @@ const char *arch_vma_name(struct vm_area_struct *vma)
        return is_gate_vma(vma) ? "[vectors]" : NULL;
  }
  
 -/* If possible, provide a placement hint at a random offset from the
-- * stack for the signal page.
+- * stack for the sigpage and vdso pages.
 - */
 -static unsigned long sigpage_addr(const struct mm_struct *mm,
 -                                unsigned int npages)
@@ -2951,6 +2982,7 @@ index 2bf1a16..d959d40 100644
  {
        struct mm_struct *mm = current->mm;
 -      struct vm_area_struct *vma;
+-      unsigned long npages;
 -      unsigned long addr;
 -      unsigned long hint;
 -      int ret = 0;
@@ -2959,10 +2991,13 @@ index 2bf1a16..d959d40 100644
 -              signal_page = get_signal_page();
 -      if (!signal_page)
 -              return -ENOMEM;
+-
+-      npages = 1; /* for sigpage */
+-      npages += vdso_total_pages;
  
        down_write(&mm->mmap_sem);
--      hint = sigpage_addr(mm, 1);
--      addr = get_unmapped_area(NULL, hint, PAGE_SIZE, 0, 0);
+-      hint = sigpage_addr(mm, npages);
+-      addr = get_unmapped_area(NULL, hint, npages << PAGE_SHIFT, 0, 0);
 -      if (IS_ERR_VALUE(addr)) {
 -              ret = addr;
 -              goto up_fail;
@@ -2979,6 +3014,12 @@ index 2bf1a16..d959d40 100644
 -
 -      mm->context.sigpage = addr;
 -
+-      /* Unlike the sigpage, failure to install the vdso is unlikely
+-       * to be fatal to the process, so no error check needed
+-       * here.
+-       */
+-      arm_install_vdso(mm, addr + PAGE_SIZE);
+-
 - up_fail:
 +      mm->context.sigpage = (PAGE_OFFSET + (get_random_int() % 0x3FFEFFE0)) & 0xFFFFFFFC;
        up_write(&mm->mmap_sem);
@@ -3023,8 +3064,20 @@ index ef9119f..31995a3 100644
        /* Do the secure computing check first; failures should be fast. */
  #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
        if (secure_computing() == -1)
+diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c
+index 1a4d232..2677169 100644
+--- a/arch/arm/kernel/reboot.c
++++ b/arch/arm/kernel/reboot.c
+@@ -122,6 +122,7 @@ void machine_power_off(void)
+       if (pm_power_off)
+               pm_power_off();
++      while (1);
+ }
+ /*
 diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
-index 1d60beb..4aa25d5 100644
+index 6c777e9..3d2d0ca 100644
 --- a/arch/arm/kernel/setup.c
 +++ b/arch/arm/kernel/setup.c
 @@ -105,21 +105,23 @@ EXPORT_SYMBOL(elf_hwcap);
@@ -3073,7 +3126,7 @@ index 1d60beb..4aa25d5 100644
                        cpu_arch = CPU_ARCH_ARMv6;
                else
 diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
-index 023ac90..0a69950 100644
+index 423663e..bfeb0ff 100644
 --- a/arch/arm/kernel/signal.c
 +++ b/arch/arm/kernel/signal.c
 @@ -24,8 +24,6 @@
@@ -3085,7 +3138,7 @@ index 023ac90..0a69950 100644
  #ifdef CONFIG_CRUNCH
  static int preserve_crunch_context(struct crunch_sigframe __user *frame)
  {
-@@ -396,8 +394,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
+@@ -385,8 +383,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
                         * except when the MPU has protected the vectors
                         * page from PL0
                         */
@@ -3095,7 +3148,7 @@ index 023ac90..0a69950 100644
                } else
  #endif
                {
-@@ -603,33 +600,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
+@@ -592,33 +589,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
        } while (thread_flags & _TIF_WORK_MASK);
        return 0;
  }
@@ -3130,7 +3183,7 @@ index 023ac90..0a69950 100644
 -      return page;
 -}
 diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
-index 86ef244..c518451 100644
+index cca5b87..68f0f73 100644
 --- a/arch/arm/kernel/smp.c
 +++ b/arch/arm/kernel/smp.c
 @@ -76,7 +76,7 @@ enum ipi_msg_type {
@@ -3166,7 +3219,7 @@ index 7a3be1d..b00c7de 100644
                         start, end);
                itcm_present = true;
 diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
-index 788e23f..6fa06a1 100644
+index 3dce1a3..60e857f 100644
 --- a/arch/arm/kernel/traps.c
 +++ b/arch/arm/kernel/traps.c
 @@ -65,7 +65,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
@@ -3197,7 +3250,7 @@ index 788e23f..6fa06a1 100644
        if (signr)
                do_exit(signr);
  }
-@@ -880,7 +885,11 @@ void __init early_trap_init(void *vectors_base)
+@@ -878,7 +883,11 @@ void __init early_trap_init(void *vectors_base)
        kuser_init(vectors_base);
  
        flush_icache_range(vectors, vectors + PAGE_SIZE * 2);
@@ -3211,7 +3264,7 @@ index 788e23f..6fa06a1 100644
        /*
         * on V7-M there is no need to copy the vector table to a dedicated
 diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
-index b31aa73..cc4b7a1 100644
+index 8b60fde..8d986dd 100644
 --- a/arch/arm/kernel/vmlinux.lds.S
 +++ b/arch/arm/kernel/vmlinux.lds.S
 @@ -37,7 +37,7 @@
@@ -3223,7 +3276,7 @@ index b31aa73..cc4b7a1 100644
  #define ARM_EXIT_KEEP(x)      x
  #define ARM_EXIT_DISCARD(x)
  #else
-@@ -123,6 +123,8 @@ SECTIONS
+@@ -120,6 +120,8 @@ SECTIONS
  #ifdef CONFIG_DEBUG_RODATA
        . = ALIGN(1<<SECTION_SHIFT);
  #endif
@@ -3232,7 +3285,7 @@ index b31aa73..cc4b7a1 100644
        RO_DATA(PAGE_SIZE)
  
        . = ALIGN(4);
-@@ -153,8 +155,6 @@ SECTIONS
+@@ -150,8 +152,6 @@ SECTIONS
  
        NOTES
  
@@ -3242,7 +3295,7 @@ index b31aa73..cc4b7a1 100644
  # ifdef CONFIG_ARM_KERNMEM_PERMS
        . = ALIGN(1<<SECTION_SHIFT);
 diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
-index b652af5..60231ab 100644
+index d9631ec..b0c966c 100644
 --- a/arch/arm/kvm/arm.c
 +++ b/arch/arm/kvm/arm.c
 @@ -57,7 +57,7 @@ static unsigned long hyp_default_vectors;
@@ -3254,7 +3307,7 @@ index b652af5..60231ab 100644
  static u8 kvm_next_vmid;
  static DEFINE_SPINLOCK(kvm_vmid_lock);
  
-@@ -358,7 +358,7 @@ void force_vm_exit(const cpumask_t *mask)
+@@ -373,7 +373,7 @@ void force_vm_exit(const cpumask_t *mask)
   */
  static bool need_new_vmid_gen(struct kvm *kvm)
  {
@@ -3263,7 +3316,7 @@ index b652af5..60231ab 100644
  }
  
  /**
-@@ -391,7 +391,7 @@ static void update_vttbr(struct kvm *kvm)
+@@ -406,7 +406,7 @@ static void update_vttbr(struct kvm *kvm)
  
        /* First user of a new VMID generation? */
        if (unlikely(kvm_next_vmid == 0)) {
@@ -3272,7 +3325,7 @@ index b652af5..60231ab 100644
                kvm_next_vmid = 1;
  
                /*
-@@ -408,7 +408,7 @@ static void update_vttbr(struct kvm *kvm)
+@@ -423,7 +423,7 @@ static void update_vttbr(struct kvm *kvm)
                kvm_call_hyp(__kvm_flush_vm_context);
        }
  
@@ -3281,7 +3334,7 @@ index b652af5..60231ab 100644
        kvm->arch.vmid = kvm_next_vmid;
        kvm_next_vmid++;
  
-@@ -1087,7 +1087,7 @@ struct kvm_vcpu *kvm_mpidr_to_vcpu(struct kvm *kvm, unsigned long mpidr)
+@@ -1098,7 +1098,7 @@ struct kvm_vcpu *kvm_mpidr_to_vcpu(struct kvm *kvm, unsigned long mpidr)
  /**
   * Initialize Hyp-mode and memory mappings on all CPUs.
   */
@@ -3291,7 +3344,7 @@ index b652af5..60231ab 100644
        int err;
        int ret, cpu;
 diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S
-index 14a0d98..7771a7d 100644
+index 1710fd7..ec3e014 100644
 --- a/arch/arm/lib/clear_user.S
 +++ b/arch/arm/lib/clear_user.S
 @@ -12,14 +12,14 @@
@@ -3319,7 +3372,7 @@ index 14a0d98..7771a7d 100644
 +ENDPROC(___clear_user)
  ENDPROC(__clear_user_std)
  
-               .pushsection .fixup,"ax"
+               .pushsection .text.fixup,"ax"
 diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S
 index 7a235b9..73a0556 100644
 --- a/arch/arm/lib/copy_from_user.S
@@ -3360,7 +3413,7 @@ index 6ee2f67..d1cce76 100644
  #include <asm/asm-offsets.h>
  #include <asm/cache.h>
 diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S
-index a9d3db1..164b089 100644
+index 9648b06..19c333c 100644
 --- a/arch/arm/lib/copy_to_user.S
 +++ b/arch/arm/lib/copy_to_user.S
 @@ -17,7 +17,7 @@
@@ -3385,9 +3438,9 @@ index a9d3db1..164b089 100644
 +ENDPROC(___copy_to_user)
  ENDPROC(__copy_to_user_std)
  
-       .pushsection .fixup,"ax"
+       .pushsection .text.fixup,"ax"
 diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S
-index 7d08b43..f7ca7ea 100644
+index 1d0957e..f708846 100644
 --- a/arch/arm/lib/csumpartialcopyuser.S
 +++ b/arch/arm/lib/csumpartialcopyuser.S
 @@ -57,8 +57,8 @@
@@ -3402,7 +3455,7 @@ index 7d08b43..f7ca7ea 100644
  #include "csumpartialcopygeneric.S"
  
 diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c
-index 312d43e..21d2322 100644
+index 8044591..c9b2609 100644
 --- a/arch/arm/lib/delay.c
 +++ b/arch/arm/lib/delay.c
 @@ -29,7 +29,7 @@
@@ -3437,18 +3490,10 @@ index 3e58d71..029817c 100644
        /* See rational for this in __copy_to_user() above. */
        if (n < 64)
 diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
-index 318d127..9aab0d1 100644
+index 7d23ce0..5ef383a 100644
 --- a/arch/arm/mach-exynos/suspend.c
 +++ b/arch/arm/mach-exynos/suspend.c
-@@ -18,6 +18,7 @@
- #include <linux/syscore_ops.h>
- #include <linux/cpu_pm.h>
- #include <linux/io.h>
-+#include <linux/irq.h>
- #include <linux/irqchip/arm-gic.h>
- #include <linux/err.h>
- #include <linux/regulator/machine.h>
-@@ -632,8 +633,10 @@ void __init exynos_pm_init(void)
+@@ -738,8 +738,10 @@ void __init exynos_pm_init(void)
        tmp |= pm_data->wake_disable_mask;
        pmu_raw_writel(tmp, S5P_WAKEUP_MASK);
  
@@ -3544,10 +3589,10 @@ index 5305ec7..6d74045 100644
  
  #include <asm/smp_scu.h>
 diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
-index f961c46..4a453dc 100644
+index 3b56722..33ac281 100644
 --- a/arch/arm/mach-omap2/omap-wakeupgen.c
 +++ b/arch/arm/mach-omap2/omap-wakeupgen.c
-@@ -344,7 +344,7 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
+@@ -330,7 +330,7 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
        return NOTIFY_OK;
  }
  
@@ -3557,7 +3602,7 @@ index f961c46..4a453dc 100644
  };
  
 diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
-index be9541e..821805f 100644
+index 166b18f..f985f04 100644
 --- a/arch/arm/mach-omap2/omap_device.c
 +++ b/arch/arm/mach-omap2/omap_device.c
 @@ -510,7 +510,7 @@ void omap_device_delete(struct omap_device *od)
@@ -3598,10 +3643,10 @@ index 78c02b3..c94109a 100644
  struct omap_device *omap_device_alloc(struct platform_device *pdev,
                                      struct omap_hwmod **ohs, int oh_cnt);
 diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index 355b089..2c9d7c3 100644
+index 752969f..a34b446 100644
 --- a/arch/arm/mach-omap2/omap_hwmod.c
 +++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -193,10 +193,10 @@ struct omap_hwmod_soc_ops {
+@@ -199,10 +199,10 @@ struct omap_hwmod_soc_ops {
        int (*init_clkdm)(struct omap_hwmod *oh);
        void (*update_context_lost)(struct omap_hwmod *oh);
        int (*get_context_lost)(struct omap_hwmod *oh);
@@ -3662,10 +3707,10 @@ index ff0a68c..b312aa0 100644
                                 sizeof(struct omap_wd_timer_platform_data));
        WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n",
 diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c
-index 4f25a7c..a81be85 100644
+index 7469347..1ecc350 100644
 --- a/arch/arm/mach-tegra/cpuidle-tegra20.c
 +++ b/arch/arm/mach-tegra/cpuidle-tegra20.c
-@@ -179,7 +179,7 @@ static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
+@@ -177,7 +177,7 @@ static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
        bool entered_lp2 = false;
  
        if (tegra_pending_sgi())
@@ -3675,7 +3720,7 @@ index 4f25a7c..a81be85 100644
        cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
  
 diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c
-index ab95f53..4b977a7 100644
+index 3b9098d..15b390f 100644
 --- a/arch/arm/mach-tegra/irq.c
 +++ b/arch/arm/mach-tegra/irq.c
 @@ -20,6 +20,7 @@
@@ -3729,7 +3774,7 @@ index 52d768f..5f93180 100644
  #include "common.h"
  
 diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
-index 9b4f29e..bbf3bfa 100644
+index b4f92b9..ffefea9 100644
 --- a/arch/arm/mm/Kconfig
 +++ b/arch/arm/mm/Kconfig
 @@ -446,6 +446,7 @@ config CPU_32v5
@@ -3767,7 +3812,7 @@ index 9b4f29e..bbf3bfa 100644
  
          If all of the binaries and libraries which run on your platform
 diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
-index 2c0c541..4585df9 100644
+index 9769f1e..16aaa55 100644
 --- a/arch/arm/mm/alignment.c
 +++ b/arch/arm/mm/alignment.c
 @@ -216,10 +216,12 @@ union offset_union {
@@ -3832,7 +3877,7 @@ index 2c0c541..4585df9 100644
                        goto fault;                             \
        } while (0)
 diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
-index 8f15f70..d599a2b 100644
+index e309c8f..f8965e8 100644
 --- a/arch/arm/mm/cache-l2x0.c
 +++ b/arch/arm/mm/cache-l2x0.c
 @@ -43,7 +43,7 @@ struct l2c_init_data {
@@ -3893,7 +3938,7 @@ index 845769e..4278fd7 100644
                atomic64_set(&mm->context.id, asid);
        }
 diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
-index 6333d9c..fd09b46 100644
+index 6333d9c..3bb19f2 100644
 --- a/arch/arm/mm/fault.c
 +++ b/arch/arm/mm/fault.c
 @@ -25,6 +25,7 @@
@@ -3911,10 +3956,10 @@ index 6333d9c..fd09b46 100644
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      if (addr < TASK_SIZE) {
 +              if (current->signal->curr_ip)
-+                      printk(KERN_ERR "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
++                      printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
 +              else
-+                      printk(KERN_ERR "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
++                      printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
 +      }
 +#endif
@@ -3925,10 +3970,10 @@ index 6333d9c..fd09b46 100644
 +           (MODULES_VADDR <= addr && addr < MODULES_END)))
 +      {
 +              if (current->signal->curr_ip)
-+                      printk(KERN_ERR "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
++                      printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
 +              else
-+                      printk(KERN_ERR "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
++                      printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
 +      }
 +#endif
@@ -3991,10 +4036,10 @@ index 6333d9c..fd09b46 100644
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      if (addr < TASK_SIZE && is_domain_fault(fsr)) {
 +              if (current->signal->curr_ip)
-+                      printk(KERN_ERR "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
++                      printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
 +              else
-+                      printk(KERN_ERR "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
++                      printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
 +              goto die;
 +      }
@@ -4074,11 +4119,11 @@ index 6333d9c..fd09b46 100644
 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
 +      else if (is_domain_fault(ifsr) || is_xn_fault(ifsr)) {
 +              if (current->signal->curr_ip)
-+                      printk(KERN_ERR "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to execute %s memory at %08lx\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
++                      printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to execute %s memory at %08lx\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()),
 +                                      pc >= TASK_SIZE ? "non-executable kernel" : "userland", pc);
 +              else
-+                      printk(KERN_ERR "PAX: %s:%d, uid/euid: %u/%u, attempted to execute %s memory at %08lx\n", current->comm, task_pid_nr(current),
++                      printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to execute %s memory at %08lx\n", current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()),
 +                                      pc >= TASK_SIZE ? "non-executable kernel" : "userland", pc);
 +              goto die;
@@ -4143,10 +4188,10 @@ index cf08bdf..772656c 100644
  unsigned long search_exception_table(unsigned long addr);
  
 diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
-index 1609b02..def0785 100644
+index be92fa0..5252d7e 100644
 --- a/arch/arm/mm/init.c
 +++ b/arch/arm/mm/init.c
-@@ -755,7 +755,46 @@ void free_tcmmem(void)
+@@ -709,7 +709,46 @@ void free_tcmmem(void)
  {
  #ifdef CONFIG_HAVE_TCM
        extern char __tcm_start, __tcm_end;
@@ -4210,7 +4255,7 @@ index d1e5ad7..84dcbf2 100644
        return __arm_ioremap_caller(phys_addr, size, mtype,
                        __builtin_return_address(0));
 diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
-index 5e85ed3..b10a7ed 100644
+index 407dc78..047ce9d 100644
 --- a/arch/arm/mm/mmap.c
 +++ b/arch/arm/mm/mmap.c
 @@ -59,6 +59,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
@@ -4287,7 +4332,7 @@ index 5e85ed3..b10a7ed 100644
        addr = vm_unmapped_area(&info);
  
        /*
-@@ -173,6 +183,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+@@ -183,14 +193,30 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
  {
        unsigned long random_factor = 0UL;
  
@@ -4295,10 +4340,8 @@ index 5e85ed3..b10a7ed 100644
 +      if (!(mm->pax_flags & MF_PAX_RANDMMAP))
 +#endif
 +
-       /* 8 bits of randomness in 20 address space bits */
-       if ((current->flags & PF_RANDOMIZE) &&
-           !(current->personality & ADDR_NO_RANDOMIZE))
-@@ -180,9 +194,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+       if (current->flags & PF_RANDOMIZE)
+               random_factor = arch_mmap_rnd();
  
        if (mmap_is_legacy()) {
                mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
@@ -4321,7 +4364,7 @@ index 5e85ed3..b10a7ed 100644
        }
  }
 diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
-index 4e6ef89..21c27f2 100644
+index 7186382..0c145cf 100644
 --- a/arch/arm/mm/mmu.c
 +++ b/arch/arm/mm/mmu.c
 @@ -41,6 +41,22 @@
@@ -4705,7 +4748,7 @@ index 4e6ef89..21c27f2 100644
  }
  
 diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
-index f412b53..fc89433 100644
+index e0e2358..a4ee460 100644
 --- a/arch/arm/net/bpf_jit_32.c
 +++ b/arch/arm/net/bpf_jit_32.c
 @@ -20,6 +20,7 @@
@@ -4716,7 +4759,7 @@ index f412b53..fc89433 100644
  
  #include "bpf_jit_32.h"
  
-@@ -71,7 +72,11 @@ struct jit_ctx {
+@@ -72,34 +73,58 @@ struct jit_ctx {
  #endif
  };
  
@@ -4726,9 +4769,62 @@ index f412b53..fc89433 100644
  int bpf_jit_enable __read_mostly;
 +#endif
  
- static u64 jit_get_skb_b(struct sk_buff *skb, unsigned offset)
+-static u64 jit_get_skb_b(struct sk_buff *skb, unsigned offset)
++static inline int call_neg_helper(struct sk_buff *skb, int offset, void *ret,
++                    unsigned int size)
++{
++      void *ptr = bpf_internal_load_pointer_neg_helper(skb, offset, size);
++
++      if (!ptr)
++              return -EFAULT;
++      memcpy(ret, ptr, size);
++      return 0;
++}
++
++static u64 jit_get_skb_b(struct sk_buff *skb, int offset)
+ {
+       u8 ret;
+       int err;
+-      err = skb_copy_bits(skb, offset, &ret, 1);
++      if (offset < 0)
++              err = call_neg_helper(skb, offset, &ret, 1);
++      else
++              err = skb_copy_bits(skb, offset, &ret, 1);
+       return (u64)err << 32 | ret;
+ }
+-static u64 jit_get_skb_h(struct sk_buff *skb, unsigned offset)
++static u64 jit_get_skb_h(struct sk_buff *skb, int offset)
  {
-@@ -178,8 +183,10 @@ static void jit_fill_hole(void *area, unsigned int size)
+       u16 ret;
+       int err;
+-      err = skb_copy_bits(skb, offset, &ret, 2);
++      if (offset < 0)
++              err = call_neg_helper(skb, offset, &ret, 2);
++      else
++              err = skb_copy_bits(skb, offset, &ret, 2);
+       return (u64)err << 32 | ntohs(ret);
+ }
+-static u64 jit_get_skb_w(struct sk_buff *skb, unsigned offset)
++static u64 jit_get_skb_w(struct sk_buff *skb, int offset)
+ {
+       u32 ret;
+       int err;
+-      err = skb_copy_bits(skb, offset, &ret, 4);
++      if (offset < 0)
++              err = call_neg_helper(skb, offset, &ret, 4);
++      else
++              err = skb_copy_bits(skb, offset, &ret, 4);
+       return (u64)err << 32 | ntohl(ret);
+ }
+@@ -179,8 +204,10 @@ static void jit_fill_hole(void *area, unsigned int size)
  {
        u32 *ptr;
        /* We are guaranteed to have aligned memory. */
@@ -4739,6 +4835,57 @@ index f412b53..fc89433 100644
  }
  
  static void build_prologue(struct jit_ctx *ctx)
+@@ -536,9 +563,6 @@ static int build_body(struct jit_ctx *ctx)
+               case BPF_LD | BPF_B | BPF_ABS:
+                       load_order = 0;
+ load:
+-                      /* the interpreter will deal with the negative K */
+-                      if ((int)k < 0)
+-                              return -ENOTSUPP;
+                       emit_mov_i(r_off, k, ctx);
+ load_common:
+                       ctx->seen |= SEEN_DATA | SEEN_CALL;
+@@ -547,12 +571,24 @@ load_common:
+                               emit(ARM_SUB_I(r_scratch, r_skb_hl,
+                                              1 << load_order), ctx);
+                               emit(ARM_CMP_R(r_scratch, r_off), ctx);
+-                              condt = ARM_COND_HS;
++                              condt = ARM_COND_GE;
+                       } else {
+                               emit(ARM_CMP_R(r_skb_hl, r_off), ctx);
+                               condt = ARM_COND_HI;
+                       }
++                      /*
++                       * test for negative offset, only if we are
++                       * currently scheduled to take the fast
++                       * path. this will update the flags so that
++                       * the slowpath instruction are ignored if the
++                       * offset is negative.
++                       *
++                       * for loard_order == 0 the HI condition will
++                       * make loads at offset 0 take the slow path too.
++                       */
++                      _emit(condt, ARM_CMP_I(r_off, 0), ctx);
++
+                       _emit(condt, ARM_ADD_R(r_scratch, r_off, r_skb_data),
+                             ctx);
+@@ -860,9 +896,11 @@ b_epilogue:
+                       off = offsetof(struct sk_buff, vlan_tci);
+                       emit(ARM_LDRH_I(r_A, r_skb, off), ctx);
+                       if (code == (BPF_ANC | SKF_AD_VLAN_TAG))
+-                              OP_IMM3(ARM_AND, r_A, r_A, VLAN_VID_MASK, ctx);
+-                      else
+-                              OP_IMM3(ARM_AND, r_A, r_A, VLAN_TAG_PRESENT, ctx);
++                              OP_IMM3(ARM_AND, r_A, r_A, ~VLAN_TAG_PRESENT, ctx);
++                      else {
++                              OP_IMM3(ARM_LSR, r_A, r_A, 12, ctx);
++                              OP_IMM3(ARM_AND, r_A, r_A, 0x1, ctx);
++                      }
+                       break;
+               case BPF_ANC | SKF_AD_QUEUE:
+                       ctx->seen |= SEEN_SKB;
 diff --git a/arch/arm/plat-iop/setup.c b/arch/arm/plat-iop/setup.c
 index 5b217f4..c23f40e 100644
 --- a/arch/arm/plat-iop/setup.c
@@ -4786,7 +4933,7 @@ index 7047051..44e8675 100644
  #endif
  #endif
 diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barrier.h
-index a5abb00..9cbca9a 100644
+index 71f19c4..2b13cfe 100644
 --- a/arch/arm64/include/asm/barrier.h
 +++ b/arch/arm64/include/asm/barrier.h
 @@ -44,7 +44,7 @@
@@ -4824,7 +4971,7 @@ index 4fde8c1..441f84f 100644
        default:
                BUILD_BUG();
 diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h
-index e20df38..027ede3 100644
+index 7642056..bffc904 100644
 --- a/arch/arm64/include/asm/pgalloc.h
 +++ b/arch/arm64/include/asm/pgalloc.h
 @@ -46,6 +46,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
@@ -4836,9 +4983,9 @@ index e20df38..027ede3 100644
 +      pud_populate(mm, pud, pmd);
 +}
 +
- #endif        /* CONFIG_ARM64_PGTABLE_LEVELS > 2 */
+ #endif        /* CONFIG_PGTABLE_LEVELS > 2 */
  
- #if CONFIG_ARM64_PGTABLE_LEVELS > 3
+ #if CONFIG_PGTABLE_LEVELS > 3
 diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
 index 07e1ba44..ec8cbbb 100644
 --- a/arch/arm64/include/asm/uaccess.h
@@ -4881,14 +5028,14 @@ index c3a58a1..78fbf54 100644
  /*
   * Memory returned by kmalloc() may be used for DMA, so we must make
 diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h
-index d232888..87c8df1 100644
+index 0388ece..87c8df1 100644
 --- a/arch/avr32/include/asm/elf.h
 +++ b/arch/avr32/include/asm/elf.h
 @@ -84,8 +84,14 @@ typedef struct user_fpu_struct elf_fpregset_t;
     the loader.  We need to make sure that it is out of the way of the program
     that it will "exec", and that there is sufficient room for the brk.  */
  
--#define ELF_ET_DYN_BASE         (2 * TASK_SIZE / 3)
+-#define ELF_ET_DYN_BASE         (TASK_SIZE / 3 * 2)
 +#define ELF_ET_DYN_BASE               (TASK_SIZE / 3 * 2)
  
 +#ifdef CONFIG_PAX_ASLR
@@ -5114,10 +5261,10 @@ index 69952c18..4fa2908 100644
  #define ARCH_DMA_MINALIGN     L1_CACHE_BYTES
  
 diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
-index 074e52b..76afdac 100644
+index 76d25b2..d3793a0f 100644
 --- a/arch/ia64/Kconfig
 +++ b/arch/ia64/Kconfig
-@@ -548,6 +548,7 @@ source "drivers/sn/Kconfig"
+@@ -541,6 +541,7 @@ source "drivers/sn/Kconfig"
  config KEXEC
        bool "kexec system call"
        depends on !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
@@ -5208,7 +5355,7 @@ index 5a83c5c..4d7f553 100644
  
  /* IA-64 relocations: */
 diff --git a/arch/ia64/include/asm/pgalloc.h b/arch/ia64/include/asm/pgalloc.h
-index 5767cdf..7462574 100644
+index f5e70e9..624fad5 100644
 --- a/arch/ia64/include/asm/pgalloc.h
 +++ b/arch/ia64/include/asm/pgalloc.h
 @@ -39,6 +39,12 @@ pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
@@ -5238,7 +5385,7 @@ index 5767cdf..7462574 100644
  {
        return quicklist_alloc(0, GFP_KERNEL, NULL);
 diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
-index 7b6f880..ac8e008 100644
+index 9f3ed9e..c99b418 100644
 --- a/arch/ia64/include/asm/pgtable.h
 +++ b/arch/ia64/include/asm/pgtable.h
 @@ -12,7 +12,7 @@
@@ -5565,7 +5712,7 @@ index 52b7604b..455cb85 100644
  }
  
 diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
-index 6b33457..88b5124 100644
+index a9b65cf..49ae1cf 100644
 --- a/arch/ia64/mm/init.c
 +++ b/arch/ia64/mm/init.c
 @@ -120,6 +120,19 @@ ia64_init_addr_space (void)
@@ -5698,10 +5845,10 @@ index 4efe96a..60e8699 100644
  #define SMP_CACHE_BYTES       L1_CACHE_BYTES
  
 diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
-index 1a313c4..f27b613 100644
+index f501665..b107753 100644
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2504,6 +2504,7 @@ source "kernel/Kconfig.preempt"
+@@ -2585,6 +2585,7 @@ source "kernel/Kconfig.preempt"
  
  config KEXEC
        bool "Kexec system call"
@@ -6358,10 +6505,10 @@ index b4db69f..8f3b093 100644
  #define SMP_CACHE_SHIFT               L1_CACHE_SHIFT
  #define SMP_CACHE_BYTES               L1_CACHE_BYTES
 diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
-index 694925a..990fa62 100644
+index f19e890..a4f8177 100644
 --- a/arch/mips/include/asm/elf.h
 +++ b/arch/mips/include/asm/elf.h
-@@ -410,15 +410,18 @@ extern const char *__elf_platform;
+@@ -417,6 +417,13 @@ extern const char *__elf_platform;
  #define ELF_ET_DYN_BASE               (TASK_SIZE / 3 * 2)
  #endif
  
@@ -6375,15 +6522,6 @@ index 694925a..990fa62 100644
  #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
  struct linux_binprm;
  extern int arch_setup_additional_pages(struct linux_binprm *bprm,
-                                      int uses_interp);
--struct mm_struct;
--extern unsigned long arch_randomize_brk(struct mm_struct *mm);
--#define arch_randomize_brk arch_randomize_brk
--
- struct arch_elf_state {
-       int fp_abi;
-       int interp_fp_abi;
 diff --git a/arch/mips/include/asm/exec.h b/arch/mips/include/asm/exec.h
 index c1f6afa..38cc6e9 100644
 --- a/arch/mips/include/asm/exec.h
@@ -6501,10 +6639,10 @@ index 8feaed6..1bd8a64 100644
  
  /**
 diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
-index 154b70a..426ae3d 100644
+index 89dd7fe..a123c97 100644
 --- a/arch/mips/include/asm/page.h
 +++ b/arch/mips/include/asm/page.h
-@@ -120,7 +120,7 @@ extern void copy_user_highpage(struct page *to, struct page *from,
+@@ -118,7 +118,7 @@ extern void copy_user_highpage(struct page *to, struct page *from,
    #ifdef CONFIG_CPU_MIPS32
      typedef struct { unsigned long pte_low, pte_high; } pte_t;
      #define pte_val(x)          ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
@@ -6530,7 +6668,7 @@ index b336037..5b874cc 100644
  
  /*
 diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h
-index f8f809f..b5f3fa4 100644
+index 819af9d..439839d 100644
 --- a/arch/mips/include/asm/pgtable.h
 +++ b/arch/mips/include/asm/pgtable.h
 @@ -20,6 +20,9 @@
@@ -6544,10 +6682,10 @@ index f8f809f..b5f3fa4 100644
  struct vm_area_struct;
  
 diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
-index 55ed660..3dc9422 100644
+index 9c0014e..5101ef5 100644
 --- a/arch/mips/include/asm/thread_info.h
 +++ b/arch/mips/include/asm/thread_info.h
-@@ -102,6 +102,9 @@ static inline struct thread_info *current_thread_info(void)
+@@ -100,6 +100,9 @@ static inline struct thread_info *current_thread_info(void)
  #define TIF_SECCOMP           4       /* secure computing */
  #define TIF_NOTIFY_RESUME     5       /* callback before returning to user */
  #define TIF_RESTORE_SIGMASK   9       /* restore signal mask in do_signal() */
@@ -6557,7 +6695,7 @@ index 55ed660..3dc9422 100644
  #define TIF_USEDFPU           16      /* FPU was used by this task this quantum (SMP) */
  #define TIF_MEMDIE            18      /* is terminating due to OOM killer */
  #define TIF_NOHZ              19      /* in adaptive nohz mode */
-@@ -137,14 +140,16 @@ static inline struct thread_info *current_thread_info(void)
+@@ -135,14 +138,16 @@ static inline struct thread_info *current_thread_info(void)
  #define _TIF_USEDMSA          (1<<TIF_USEDMSA)
  #define _TIF_MSA_CTX_LIVE     (1<<TIF_MSA_CTX_LIVE)
  #define _TIF_SYSCALL_TRACEPOINT       (1<<TIF_SYSCALL_TRACEPOINT)
@@ -6576,7 +6714,7 @@ index 55ed660..3dc9422 100644
  
  /* work to do on interrupt/exception return */
  #define _TIF_WORK_MASK                \
-@@ -152,7 +157,7 @@ static inline struct thread_info *current_thread_info(void)
+@@ -150,7 +155,7 @@ static inline struct thread_info *current_thread_info(void)
  /* work to do on any return to u-space */
  #define _TIF_ALLWORK_MASK     (_TIF_NOHZ | _TIF_WORK_MASK |           \
                                 _TIF_WORK_SYSCALL_EXIT |               \
@@ -6660,7 +6798,7 @@ index 44a1f79..2bd6aa3 100644
  
  void __init gt641xx_irq_init(void)
 diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
-index d2bfbc2..a8eacd2 100644
+index 3c8a18a..b4929b6 100644
 --- a/arch/mips/kernel/irq.c
 +++ b/arch/mips/kernel/irq.c
 @@ -76,17 +76,17 @@ void ack_bad_irq(unsigned int irq)
@@ -6684,18 +6822,16 @@ index d2bfbc2..a8eacd2 100644
  }
  
  void __init init_IRQ(void)
-@@ -109,7 +109,10 @@ void __init init_IRQ(void)
- #endif
+@@ -110,6 +110,8 @@ void __init init_IRQ(void)
  }
  
+ #ifdef CONFIG_DEBUG_STACKOVERFLOW
 +
- #ifdef DEBUG_STACKOVERFLOW
 +extern void gr_handle_kernel_exploit(void);
-+
  static inline void check_stack_overflow(void)
  {
        unsigned long sp;
-@@ -125,6 +128,7 @@ static inline void check_stack_overflow(void)
+@@ -125,6 +127,7 @@ static inline void check_stack_overflow(void)
                printk("do_IRQ: stack overflow: %ld\n",
                       sp - sizeof(struct thread_info));
                dump_stack();
@@ -6717,10 +6853,10 @@ index 0614717..002fa43 100644
  
        /* Run the generated entry code */
 diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
-index bf85cc1..b365c61 100644
+index f2975d4..f61d355 100644
 --- a/arch/mips/kernel/process.c
 +++ b/arch/mips/kernel/process.c
-@@ -535,18 +535,6 @@ out:
+@@ -541,18 +541,6 @@ out:
        return pc;
  }
  
@@ -6740,10 +6876,10 @@ index bf85cc1..b365c61 100644
  {
        struct pt_regs *regs;
 diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
-index 5104528..950bbdc 100644
+index e933a30..0d02625 100644
 --- a/arch/mips/kernel/ptrace.c
 +++ b/arch/mips/kernel/ptrace.c
-@@ -761,6 +761,10 @@ long arch_ptrace(struct task_struct *child, long request,
+@@ -785,6 +785,10 @@ long arch_ptrace(struct task_struct *child, long request,
        return ret;
  }
  
@@ -6754,7 +6890,7 @@ index 5104528..950bbdc 100644
  /*
   * Notification of system call entry/exit
   * - triggered by current->work.syscall_trace
-@@ -779,6 +783,11 @@ asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall)
+@@ -803,6 +807,11 @@ asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall)
            tracehook_report_syscall_entry(regs))
                ret = -1;
  
@@ -6766,38 +6902,6 @@ index 5104528..950bbdc 100644
        if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
                trace_sys_enter(regs, regs->regs[2]);
  
-diff --git a/arch/mips/kernel/reset.c b/arch/mips/kernel/reset.c
-index 07fc524..b9d7f28 100644
---- a/arch/mips/kernel/reset.c
-+++ b/arch/mips/kernel/reset.c
-@@ -13,6 +13,7 @@
- #include <linux/reboot.h>
- #include <asm/reboot.h>
-+#include <asm/bug.h>
- /*
-  * Urgs ...  Too many MIPS machines to handle this in a generic way.
-@@ -29,16 +30,19 @@ void machine_restart(char *command)
- {
-       if (_machine_restart)
-               _machine_restart(command);
-+      BUG();
- }
- void machine_halt(void)
- {
-       if (_machine_halt)
-               _machine_halt();
-+      BUG();
- }
- void machine_power_off(void)
- {
-       if (pm_power_off)
-               pm_power_off();
-+      BUG();
- }
 diff --git a/arch/mips/kernel/sync-r4k.c b/arch/mips/kernel/sync-r4k.c
 index 2242bdd..b284048 100644
 --- a/arch/mips/kernel/sync-r4k.c
@@ -6868,7 +6972,7 @@ index 2242bdd..b284048 100644
        }
        /* Arrange for an interrupt in a short while */
 diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
-index 33984c0..666a96d 100644
+index d2d1c19..3e21d8d 100644
 --- a/arch/mips/kernel/traps.c
 +++ b/arch/mips/kernel/traps.c
 @@ -689,7 +689,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
@@ -6892,10 +6996,10 @@ index 33984c0..666a96d 100644
        info.si_code = FPE_INTOVF;
        info.si_signo = SIGFPE;
 diff --git a/arch/mips/kvm/mips.c b/arch/mips/kvm/mips.c
-index f5e7dda..47198ec 100644
+index 52f205a..335927c 100644
 --- a/arch/mips/kvm/mips.c
 +++ b/arch/mips/kvm/mips.c
-@@ -816,7 +816,7 @@ long kvm_arch_vm_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg)
+@@ -1013,7 +1013,7 @@ long kvm_arch_vm_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg)
        return r;
  }
  
@@ -6948,7 +7052,7 @@ index 7ff8637..6004edb 100644
                tsk->thread.error_code = write;
                if (show_unhandled_signals &&
 diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c
-index f1baadd..5472dca 100644
+index 5c81fdd..db158d3 100644
 --- a/arch/mips/mm/mmap.c
 +++ b/arch/mips/mm/mmap.c
 @@ -59,6 +59,7 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
@@ -6988,7 +7092,7 @@ index f1baadd..5472dca 100644
  
        if (dir == DOWN) {
                info.flags = VM_UNMAPPED_AREA_TOPDOWN;
-@@ -146,6 +152,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+@@ -160,45 +166,34 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
  {
        unsigned long random_factor = 0UL;
  
@@ -6996,10 +7100,8 @@ index f1baadd..5472dca 100644
 +      if (!(mm->pax_flags & MF_PAX_RANDMMAP))
 +#endif
 +
-       if (current->flags & PF_RANDOMIZE) {
-               random_factor = get_random_int();
-               random_factor = random_factor << PAGE_SHIFT;
-@@ -157,40 +167,25 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+       if (current->flags & PF_RANDOMIZE)
+               random_factor = arch_mmap_rnd();
  
        if (mmap_is_legacy()) {
                mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
@@ -7186,7 +7288,7 @@ index 4ce7a01..449202a 100644
  
  #endif /* __ASM_OPENRISC_CACHE_H */
 diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
-index 226f8ca..9d9b87d 100644
+index 226f8ca9..9d9b87d 100644
 --- a/arch/parisc/include/asm/atomic.h
 +++ b/arch/parisc/include/asm/atomic.h
 @@ -273,6 +273,16 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
@@ -7235,7 +7337,7 @@ index 47f11c7..3420df2 100644
  
  #define SMP_CACHE_BYTES L1_CACHE_BYTES
 diff --git a/arch/parisc/include/asm/elf.h b/arch/parisc/include/asm/elf.h
-index 3391d06..c23a2cc 100644
+index 78c9fd3..42fa66a 100644
 --- a/arch/parisc/include/asm/elf.h
 +++ b/arch/parisc/include/asm/elf.h
 @@ -342,6 +342,13 @@ struct pt_regs;   /* forward declaration... */
@@ -7253,7 +7355,7 @@ index 3391d06..c23a2cc 100644
     instruction set this CPU supports.  This could be done in user space,
     but it's not easy, and we've already done it here.  */
 diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h
-index d174372..f27fe5c 100644
+index 3a08eae..08fef28 100644
 --- a/arch/parisc/include/asm/pgalloc.h
 +++ b/arch/parisc/include/asm/pgalloc.h
 @@ -61,6 +61,11 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
@@ -7268,7 +7370,24 @@ index d174372..f27fe5c 100644
  static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
  {
        pmd_t *pmd = (pmd_t *)__get_free_pages(GFP_KERNEL|__GFP_REPEAT,
-@@ -96,6 +101,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
+@@ -72,7 +77,7 @@ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
+ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
+ {
+-      if(pmd_flag(*pmd) & PxD_FLAG_ATTACHED)
++      if (pmd_flag(*pmd) & PxD_FLAG_ATTACHED) {
+               /*
+                * This is the permanent pmd attached to the pgd;
+                * cannot free it.
+@@ -81,6 +86,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
+                */
+               mm_inc_nr_pmds(mm);
+               return;
++      }
+       free_pages((unsigned long)pmd, PMD_ORDER);
+ }
+@@ -96,6 +102,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
  #define pmd_alloc_one(mm, addr)               ({ BUG(); ((pmd_t *)2); })
  #define pmd_free(mm, x)                       do { } while (0)
  #define pgd_populate(mm, pmd, pte)    BUG()
@@ -7277,10 +7396,10 @@ index d174372..f27fe5c 100644
  #endif
  
 diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h
-index 15207b9..3209e65 100644
+index 0a18375..d613939 100644
 --- a/arch/parisc/include/asm/pgtable.h
 +++ b/arch/parisc/include/asm/pgtable.h
-@@ -215,6 +215,17 @@ extern void purge_tlb_entries(struct mm_struct *, unsigned long);
+@@ -213,6 +213,17 @@ extern void purge_tlb_entries(struct mm_struct *, unsigned long);
  #define PAGE_EXECREAD   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
  #define PAGE_COPY       PAGE_EXECREAD
  #define PAGE_RWX        __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC |_PAGE_ACCESSED)
@@ -7419,10 +7538,10 @@ index 3c63a82..b1d6ee9 100644
        DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
               me->arch.unwind_section, table, end, gp);
 diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
-index e1ffea2..46ed66e 100644
+index 5aba01a..47cdd5a 100644
 --- a/arch/parisc/kernel/sys_parisc.c
 +++ b/arch/parisc/kernel/sys_parisc.c
-@@ -89,6 +89,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -92,6 +92,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
        unsigned long task_size = TASK_SIZE;
        int do_color_align, last_mmap;
        struct vm_unmapped_area_info info;
@@ -7430,7 +7549,7 @@ index e1ffea2..46ed66e 100644
  
        if (len > task_size)
                return -ENOMEM;
-@@ -106,6 +107,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -109,6 +110,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
                goto found_addr;
        }
  
@@ -7441,7 +7560,7 @@ index e1ffea2..46ed66e 100644
        if (addr) {
                if (do_color_align && last_mmap)
                        addr = COLOR_ALIGN(addr, last_mmap, pgoff);
-@@ -124,6 +129,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -127,6 +132,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
        info.high_limit = mmap_upper_limit();
        info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
        info.align_offset = shared_align_offset(last_mmap, pgoff);
@@ -7449,7 +7568,7 @@ index e1ffea2..46ed66e 100644
        addr = vm_unmapped_area(&info);
  
  found_addr:
-@@ -143,6 +149,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -146,6 +152,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        unsigned long addr = addr0;
        int do_color_align, last_mmap;
        struct vm_unmapped_area_info info;
@@ -7457,7 +7576,7 @@ index e1ffea2..46ed66e 100644
  
  #ifdef CONFIG_64BIT
        /* This should only ever run for 32-bit processes.  */
-@@ -167,6 +174,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -170,6 +177,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        }
  
        /* requesting a specific address */
@@ -7468,7 +7587,7 @@ index e1ffea2..46ed66e 100644
        if (addr) {
                if (do_color_align && last_mmap)
                        addr = COLOR_ALIGN(addr, last_mmap, pgoff);
-@@ -184,6 +195,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -187,6 +198,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        info.high_limit = mm->mmap_base;
        info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
        info.align_offset = shared_align_offset(last_mmap, pgoff);
@@ -7476,7 +7595,7 @@ index e1ffea2..46ed66e 100644
        addr = vm_unmapped_area(&info);
        if (!(addr & ~PAGE_MASK))
                goto found_addr;
-@@ -249,6 +261,13 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+@@ -252,6 +264,13 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
        mm->mmap_legacy_base = mmap_legacy_base();
        mm->mmap_base = mmap_upper_limit();
  
@@ -7679,10 +7798,10 @@ index e5120e6..8ddb5cc 100644
        /*
         * If for any reason at all we couldn't handle the fault, make
 diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index 22b0940..309f790 100644
+index 190cc48..48439ce 100644
 --- a/arch/powerpc/Kconfig
 +++ b/arch/powerpc/Kconfig
-@@ -409,6 +409,7 @@ config PPC64_SUPPORTS_MEMORY_FAILURE
+@@ -413,6 +413,7 @@ config PPC64_SUPPORTS_MEMORY_FAILURE
  config KEXEC
        bool "kexec system call"
        depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP))
@@ -8217,7 +8336,7 @@ index a3bf5be..e03ba81 100644
  
  #define smp_load_acquire(p)                                           \
 diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
-index 34a05a1..a1f2c67 100644
+index 0dc42c5..b80a3a1 100644
 --- a/arch/powerpc/include/asm/cache.h
 +++ b/arch/powerpc/include/asm/cache.h
 @@ -4,6 +4,7 @@
@@ -8238,7 +8357,7 @@ index 34a05a1..a1f2c67 100644
  #define       SMP_CACHE_BYTES         L1_CACHE_BYTES
  
 diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
-index 57d289a..b36c98c 100644
+index ee46ffe..b36c98c 100644
 --- a/arch/powerpc/include/asm/elf.h
 +++ b/arch/powerpc/include/asm/elf.h
 @@ -30,6 +30,18 @@
@@ -8260,17 +8379,6 @@ index 57d289a..b36c98c 100644
  #define ELF_CORE_EFLAGS (is_elf2_task() ? 2 : 0)
  
  /*
-@@ -128,10 +140,6 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
-       (0x7ff >> (PAGE_SHIFT - 12)) : \
-       (0x3ffff >> (PAGE_SHIFT - 12)))
--extern unsigned long arch_randomize_brk(struct mm_struct *mm);
--#define arch_randomize_brk arch_randomize_brk
--
--
- #ifdef CONFIG_SPU_BASE
- /* Notes used in ET_CORE. Note name is "SPU/<fd>/<filename>". */
- #define NT_SPU                1
 diff --git a/arch/powerpc/include/asm/exec.h b/arch/powerpc/include/asm/exec.h
 index 8196e9c..d83a9f3 100644
 --- a/arch/powerpc/include/asm/exec.h
@@ -8472,7 +8580,7 @@ index 4b0be20..c15a27d 100644
  static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
                                       pte_t *pte)
 diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
-index 9835ac4..900430f 100644
+index 11a3863..108f194 100644
 --- a/arch/powerpc/include/asm/pgtable.h
 +++ b/arch/powerpc/include/asm/pgtable.h
 @@ -2,6 +2,7 @@
@@ -8508,7 +8616,7 @@ index af56b5c..f86f3f6 100644
  #define   DSISR_ISSTORE               0x02000000      /* access was a store */
  #define   DSISR_DABRMATCH     0x00400000      /* hit data breakpoint */
 diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
-index d607df5..08dc9ae 100644
+index 825663c..f9e9134 100644
 --- a/arch/powerpc/include/asm/smp.h
 +++ b/arch/powerpc/include/asm/smp.h
 @@ -51,7 +51,7 @@ struct smp_ops_t {
@@ -8588,10 +8696,10 @@ index 4dbe072..b803275 100644
        : "r"(&rw->lock)
        : "cr0", "xer", "memory");
 diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
-index 7248979..80b75de 100644
+index 7efee4a..48d47cc 100644
 --- a/arch/powerpc/include/asm/thread_info.h
 +++ b/arch/powerpc/include/asm/thread_info.h
-@@ -103,6 +103,8 @@ static inline struct thread_info *current_thread_info(void)
+@@ -101,6 +101,8 @@ static inline struct thread_info *current_thread_info(void)
  #if defined(CONFIG_PPC64)
  #define TIF_ELF2ABI           18      /* function descriptors must die! */
  #endif
@@ -8600,7 +8708,7 @@ index 7248979..80b75de 100644
  
  /* as above, but as bit values */
  #define _TIF_SYSCALL_TRACE    (1<<TIF_SYSCALL_TRACE)
-@@ -121,9 +123,10 @@ static inline struct thread_info *current_thread_info(void)
+@@ -119,9 +121,10 @@ static inline struct thread_info *current_thread_info(void)
  #define _TIF_SYSCALL_TRACEPOINT       (1<<TIF_SYSCALL_TRACEPOINT)
  #define _TIF_EMULATE_STACK_STORE      (1<<TIF_EMULATE_STACK_STORE)
  #define _TIF_NOHZ             (1<<TIF_NOHZ)
@@ -8793,7 +8901,7 @@ index a0c071d..49cdc7f 100644
  
  static inline unsigned long clear_user(void __user *addr, unsigned long size)
 diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
-index 502cf69..53936a1 100644
+index c1ebbda..fd8a98d 100644
 --- a/arch/powerpc/kernel/Makefile
 +++ b/arch/powerpc/kernel/Makefile
 @@ -15,6 +15,11 @@ CFLAGS_prom_init.o      += -fPIC
@@ -8919,7 +9027,7 @@ index c94d2e0..992a9ce 100644
                            sechdrs, module);
  #endif
 diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
-index b4cc7be..1fe8bb3 100644
+index febb50d..bb10020 100644
 --- a/arch/powerpc/kernel/process.c
 +++ b/arch/powerpc/kernel/process.c
 @@ -1036,8 +1036,8 @@ void show_regs(struct pt_regs * regs)
@@ -8933,7 +9041,7 @@ index b4cc7be..1fe8bb3 100644
  #endif
        show_stack(current, (unsigned long *) regs->gpr[1]);
        if (!user_mode(regs))
-@@ -1549,10 +1549,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
+@@ -1554,10 +1554,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
                newsp = stack[0];
                ip = stack[STACK_FRAME_LR_SAVE];
                if (!firstframe || ip != lr) {
@@ -8946,7 +9054,7 @@ index b4cc7be..1fe8bb3 100644
                                       (void *)current->ret_stack[curr_frame].ret);
                                curr_frame--;
                        }
-@@ -1572,7 +1572,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
+@@ -1577,7 +1577,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
                        struct pt_regs *regs = (struct pt_regs *)
                                (sp + STACK_FRAME_OVERHEAD);
                        lr = regs->link;
@@ -8955,7 +9063,7 @@ index b4cc7be..1fe8bb3 100644
                               regs->trap, (void *)regs->nip, (void *)lr);
                        firstframe = 1;
                }
-@@ -1608,49 +1608,3 @@ void notrace __ppc64_runlatch_off(void)
+@@ -1613,49 +1613,3 @@ void notrace __ppc64_runlatch_off(void)
        mtspr(SPRN_CTRLT, ctrl);
  }
  #endif /* CONFIG_PPC64 */
@@ -9159,10 +9267,10 @@ index 305eb0d..accc5b40 100644
                rc = vdso_base;
                goto fail_mmapsem;
 diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
-index 27c0fac..6ec4a32 100644
+index ac3ddf1..9a54c76 100644
 --- a/arch/powerpc/kvm/powerpc.c
 +++ b/arch/powerpc/kvm/powerpc.c
-@@ -1402,7 +1402,7 @@ void kvmppc_init_lpid(unsigned long nr_lpids_param)
+@@ -1403,7 +1403,7 @@ void kvmppc_init_lpid(unsigned long nr_lpids_param)
  }
  EXPORT_SYMBOL_GPL(kvmppc_init_lpid);
  
@@ -9307,44 +9415,21 @@ index b396868..3eb6b9f 100644
                goto bail;
        }
 diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c
-index cb8bdbe..cde4bc7 100644
+index 0f0502e..bc3e7a3 100644
 --- a/arch/powerpc/mm/mmap.c
 +++ b/arch/powerpc/mm/mmap.c
-@@ -53,10 +53,14 @@ static inline int mmap_is_legacy(void)
-       return sysctl_legacy_va_layout;
- }
--static unsigned long mmap_rnd(void)
-+static unsigned long mmap_rnd(struct mm_struct *mm)
+@@ -86,6 +86,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
  {
-       unsigned long rnd = 0;
+       unsigned long random_factor = 0UL;
  
 +#ifdef CONFIG_PAX_RANDMMAP
 +      if (!(mm->pax_flags & MF_PAX_RANDMMAP))
 +#endif
 +
-       if (current->flags & PF_RANDOMIZE) {
-               /* 8MB for 32bit, 1GB for 64bit */
-               if (is_32bit_task())
-@@ -67,7 +71,7 @@ static unsigned long mmap_rnd(void)
-       return rnd << PAGE_SHIFT;
- }
--static inline unsigned long mmap_base(void)
-+static inline unsigned long mmap_base(struct mm_struct *mm)
- {
-       unsigned long gap = rlimit(RLIMIT_STACK);
-@@ -76,7 +80,7 @@ static inline unsigned long mmap_base(void)
-       else if (gap > MAX_GAP)
-               gap = MAX_GAP;
+       if (current->flags & PF_RANDOMIZE)
+               random_factor = arch_mmap_rnd();
  
--      return PAGE_ALIGN(TASK_SIZE - gap - mmap_rnd());
-+      return PAGE_ALIGN(TASK_SIZE - gap - mmap_rnd(mm));
- }
- /*
-@@ -91,9 +95,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+@@ -95,9 +99,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
         */
        if (mmap_is_legacy()) {
                mm->mmap_base = TASK_UNMAPPED_BASE;
@@ -9356,8 +9441,7 @@ index cb8bdbe..cde4bc7 100644
 +
                mm->get_unmapped_area = arch_get_unmapped_area;
        } else {
--              mm->mmap_base = mmap_base();
-+              mm->mmap_base = mmap_base(mm);
+               mm->mmap_base = mmap_base(random_factor);
 +
 +#ifdef CONFIG_PAX_RANDMMAP
 +              if (mm->pax_flags & MF_PAX_RANDMMAP)
@@ -9422,10 +9506,10 @@ index d966bbe..372124a 100644
        struct spu_context *ctx = vma->vm_file->private_data;
        unsigned long offset = address - vma->vm_start;
 diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
-index fa934fe..c296056 100644
+index adbe380..adb7516 100644
 --- a/arch/s390/include/asm/atomic.h
 +++ b/arch/s390/include/asm/atomic.h
-@@ -412,4 +412,14 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
+@@ -317,4 +317,14 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
  #define atomic64_dec_and_test(_v)     (atomic64_sub_return(1, _v) == 0)
  #define atomic64_inc_not_zero(v)      atomic64_add_unless((v), 1, 0)
  
@@ -9470,36 +9554,23 @@ index 4d7ccac..d03d0ad 100644
  
  #define __read_mostly __attribute__((__section__(".data..read_mostly")))
 diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
-index c9c875d..b4b0e4c 100644
+index 3ad48f2..64cc6f3 100644
 --- a/arch/s390/include/asm/elf.h
 +++ b/arch/s390/include/asm/elf.h
-@@ -163,8 +163,14 @@ extern unsigned int vdso_enabled;
-    the loader.  We need to make sure that it is out of the way of the program
-    that it will "exec", and that there is sufficient room for the brk.  */
+@@ -163,6 +163,13 @@ extern unsigned int vdso_enabled;
+                               (STACK_TOP / 3 * 2) : \
+                               (STACK_TOP / 3 * 2) & ~((1UL << 32) - 1))
  
--extern unsigned long randomize_et_dyn(void);
--#define ELF_ET_DYN_BASE               randomize_et_dyn()
-+#define ELF_ET_DYN_BASE               (STACK_TOP / 3 * 2)
-+
 +#ifdef CONFIG_PAX_ASLR
 +#define PAX_ELF_ET_DYN_BASE   (test_thread_flag(TIF_31BIT) ? 0x10000UL : 0x80000000UL)
 +
 +#define PAX_DELTA_MMAP_LEN    (test_thread_flag(TIF_31BIT) ? 15 : 26)
 +#define PAX_DELTA_STACK_LEN   (test_thread_flag(TIF_31BIT) ? 15 : 26)
 +#endif
++
  /* This yields a mask that user programs can use to figure out what
     instruction set this CPU supports. */
-@@ -225,9 +231,6 @@ struct linux_binprm;
- #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
- int arch_setup_additional_pages(struct linux_binprm *, int);
--extern unsigned long arch_randomize_brk(struct mm_struct *mm);
--#define arch_randomize_brk arch_randomize_brk
--
- void *fill_cpu_elf_notes(void *ptr, struct save_area *sa, __vector128 *vxrs);
  
- #endif
 diff --git a/arch/s390/include/asm/exec.h b/arch/s390/include/asm/exec.h
 index c4a93d6..4d2a9b4 100644
 --- a/arch/s390/include/asm/exec.h
@@ -9513,7 +9584,7 @@ index c4a93d6..4d2a9b4 100644
  
  #endif /* __ASM_EXEC_H */
 diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
-index cd4c68e..6764641 100644
+index d64a7a6..0830329 100644
 --- a/arch/s390/include/asm/uaccess.h
 +++ b/arch/s390/include/asm/uaccess.h
 @@ -59,6 +59,7 @@ static inline int __range_ok(unsigned long addr, unsigned long size)
@@ -9553,10 +9624,10 @@ index cd4c68e..6764641 100644
                return n;
        }
 diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
-index 2ca9586..55682a9 100644
+index 0c1a679..e1df357 100644
 --- a/arch/s390/kernel/module.c
 +++ b/arch/s390/kernel/module.c
-@@ -165,11 +165,11 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
+@@ -159,11 +159,11 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
  
        /* Increase core size by size of got & plt and set start
           offsets for got and plt. */
@@ -9573,7 +9644,7 @@ index 2ca9586..55682a9 100644
        return 0;
  }
  
-@@ -285,7 +285,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+@@ -279,7 +279,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
                if (info->got_initialized == 0) {
                        Elf_Addr *gotent;
  
@@ -9582,7 +9653,7 @@ index 2ca9586..55682a9 100644
                                info->got_offset;
                        *gotent = val;
                        info->got_initialized = 1;
-@@ -308,7 +308,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+@@ -302,7 +302,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
                        rc = apply_rela_bits(loc, val, 0, 64, 0);
                else if (r_type == R_390_GOTENT ||
                         r_type == R_390_GOTPLTENT) {
@@ -9591,16 +9662,16 @@ index 2ca9586..55682a9 100644
                        rc = apply_rela_bits(loc, val, 1, 32, 1);
                }
                break;
-@@ -321,7 +321,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+@@ -315,7 +315,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
        case R_390_PLTOFF64:    /* 16 bit offset from GOT to PLT. */
                if (info->plt_initialized == 0) {
                        unsigned int *ip;
 -                      ip = me->module_core + me->arch.plt_offset +
 +                      ip = me->module_core_rx + me->arch.plt_offset +
                                info->plt_offset;
- #ifndef CONFIG_64BIT
-                       ip[0] = 0x0d105810; /* basr 1,0; l 1,6(1); br 1 */
-@@ -346,7 +346,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+                       ip[0] = 0x0d10e310; /* basr 1,0; lg 1,10(1); br 1 */
+                       ip[1] = 0x100a0004;
+@@ -334,7 +334,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
                               val - loc + 0xffffUL < 0x1ffffeUL) ||
                              (r_type == R_390_PLT32DBL &&
                               val - loc + 0xffffffffULL < 0x1fffffffeULL)))
@@ -9609,7 +9680,7 @@ index 2ca9586..55682a9 100644
                                        me->arch.plt_offset +
                                        info->plt_offset;
                        val += rela->r_addend - loc;
-@@ -368,7 +368,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+@@ -356,7 +356,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
        case R_390_GOTOFF32:    /* 32 bit offset to GOT.  */
        case R_390_GOTOFF64:    /* 64 bit offset to GOT. */
                val = val + rela->r_addend -
@@ -9618,7 +9689,7 @@ index 2ca9586..55682a9 100644
                if (r_type == R_390_GOTOFF16)
                        rc = apply_rela_bits(loc, val, 0, 16, 0);
                else if (r_type == R_390_GOTOFF32)
-@@ -378,7 +378,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+@@ -366,7 +366,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
                break;
        case R_390_GOTPC:       /* 32 bit PC relative offset to GOT. */
        case R_390_GOTPCDBL:    /* 32 bit PC rel. off. to GOT shifted by 1. */
@@ -9628,10 +9699,10 @@ index 2ca9586..55682a9 100644
                if (r_type == R_390_GOTPC)
                        rc = apply_rela_bits(loc, val, 1, 32, 0);
 diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
-index 13fc097..84d375f 100644
+index dc5edc2..7d34ae3 100644
 --- a/arch/s390/kernel/process.c
 +++ b/arch/s390/kernel/process.c
-@@ -227,27 +227,3 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -200,27 +200,3 @@ unsigned long get_wchan(struct task_struct *p)
        }
        return 0;
  }
@@ -9660,35 +9731,24 @@ index 13fc097..84d375f 100644
 -      return (ret > mm->brk) ? ret : mm->brk;
 -}
 diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
-index 179a2c2..371e85c 100644
+index 6e552af..3e608a1 100644
 --- a/arch/s390/mm/mmap.c
 +++ b/arch/s390/mm/mmap.c
-@@ -204,9 +204,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
-        */
-       if (mmap_is_legacy()) {
-               mm->mmap_base = mmap_base_legacy();
-+
-+#ifdef CONFIG_PAX_RANDMMAP
-+              if (mm->pax_flags & MF_PAX_RANDMMAP)
-+                      mm->mmap_base += mm->delta_mmap;
-+#endif
-+
-               mm->get_unmapped_area = arch_get_unmapped_area;
-       } else {
-               mm->mmap_base = mmap_base();
-+
+@@ -239,6 +239,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+ {
+       unsigned long random_factor = 0UL;
 +#ifdef CONFIG_PAX_RANDMMAP
-+              if (mm->pax_flags & MF_PAX_RANDMMAP)
-+                      mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
++      if (!(mm->pax_flags & MF_PAX_RANDMMAP))
 +#endif
 +
-               mm->get_unmapped_area = arch_get_unmapped_area_topdown;
-       }
- }
-@@ -279,9 +291,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+       if (current->flags & PF_RANDOMIZE)
+               random_factor = arch_mmap_rnd();
+@@ -248,9 +252,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
         */
        if (mmap_is_legacy()) {
-               mm->mmap_base = mmap_base_legacy();
+               mm->mmap_base = mmap_base_legacy(random_factor);
 +
 +#ifdef CONFIG_PAX_RANDMMAP
 +              if (mm->pax_flags & MF_PAX_RANDMMAP)
@@ -9697,7 +9757,7 @@ index 179a2c2..371e85c 100644
 +
                mm->get_unmapped_area = s390_get_unmapped_area;
        } else {
-               mm->mmap_base = mmap_base();
+               mm->mmap_base = mmap_base(random_factor);
 +
 +#ifdef CONFIG_PAX_RANDMMAP
 +              if (mm->pax_flags & MF_PAX_RANDMMAP)
@@ -10318,10 +10378,10 @@ index 9689176..63c18ea 100644
        unsigned long mask, tmp1, tmp2, result;
  
 diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h
-index fd7bd0a..2e2fa7a 100644
+index 229475f..2fca9163 100644
 --- a/arch/sparc/include/asm/thread_info_32.h
 +++ b/arch/sparc/include/asm/thread_info_32.h
-@@ -47,6 +47,7 @@ struct thread_info {
+@@ -48,6 +48,7 @@ struct thread_info {
        struct reg_window32     reg_window[NSWINS];     /* align for ldd! */
        unsigned long           rwbuf_stkptrs[NSWINS];
        unsigned long           w_saved;
@@ -10330,10 +10390,10 @@ index fd7bd0a..2e2fa7a 100644
  
  /*
 diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
-index ff45516..73001ab 100644
+index bde5982..9cbb56d 100644
 --- a/arch/sparc/include/asm/thread_info_64.h
 +++ b/arch/sparc/include/asm/thread_info_64.h
-@@ -61,6 +61,8 @@ struct thread_info {
+@@ -59,6 +59,8 @@ struct thread_info {
        struct pt_regs          *kern_una_regs;
        unsigned int            kern_una_insn;
  
@@ -10342,7 +10402,7 @@ index ff45516..73001ab 100644
        unsigned long           fpregs[(7 * 256) / sizeof(unsigned long)]
                __attribute__ ((aligned(64)));
  };
-@@ -184,12 +186,13 @@ register struct thread_info *current_thread_info_reg asm("g6");
+@@ -180,12 +182,13 @@ register struct thread_info *current_thread_info_reg asm("g6");
  #define TIF_NEED_RESCHED      3       /* rescheduling necessary */
  /* flag bit 4 is available */
  #define TIF_UNALIGNED         5       /* allowed to do unaligned accesses */
@@ -10357,7 +10417,7 @@ index ff45516..73001ab 100644
  /* NOTE: Thread flags >= 12 should be ones we have no interest
   *       in using in assembly, else we can't use the mask as
   *       an immediate value in instructions such as andcc.
-@@ -209,12 +212,17 @@ register struct thread_info *current_thread_info_reg asm("g6");
+@@ -205,12 +208,17 @@ register struct thread_info *current_thread_info_reg asm("g6");
  #define _TIF_SYSCALL_AUDIT    (1<<TIF_SYSCALL_AUDIT)
  #define _TIF_SYSCALL_TRACEPOINT       (1<<TIF_SYSCALL_TRACEPOINT)
  #define _TIF_POLLING_NRFLAG   (1<<TIF_POLLING_NRFLAG)
@@ -10643,10 +10703,10 @@ index 9ddc492..27a5619 100644
  
        if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
 diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
-index 61139d9..c1a5f28 100644
+index 19cd08d..ff21e99 100644
 --- a/arch/sparc/kernel/smp_64.c
 +++ b/arch/sparc/kernel/smp_64.c
-@@ -887,7 +887,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
+@@ -891,7 +891,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
                return;
  
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -10655,7 +10715,7 @@ index 61139d9..c1a5f28 100644
  #endif
  
        this_cpu = get_cpu();
-@@ -911,7 +911,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
+@@ -915,7 +915,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
                        xcall_deliver(data0, __pa(pg_addr),
                                      (u64) pg_addr, cpumask_of(cpu));
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -10664,7 +10724,7 @@ index 61139d9..c1a5f28 100644
  #endif
                }
        }
-@@ -930,7 +930,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
+@@ -934,7 +934,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
        preempt_disable();
  
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -10673,7 +10733,7 @@ index 61139d9..c1a5f28 100644
  #endif
        data0 = 0;
        pg_addr = page_address(page);
-@@ -947,7 +947,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
+@@ -951,7 +951,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
                xcall_deliver(data0, __pa(pg_addr),
                              (u64) pg_addr, cpu_online_mask);
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -10909,7 +10969,7 @@ index bb00089..e0ea580 100644
  
  2:
 diff --git a/arch/sparc/kernel/traps_32.c b/arch/sparc/kernel/traps_32.c
-index 6fd386c5..6907d81 100644
+index 4f21df7..0a374da 100644
 --- a/arch/sparc/kernel/traps_32.c
 +++ b/arch/sparc/kernel/traps_32.c
 @@ -44,6 +44,8 @@ static void instruction_dump(unsigned long *pc)
@@ -10942,7 +11002,7 @@ index 6fd386c5..6907d81 100644
  }
  
 diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
-index 0e69974..0c15a6e 100644
+index d21cd62..00a4a17 100644
 --- a/arch/sparc/kernel/traps_64.c
 +++ b/arch/sparc/kernel/traps_64.c
 @@ -79,7 +79,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
@@ -12259,10 +12319,10 @@ index 4242eab..9ae6360 100644
  
  pte_t *huge_pte_alloc(struct mm_struct *mm,
 diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
-index 4ca0d6b..e89bca1 100644
+index 559cb74..9e5f097 100644
 --- a/arch/sparc/mm/init_64.c
 +++ b/arch/sparc/mm/init_64.c
-@@ -186,9 +186,9 @@ unsigned long sparc64_kern_sec_context __read_mostly;
+@@ -187,9 +187,9 @@ unsigned long sparc64_kern_sec_context __read_mostly;
  int num_kernel_image_mappings;
  
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -12274,7 +12334,7 @@ index 4ca0d6b..e89bca1 100644
  #endif
  #endif
  
-@@ -196,7 +196,7 @@ inline void flush_dcache_page_impl(struct page *page)
+@@ -197,7 +197,7 @@ inline void flush_dcache_page_impl(struct page *page)
  {
        BUG_ON(tlb_type == hypervisor);
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -12283,7 +12343,7 @@ index 4ca0d6b..e89bca1 100644
  #endif
  
  #ifdef DCACHE_ALIASING_POSSIBLE
-@@ -468,10 +468,10 @@ void mmu_info(struct seq_file *m)
+@@ -469,10 +469,10 @@ void mmu_info(struct seq_file *m)
  
  #ifdef CONFIG_DEBUG_DCFLUSH
        seq_printf(m, "DCPageFlushes\t: %d\n",
@@ -12297,10 +12357,10 @@ index 4ca0d6b..e89bca1 100644
  #endif /* CONFIG_DEBUG_DCFLUSH */
  }
 diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
-index 7cca418..53fc030 100644
+index a07e31b..85c9003 100644
 --- a/arch/tile/Kconfig
 +++ b/arch/tile/Kconfig
-@@ -192,6 +192,7 @@ source "kernel/Kconfig.hz"
+@@ -198,6 +198,7 @@ source "kernel/Kconfig.hz"
  
  config KEXEC
        bool "kexec system call"
@@ -12384,7 +12444,7 @@ index 8416240..a012fb7 100644
  
        /*
 diff --git a/arch/um/Makefile b/arch/um/Makefile
-index e4b1a96..16162f8 100644
+index 17d4460..9d74338e3de4 100644
 --- a/arch/um/Makefile
 +++ b/arch/um/Makefile
 @@ -72,6 +72,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -D__KERNEL__,,\
@@ -12396,7 +12456,7 @@ index e4b1a96..16162f8 100644
 +endif
 +
  #This will adjust *FLAGS accordingly to the platform.
- include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS)
+ include $(ARCH_DIR)/Makefile-os-$(OS)
  
 diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h
 index 19e1bdd..3665b77 100644
@@ -12457,10 +12517,10 @@ index 2b4274e..754fe06 100644
  #ifdef CONFIG_64BIT
  #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval))
 diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
-index f17bca8..48adb87 100644
+index 68b9119..f72353c 100644
 --- a/arch/um/kernel/process.c
 +++ b/arch/um/kernel/process.c
-@@ -356,22 +356,6 @@ int singlestepping(void * t)
+@@ -345,22 +345,6 @@ int singlestepping(void * t)
        return 2;
  }
  
@@ -12501,10 +12561,19 @@ index ad8f795..2c7eec6 100644
  /*
   * Memory returned by kmalloc() may be used for DMA, so we must make
 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index b7d31ca..9481ec5 100644
+index 226d569..d420edc 100644
 --- a/arch/x86/Kconfig
 +++ b/arch/x86/Kconfig
-@@ -132,7 +132,7 @@ config X86
+@@ -32,7 +32,7 @@ config X86
+       select HAVE_AOUT if X86_32
+       select HAVE_UNSTABLE_SCHED_CLOCK
+       select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
+-      select ARCH_SUPPORTS_INT128 if X86_64
++      select ARCH_SUPPORTS_INT128 if X86_64 && !PAX_SIZE_OVERFLOW
+       select HAVE_IDE
+       select HAVE_OPROFILE
+       select HAVE_PCSPKR_PLATFORM
+@@ -134,7 +134,7 @@ config X86
        select RTC_LIB
        select HAVE_DEBUG_STACKOVERFLOW
        select HAVE_IRQ_EXIT_ON_IRQ_STACK if X86_64
@@ -12522,7 +12591,7 @@ index b7d31ca..9481ec5 100644
  
  config ARCH_HWEIGHT_CFLAGS
        string
-@@ -632,6 +632,7 @@ config SCHED_OMIT_FRAME_POINTER
+@@ -638,6 +638,7 @@ config SCHED_OMIT_FRAME_POINTER
  
  menuconfig HYPERVISOR_GUEST
        bool "Linux guest support"
@@ -12530,7 +12599,7 @@ index b7d31ca..9481ec5 100644
        ---help---
          Say Y here to enable options for running Linux under various hyper-
          visors. This option enables basic hypervisor detection and platform
-@@ -1013,6 +1014,7 @@ config VM86
+@@ -1005,6 +1006,7 @@ config VM86
  
  config X86_16BIT
        bool "Enable support for 16-bit segments" if EXPERT
@@ -12538,7 +12607,7 @@ index b7d31ca..9481ec5 100644
        default y
        ---help---
          This option is required by programs like Wine to run 16-bit
-@@ -1186,6 +1188,7 @@ choice
+@@ -1178,6 +1180,7 @@ choice
  
  config NOHIGHMEM
        bool "off"
@@ -12546,7 +12615,7 @@ index b7d31ca..9481ec5 100644
        ---help---
          Linux can use up to 64 Gigabytes of physical memory on x86 systems.
          However, the address space of 32-bit x86 processors is only 4
-@@ -1222,6 +1225,7 @@ config NOHIGHMEM
+@@ -1214,6 +1217,7 @@ config NOHIGHMEM
  
  config HIGHMEM4G
        bool "4GB"
@@ -12554,7 +12623,7 @@ index b7d31ca..9481ec5 100644
        ---help---
          Select this if you have a 32-bit processor and between 1 and 4
          gigabytes of physical RAM.
-@@ -1274,7 +1278,7 @@ config PAGE_OFFSET
+@@ -1266,7 +1270,7 @@ config PAGE_OFFSET
        hex
        default 0xB0000000 if VMSPLIT_3G_OPT
        default 0x80000000 if VMSPLIT_2G
@@ -12563,7 +12632,7 @@ index b7d31ca..9481ec5 100644
        default 0x40000000 if VMSPLIT_1G
        default 0xC0000000
        depends on X86_32
-@@ -1715,6 +1719,7 @@ source kernel/Kconfig.hz
+@@ -1717,6 +1721,7 @@ source kernel/Kconfig.hz
  
  config KEXEC
        bool "kexec system call"
@@ -12571,7 +12640,7 @@ index b7d31ca..9481ec5 100644
        ---help---
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
-@@ -1900,7 +1905,9 @@ config X86_NEED_RELOCS
+@@ -1899,7 +1904,9 @@ config X86_NEED_RELOCS
  
  config PHYSICAL_ALIGN
        hex "Alignment value to which kernel should be aligned"
@@ -12582,7 +12651,7 @@ index b7d31ca..9481ec5 100644
        range 0x2000 0x1000000 if X86_32
        range 0x200000 0x1000000 if X86_64
        ---help---
-@@ -1983,6 +1990,7 @@ config COMPAT_VDSO
+@@ -1982,6 +1989,7 @@ config COMPAT_VDSO
        def_bool n
        prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
        depends on X86_32 || IA32_EMULATION
@@ -12590,6 +12659,29 @@ index b7d31ca..9481ec5 100644
        ---help---
          Certain buggy versions of glibc will crash if they are
          presented with a 32-bit vDSO that is not mapped at the address
+@@ -2046,6 +2054,22 @@ config CMDLINE_OVERRIDE
+         This is used to work around broken boot loaders.  This should
+         be set to 'N' under normal conditions.
++config DEFAULT_MODIFY_LDT_SYSCALL
++      bool "Allow userspace to modify the LDT by default"
++      default y
++
++      ---help---
++        Modifying the LDT (Local Descriptor Table) may be needed to run a
++        16-bit or segmented code such as Dosemu or Wine. This is done via
++        a system call which is not needed to run portable applications,
++        and which can sometimes be abused to exploit some weaknesses of
++        the architecture, opening new vulnerabilities.
++
++        For this reason this option allows one to enable or disable the
++        feature at runtime. It is recommended to say 'N' here to leave
++        the system protected, and to enable it at runtime only if needed
++        by setting the sys.kernel.modify_ldt sysctl.
++
+ source "kernel/livepatch/Kconfig"
+ endmenu
 diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
 index 6983314..54ad7e8 100644
 --- a/arch/x86/Kconfig.cpu
@@ -12622,10 +12714,10 @@ index 6983314..54ad7e8 100644
  config X86_MINIMUM_CPU_FAMILY
        int
 diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
-index 20028da..88d5946 100644
+index 72484a6..83a4411 100644
 --- a/arch/x86/Kconfig.debug
 +++ b/arch/x86/Kconfig.debug
-@@ -93,7 +93,7 @@ config EFI_PGT_DUMP
+@@ -89,7 +89,7 @@ config EFI_PGT_DUMP
  config DEBUG_RODATA
        bool "Write protect kernel read-only data structures"
        default y
@@ -12634,7 +12726,7 @@ index 20028da..88d5946 100644
        ---help---
          Mark the kernel read-only data as write-protected in the pagetables,
          in order to catch accidental (and incorrect) writes to such const
-@@ -111,7 +111,7 @@ config DEBUG_RODATA_TEST
+@@ -107,7 +107,7 @@ config DEBUG_RODATA_TEST
  
  config DEBUG_SET_MODULE_RONX
        bool "Set loadable kernel module data as NX and text as RO"
@@ -12644,12 +12736,12 @@ index 20028da..88d5946 100644
          This option helps catch unintended modifications to loadable
          kernel module's text and read-only data. It also prevents execution
 diff --git a/arch/x86/Makefile b/arch/x86/Makefile
-index 5ba2d9c..41e5bb6 100644
+index 2fda005..2c72d40 100644
 --- a/arch/x86/Makefile
 +++ b/arch/x86/Makefile
 @@ -65,9 +65,6 @@ ifeq ($(CONFIG_X86_32),y)
          # CPU-specific tuning. Anything which can be shared with UML should go here.
-         include $(srctree)/arch/x86/Makefile_32.cpu
+         include arch/x86/Makefile_32.cpu
          KBUILD_CFLAGS += $(cflags-y)
 -
 -        # temporary until string.h is fixed
@@ -12806,10 +12898,10 @@ index 630384a..278e788 100644
        .quad   0x0000000000000000      /* TS continued */
  efi_gdt64_end:
 diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
-index 1d7fbbc..36ecd58 100644
+index 8ef964d..fcfb8aa 100644
 --- a/arch/x86/boot/compressed/head_32.S
 +++ b/arch/x86/boot/compressed/head_32.S
-@@ -140,10 +140,10 @@ preferred_addr:
+@@ -141,10 +141,10 @@ preferred_addr:
        addl    %eax, %ebx
        notl    %eax
        andl    %eax, %ebx
@@ -12823,10 +12915,10 @@ index 1d7fbbc..36ecd58 100644
  
        /* Target address to relocate to for decompression */
 diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
-index 6b1766c..ad465c9 100644
+index b0c0d16..3b44ff8 100644
 --- a/arch/x86/boot/compressed/head_64.S
 +++ b/arch/x86/boot/compressed/head_64.S
-@@ -94,10 +94,10 @@ ENTRY(startup_32)
+@@ -95,10 +95,10 @@ ENTRY(startup_32)
        addl    %eax, %ebx
        notl    %eax
        andl    %eax, %ebx
@@ -12839,7 +12931,7 @@ index 6b1766c..ad465c9 100644
  1:
  
        /* Target address to relocate to for decompression */
-@@ -322,10 +322,10 @@ preferred_addr:
+@@ -323,10 +323,10 @@ preferred_addr:
        addq    %rax, %rbp
        notq    %rax
        andq    %rax, %rbp
@@ -12852,7 +12944,7 @@ index 6b1766c..ad465c9 100644
  1:
  
        /* Target address to relocate to for decompression */
-@@ -434,8 +434,8 @@ gdt:
+@@ -435,8 +435,8 @@ gdt:
        .long   gdt
        .word   0
        .quad   0x0000000000000000      /* NULL descriptor */
@@ -12864,7 +12956,7 @@ index 6b1766c..ad465c9 100644
        .quad   0x0000000000000000      /* TS continued */
  gdt_end:
 diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
-index a950864..c710239 100644
+index a107b93..55602de 100644
 --- a/arch/x86/boot/compressed/misc.c
 +++ b/arch/x86/boot/compressed/misc.c
 @@ -242,7 +242,7 @@ static void handle_relocations(void *output, unsigned long output_len)
@@ -12903,7 +12995,7 @@ index a950864..c710239 100644
                        break;
                default: /* Ignore other PT_* */ break;
                }
-@@ -416,7 +419,7 @@ asmlinkage __visible void *decompress_kernel(void *rmode, memptr heap,
+@@ -419,7 +422,7 @@ asmlinkage __visible void *decompress_kernel(void *rmode, memptr heap,
                error("Destination address too large");
  #endif
  #ifndef CONFIG_RELOCATABLE
@@ -13003,10 +13095,10 @@ index ba3e100..6501b8f 100644
  
  /*
 diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
-index 43eda28..5ab5fdb 100644
+index 05111bb..a1ae1f0 100644
 --- a/arch/x86/boot/video.c
 +++ b/arch/x86/boot/video.c
-@@ -96,7 +96,7 @@ static void store_mode_params(void)
+@@ -98,7 +98,7 @@ static void store_mode_params(void)
  static unsigned int get_entry(void)
  {
        char entry_buf[4];
@@ -13971,7 +14063,7 @@ index e3531f8..e123f35 100644
        ret;
  ENDPROC(cast6_xts_dec_8way)
 diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
-index 26d49eb..8bf39c8 100644
+index 225be06..2885e731 100644
 --- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
 +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
 @@ -45,6 +45,7 @@
@@ -14291,7 +14383,7 @@ index a410950..9dfe7ad 100644
  
        ENDPROC(\name)
 diff --git a/arch/x86/crypto/sha256-avx-asm.S b/arch/x86/crypto/sha256-avx-asm.S
-index 642f156..51a513c 100644
+index 92b3b5d..0dc1dcb 100644
 --- a/arch/x86/crypto/sha256-avx-asm.S
 +++ b/arch/x86/crypto/sha256-avx-asm.S
 @@ -49,6 +49,7 @@
@@ -14311,7 +14403,7 @@ index 642f156..51a513c 100644
  ENDPROC(sha256_transform_avx)
  
 diff --git a/arch/x86/crypto/sha256-avx2-asm.S b/arch/x86/crypto/sha256-avx2-asm.S
-index 9e86944..3795e6a 100644
+index 570ec5e..cf2b625 100644
 --- a/arch/x86/crypto/sha256-avx2-asm.S
 +++ b/arch/x86/crypto/sha256-avx2-asm.S
 @@ -50,6 +50,7 @@
@@ -14331,7 +14423,7 @@ index 9e86944..3795e6a 100644
  ENDPROC(sha256_transform_rorx)
  
 diff --git a/arch/x86/crypto/sha256-ssse3-asm.S b/arch/x86/crypto/sha256-ssse3-asm.S
-index f833b74..8c62a9e 100644
+index 2cedc44..5144899 100644
 --- a/arch/x86/crypto/sha256-ssse3-asm.S
 +++ b/arch/x86/crypto/sha256-ssse3-asm.S
 @@ -47,6 +47,7 @@
@@ -14351,7 +14443,7 @@ index f833b74..8c62a9e 100644
  ENDPROC(sha256_transform_ssse3)
  
 diff --git a/arch/x86/crypto/sha512-avx-asm.S b/arch/x86/crypto/sha512-avx-asm.S
-index 974dde9..a823ff9 100644
+index 565274d..af6bc08 100644
 --- a/arch/x86/crypto/sha512-avx-asm.S
 +++ b/arch/x86/crypto/sha512-avx-asm.S
 @@ -49,6 +49,7 @@
@@ -14371,7 +14463,7 @@ index 974dde9..a823ff9 100644
  ENDPROC(sha512_transform_avx)
  
 diff --git a/arch/x86/crypto/sha512-avx2-asm.S b/arch/x86/crypto/sha512-avx2-asm.S
-index 568b961..ed20c37 100644
+index 1f20b35..f25c8c1 100644
 --- a/arch/x86/crypto/sha512-avx2-asm.S
 +++ b/arch/x86/crypto/sha512-avx2-asm.S
 @@ -51,6 +51,7 @@
@@ -14391,7 +14483,7 @@ index 568b961..ed20c37 100644
  ENDPROC(sha512_transform_rorx)
  
 diff --git a/arch/x86/crypto/sha512-ssse3-asm.S b/arch/x86/crypto/sha512-ssse3-asm.S
-index fb56855..6edd768 100644
+index e610e29..ffcb5ed 100644
 --- a/arch/x86/crypto/sha512-ssse3-asm.S
 +++ b/arch/x86/crypto/sha512-ssse3-asm.S
 @@ -48,6 +48,7 @@
@@ -14556,7 +14648,7 @@ index 1c3b7ce..02f578d 100644
        ret;
  ENDPROC(twofish_dec_blk_3way)
 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64.S b/arch/x86/crypto/twofish-x86_64-asm_64.S
-index a039d21..524b8b2 100644
+index a350c99..c1bac24 100644
 --- a/arch/x86/crypto/twofish-x86_64-asm_64.S
 +++ b/arch/x86/crypto/twofish-x86_64-asm_64.S
 @@ -22,6 +22,7 @@
@@ -14570,7 +14662,7 @@ index a039d21..524b8b2 100644
 @@ -265,6 +266,7 @@ ENTRY(twofish_enc_blk)
  
        popq    R1
-       movq    $1,%rax
+       movl    $1,%eax
 +      pax_force_retaddr
        ret
  ENDPROC(twofish_enc_blk)
@@ -14578,7 +14670,7 @@ index a039d21..524b8b2 100644
 @@ -317,5 +319,6 @@ ENTRY(twofish_dec_blk)
  
        popq    R1
-       movq    $1,%rax
+       movl    $1,%eax
 +      pax_force_retaddr
        ret
  ENDPROC(twofish_dec_blk)
@@ -14596,10 +14688,10 @@ index ae6aad1..719d6d9 100644
        set_fs(KERNEL_DS);
        has_dumped = 1;
 diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
-index d0165c9..0d5639b 100644
+index c81d35e6..3500144 100644
 --- a/arch/x86/ia32/ia32_signal.c
 +++ b/arch/x86/ia32/ia32_signal.c
-@@ -218,7 +218,7 @@ asmlinkage long sys32_sigreturn(void)
+@@ -216,7 +216,7 @@ asmlinkage long sys32_sigreturn(void)
        if (__get_user(set.sig[0], &frame->sc.oldmask)
            || (_COMPAT_NSIG_WORDS > 1
                && __copy_from_user((((char *) &set.sig) + 4),
@@ -14608,7 +14700,7 @@ index d0165c9..0d5639b 100644
                                    sizeof(frame->extramask))))
                goto badframe;
  
-@@ -338,7 +338,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
+@@ -335,7 +335,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
        sp -= frame_size;
        /* Align the stack pointer according to the i386 ABI,
         * i.e. so that on function entry ((sp + 4) & 15) == 0. */
@@ -14617,7 +14709,7 @@ index d0165c9..0d5639b 100644
        return (void __user *) sp;
  }
  
-@@ -383,10 +383,10 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
+@@ -380,10 +380,10 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
        } else {
                /* Return stub is in 32bit vsyscall page */
                if (current->mm->context.vdso)
@@ -14631,7 +14723,7 @@ index d0165c9..0d5639b 100644
        }
  
        put_user_try {
-@@ -396,7 +396,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
+@@ -393,7 +393,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
                 * These are actually not used anymore, but left because some
                 * gdb versions depend on them as a marker.
                 */
@@ -14640,7 +14732,7 @@ index d0165c9..0d5639b 100644
        } put_user_catch(err);
  
        if (err)
-@@ -438,7 +438,7 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
+@@ -435,7 +435,7 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
                0xb8,
                __NR_ia32_rt_sigreturn,
                0x80cd,
@@ -14649,7 +14741,7 @@ index d0165c9..0d5639b 100644
        };
  
        frame = get_sigframe(ksig, regs, sizeof(*frame), &fpstate);
-@@ -461,16 +461,19 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
+@@ -458,16 +458,19 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
  
                if (ksig->ka.sa.sa_flags & SA_RESTORER)
                        restorer = ksig->ka.sa.sa_restorer;
@@ -14673,7 +14765,7 @@ index d0165c9..0d5639b 100644
  
        err |= copy_siginfo_to_user32(&frame->info, &ksig->info);
 diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
-index 156ebca..9591cf0 100644
+index 72bf268..127572a 100644
 --- a/arch/x86/ia32/ia32entry.S
 +++ b/arch/x86/ia32/ia32entry.S
 @@ -15,8 +15,10 @@
@@ -14687,25 +14779,7 @@ index 156ebca..9591cf0 100644
  
  /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this.  */
  #include <linux/elf-em.h>
-@@ -62,12 +64,12 @@
-        */
-       .macro LOAD_ARGS32 offset, _r9=0
-       .if \_r9
--      movl \offset+16(%rsp),%r9d
-+      movl \offset+R9(%rsp),%r9d
-       .endif
--      movl \offset+40(%rsp),%ecx
--      movl \offset+48(%rsp),%edx
--      movl \offset+56(%rsp),%esi
--      movl \offset+64(%rsp),%edi
-+      movl \offset+RCX(%rsp),%ecx
-+      movl \offset+RDX(%rsp),%edx
-+      movl \offset+RSI(%rsp),%esi
-+      movl \offset+RDI(%rsp),%edi
-       movl %eax,%eax                  /* zero extension */
-       .endm
-       
-@@ -96,6 +98,32 @@ ENTRY(native_irq_enable_sysexit)
+@@ -85,6 +87,32 @@ ENTRY(native_irq_enable_sysexit)
  ENDPROC(native_irq_enable_sysexit)
  #endif
  
@@ -14738,51 +14812,56 @@ index 156ebca..9591cf0 100644
  /*
   * 32bit SYSENTER instruction entry.
   *
-@@ -122,12 +150,6 @@ ENTRY(ia32_sysenter_target)
-       CFI_REGISTER    rsp,rbp
+@@ -119,23 +147,24 @@ ENTRY(ia32_sysenter_target)
+        * it is too small to ever cause noticeable irq latency.
+        */
        SWAPGS_UNSAFE_STACK
-       movq    PER_CPU_VAR(kernel_stack), %rsp
--      addq    $(KERNEL_STACK_OFFSET),%rsp
--      /*
--       * No need to follow this irqs on/off section: the syscall
--       * disabled irqs, here we enable it straight after entry:
--       */
+-      movq    PER_CPU_VAR(cpu_tss + TSS_sp0), %rsp
 -      ENABLE_INTERRUPTS(CLBR_NONE)
-       movl    %ebp,%ebp               /* zero extension */
-       pushq_cfi $__USER32_DS
-       /*CFI_REL_OFFSET ss,0*/
-@@ -135,23 +157,46 @@ ENTRY(ia32_sysenter_target)
-       CFI_REL_OFFSET rsp,0
-       pushfq_cfi
-       /*CFI_REL_OFFSET rflags,0*/
--      movl    TI_sysenter_return+THREAD_INFO(%rsp,3*8-KERNEL_STACK_OFFSET),%r10d
++      movq    PER_CPU_VAR(kernel_stack), %rsp
+       /* Zero-extending 32-bit regs, do not remove */
+       movl    %ebp, %ebp
+       movl    %eax, %eax
+-      movl    ASM_THREAD_INFO(TI_sysenter_return, %rsp, 0), %r10d
 -      CFI_REGISTER rip,r10
-+      orl     $X86_EFLAGS_IF,(%rsp)
 +      GET_THREAD_INFO(%r11)
 +      movl    TI_sysenter_return(%r11), %r11d
 +      CFI_REGISTER rip,r11
-       pushq_cfi $__USER32_CS
-       /*CFI_REL_OFFSET cs,0*/
-       movl    %eax, %eax
--      pushq_cfi %r10
-+      pushq_cfi %r11
-       CFI_REL_OFFSET rip,0
-       pushq_cfi %rax
-       cld
-       SAVE_ARGS 0,1,0
+       /* Construct struct pt_regs on stack */
+       pushq_cfi       $__USER32_DS            /* pt_regs->ss */
+       pushq_cfi       %rbp                    /* pt_regs->sp */
+       CFI_REL_OFFSET  rsp,0
+       pushfq_cfi                              /* pt_regs->flags */
++      orl     $X86_EFLAGS_IF,(%rsp)
+       pushq_cfi       $__USER32_CS            /* pt_regs->cs */
+-      pushq_cfi       %r10 /* pt_regs->ip = thread_info->sysenter_return */
++      pushq_cfi       %r11 /* pt_regs->ip = thread_info->sysenter_return */
+       CFI_REL_OFFSET  rip,0
+       pushq_cfi_reg   rax                     /* pt_regs->orig_ax */
+       pushq_cfi_reg   rdi                     /* pt_regs->di */
+@@ -147,15 +176,37 @@ ENTRY(ia32_sysenter_target)
+       sub     $(10*8),%rsp /* pt_regs->r8-11,bp,bx,r12-15 not saved */
+       CFI_ADJUST_CFA_OFFSET 10*8
++#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
++      movq_cfi r12, R12
++#endif
++
 +      pax_enter_kernel_user
 +
 +#ifdef CONFIG_PAX_RANDKSTACK
 +      pax_erase_kstack
 +#endif
 +
-+      /*
-+       * No need to follow this irqs on/off section: the syscall
-+       * disabled irqs, here we enable it straight after entry:
-+       */
 +      ENABLE_INTERRUPTS(CLBR_NONE)
-       /* no need to do an access_ok check here because rbp has been
-          32bit zero extended */ 
++
+       /*
+        * no need to do an access_ok check here because rbp has been
+        * 32bit zero extended
+        */
 +
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      addq    pax_user_shadow_base,%rbp
@@ -14801,83 +14880,85 @@ index 156ebca..9591cf0 100644
        /*
         * Sysenter doesn't filter flags, so we need to clear NT
         * ourselves.  To save a few cycles, we can check whether
-@@ -161,8 +206,9 @@ ENTRY(ia32_sysenter_target)
+@@ -165,8 +216,9 @@ ENTRY(ia32_sysenter_target)
        jnz sysenter_fix_flags
  sysenter_flags_fixed:
  
--      orl     $TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
--      testl   $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      orl     $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
+-      testl   $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 +      GET_THREAD_INFO(%r11)
 +      orl    $TS_COMPAT,TI_status(%r11)
 +      testl  $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r11)
        CFI_REMEMBER_STATE
        jnz  sysenter_tracesys
        cmpq    $(IA32_NR_syscalls-1),%rax
-@@ -172,14 +218,17 @@ sysenter_do_call:
+@@ -181,9 +233,10 @@ sysenter_do_call:
  sysenter_dispatch:
        call    *ia32_sys_call_table(,%rax,8)
-       movq    %rax,RAX-ARGOFFSET(%rsp)
+       movq    %rax,RAX(%rsp)
 +      GET_THREAD_INFO(%r11)
        DISABLE_INTERRUPTS(CLBR_NONE)
        TRACE_IRQS_OFF
--      testl   $_TIF_ALLWORK_MASK,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl   $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 +      testl   $_TIF_ALLWORK_MASK,TI_flags(%r11)
        jnz     sysexit_audit
  sysexit_from_sys_call:
--      andl    $~TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+       /*
+@@ -196,7 +249,9 @@ sysexit_from_sys_call:
+        * This code path is still called 'sysexit' because it pairs
+        * with 'sysenter' and it uses the SYSENTER calling convention.
+        */
+-      andl    $~TS_COMPAT,ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
 +      pax_exit_kernel_user
 +      pax_erase_kstack
 +      andl    $~TS_COMPAT,TI_status(%r11)
-       /* clear IF, that popfq doesn't enable interrupts early */
--      andl    $~0x200,EFLAGS-ARGOFFSET(%rsp)
-+      andl    $~X86_EFLAGS_IF,EFLAGS-ARGOFFSET(%rsp)
-       movl    RIP-ARGOFFSET(%rsp),%edx                /* User %eip */
-       CFI_REGISTER rip,rdx
-       RESTORE_ARGS 0,24,0,0,0,0
-@@ -205,6 +254,9 @@ sysexit_from_sys_call:
+       movl    RIP(%rsp),%ecx          /* User %eip */
+       CFI_REGISTER rip,rcx
+       RESTORE_RSI_RDI
+@@ -247,6 +302,9 @@ sysexit_from_sys_call:
        movl %ebx,%esi                  /* 2nd arg: 1st syscall arg */
        movl %eax,%edi                  /* 1st arg: syscall number */
        call __audit_syscall_entry
 +
 +      pax_erase_kstack
 +
-       movl RAX-ARGOFFSET(%rsp),%eax   /* reload syscall number */
+       movl RAX(%rsp),%eax     /* reload syscall number */
        cmpq $(IA32_NR_syscalls-1),%rax
        ja ia32_badsys
-@@ -216,7 +268,7 @@ sysexit_from_sys_call:
+@@ -258,7 +316,7 @@ sysexit_from_sys_call:
        .endm
  
        .macro auditsys_exit exit
--      testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 +      testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),TI_flags(%r11)
        jnz ia32_ret_from_sys_call
        TRACE_IRQS_ON
        ENABLE_INTERRUPTS(CLBR_NONE)
-@@ -227,11 +279,12 @@ sysexit_from_sys_call:
+@@ -269,11 +327,12 @@ sysexit_from_sys_call:
  1:    setbe %al               /* 1 if error, 0 if not */
        movzbl %al,%edi         /* zero-extend that into %edi */
        call __audit_syscall_exit
 +      GET_THREAD_INFO(%r11)
-       movq RAX-ARGOFFSET(%rsp),%rax   /* reload syscall return value */
+       movq RAX(%rsp),%rax     /* reload syscall return value */
        movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),%edi
        DISABLE_INTERRUPTS(CLBR_NONE)
        TRACE_IRQS_OFF
--      testl %edi,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl %edi, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 +      testl %edi,TI_flags(%r11)
        jz \exit
-       CLEAR_RREGS -ARGOFFSET
+       CLEAR_RREGS
        jmp int_with_check
-@@ -253,7 +306,7 @@ sysenter_fix_flags:
+@@ -295,7 +354,7 @@ sysenter_fix_flags:
  
  sysenter_tracesys:
  #ifdef CONFIG_AUDITSYSCALL
--      testl   $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl   $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 +      testl   $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags(%r11)
        jz      sysenter_auditsys
  #endif
-       SAVE_REST
-@@ -265,6 +318,9 @@ sysenter_tracesys:
-       RESTORE_REST
+       SAVE_EXTRA_REGS
+@@ -307,6 +366,9 @@ sysenter_tracesys:
+       RESTORE_EXTRA_REGS
        cmpq    $(IA32_NR_syscalls-1),%rax
        ja      int_ret_from_sys_call /* sysenter_tracesys has set RAX(%rsp) */
 +
@@ -14886,51 +14967,47 @@ index 156ebca..9591cf0 100644
        jmp     sysenter_do_call
        CFI_ENDPROC
  ENDPROC(ia32_sysenter_target)
-@@ -292,19 +348,25 @@ ENDPROC(ia32_sysenter_target)
- ENTRY(ia32_cstar_target)
-       CFI_STARTPROC32 simple
-       CFI_SIGNAL_FRAME
--      CFI_DEF_CFA     rsp,KERNEL_STACK_OFFSET
-+      CFI_DEF_CFA     rsp,0
-       CFI_REGISTER    rip,rcx
-       /*CFI_REGISTER  rflags,r11*/
-       SWAPGS_UNSAFE_STACK
+@@ -357,7 +419,6 @@ ENTRY(ia32_cstar_target)
        movl    %esp,%r8d
        CFI_REGISTER    rsp,r8
        movq    PER_CPU_VAR(kernel_stack),%rsp
-+      SAVE_ARGS 8*6,0,0
+-      ENABLE_INTERRUPTS(CLBR_NONE)
+       /* Zero-extending 32-bit regs, do not remove */
+       movl    %eax,%eax
+@@ -380,16 +441,41 @@ ENTRY(ia32_cstar_target)
+       sub     $(10*8),%rsp /* pt_regs->r8-11,bp,bx,r12-15 not saved */
+       CFI_ADJUST_CFA_OFFSET 10*8
++#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
++      movq_cfi r12, R12
++#endif
++
 +      pax_enter_kernel_user
 +
 +#ifdef CONFIG_PAX_RANDKSTACK
 +      pax_erase_kstack
 +#endif
++
++      ENABLE_INTERRUPTS(CLBR_NONE)
 +
        /*
-        * No need to follow this irqs on/off section: the syscall
-        * disabled irqs and here we enable it straight after entry:
+        * no need to do an access_ok check here because r8 has been
+        * 32bit zero extended
         */
-       ENABLE_INTERRUPTS(CLBR_NONE)
--      SAVE_ARGS 8,0,0
-       movl    %eax,%eax       /* zero extension */
-       movq    %rax,ORIG_RAX-ARGOFFSET(%rsp)
-       movq    %rcx,RIP-ARGOFFSET(%rsp)
-@@ -320,12 +382,25 @@ ENTRY(ia32_cstar_target)
-       /* no need to do an access_ok check here because r8 has been
-          32bit zero extended */ 
-       /* hardware stack frame is complete now */      
 +
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      ASM_PAX_OPEN_USERLAND
 +      movq    pax_user_shadow_base,%r8
-+      addq    RSP-ARGOFFSET(%rsp),%r8
++      addq    RSP(%rsp),%r8
 +#endif
 +
        ASM_STAC
  1:    movl    (%r8),%r9d
        _ASM_EXTABLE(1b,ia32_badarg)
        ASM_CLAC
--      orl     $TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
--      testl   $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      orl     $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
+-      testl   $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 +
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      ASM_PAX_CLOSE_USERLAND
@@ -14942,36 +15019,34 @@ index 156ebca..9591cf0 100644
        CFI_REMEMBER_STATE
        jnz   cstar_tracesys
        cmpq $IA32_NR_syscalls-1,%rax
-@@ -335,13 +410,16 @@ cstar_do_call:
+@@ -404,12 +490,15 @@ cstar_do_call:
  cstar_dispatch:
        call *ia32_sys_call_table(,%rax,8)
-       movq %rax,RAX-ARGOFFSET(%rsp)
+       movq %rax,RAX(%rsp)
 +      GET_THREAD_INFO(%r11)
        DISABLE_INTERRUPTS(CLBR_NONE)
        TRACE_IRQS_OFF
--      testl $_TIF_ALLWORK_MASK,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 +      testl $_TIF_ALLWORK_MASK,TI_flags(%r11)
        jnz sysretl_audit
  sysretl_from_sys_call:
--      andl $~TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
--      RESTORE_ARGS 0,-ARG_SKIP,0,0,0
+-      andl $~TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
 +      pax_exit_kernel_user
 +      pax_erase_kstack
 +      andl $~TS_COMPAT,TI_status(%r11)
-+      RESTORE_ARGS 0,-ORIG_RAX,0,0,0
-       movl RIP-ARGOFFSET(%rsp),%ecx
+       RESTORE_RSI_RDI_RDX
+       movl RIP(%rsp),%ecx
        CFI_REGISTER rip,rcx
-       movl EFLAGS-ARGOFFSET(%rsp),%r11d       
-@@ -368,7 +446,7 @@ sysretl_audit:
+@@ -451,7 +540,7 @@ sysretl_audit:
  
  cstar_tracesys:
  #ifdef CONFIG_AUDITSYSCALL
--      testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 +      testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags(%r11)
        jz cstar_auditsys
  #endif
        xchgl %r9d,%ebp
-@@ -382,11 +460,19 @@ cstar_tracesys:
+@@ -465,11 +554,19 @@ cstar_tracesys:
        xchgl %ebp,%r9d
        cmpq $(IA32_NR_syscalls-1),%rax
        ja int_ret_from_sys_call /* cstar_tracesys has set RAX(%rsp) */
@@ -14991,23 +15066,31 @@ index 156ebca..9591cf0 100644
        movq $-EFAULT,%rax
        jmp ia32_sysret
        CFI_ENDPROC
-@@ -423,19 +509,26 @@ ENTRY(ia32_syscall)
-       CFI_REL_OFFSET  rip,RIP-RIP
-       PARAVIRT_ADJUST_EXCEPTION_FRAME
-       SWAPGS
+@@ -505,14 +602,8 @@ ENTRY(ia32_syscall)
+       /*CFI_REL_OFFSET        cs,1*8 */
+       CFI_REL_OFFSET  rip,0*8
 -      /*
--       * No need to follow this irqs on/off section: the syscall
--       * disabled irqs and here we enable it straight after entry:
+-       * Interrupts are off on entry.
+-       * We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON,
+-       * it is too small to ever cause noticeable irq latency.
 -       */
+       PARAVIRT_ADJUST_EXCEPTION_FRAME
+       SWAPGS
 -      ENABLE_INTERRUPTS(CLBR_NONE)
-       movl %eax,%eax
-       pushq_cfi %rax
-       cld
-       /* note the registers are not zero extended to the sf.
-          this could be a problem. */
-       SAVE_ARGS 0,1,0
--      orl $TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
--      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+       /* Zero-extending 32-bit regs, do not remove */
+       movl    %eax,%eax
+@@ -528,8 +619,26 @@ ENTRY(ia32_syscall)
+       sub     $(10*8),%rsp /* pt_regs->r8-11,bp,bx,r12-15 not saved */
+       CFI_ADJUST_CFA_OFFSET 10*8
+-      orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
+-      testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
++#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
++      movq_cfi r12, R12
++#endif
++
 +      pax_enter_kernel_user
 +
 +#ifdef CONFIG_PAX_RANDKSTACK
@@ -15015,18 +15098,20 @@ index 156ebca..9591cf0 100644
 +#endif
 +
 +      /*
-+       * No need to follow this irqs on/off section: the syscall
-+       * disabled irqs and here we enable it straight after entry:
++       * Interrupts are off on entry.
++       * We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON,
++       * it is too small to ever cause noticeable irq latency.
 +       */
 +      ENABLE_INTERRUPTS(CLBR_NONE)
++
 +      GET_THREAD_INFO(%r11)
 +      orl   $TS_COMPAT,TI_status(%r11)
 +      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r11)
        jnz ia32_tracesys
        cmpq $(IA32_NR_syscalls-1),%rax
        ja ia32_badsys
-@@ -458,6 +551,9 @@ ia32_tracesys:
-       RESTORE_REST
+@@ -557,6 +666,9 @@ ia32_tracesys:
+       RESTORE_EXTRA_REGS
        cmpq $(IA32_NR_syscalls-1),%rax
        ja  int_ret_from_sys_call       /* ia32_tracesys has set RAX(%rsp) */
 +
@@ -15036,7 +15121,7 @@ index 156ebca..9591cf0 100644
  END(ia32_syscall)
  
 diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
-index 8e0ceec..af13504 100644
+index 719cd70..69d576b 100644
 --- a/arch/x86/ia32/sys_ia32.c
 +++ b/arch/x86/ia32/sys_ia32.c
 @@ -69,8 +69,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
@@ -15051,7 +15136,7 @@ index 8e0ceec..af13504 100644
        SET_GID(gid, from_kgid_munged(current_user_ns(), stat->gid));
        if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct stat64)) ||
 diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h
-index 372231c..51b537d 100644
+index bdf02ee..51a4656 100644
 --- a/arch/x86/include/asm/alternative-asm.h
 +++ b/arch/x86/include/asm/alternative-asm.h
 @@ -18,6 +18,45 @@
@@ -15097,25 +15182,43 @@ index 372231c..51b537d 100644
 +      .endm
 +#endif
 +
- .macro altinstruction_entry orig alt feature orig_len alt_len
+ .macro altinstruction_entry orig alt feature orig_len alt_len pad_len
        .long \orig - .
        .long \alt - .
+@@ -38,7 +77,7 @@
+       altinstruction_entry 140b,143f,\feature,142b-140b,144f-143f,142b-141b
+       .popsection
+-      .pushsection .altinstr_replacement,"ax"
++      .pushsection .altinstr_replacement,"a"
+ 143:
+       \newinstr
+ 144:
+@@ -68,7 +107,7 @@
+       altinstruction_entry 140b,144f,\feature2,142b-140b,145f-144f,142b-141b
+       .popsection
+-      .pushsection .altinstr_replacement,"ax"
++      .pushsection .altinstr_replacement,"a"
+ 143:
+       \newinstr1
+ 144:
 diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h
-index 473bdbe..b1e3377 100644
+index ba32af0..ff42fc0 100644
 --- a/arch/x86/include/asm/alternative.h
 +++ b/arch/x86/include/asm/alternative.h
-@@ -106,7 +106,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
-       ".pushsection .discard,\"aw\",@progbits\n"                      \
-       DISCARD_ENTRY(1)                                                \
+@@ -130,7 +130,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
+       ".pushsection .altinstructions,\"a\"\n"                         \
+       ALTINSTR_ENTRY(feature, 1)                                      \
        ".popsection\n"                                                 \
 -      ".pushsection .altinstr_replacement, \"ax\"\n"                  \
 +      ".pushsection .altinstr_replacement, \"a\"\n"                   \
        ALTINSTR_REPLACEMENT(newinstr, feature, 1)                      \
        ".popsection"
  
-@@ -120,7 +120,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
-       DISCARD_ENTRY(1)                                                \
-       DISCARD_ENTRY(2)                                                \
+@@ -140,7 +140,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
+       ALTINSTR_ENTRY(feature1, 1)                                     \
+       ALTINSTR_ENTRY(feature2, 2)                                     \
        ".popsection\n"                                                 \
 -      ".pushsection .altinstr_replacement, \"ax\"\n"                  \
 +      ".pushsection .altinstr_replacement, \"a\"\n"                   \
@@ -15123,7 +15226,7 @@ index 473bdbe..b1e3377 100644
        ALTINSTR_REPLACEMENT(newinstr2, feature2, 2)                    \
        ".popsection"
 diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
-index efc3b22..85c4f3a 100644
+index 976b86a..f3bc83a 100644
 --- a/arch/x86/include/asm/apic.h
 +++ b/arch/x86/include/asm/apic.h
 @@ -45,7 +45,7 @@ static inline void generic_apic_probe(void)
@@ -16000,7 +16103,7 @@ index f8d273e..02f39f3 100644
  
  #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
 diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
-index 2ab1eb3..1e8cc5d 100644
+index 959e45b..6ea9bf6 100644
 --- a/arch/x86/include/asm/barrier.h
 +++ b/arch/x86/include/asm/barrier.h
 @@ -57,7 +57,7 @@
@@ -16148,181 +16251,163 @@ index 48f99f1..d78ebf9 100644
  #ifdef CONFIG_X86_VSMP
  #ifdef CONFIG_SMP
 diff --git a/arch/x86/include/asm/calling.h b/arch/x86/include/asm/calling.h
-index 1f1297b..72b8439 100644
+index 1c8b50e..166bcaa 100644
 --- a/arch/x86/include/asm/calling.h
 +++ b/arch/x86/include/asm/calling.h
-@@ -82,106 +82,117 @@ For 32-bit we have the following conventions - kernel is built with
- #define RSP           152
- #define SS            160
--#define ARGOFFSET     R11
-+#define ARGOFFSET     R15
-       .macro SAVE_ARGS addskip=0, save_rcx=1, save_r891011=1, rax_enosys=0
--      subq  $9*8+\addskip, %rsp
--      CFI_ADJUST_CFA_OFFSET   9*8+\addskip
--      movq_cfi rdi, 8*8
--      movq_cfi rsi, 7*8
--      movq_cfi rdx, 6*8
-+      subq  $ORIG_RAX-ARGOFFSET+\addskip, %rsp
-+      CFI_ADJUST_CFA_OFFSET   ORIG_RAX-ARGOFFSET+\addskip
-+      movq_cfi rdi, RDI
-+      movq_cfi rsi, RSI
-+      movq_cfi rdx, RDX
-       .if \save_rcx
--      movq_cfi rcx, 5*8
-+      movq_cfi rcx, RCX
-       .endif
+@@ -96,23 +96,26 @@ For 32-bit we have the following conventions - kernel is built with
+       .endm
  
-       .if \rax_enosys
--      movq $-ENOSYS, 4*8(%rsp)
-+      movq $-ENOSYS, RAX(%rsp)
-       .else
--      movq_cfi rax, 4*8
-+      movq_cfi rax, RAX
+       .macro SAVE_C_REGS_HELPER offset=0 rax=1 rcx=1 r8910=1 r11=1
++#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
++      movq_cfi r12, R12+\offset
++#endif
+       .if \r11
+-      movq_cfi r11, 6*8+\offset
++      movq_cfi r11, R11+\offset
        .endif
-       .if \save_r891011
--      movq_cfi r8,  3*8
--      movq_cfi r9,  2*8
--      movq_cfi r10, 1*8
--      movq_cfi r11, 0*8
-+      movq_cfi r8,  R8
-+      movq_cfi r9,  R9
-+      movq_cfi r10, R10
-+      movq_cfi r11, R11
+       .if \r8910
+-      movq_cfi r10, 7*8+\offset
+-      movq_cfi r9,  8*8+\offset
+-      movq_cfi r8,  9*8+\offset
++      movq_cfi r10, R10+\offset
++      movq_cfi r9,  R9+\offset
++      movq_cfi r8,  R8+\offset
+       .endif
+       .if \rax
+-      movq_cfi rax, 10*8+\offset
++      movq_cfi rax, RAX+\offset
        .endif
+       .if \rcx
+-      movq_cfi rcx, 11*8+\offset
++      movq_cfi rcx, RCX+\offset
+       .endif
+-      movq_cfi rdx, 12*8+\offset
+-      movq_cfi rsi, 13*8+\offset
+-      movq_cfi rdi, 14*8+\offset
++      movq_cfi rdx, RDX+\offset
++      movq_cfi rsi, RSI+\offset
++      movq_cfi rdi, RDI+\offset
+       .endm
+       .macro SAVE_C_REGS offset=0
+       SAVE_C_REGS_HELPER \offset, 1, 1, 1, 1
+@@ -131,76 +134,87 @@ For 32-bit we have the following conventions - kernel is built with
+       .endm
  
-+#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
-+      movq_cfi r12, R12
+       .macro SAVE_EXTRA_REGS offset=0
+-      movq_cfi r15, 0*8+\offset
+-      movq_cfi r14, 1*8+\offset
+-      movq_cfi r13, 2*8+\offset
+-      movq_cfi r12, 3*8+\offset
+-      movq_cfi rbp, 4*8+\offset
+-      movq_cfi rbx, 5*8+\offset
++      movq_cfi r15, R15+\offset
++      movq_cfi r14, R14+\offset
++      movq_cfi r13, R13+\offset
++#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
++      movq_cfi r12, R12+\offset
 +#endif
-+
++      movq_cfi rbp, RBP+\offset
++      movq_cfi rbx, RBX+\offset
+       .endm
+       .macro SAVE_EXTRA_REGS_RBP offset=0
+-      movq_cfi rbp, 4*8+\offset
++      movq_cfi rbp, RBP+\offset
+       .endm
+       .macro RESTORE_EXTRA_REGS offset=0
+-      movq_cfi_restore 0*8+\offset, r15
+-      movq_cfi_restore 1*8+\offset, r14
+-      movq_cfi_restore 2*8+\offset, r13
+-      movq_cfi_restore 3*8+\offset, r12
+-      movq_cfi_restore 4*8+\offset, rbp
+-      movq_cfi_restore 5*8+\offset, rbx
++      movq_cfi_restore R15+\offset, r15
++      movq_cfi_restore R14+\offset, r14
++      movq_cfi_restore R13+\offset, r13
++#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
++      movq_cfi_restore R12+\offset, r12
++#endif
++      movq_cfi_restore RBP+\offset, rbp
++      movq_cfi_restore RBX+\offset, rbx
        .endm
  
--#define ARG_SKIP      (9*8)
-+#define ARG_SKIP      ORIG_RAX
+       .macro ZERO_EXTRA_REGS
+       xorl    %r15d, %r15d
+       xorl    %r14d, %r14d
+       xorl    %r13d, %r13d
++#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
+       xorl    %r12d, %r12d
++#endif
+       xorl    %ebp, %ebp
+       xorl    %ebx, %ebx
+       .endm
  
-       .macro RESTORE_ARGS rstor_rax=1, addskip=0, rstor_rcx=1, rstor_r11=1, \
-                           rstor_r8910=1, rstor_rdx=1
-+
+-      .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1
++      .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1, rstor_r12=1
 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
++      .if \rstor_r12
 +      movq_cfi_restore R12, r12
++      .endif
 +#endif
-+
        .if \rstor_r11
--      movq_cfi_restore 0*8, r11
+-      movq_cfi_restore 6*8, r11
 +      movq_cfi_restore R11, r11
        .endif
        .if \rstor_r8910
--      movq_cfi_restore 1*8, r10
--      movq_cfi_restore 2*8, r9
--      movq_cfi_restore 3*8, r8
+-      movq_cfi_restore 7*8, r10
+-      movq_cfi_restore 8*8, r9
+-      movq_cfi_restore 9*8, r8
 +      movq_cfi_restore R10, r10
 +      movq_cfi_restore R9, r9
 +      movq_cfi_restore R8, r8
        .endif
        .if \rstor_rax
--      movq_cfi_restore 4*8, rax
+-      movq_cfi_restore 10*8, rax
 +      movq_cfi_restore RAX, rax
        .endif
        .if \rstor_rcx
--      movq_cfi_restore 5*8, rcx
+-      movq_cfi_restore 11*8, rcx
 +      movq_cfi_restore RCX, rcx
        .endif
        .if \rstor_rdx
--      movq_cfi_restore 6*8, rdx
+-      movq_cfi_restore 12*8, rdx
 +      movq_cfi_restore RDX, rdx
        .endif
--      movq_cfi_restore 7*8, rsi
--      movq_cfi_restore 8*8, rdi
+-      movq_cfi_restore 13*8, rsi
+-      movq_cfi_restore 14*8, rdi
 +      movq_cfi_restore RSI, rsi
 +      movq_cfi_restore RDI, rdi
--      .if ARG_SKIP+\addskip > 0
--      addq $ARG_SKIP+\addskip, %rsp
--      CFI_ADJUST_CFA_OFFSET   -(ARG_SKIP+\addskip)
-+      .if ORIG_RAX+\addskip > 0
-+      addq $ORIG_RAX+\addskip, %rsp
-+      CFI_ADJUST_CFA_OFFSET   -(ORIG_RAX+\addskip)
-       .endif
        .endm
--      .macro LOAD_ARGS offset, skiprax=0
--      movq \offset(%rsp),    %r11
--      movq \offset+8(%rsp),  %r10
--      movq \offset+16(%rsp), %r9
--      movq \offset+24(%rsp), %r8
--      movq \offset+40(%rsp), %rcx
--      movq \offset+48(%rsp), %rdx
--      movq \offset+56(%rsp), %rsi
--      movq \offset+64(%rsp), %rdi
-+      .macro LOAD_ARGS skiprax=0
-+      movq R11(%rsp),    %r11
-+      movq R10(%rsp),  %r10
-+      movq R9(%rsp), %r9
-+      movq R8(%rsp), %r8
-+      movq RCX(%rsp), %rcx
-+      movq RDX(%rsp), %rdx
-+      movq RSI(%rsp), %rsi
-+      movq RDI(%rsp), %rdi
-       .if \skiprax
-       .else
--      movq \offset+72(%rsp), %rax
-+      movq ORIG_RAX(%rsp), %rax
-       .endif
+       .macro RESTORE_C_REGS
+-      RESTORE_C_REGS_HELPER 1,1,1,1,1
++      RESTORE_C_REGS_HELPER 1,1,1,1,1,1
        .endm
--#define REST_SKIP     (6*8)
--
-       .macro SAVE_REST
--      subq $REST_SKIP, %rsp
--      CFI_ADJUST_CFA_OFFSET   REST_SKIP
--      movq_cfi rbx, 5*8
--      movq_cfi rbp, 4*8
--      movq_cfi r12, 3*8
--      movq_cfi r13, 2*8
--      movq_cfi r14, 1*8
--      movq_cfi r15, 0*8
-+      movq_cfi rbx, RBX
-+      movq_cfi rbp, RBP
-+
-+#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
-+      movq_cfi r12, R12
-+#endif
-+
-+      movq_cfi r13, R13
-+      movq_cfi r14, R14
-+      movq_cfi r15, R15
+       .macro RESTORE_C_REGS_EXCEPT_RAX
+-      RESTORE_C_REGS_HELPER 0,1,1,1,1
++      RESTORE_C_REGS_HELPER 0,1,1,1,1,0
        .endm
-       .macro RESTORE_REST
--      movq_cfi_restore 0*8, r15
--      movq_cfi_restore 1*8, r14
--      movq_cfi_restore 2*8, r13
--      movq_cfi_restore 3*8, r12
--      movq_cfi_restore 4*8, rbp
--      movq_cfi_restore 5*8, rbx
--      addq $REST_SKIP, %rsp
--      CFI_ADJUST_CFA_OFFSET   -(REST_SKIP)
-+      movq_cfi_restore R15, r15
-+      movq_cfi_restore R14, r14
-+      movq_cfi_restore R13, r13
-+
-+#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
-+      movq_cfi_restore R12, r12
-+#endif
-+
-+      movq_cfi_restore RBP, rbp
-+      movq_cfi_restore RBX, rbx
+       .macro RESTORE_C_REGS_EXCEPT_RCX
+-      RESTORE_C_REGS_HELPER 1,0,1,1,1
++      RESTORE_C_REGS_HELPER 1,0,1,1,1,0
+       .endm
+       .macro RESTORE_C_REGS_EXCEPT_R11
+-      RESTORE_C_REGS_HELPER 1,1,0,1,1
++      RESTORE_C_REGS_HELPER 1,1,0,1,1,1
+       .endm
+       .macro RESTORE_C_REGS_EXCEPT_RCX_R11
+-      RESTORE_C_REGS_HELPER 1,0,0,1,1
++      RESTORE_C_REGS_HELPER 1,0,0,1,1,1
+       .endm
+       .macro RESTORE_RSI_RDI
+-      RESTORE_C_REGS_HELPER 0,0,0,0,0
++      RESTORE_C_REGS_HELPER 0,0,0,0,0,1
+       .endm
+       .macro RESTORE_RSI_RDI_RDX
+-      RESTORE_C_REGS_HELPER 0,0,0,0,1
++      RESTORE_C_REGS_HELPER 0,0,0,0,1,1
        .endm
  
-       .macro SAVE_ALL
+       .macro REMOVE_PT_GPREGS_FROM_STACK addskip=0
 diff --git a/arch/x86/include/asm/checksum_32.h b/arch/x86/include/asm/checksum_32.h
 index f50de69..2b0a458 100644
 --- a/arch/x86/include/asm/checksum_32.h
@@ -16427,7 +16512,7 @@ index 99c105d7..2f667ac 100644
        ({                                                              \
                __typeof__ (*(ptr)) __ret = (inc);                      \
 diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h
-index 59c6c40..5e0b22c 100644
+index acdee09..a553db3 100644
 --- a/arch/x86/include/asm/compat.h
 +++ b/arch/x86/include/asm/compat.h
 @@ -41,7 +41,7 @@ typedef s64 __attribute__((aligned(4))) compat_s64;
@@ -16440,19 +16525,20 @@ index 59c6c40..5e0b22c 100644
  struct compat_timespec {
        compat_time_t   tv_sec;
 diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
-index 90a5485..43b6211 100644
+index 3d6606f..5e22255 100644
 --- a/arch/x86/include/asm/cpufeature.h
 +++ b/arch/x86/include/asm/cpufeature.h
-@@ -213,7 +213,7 @@
+@@ -214,7 +214,8 @@
  #define X86_FEATURE_PAUSEFILTER ( 8*32+13) /* AMD filtered pause intercept */
  #define X86_FEATURE_PFTHRESHOLD ( 8*32+14) /* AMD pause filter threshold */
  #define X86_FEATURE_VMMCALL     ( 8*32+15) /* Prefer vmmcall to vmcall */
 -
++#define X86_FEATURE_PCIDUDEREF        ( 8*32+30) /* PaX PCID based UDEREF */
 +#define X86_FEATURE_STRONGUDEREF (8*32+31) /* PaX PCID based strong UDEREF */
  
  /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */
  #define X86_FEATURE_FSGSBASE  ( 9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/
-@@ -221,7 +221,7 @@
+@@ -222,7 +223,7 @@
  #define X86_FEATURE_BMI1      ( 9*32+ 3) /* 1st group bit manipulation extensions */
  #define X86_FEATURE_HLE               ( 9*32+ 4) /* Hardware Lock Elision */
  #define X86_FEATURE_AVX2      ( 9*32+ 5) /* AVX2 instructions */
@@ -16461,7 +16547,7 @@ index 90a5485..43b6211 100644
  #define X86_FEATURE_BMI2      ( 9*32+ 8) /* 2nd group bit manipulation extensions */
  #define X86_FEATURE_ERMS      ( 9*32+ 9) /* Enhanced REP MOVSB/STOSB */
  #define X86_FEATURE_INVPCID   ( 9*32+10) /* Invalidate Processor Context ID */
-@@ -390,6 +390,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
+@@ -401,6 +402,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
  #define cpu_has_eager_fpu     boot_cpu_has(X86_FEATURE_EAGER_FPU)
  #define cpu_has_topoext               boot_cpu_has(X86_FEATURE_TOPOEXT)
  #define cpu_has_bpext         boot_cpu_has(X86_FEATURE_BPEXT)
@@ -16469,7 +16555,7 @@ index 90a5485..43b6211 100644
  
  #if __GNUC__ >= 4
  extern void warn_pre_alternatives(void);
-@@ -441,7 +442,8 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
+@@ -454,7 +456,8 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
  
  #ifdef CONFIG_X86_DEBUG_STATIC_CPU_HAS
        t_warn:
@@ -16479,7 +16565,7 @@ index 90a5485..43b6211 100644
                return false;
  #endif
  
-@@ -461,7 +463,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
+@@ -475,7 +478,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
                             ".section .discard,\"aw\",@progbits\n"
                             " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
                             ".previous\n"
@@ -16488,16 +16574,16 @@ index 90a5485..43b6211 100644
                             "3: movb $1,%0\n"
                             "4:\n"
                             ".previous\n"
-@@ -498,7 +500,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
-                        " .byte 2b - 1b\n"             /* src len */
-                        " .byte 4f - 3f\n"             /* repl len */
+@@ -510,7 +513,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
+                        " .byte 5f - 4f\n"             /* repl len */
+                        " .byte 3b - 2b\n"             /* pad len */
                         ".previous\n"
 -                       ".section .altinstr_replacement,\"ax\"\n"
 +                       ".section .altinstr_replacement,\"a\"\n"
-                        "3: .byte 0xe9\n .long %l[t_no] - 2b\n"
-                        "4:\n"
+                        "4: jmp %l[t_no]\n"
+                        "5:\n"
                         ".previous\n"
-@@ -531,7 +533,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
+@@ -545,7 +548,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
                             ".section .discard,\"aw\",@progbits\n"
                             " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
                             ".previous\n"
@@ -16506,7 +16592,7 @@ index 90a5485..43b6211 100644
                             "3: movb $0,%0\n"
                             "4:\n"
                             ".previous\n"
-@@ -545,7 +547,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
+@@ -560,7 +563,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
                             ".section .discard,\"aw\",@progbits\n"
                             " .byte 0xff + (6f-5f) - (4b-3b)\n" /* size check */
                             ".previous\n"
@@ -16516,7 +16602,7 @@ index 90a5485..43b6211 100644
                             "6:\n"
                             ".previous\n"
 diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
-index a94b82e..59ecefa 100644
+index a0bf89f..56f0b2a 100644
 --- a/arch/x86/include/asm/desc.h
 +++ b/arch/x86/include/asm/desc.h
 @@ -4,6 +4,7 @@
@@ -16670,19 +16756,24 @@ index a94b82e..59ecefa 100644
                             unsigned dpl, unsigned ist, unsigned seg)
  {
        gate_desc s;
-@@ -379,9 +392,9 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
- #define set_intr_gate(n, addr)                                                \
+@@ -379,14 +392,14 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
+ #define set_intr_gate_notrace(n, addr)                                        \
        do {                                                            \
                BUG_ON((unsigned)n > 0xFF);                             \
 -              _set_gate(n, GATE_INTERRUPT, (void *)addr, 0, 0,        \
 +              _set_gate(n, GATE_INTERRUPT, (const void *)addr, 0, 0,  \
                          __KERNEL_CS);                                 \
+       } while (0)
+ #define set_intr_gate(n, addr)                                                \
+       do {                                                            \
+               set_intr_gate_notrace(n, addr);                         \
 -              _trace_set_gate(n, GATE_INTERRUPT, (void *)trace_##addr,\
 +              _trace_set_gate(n, GATE_INTERRUPT, (const void *)trace_##addr,\
                                0, 0, __KERNEL_CS);                     \
        } while (0)
  
-@@ -409,19 +422,19 @@ static inline void alloc_system_vector(int vector)
+@@ -414,19 +427,19 @@ static inline void alloc_system_vector(int vector)
  /*
   * This routine sets up an interrupt gate at directory privilege level 3.
   */
@@ -16705,7 +16796,7 @@ index a94b82e..59ecefa 100644
  {
        BUG_ON((unsigned)n > 0xFF);
        _set_gate(n, GATE_TRAP, addr, 0, 0, __KERNEL_CS);
-@@ -430,16 +443,16 @@ static inline void set_trap_gate(unsigned int n, void *addr)
+@@ -435,16 +448,16 @@ static inline void set_trap_gate(unsigned int n, void *addr)
  static inline void set_task_gate(unsigned int n, unsigned int gdt_entry)
  {
        BUG_ON((unsigned)n > 0xFF);
@@ -16725,7 +16816,7 @@ index a94b82e..59ecefa 100644
  {
        BUG_ON((unsigned)n > 0xFF);
        _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
-@@ -511,4 +524,17 @@ static inline void load_current_idt(void)
+@@ -516,4 +529,17 @@ static inline void load_current_idt(void)
        else
                load_idt((const struct desc_ptr *)&idt_descr);
  }
@@ -16774,7 +16865,7 @@ index ced283a..ffe04cc 100644
        union {
                u64 v64;
 diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
-index ca3347a..1a5082a 100644
+index f161c18..97d43e8 100644
 --- a/arch/x86/include/asm/elf.h
 +++ b/arch/x86/include/asm/elf.h
 @@ -75,9 +75,6 @@ typedef struct user_fxsr_struct elf_fpxregset_t;
@@ -16787,7 +16878,7 @@ index ca3347a..1a5082a 100644
  #if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT)
  extern unsigned int vdso32_enabled;
  #endif
-@@ -249,7 +246,25 @@ extern int force_personality32;
+@@ -250,7 +247,25 @@ extern int force_personality32;
     the loader.  We need to make sure that it is out of the way of the program
     that it will "exec", and that there is sufficient room for the brk.  */
  
@@ -16813,7 +16904,7 @@ index ca3347a..1a5082a 100644
  
  /* This yields a mask that user programs can use to figure out what
     instruction set this CPU supports.  This could be done in user space,
-@@ -298,17 +313,13 @@ do {                                                                     \
+@@ -299,17 +314,13 @@ do {                                                                     \
  
  #define ARCH_DLINFO                                                   \
  do {                                                                  \
@@ -16833,7 +16924,7 @@ index ca3347a..1a5082a 100644
  } while (0)
  
  #define AT_SYSINFO            32
-@@ -323,10 +334,10 @@ else                                                                     \
+@@ -324,10 +335,10 @@ else                                                                     \
  
  #endif /* !CONFIG_X86_32 */
  
@@ -16846,16 +16937,6 @@ index ca3347a..1a5082a 100644
         selected_vdso32->sym___kernel_vsyscall)
  
  struct linux_binprm;
-@@ -338,9 +349,6 @@ extern int compat_arch_setup_additional_pages(struct linux_binprm *bprm,
-                                             int uses_interp);
- #define compat_arch_setup_additional_pages compat_arch_setup_additional_pages
--extern unsigned long arch_randomize_brk(struct mm_struct *mm);
--#define arch_randomize_brk arch_randomize_brk
--
- /*
-  * True on X86_32 or when emulating IA32 on X86_64
-  */
 diff --git a/arch/x86/include/asm/emergency-restart.h b/arch/x86/include/asm/emergency-restart.h
 index 77a99ac..39ff7f5 100644
 --- a/arch/x86/include/asm/emergency-restart.h
@@ -16902,10 +16983,10 @@ index 1c7eefe..d0e4702 100644
  };
  
 diff --git a/arch/x86/include/asm/fpu-internal.h b/arch/x86/include/asm/fpu-internal.h
-index 72ba21a..79f3f66 100644
+index da5e967..ab07eec 100644
 --- a/arch/x86/include/asm/fpu-internal.h
 +++ b/arch/x86/include/asm/fpu-internal.h
-@@ -124,8 +124,11 @@ static inline void sanitize_i387_state(struct task_struct *tsk)
+@@ -151,8 +151,11 @@ static inline void sanitize_i387_state(struct task_struct *tsk)
  #define user_insn(insn, output, input...)                             \
  ({                                                                    \
        int err;                                                        \
@@ -16918,7 +16999,7 @@ index 72ba21a..79f3f66 100644
                     "2: " ASM_CLAC "\n"                                \
                     ".section .fixup,\"ax\"\n"                         \
                     "3:  movl $-1,%[err]\n"                            \
-@@ -134,6 +137,7 @@ static inline void sanitize_i387_state(struct task_struct *tsk)
+@@ -161,6 +164,7 @@ static inline void sanitize_i387_state(struct task_struct *tsk)
                     _ASM_EXTABLE(1b, 3b)                               \
                     : [err] "=r" (err), output                         \
                     : "0"(0), input);                                  \
@@ -16926,12 +17007,12 @@ index 72ba21a..79f3f66 100644
        err;                                                            \
  })
  
-@@ -300,7 +304,7 @@ static inline int restore_fpu_checking(struct task_struct *tsk)
+@@ -327,7 +331,7 @@ static inline int restore_fpu_checking(struct task_struct *tsk)
                        "fnclex\n\t"
                        "emms\n\t"
                        "fildl %P[addr]"        /* set F?P to defined value */
 -                      : : [addr] "m" (tsk->thread.fpu.has_fpu));
-+                      : : [addr] "m" (init_tss[raw_smp_processor_id()].x86_tss.sp0));
++                      : : [addr] "m" (cpu_tss[raw_smp_processor_id()].x86_tss.sp0));
        }
  
        return fpu_restore_checking(&tsk->thread.fpu);
@@ -17000,7 +17081,7 @@ index b4c1f54..e290c08 100644
        pagefault_enable();
  
 diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
-index 9662290..49ca5e5 100644
+index e9571dd..df5f542 100644
 --- a/arch/x86/include/asm/hw_irq.h
 +++ b/arch/x86/include/asm/hw_irq.h
 @@ -160,8 +160,8 @@ static inline void unlock_vector_lock(void) {}
@@ -17085,12 +17166,12 @@ index 34a5b93..27e40a6 100644
   * Convert a virtual cached pointer to an uncached pointer
   */
 diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h
-index 0a8b519..80e7d5b 100644
+index b77f5ed..a2f791e 100644
 --- a/arch/x86/include/asm/irqflags.h
 +++ b/arch/x86/include/asm/irqflags.h
-@@ -141,6 +141,11 @@ static inline notrace unsigned long arch_local_irq_save(void)
-       sti;                                    \
-       sysexit
+@@ -137,6 +137,11 @@ static inline notrace unsigned long arch_local_irq_save(void)
+       swapgs;                                 \
+       sysretl
  
 +#define GET_CR0_INTO_RDI              mov %cr0, %rdi
 +#define SET_RDI_INTO_CR0              mov %rdi, %cr0
@@ -17358,7 +17439,7 @@ index 09b9620..923aecd 100644
        atomic_t perf_rdpmc_allowed;    /* nonzero if rdpmc is allowed */
  } mm_context_t;
 diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h
-index 883f6b93..6869d96 100644
+index 883f6b93..5184058 100644
 --- a/arch/x86/include/asm/mmu_context.h
 +++ b/arch/x86/include/asm/mmu_context.h
 @@ -42,6 +42,20 @@ void destroy_context(struct mm_struct *mm);
@@ -17367,7 +17448,7 @@ index 883f6b93..6869d96 100644
  {
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+      if (!(static_cpu_has(X86_FEATURE_PCID))) {
++      if (!(static_cpu_has(X86_FEATURE_PCIDUDEREF))) {
 +              unsigned int i;
 +              pgd_t *pgd;
 +
@@ -17405,7 +17486,7 @@ index 883f6b93..6869d96 100644
 +              pax_open_kernel();
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+              if (static_cpu_has(X86_FEATURE_PCID))
++              if (static_cpu_has(X86_FEATURE_PCIDUDEREF))
 +                      __clone_user_pgds(get_cpu_pgd(cpu, user), next->pgd);
 +              else
 +#endif
@@ -17416,7 +17497,7 @@ index 883f6b93..6869d96 100644
 +              BUG_ON((__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL) != (read_cr3() & __PHYSICAL_MASK) && (__pa(get_cpu_pgd(cpu, user)) | PCID_USER) != (read_cr3() & __PHYSICAL_MASK));
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+              if (static_cpu_has(X86_FEATURE_PCID)) {
++              if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
 +                      if (static_cpu_has(X86_FEATURE_INVPCID)) {
 +                              u64 descriptor[2];
 +                              descriptor[0] = PCID_USER;
@@ -17450,9 +17531,9 @@ index 883f6b93..6869d96 100644
 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
 +              if (!(__supported_pte_mask & _PAGE_NX)) {
 +                      smp_mb__before_atomic();
-+                      cpu_clear(cpu, prev->context.cpu_user_cs_mask);
++                      cpumask_clear_cpu(cpu, &prev->context.cpu_user_cs_mask);
 +                      smp_mb__after_atomic();
-+                      cpu_set(cpu, next->context.cpu_user_cs_mask);
++                      cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
 +              }
 +#endif
 +
@@ -17473,7 +17554,7 @@ index 883f6b93..6869d96 100644
 +              pax_open_kernel();
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+              if (static_cpu_has(X86_FEATURE_PCID))
++              if (static_cpu_has(X86_FEATURE_PCIDUDEREF))
 +                      __clone_user_pgds(get_cpu_pgd(cpu, user), next->pgd);
 +              else
 +#endif
@@ -17484,7 +17565,7 @@ index 883f6b93..6869d96 100644
 +              BUG_ON((__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL) != (read_cr3() & __PHYSICAL_MASK) && (__pa(get_cpu_pgd(cpu, user)) | PCID_USER) != (read_cr3() & __PHYSICAL_MASK));
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+              if (static_cpu_has(X86_FEATURE_PCID)) {
++              if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
 +                      if (static_cpu_has(X86_FEATURE_INVPCID)) {
 +                              u64 descriptor[2];
 +                              descriptor[0] = PCID_USER;
@@ -17526,7 +17607,7 @@ index 883f6b93..6869d96 100644
 +
 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
 +                      if (!(__supported_pte_mask & _PAGE_NX))
-+                              cpu_set(cpu, next->context.cpu_user_cs_mask);
++                              cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
 +#endif
 +
 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
@@ -17686,7 +17767,7 @@ index b3bebf9..13ac22e 100644
  #define __phys_addr(x)                __phys_addr_nodebug(x)
  #define __phys_addr_symbol(x) \
 diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
-index 965c47d..ffe0af8 100644
+index 8957810..f34efb4 100644
 --- a/arch/x86/include/asm/paravirt.h
 +++ b/arch/x86/include/asm/paravirt.h
 @@ -560,7 +560,7 @@ static inline pmd_t __pmd(pmdval_t val)
@@ -17748,10 +17829,10 @@ index 965c47d..ffe0af8 100644
  #endif
  
  #define INTERRUPT_RETURN                                              \
-@@ -981,6 +1008,21 @@ extern void default_banner(void);
-       PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_irq_enable_sysexit),    \
+@@ -976,6 +1003,21 @@ extern void default_banner(void);
+       PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret64),       \
                  CLBR_NONE,                                            \
-                 jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_irq_enable_sysexit))
+                 jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_usergs_sysret64))
 +
 +#define GET_CR0_INTO_RDI                              \
 +      call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0); \
@@ -17771,7 +17852,7 @@ index 965c47d..ffe0af8 100644
  
  #endif /* __ASSEMBLY__ */
 diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
-index 7549b8b..f0edfda 100644
+index f7b0b5c..cdd33f9 100644
 --- a/arch/x86/include/asm/paravirt_types.h
 +++ b/arch/x86/include/asm/paravirt_types.h
 @@ -84,7 +84,7 @@ struct pv_init_ops {
@@ -17831,8 +17912,8 @@ index 7549b8b..f0edfda 100644
  
        void (*set_pgd)(pgd_t *pudp, pgd_t pgdval);
 +      void (*set_pgd_batched)(pgd_t *pudp, pgd_t pgdval);
- #endif        /* PAGETABLE_LEVELS == 4 */
- #endif        /* PAGETABLE_LEVELS >= 3 */
+ #endif        /* CONFIG_PGTABLE_LEVELS == 4 */
+ #endif        /* CONFIG_PGTABLE_LEVELS >= 3 */
  
 @@ -324,7 +325,13 @@ struct pv_mmu_ops {
           an mfn.  We can tell which is which from the index. */
@@ -17876,7 +17957,7 @@ index 7549b8b..f0edfda 100644
  extern struct pv_info pv_info;
  extern struct pv_init_ops pv_init_ops;
 diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
-index c4412e9..90e88c5 100644
+index bf7f8b5..ca5799d 100644
 --- a/arch/x86/include/asm/pgalloc.h
 +++ b/arch/x86/include/asm/pgalloc.h
 @@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(struct mm_struct *mm,
@@ -17915,7 +17996,7 @@ index c4412e9..90e88c5 100644
 +}
  #endif        /* CONFIG_X86_PAE */
  
- #if PAGETABLE_LEVELS > 3
+ #if CONFIG_PGTABLE_LEVELS > 3
 @@ -123,6 +140,12 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
        set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud)));
  }
@@ -17965,7 +18046,7 @@ index cdaa58c..e61122b 100644
  
  /*
 diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
-index a0c35bf..7045c6a 100644
+index fe57e7a..0573d42 100644
 --- a/arch/x86/include/asm/pgtable.h
 +++ b/arch/x86/include/asm/pgtable.h
 @@ -47,6 +47,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
@@ -18321,10 +18402,10 @@ index 2ee7811..55aca24 100644
  }
  
 diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h
-index 602b602..acb53ed 100644
+index e6844df..432b56e 100644
 --- a/arch/x86/include/asm/pgtable_64_types.h
 +++ b/arch/x86/include/asm/pgtable_64_types.h
-@@ -61,11 +61,16 @@ typedef struct { pteval_t pte; } pte_t;
+@@ -60,11 +60,16 @@ typedef struct { pteval_t pte; } pte_t;
  #define MODULES_VADDR    (__START_KERNEL_map + KERNEL_IMAGE_SIZE)
  #define MODULES_END      _AC(0xffffffffff000000, UL)
  #define MODULES_LEN   (MODULES_END - MODULES_VADDR)
@@ -18342,7 +18423,7 @@ index 602b602..acb53ed 100644
  
  #endif /* _ASM_X86_PGTABLE_64_DEFS_H */
 diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
-index 8c7c108..1c1b77f 100644
+index 78f0c8c..4424bb0 100644
 --- a/arch/x86/include/asm/pgtable_types.h
 +++ b/arch/x86/include/asm/pgtable_types.h
 @@ -85,8 +85,10 @@
@@ -18391,16 +18472,16 @@ index 8c7c108..1c1b77f 100644
  }
 +#endif
  
-+#if PAGETABLE_LEVELS == 3
++#if CONFIG_PGTABLE_LEVELS == 3
 +#include <asm-generic/pgtable-nopud.h>
 +#endif
 +
-+#if PAGETABLE_LEVELS == 2
++#if CONFIG_PGTABLE_LEVELS == 2
 +#include <asm-generic/pgtable-nopmd.h>
 +#endif
 +
 +#ifndef __ASSEMBLY__
- #if PAGETABLE_LEVELS > 3
+ #if CONFIG_PGTABLE_LEVELS > 3
  typedef struct { pudval_t pud; } pud_t;
  
 @@ -247,8 +262,6 @@ static inline pudval_t native_pud_val(pud_t pud)
@@ -18443,10 +18524,10 @@ index 8f327184..368fb29 100644
  
  /*
 diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
-index ec1c935..5cc6023 100644
+index 23ba676..6584489 100644
 --- a/arch/x86/include/asm/processor.h
 +++ b/arch/x86/include/asm/processor.h
-@@ -127,7 +127,7 @@ struct cpuinfo_x86 {
+@@ -130,7 +130,7 @@ struct cpuinfo_x86 {
        /* Index into per_cpu list: */
        u16                     cpu_index;
        u32                     microcode;
@@ -18455,7 +18536,7 @@ index ec1c935..5cc6023 100644
  
  #define X86_VENDOR_INTEL      0
  #define X86_VENDOR_CYRIX      1
-@@ -198,9 +198,21 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
+@@ -201,9 +201,21 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
            : "memory");
  }
  
@@ -18478,16 +18559,16 @@ index ec1c935..5cc6023 100644
  }
  
  #ifdef CONFIG_X86_32
-@@ -282,7 +294,7 @@ struct tss_struct {
+@@ -300,7 +312,7 @@ struct tss_struct {
  
  } ____cacheline_aligned;
  
--DECLARE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss);
-+extern struct tss_struct init_tss[NR_CPUS];
+-DECLARE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss);
++extern struct tss_struct cpu_tss[NR_CPUS];
  
- /*
-  * Save the original ist values for checking stack pointers during debugging
-@@ -479,6 +491,7 @@ struct thread_struct {
+ #ifdef CONFIG_X86_32
+ DECLARE_PER_CPU(unsigned long, cpu_current_top_of_stack);
+@@ -500,6 +512,7 @@ struct thread_struct {
        unsigned short          ds;
        unsigned short          fsindex;
        unsigned short          gsindex;
@@ -18495,7 +18576,20 @@ index ec1c935..5cc6023 100644
  #endif
  #ifdef CONFIG_X86_32
        unsigned long           ip;
-@@ -805,11 +818,18 @@ static inline void spin_lock_prefetch(const void *x)
+@@ -585,10 +598,10 @@ static inline void native_swapgs(void)
+ #endif
+ }
+-static inline unsigned long current_top_of_stack(void)
++static inline unsigned long current_top_of_stack(unsigned int cpu)
+ {
+ #ifdef CONFIG_X86_64
+-      return this_cpu_read_stable(cpu_tss.x86_tss.sp0);
++      return cpu_tss[cpu].x86_tss.sp0;
+ #else
+       /* sp0 on x86_32 is special in and around vm86 mode. */
+       return this_cpu_read_stable(cpu_current_top_of_stack);
+@@ -837,8 +850,15 @@ static inline void spin_lock_prefetch(const void *x)
   */
  #define TASK_SIZE             PAGE_OFFSET
  #define TASK_SIZE_MAX         TASK_SIZE
@@ -18511,43 +18605,22 @@ index ec1c935..5cc6023 100644
 +#define STACK_TOP_MAX         TASK_SIZE
  
  #define INIT_THREAD  {                                                          \
--      .sp0                    = sizeof(init_stack) + (long)&init_stack, \
-+      .sp0                    = sizeof(init_stack) + (long)&init_stack - 8, \
-       .vm86_info              = NULL,                                   \
-       .sysenter_cs            = __KERNEL_CS,                            \
-       .io_bitmap_ptr          = NULL,                                   \
-@@ -823,7 +843,7 @@ static inline void spin_lock_prefetch(const void *x)
+       .sp0                    = TOP_OF_INIT_STACK,                      \
+@@ -859,12 +879,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
+  * "struct pt_regs" is possible, but they may contain the
+  * completely wrong values.
   */
- #define INIT_TSS  {                                                     \
-       .x86_tss = {                                                      \
--              .sp0            = sizeof(init_stack) + (long)&init_stack, \
-+              .sp0            = sizeof(init_stack) + (long)&init_stack - 8, \
-               .ss0            = __KERNEL_DS,                            \
-               .ss1            = __KERNEL_CS,                            \
-               .io_bitmap_base = INVALID_IO_BITMAP_OFFSET,               \
-@@ -834,11 +854,7 @@ static inline void spin_lock_prefetch(const void *x)
- extern unsigned long thread_saved_pc(struct task_struct *tsk);
- #define THREAD_SIZE_LONGS      (THREAD_SIZE/sizeof(unsigned long))
--#define KSTK_TOP(info)                                                 \
--({                                                                     \
--       unsigned long *__ptr = (unsigned long *)(info);                 \
--       (unsigned long)(&__ptr[THREAD_SIZE_LONGS]);                     \
+-#define task_pt_regs(task) \
+-({                                                                    \
+-      unsigned long __ptr = (unsigned long)task_stack_page(task);     \
+-      __ptr += THREAD_SIZE - TOP_OF_KERNEL_STACK_PADDING;             \
+-      ((struct pt_regs *)__ptr) - 1;                                  \
 -})
-+#define KSTK_TOP(info)         ((container_of(info, struct task_struct, tinfo))->thread.sp0)
++#define task_pt_regs(tsk)     ((struct pt_regs *)(tsk)->thread.sp0 - 1)
  
- /*
-  * The below -8 is to reserve 8 bytes on top of the ring0 stack.
-@@ -853,7 +869,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
- #define task_pt_regs(task)                                             \
- ({                                                                     \
-        struct pt_regs *__regs__;                                       \
--       __regs__ = (struct pt_regs *)(KSTK_TOP(task_stack_page(task))-8); \
-+       __regs__ = (struct pt_regs *)((task)->thread.sp0);              \
-        __regs__ - 1;                                                   \
- })
+ #define KSTK_ESP(task)                (task_pt_regs(task)->sp)
  
-@@ -869,13 +885,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
+@@ -878,13 +893,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
   * particular problem by preventing anything from being mapped
   * at the maximum canonical address.
   */
@@ -18563,21 +18636,7 @@ index ec1c935..5cc6023 100644
  
  #define TASK_SIZE             (test_thread_flag(TIF_ADDR32) ? \
                                        IA32_PAGE_OFFSET : TASK_SIZE_MAX)
-@@ -886,11 +902,11 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
- #define STACK_TOP_MAX         TASK_SIZE_MAX
- #define INIT_THREAD  { \
--      .sp0 = (unsigned long)&init_stack + sizeof(init_stack) \
-+      .sp0 = (unsigned long)&init_stack + sizeof(init_stack) - 16 \
- }
- #define INIT_TSS  { \
--      .x86_tss.sp0 = (unsigned long)&init_stack + sizeof(init_stack) \
-+      .x86_tss.sp0 = (unsigned long)&init_stack + sizeof(init_stack) - 16 \
- }
- /*
-@@ -918,6 +934,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
+@@ -918,6 +933,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
   */
  #define TASK_UNMAPPED_BASE    (PAGE_ALIGN(TASK_SIZE / 3))
  
@@ -18588,7 +18647,7 @@ index ec1c935..5cc6023 100644
  #define KSTK_EIP(task)                (task_pt_regs(task)->ip)
  
  /* Get/set a process' ability to use the timestamp counter instruction */
-@@ -962,7 +982,7 @@ static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
+@@ -962,7 +981,7 @@ static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
        return 0;
  }
  
@@ -18597,7 +18656,7 @@ index ec1c935..5cc6023 100644
  extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
  
  void default_idle(void);
-@@ -972,6 +992,6 @@ bool xen_set_default_idle(void);
+@@ -972,6 +991,6 @@ bool xen_set_default_idle(void);
  #define xen_set_default_idle 0
  #endif
  
@@ -18606,46 +18665,10 @@ index ec1c935..5cc6023 100644
  void df_debug(struct pt_regs *regs, long error_code);
  #endif /* _ASM_X86_PROCESSOR_H */
 diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
-index 86fc2bb..bd5049a 100644
+index 5fabf13..7388158 100644
 --- a/arch/x86/include/asm/ptrace.h
 +++ b/arch/x86/include/asm/ptrace.h
-@@ -89,28 +89,29 @@ static inline unsigned long regs_return_value(struct pt_regs *regs)
- }
- /*
-- * user_mode_vm(regs) determines whether a register set came from user mode.
-+ * user_mode(regs) determines whether a register set came from user mode.
-  * This is true if V8086 mode was enabled OR if the register set was from
-  * protected mode with RPL-3 CS value.  This tricky test checks that with
-  * one comparison.  Many places in the kernel can bypass this full check
-- * if they have already ruled out V8086 mode, so user_mode(regs) can be used.
-+ * if they have already ruled out V8086 mode, so user_mode_novm(regs) can
-+ * be used.
-  */
--static inline int user_mode(struct pt_regs *regs)
-+static inline int user_mode_novm(struct pt_regs *regs)
- {
- #ifdef CONFIG_X86_32
-       return (regs->cs & SEGMENT_RPL_MASK) == USER_RPL;
- #else
--      return !!(regs->cs & 3);
-+      return !!(regs->cs & SEGMENT_RPL_MASK);
- #endif
- }
--static inline int user_mode_vm(struct pt_regs *regs)
-+static inline int user_mode(struct pt_regs *regs)
- {
- #ifdef CONFIG_X86_32
-       return ((regs->cs & SEGMENT_RPL_MASK) | (regs->flags & X86_VM_MASK)) >=
-               USER_RPL;
- #else
--      return user_mode(regs);
-+      return user_mode_novm(regs);
- #endif
- }
-@@ -126,15 +127,16 @@ static inline int v8086_mode(struct pt_regs *regs)
+@@ -125,15 +125,16 @@ static inline int v8086_mode(struct pt_regs *regs)
  #ifdef CONFIG_X86_64
  static inline bool user_64bit_mode(struct pt_regs *regs)
  {
@@ -18664,7 +18687,7 @@ index 86fc2bb..bd5049a 100644
  #endif
  }
  
-@@ -185,9 +187,11 @@ static inline unsigned long regs_get_register(struct pt_regs *regs,
+@@ -180,9 +181,11 @@ static inline unsigned long regs_get_register(struct pt_regs *regs,
         * Traps from the kernel do not save sp and ss.
         * Use the helper function to retrieve sp.
         */
@@ -18974,13 +18997,13 @@ index cad82c9..2e5c5c1 100644
  
  #endif /* __KERNEL__ */
 diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
-index db257a5..b91bc77 100644
+index 7d5a192..23ef1aa 100644
 --- a/arch/x86/include/asm/segment.h
 +++ b/arch/x86/include/asm/segment.h
-@@ -73,10 +73,15 @@
+@@ -82,14 +82,20 @@
   *  26 - ESPFIX small SS
   *  27 - per-cpu                      [ offset to per-cpu data area ]
-  *  28 - stack_canary-20              [ for stack protector ]
+  *  28 - stack_canary-20              [ for stack protector ]         <=== cacheline #8
 - *  29 - unused
 - *  30 - unused
 + *  29 - PCI BIOS CS
@@ -18992,115 +19015,92 @@ index db257a5..b91bc77 100644
 +#define __KERNEXEC_EFI_CS     (GDT_ENTRY_KERNEXEC_EFI_CS*8)
 +#define __KERNEXEC_EFI_DS     (GDT_ENTRY_KERNEXEC_EFI_DS*8)
 +
- #define GDT_ENTRY_TLS_MIN     6
- #define GDT_ENTRY_TLS_MAX     (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1)
-@@ -88,6 +93,8 @@
+ #define GDT_ENTRY_TLS_MIN             6
+ #define GDT_ENTRY_TLS_MAX             (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1)
  
- #define GDT_ENTRY_KERNEL_CS           (GDT_ENTRY_KERNEL_BASE+0)
+ #define GDT_ENTRY_KERNEL_CS           12
++#define GDT_ENTRY_KERNEXEC_KERNEL_CS  4
+ #define GDT_ENTRY_KERNEL_DS           13
+ #define GDT_ENTRY_DEFAULT_USER_CS     14
+ #define GDT_ENTRY_DEFAULT_USER_DS     15
+@@ -106,6 +112,12 @@
+ #define GDT_ENTRY_PERCPU              27
+ #define GDT_ENTRY_STACK_CANARY                28
  
-+#define GDT_ENTRY_KERNEXEC_KERNEL_CS  (4)
++#define GDT_ENTRY_PCIBIOS_CS          29
++#define __PCIBIOS_DS (GDT_ENTRY_PCIBIOS_DS * 8)
 +
- #define GDT_ENTRY_KERNEL_DS           (GDT_ENTRY_KERNEL_BASE+1)
- #define GDT_ENTRY_TSS                 (GDT_ENTRY_KERNEL_BASE+4)
-@@ -113,6 +120,12 @@
- #define __KERNEL_STACK_CANARY         0
- #endif
-+#define GDT_ENTRY_PCIBIOS_CS          (GDT_ENTRY_KERNEL_BASE+17)
++#define GDT_ENTRY_PCIBIOS_DS          30
 +#define __PCIBIOS_CS (GDT_ENTRY_PCIBIOS_CS * 8)
-+
-+#define GDT_ENTRY_PCIBIOS_DS          (GDT_ENTRY_KERNEL_BASE+18)
-+#define __PCIBIOS_DS (GDT_ENTRY_PCIBIOS_DS * 8)
 +
  #define GDT_ENTRY_DOUBLEFAULT_TSS     31
  
  /*
-@@ -140,7 +153,7 @@
+@@ -118,6 +130,7 @@
   */
  
- /* Matches PNP_CS32 and PNP_CS16 (they must be consecutive) */
--#define SEGMENT_IS_PNP_CODE(x)   (((x) & 0xf4) == GDT_ENTRY_PNPBIOS_BASE * 8)
-+#define SEGMENT_IS_PNP_CODE(x)   (((x) & 0xFFFCU) == PNP_CS32 || ((x) & 0xFFFCU) == PNP_CS16)
+ #define __KERNEL_CS                   (GDT_ENTRY_KERNEL_CS*8)
++#define __KERNEXEC_KERNEL_CS          (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
+ #define __KERNEL_DS                   (GDT_ENTRY_KERNEL_DS*8)
+ #define __USER_DS                     (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
+ #define __USER_CS                     (GDT_ENTRY_DEFAULT_USER_CS*8 + 3)
+@@ -129,7 +142,7 @@
+ #define PNP_CS16                      (GDT_ENTRY_PNPBIOS_CS16*8)
  
+ /* "Is this PNP code selector (PNP_CS32 or PNP_CS16)?" */
+-#define SEGMENT_IS_PNP_CODE(x)                (((x) & 0xf4) == PNP_CS32)
++#define SEGMENT_IS_PNP_CODE(x)                (((x) & 0xFFFCU) == PNP_CS32 || ((x) & 0xFFFCU) == PNP_CS16)
  
- #else
-@@ -164,6 +177,8 @@
- #define __USER32_CS   (GDT_ENTRY_DEFAULT_USER32_CS*8+3)
- #define __USER32_DS   __USER_DS
+ /* data segment for BIOS: */
+ #define PNP_DS                                (GDT_ENTRY_PNPBIOS_DS*8)
+@@ -176,6 +189,8 @@
+ #define GDT_ENTRY_DEFAULT_USER_DS     5
+ #define GDT_ENTRY_DEFAULT_USER_CS     6
  
-+#define GDT_ENTRY_KERNEXEC_KERNEL_CS 7
++#define GDT_ENTRY_KERNEXEC_KERNEL_CS  7
 +
#define GDT_ENTRY_TSS 8       /* needs two entries */
- #define GDT_ENTRY_LDT 10 /* needs two entries */
- #define GDT_ENTRY_TLS_MIN 12
-@@ -172,6 +187,8 @@
#define GDT_ENTRY_PER_CPU 15  /* Abused to load per CPU data from limit */
- #define __PER_CPU_SEG (GDT_ENTRY_PER_CPU * 8 + 3)
/* Needs two entries */
+ #define GDT_ENTRY_TSS                 8
+ /* Needs two entries */
+@@ -187,10 +202,12 @@
+ /* Abused to load per CPU data from limit */
+ #define GDT_ENTRY_PER_CPU             15
  
-+#define GDT_ENTRY_UDEREF_KERNEL_DS 16
++#define GDT_ENTRY_UDEREF_KERNEL_DS    16
 +
- /* TLS indexes for 64bit - hardcoded in arch_prctl */
- #define FS_TLS 0
- #define GS_TLS 1
-@@ -179,12 +196,14 @@
- #define GS_TLS_SEL ((GDT_ENTRY_TLS_MIN+GS_TLS)*8 + 3)
- #define FS_TLS_SEL ((GDT_ENTRY_TLS_MIN+FS_TLS)*8 + 3)
--#define GDT_ENTRIES 16
-+#define GDT_ENTRIES 17
- #endif
- #define __KERNEL_CS   (GDT_ENTRY_KERNEL_CS*8)
-+#define __KERNEXEC_KERNEL_CS  (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
- #define __KERNEL_DS   (GDT_ENTRY_KERNEL_DS*8)
-+#define __UDEREF_KERNEL_DS    (GDT_ENTRY_UDEREF_KERNEL_DS*8)
- #define __USER_DS     (GDT_ENTRY_DEFAULT_USER_DS*8+3)
- #define __USER_CS     (GDT_ENTRY_DEFAULT_USER_CS*8+3)
- #ifndef CONFIG_PARAVIRT
-@@ -256,7 +275,7 @@ static inline unsigned long get_limit(unsigned long segment)
- {
-       unsigned long __limit;
-       asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
--      return __limit + 1;
-+      return __limit;
- }
+ /*
+  * Number of entries in the GDT table:
+  */
+-#define GDT_ENTRIES                   16
++#define GDT_ENTRIES                   17
  
- #endif /* !__ASSEMBLY__ */
+ /*
+  * Segment selector values corresponding to the above entries:
+@@ -200,7 +217,9 @@
+  */
+ #define __KERNEL32_CS                 (GDT_ENTRY_KERNEL32_CS*8)
+ #define __KERNEL_CS                   (GDT_ENTRY_KERNEL_CS*8)
++#define __KERNEXEC_KERNEL_CS          (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
+ #define __KERNEL_DS                   (GDT_ENTRY_KERNEL_DS*8)
++#define __UDEREF_KERNEL_DS            (GDT_ENTRY_UDEREF_KERNEL_DS*8)
+ #define __USER32_CS                   (GDT_ENTRY_DEFAULT_USER32_CS*8 + 3)
+ #define __USER_DS                     (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
+ #define __USER32_DS                   __USER_DS
 diff --git a/arch/x86/include/asm/smap.h b/arch/x86/include/asm/smap.h
-index 8d3120f..352b440 100644
+index ba665eb..0f72938 100644
 --- a/arch/x86/include/asm/smap.h
 +++ b/arch/x86/include/asm/smap.h
-@@ -25,11 +25,40 @@
+@@ -25,6 +25,18 @@
  
  #include <asm/alternative-asm.h>
  
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
 +#define ASM_PAX_OPEN_USERLAND                                 \
-+      661: jmp 663f;                                          \
-+      .pushsection .altinstr_replacement, "a" ;               \
-+      662: pushq %rax; nop;                                   \
-+      .popsection ;                                           \
-+      .pushsection .altinstructions, "a" ;                    \
-+      altinstruction_entry 661b, 662b, X86_FEATURE_STRONGUDEREF, 2, 2;\
-+      .popsection ;                                           \
-+      call __pax_open_userland;                               \
-+      popq %rax;                                              \
-+      663:
++      ALTERNATIVE "", "call __pax_open_userland", X86_FEATURE_STRONGUDEREF
 +
 +#define ASM_PAX_CLOSE_USERLAND                                        \
-+      661: jmp 663f;                                          \
-+      .pushsection .altinstr_replacement, "a" ;               \
-+      662: pushq %rax; nop;                                   \
-+      .popsection;                                            \
-+      .pushsection .altinstructions, "a" ;                    \
-+      altinstruction_entry 661b, 662b, X86_FEATURE_STRONGUDEREF, 2, 2;\
-+      .popsection;                                            \
-+      call __pax_close_userland;                              \
-+      popq %rax;                                              \
-+      663:
++      ALTERNATIVE "", "call __pax_close_userland", X86_FEATURE_STRONGUDEREF
++
 +#else
 +#define ASM_PAX_OPEN_USERLAND
 +#define ASM_PAX_CLOSE_USERLAND
@@ -19108,23 +19108,8 @@ index 8d3120f..352b440 100644
 +
  #ifdef CONFIG_X86_SMAP
  
- #define ASM_CLAC                                                      \
-       661: ASM_NOP3 ;                                                 \
--      .pushsection .altinstr_replacement, "ax" ;                      \
-+      .pushsection .altinstr_replacement, "a" ;                       \
-       662: __ASM_CLAC ;                                               \
-       .popsection ;                                                   \
-       .pushsection .altinstructions, "a" ;                            \
-@@ -38,7 +67,7 @@
- #define ASM_STAC                                                      \
-       661: ASM_NOP3 ;                                                 \
--      .pushsection .altinstr_replacement, "ax" ;                      \
-+      .pushsection .altinstr_replacement, "a" ;                       \
-       662: __ASM_STAC ;                                               \
-       .popsection ;                                                   \
-       .pushsection .altinstructions, "a" ;                            \
-@@ -56,6 +85,37 @@
+ #define ASM_CLAC \
+@@ -44,6 +56,37 @@
  
  #include <asm/alternative.h>
  
@@ -19136,7 +19121,7 @@ index 8d3120f..352b440 100644
 +{
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+      asm volatile(ALTERNATIVE(ASM_NOP5, "call %P[open]", X86_FEATURE_STRONGUDEREF)
++      asm volatile(ALTERNATIVE("", "call %P[open]", X86_FEATURE_STRONGUDEREF)
 +              :
 +              : [open] "i" (__pax_open_userland)
 +              : "memory", "rax");
@@ -19150,7 +19135,7 @@ index 8d3120f..352b440 100644
 +{
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+      asm volatile(ALTERNATIVE(ASM_NOP5, "call %P[close]", X86_FEATURE_STRONGUDEREF)
++      asm volatile(ALTERNATIVE("", "call %P[close]", X86_FEATURE_STRONGUDEREF)
 +              :
 +              : [close] "i" (__pax_close_userland)
 +              : "memory", "rax");
@@ -19163,7 +19148,7 @@ index 8d3120f..352b440 100644
  
  static __always_inline void clac(void)
 diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
-index 8cd1cc3..827e09e 100644
+index 17a8dce..79f7280 100644
 --- a/arch/x86/include/asm/smp.h
 +++ b/arch/x86/include/asm/smp.h
 @@ -35,7 +35,7 @@ DECLARE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_map);
@@ -19184,7 +19169,7 @@ index 8cd1cc3..827e09e 100644
  
  /* Globals due to paravirt */
  extern void set_cpu_sibling_map(int cpu);
-@@ -191,14 +191,8 @@ extern unsigned disabled_cpus;
+@@ -192,14 +192,8 @@ extern unsigned disabled_cpus;
  extern int safe_smp_processor_id(void);
  
  #elif defined(CONFIG_X86_64_SMP)
@@ -19299,18 +19284,26 @@ index 751bf4b..a1278b5 100644
               __switch_canary_iparam                                     \
             : "memory", "cc" __EXTRA_CLOBBER)
 diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
-index 1d4e4f2..506db18 100644
+index b4bdec3..e8af9bc 100644
 --- a/arch/x86/include/asm/thread_info.h
 +++ b/arch/x86/include/asm/thread_info.h
-@@ -24,7 +24,6 @@ struct exec_domain;
+@@ -36,7 +36,7 @@
+ #ifdef CONFIG_X86_32
+ # define TOP_OF_KERNEL_STACK_PADDING 8
+ #else
+-# define TOP_OF_KERNEL_STACK_PADDING 0
++# define TOP_OF_KERNEL_STACK_PADDING 16
+ #endif
+ /*
+@@ -50,27 +50,26 @@ struct task_struct;
  #include <linux/atomic.h>
  
  struct thread_info {
 -      struct task_struct      *task;          /* main task structure */
-       struct exec_domain      *exec_domain;   /* execution domain */
        __u32                   flags;          /* low level flags */
        __u32                   status;         /* thread synchronous flags */
-@@ -32,13 +31,13 @@ struct thread_info {
+       __u32                   cpu;            /* current CPU */
        int                     saved_preempt_count;
        mm_segment_t            addr_limit;
        void __user             *sysenter_return;
@@ -19323,10 +19316,9 @@ index 1d4e4f2..506db18 100644
 +#define INIT_THREAD_INFO                      \
  {                                             \
 -      .task           = &tsk,                 \
-       .exec_domain    = &default_exec_domain, \
        .flags          = 0,                    \
        .cpu            = 0,                    \
-@@ -46,7 +45,7 @@ struct thread_info {
+       .saved_preempt_count = INIT_PREEMPT_COUNT,      \
        .addr_limit     = KERNEL_DS,            \
  }
  
@@ -19335,7 +19327,7 @@ index 1d4e4f2..506db18 100644
  #define init_stack            (init_thread_union.stack)
  
  #else /* !__ASSEMBLY__ */
-@@ -86,6 +85,7 @@ struct thread_info {
+@@ -110,6 +109,7 @@ struct thread_info {
  #define TIF_SYSCALL_TRACEPOINT        28      /* syscall tracepoint instrumentation */
  #define TIF_ADDR32            29      /* 32-bit address space on 64 bits */
  #define TIF_X32                       30      /* 32-bit native x86-64 binary */
@@ -19343,7 +19335,7 @@ index 1d4e4f2..506db18 100644
  
  #define _TIF_SYSCALL_TRACE    (1 << TIF_SYSCALL_TRACE)
  #define _TIF_NOTIFY_RESUME    (1 << TIF_NOTIFY_RESUME)
-@@ -109,17 +109,18 @@ struct thread_info {
+@@ -133,17 +133,18 @@ struct thread_info {
  #define _TIF_SYSCALL_TRACEPOINT       (1 << TIF_SYSCALL_TRACEPOINT)
  #define _TIF_ADDR32           (1 << TIF_ADDR32)
  #define _TIF_X32              (1 << TIF_X32)
@@ -19364,7 +19356,7 @@ index 1d4e4f2..506db18 100644
  
  /* work to do on interrupt/exception return */
  #define _TIF_WORK_MASK                                                        \
-@@ -130,7 +131,7 @@ struct thread_info {
+@@ -154,7 +155,7 @@ struct thread_info {
  /* work to do on any return to user space */
  #define _TIF_ALLWORK_MASK                                             \
        ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT |       \
@@ -19373,15 +19365,7 @@ index 1d4e4f2..506db18 100644
  
  /* Only used for 64 bit */
  #define _TIF_DO_NOTIFY_MASK                                           \
-@@ -145,7 +146,6 @@ struct thread_info {
- #define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW)
- #define STACK_WARN            (THREAD_SIZE/8)
--#define KERNEL_STACK_OFFSET   (5*(BITS_PER_LONG/8))
- /*
-  * macros/functions for gaining access to the thread information structure
-@@ -156,12 +156,11 @@ struct thread_info {
+@@ -179,9 +180,11 @@ struct thread_info {
  
  DECLARE_PER_CPU(unsigned long, kernel_stack);
  
@@ -19389,31 +19373,22 @@ index 1d4e4f2..506db18 100644
 +
  static inline struct thread_info *current_thread_info(void)
  {
--      struct thread_info *ti;
--      ti = (void *)(this_cpu_read_stable(kernel_stack) +
--                    KERNEL_STACK_OFFSET - THREAD_SIZE);
--      return ti;
+-      return (struct thread_info *)(current_top_of_stack() - THREAD_SIZE);
 +      return this_cpu_read_stable(current_tinfo);
  }
  
  static inline unsigned long current_stack_pointer(void)
-@@ -179,14 +178,7 @@ static inline unsigned long current_stack_pointer(void)
+@@ -199,8 +202,7 @@ static inline unsigned long current_stack_pointer(void)
  
- /* how to get the thread information struct from ASM */
+ /* Load thread_info address into "reg" */
  #define GET_THREAD_INFO(reg) \
 -      _ASM_MOV PER_CPU_VAR(kernel_stack),reg ; \
--      _ASM_SUB $(THREAD_SIZE-KERNEL_STACK_OFFSET),reg ;
--
--/*
-- * Same if PER_CPU_VAR(kernel_stack) is, perhaps with some offset, already in
-- * a certain register (to be used in assembler memory operands).
-- */
--#define THREAD_INFO(reg, off) KERNEL_STACK_OFFSET+(off)-THREAD_SIZE(reg)
+-      _ASM_SUB $(THREAD_SIZE),reg ;
 +      _ASM_MOV PER_CPU_VAR(current_tinfo),reg ;
  
- #endif
-@@ -242,5 +234,12 @@ static inline bool is_ia32_task(void)
+ /*
+  * ASM operand which evaluates to a 'thread_info' address of
+@@ -293,5 +295,12 @@ static inline bool is_ia32_task(void)
  extern void arch_task_cache_init(void);
  extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
  extern void arch_release_task_struct(struct task_struct *tsk);
@@ -19427,7 +19402,7 @@ index 1d4e4f2..506db18 100644
  #endif
  #endif /* _ASM_X86_THREAD_INFO_H */
 diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
-index cd79194..e7a9491 100644
+index cd79194..6a9956f 100644
 --- a/arch/x86/include/asm/tlbflush.h
 +++ b/arch/x86/include/asm/tlbflush.h
 @@ -86,18 +86,44 @@ static inline void cr4_set_bits_and_update_boot(unsigned long mask)
@@ -19443,7 +19418,7 @@ index cd79194..e7a9491 100644
 +      }
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+      if (static_cpu_has(X86_FEATURE_PCID)) {
++      if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
 +              unsigned int cpu = raw_get_cpu();
 +
 +              native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER);
@@ -19481,7 +19456,7 @@ index cd79194..e7a9491 100644
  }
  
  static inline void __native_flush_tlb_global(void)
-@@ -118,6 +144,41 @@ static inline void __native_flush_tlb_global(void)
+@@ -118,6 +144,43 @@ static inline void __native_flush_tlb_global(void)
  
  static inline void __native_flush_tlb_single(unsigned long addr)
  {
@@ -19492,14 +19467,16 @@ index cd79194..e7a9491 100644
 +              descriptor[1] = addr;
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+              if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) || addr >= TASK_SIZE_MAX) {
-+                      if (addr < TASK_SIZE_MAX)
-+                              descriptor[1] += pax_user_shadow_base;
-+                      asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
-+              }
++              if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
++                      if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) || addr >= TASK_SIZE_MAX) {
++                              if (addr < TASK_SIZE_MAX)
++                                      descriptor[1] += pax_user_shadow_base;
++                              asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
++                      }
 +
-+              descriptor[0] = PCID_USER;
-+              descriptor[1] = addr;
++                      descriptor[0] = PCID_USER;
++                      descriptor[1] = addr;
++              }
 +#endif
 +
 +              asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
@@ -19507,7 +19484,7 @@ index cd79194..e7a9491 100644
 +      }
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+      if (static_cpu_has(X86_FEATURE_PCID)) {
++      if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
 +              unsigned int cpu = raw_get_cpu();
 +
 +              native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
@@ -20464,7 +20441,7 @@ index f58a9c7..dc378042a 100644
  extern struct x86_init_ops x86_init;
  extern struct x86_cpuinit_ops x86_cpuinit;
 diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
-index 358dcd3..23c0bf1 100644
+index c44a5d5..7f83cfc 100644
 --- a/arch/x86/include/asm/xen/page.h
 +++ b/arch/x86/include/asm/xen/page.h
 @@ -82,7 +82,7 @@ static inline int xen_safe_read_ulong(unsigned long *addr, unsigned long *val)
@@ -20522,10 +20499,10 @@ index c9a6d68..cb57f42 100644
  }
  
 diff --git a/arch/x86/include/uapi/asm/e820.h b/arch/x86/include/uapi/asm/e820.h
-index d993e33..8db1b18 100644
+index 960a8a9..404daf7 100644
 --- a/arch/x86/include/uapi/asm/e820.h
 +++ b/arch/x86/include/uapi/asm/e820.h
-@@ -58,7 +58,7 @@ struct e820map {
+@@ -68,7 +68,7 @@ struct e820map {
  #define ISA_START_ADDRESS     0xa0000
  #define ISA_END_ADDRESS               0x100000
  
@@ -20534,20 +20511,8 @@ index d993e33..8db1b18 100644
  #define BIOS_END              0x00100000
  
  #define BIOS_ROM_BASE         0xffe00000
-diff --git a/arch/x86/include/uapi/asm/ptrace-abi.h b/arch/x86/include/uapi/asm/ptrace-abi.h
-index 7b0a55a..ad115bf 100644
---- a/arch/x86/include/uapi/asm/ptrace-abi.h
-+++ b/arch/x86/include/uapi/asm/ptrace-abi.h
-@@ -49,7 +49,6 @@
- #define EFLAGS 144
- #define RSP 152
- #define SS 160
--#define ARGOFFSET R11
- #endif /* __ASSEMBLY__ */
- /* top of stack page */
 diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
-index cdb1b70..426434c 100644
+index 9bcd0b5..750f1b7 100644
 --- a/arch/x86/kernel/Makefile
 +++ b/arch/x86/kernel/Makefile
 @@ -28,7 +28,7 @@ obj-y                        += time.o ioport.o ldt.o dumpstack.o nmi.o
@@ -20560,7 +20525,7 @@ index cdb1b70..426434c 100644
  obj-$(CONFIG_X86_64)  += mcount_64.o
  obj-y                 += syscall_$(BITS).o vsyscall_gtod.o
 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index 803b684..68c64f1 100644
+index dbe76a1..e2ec334 100644
 --- a/arch/x86/kernel/acpi/boot.c
 +++ b/arch/x86/kernel/acpi/boot.c
 @@ -1361,7 +1361,7 @@ static void __init acpi_reduced_hw_init(void)
@@ -20619,36 +20584,68 @@ index 665c6b7..eae4d56 100644
  bogus_magic:
        jmp     bogus_magic
 diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
-index 703130f..27a155d 100644
+index aef6531..2044b66 100644
 --- a/arch/x86/kernel/alternative.c
 +++ b/arch/x86/kernel/alternative.c
-@@ -268,6 +268,13 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
-        */
-       for (a = start; a < end; a++) {
+@@ -248,7 +248,9 @@ static void __init_or_module add_nops(void *insns, unsigned int len)
+               unsigned int noplen = len;
+               if (noplen > ASM_NOP_MAX)
+                       noplen = ASM_NOP_MAX;
++              pax_open_kernel();
+               memcpy(insns, ideal_nops[noplen], noplen);
++              pax_close_kernel();
+               insns += noplen;
+               len -= noplen;
+       }
+@@ -276,6 +278,11 @@ recompute_jump(struct alt_instr *a, u8 *orig_insn, u8 *repl_insn, u8 *insnbuf)
+       if (a->replacementlen != 5)
+               return;
++#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
++      if (orig_insn < (u8 *)_text || (u8 *)_einittext <= orig_insn)
++              orig_insn = ktva_ktla(orig_insn);
++#endif
++
+       o_dspl = *(s32 *)(insnbuf + 1);
+       /* next_rip of the replacement JMP */
+@@ -362,7 +369,23 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
+               int insnbuf_sz = 0;
                instr = (u8 *)&a->instr_offset + a->instr_offset;
 +
 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
-+              instr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
-+              if (instr < (u8 *)_text || (u8 *)_einittext <= instr)
-+                      instr -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
++              if ((u8 *)_text <= instr && instr < (u8 *)_einittext) {
++                      instr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
++                      instr = ktla_ktva(instr);
++              }
 +#endif
 +
                replacement = (u8 *)&a->repl_offset + a->repl_offset;
-               BUG_ON(a->replacementlen > a->instrlen);
++
++#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
++              if ((u8 *)_text <= replacement && replacement < (u8 *)_einittext) {
++                      replacement += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
++                      replacement = ktla_ktva(replacement);
++              }
++#endif
++
                BUG_ON(a->instrlen > sizeof(insnbuf));
-@@ -284,6 +291,11 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
-               add_nops(insnbuf + a->replacementlen,
-                        a->instrlen - a->replacementlen);
+               BUG_ON(a->cpuid >= (NCAPINTS + NBUGINTS) * 32);
+               if (!boot_cpu_has(a->cpuid)) {
+@@ -402,6 +425,11 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
+               }
+               DUMP_BYTES(insnbuf, insnbuf_sz, "%p: final_insn: ", instr);
  
 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
 +              if (instr < (u8 *)_text || (u8 *)_einittext <= instr)
 +                      instr = ktva_ktla(instr);
 +#endif
 +
-               text_poke_early(instr, insnbuf, a->instrlen);
+               text_poke_early(instr, insnbuf, insnbuf_sz);
        }
  }
-@@ -299,10 +311,16 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
+@@ -416,10 +444,16 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
        for (poff = start; poff < end; poff++) {
                u8 *ptr = (u8 *)poff + *poff;
  
@@ -20666,7 +20663,7 @@ index 703130f..27a155d 100644
                        text_poke(ptr, ((unsigned char []){0xf0}), 1);
        }
        mutex_unlock(&text_mutex);
-@@ -317,10 +335,16 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
+@@ -434,10 +468,16 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
        for (poff = start; poff < end; poff++) {
                u8 *ptr = (u8 *)poff + *poff;
  
@@ -20684,7 +20681,7 @@ index 703130f..27a155d 100644
                        text_poke(ptr, ((unsigned char []){0x3E}), 1);
        }
        mutex_unlock(&text_mutex);
-@@ -457,7 +481,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
+@@ -574,7 +614,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
  
                BUG_ON(p->len > MAX_PATCH_LEN);
                /* prep the buffer with the original instructions */
@@ -20693,7 +20690,7 @@ index 703130f..27a155d 100644
                used = pv_init_ops.patch(p->instrtype, p->clobbers, insnbuf,
                                         (unsigned long)p->instr, p->len);
  
-@@ -504,7 +528,7 @@ void __init alternative_instructions(void)
+@@ -621,7 +661,7 @@ void __init alternative_instructions(void)
        if (!uniproc_patched || num_possible_cpus() == 1)
                free_init_pages("SMP alternatives",
                                (unsigned long)__smp_locks,
@@ -20702,7 +20699,7 @@ index 703130f..27a155d 100644
  #endif
  
        apply_paravirt(__parainstructions, __parainstructions_end);
-@@ -524,13 +548,17 @@ void __init alternative_instructions(void)
+@@ -641,13 +681,17 @@ void __init alternative_instructions(void)
   * instructions. And on the local CPU you need to be protected again NMI or MCE
   * handlers seeing an inconsistent instruction while you patch.
   */
@@ -20722,7 +20719,7 @@ index 703130f..27a155d 100644
        local_irq_restore(flags);
        /* Could also do a CLFLUSH here to speed up CPU recovery; but
           that causes hangs on some VIA CPUs. */
-@@ -552,36 +580,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
+@@ -669,36 +713,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
   */
  void *text_poke(void *addr, const void *opcode, size_t len)
  {
@@ -20767,16 +20764,7 @@ index 703130f..27a155d 100644
        return addr;
  }
  
-@@ -601,7 +615,7 @@ int poke_int3_handler(struct pt_regs *regs)
-       if (likely(!bp_patching_in_progress))
-               return 0;
--      if (user_mode_vm(regs) || regs->ip != (unsigned long)bp_int3_addr)
-+      if (user_mode(regs) || regs->ip != (unsigned long)bp_int3_addr)
-               return 0;
-       /* set up the specified breakpoint handler */
-@@ -635,7 +649,7 @@ int poke_int3_handler(struct pt_regs *regs)
+@@ -752,7 +782,7 @@ int poke_int3_handler(struct pt_regs *regs)
   */
  void *text_poke_bp(void *addr, const void *opcode, size_t len, void *handler)
  {
@@ -20786,7 +20774,7 @@ index 703130f..27a155d 100644
        bp_int3_handler = handler;
        bp_int3_addr = (u8 *)addr + sizeof(int3);
 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
-index ad3639a..bd4253c 100644
+index dcb5285..cc79e9d 100644
 --- a/arch/x86/kernel/apic/apic.c
 +++ b/arch/x86/kernel/apic/apic.c
 @@ -171,7 +171,7 @@ int first_system_vector = FIRST_SYSTEM_VECTOR;
@@ -20798,7 +20786,7 @@ index ad3639a..bd4253c 100644
  
  int pic_mode;
  
-@@ -1918,7 +1918,7 @@ static inline void __smp_error_interrupt(struct pt_regs *regs)
+@@ -1857,7 +1857,7 @@ static inline void __smp_error_interrupt(struct pt_regs *regs)
                apic_write(APIC_ESR, 0);
        v = apic_read(APIC_ESR);
        ack_APIC_irq();
@@ -20931,7 +20919,7 @@ index 6cedd79..023ff8e 100644
        raw_spin_unlock(&vector_lock);
  }
 diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
-index e658f21..b695a1a 100644
+index ab3219b..e8033eb 100644
 --- a/arch/x86/kernel/apic/x2apic_cluster.c
 +++ b/arch/x86/kernel/apic/x2apic_cluster.c
 @@ -182,7 +182,7 @@ update_clusterinfo(struct notifier_block *nfb, unsigned long action, void *hcpu)
@@ -20966,10 +20954,10 @@ index 6fae733..5ca17af 100644
        .name                           = "physical x2apic",
        .probe                          = x2apic_phys_probe,
 diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
-index 8e9dcfd..c61b3e4 100644
+index c8d9295..9af2d03 100644
 --- a/arch/x86/kernel/apic/x2apic_uv_x.c
 +++ b/arch/x86/kernel/apic/x2apic_uv_x.c
-@@ -348,7 +348,7 @@ static int uv_probe(void)
+@@ -375,7 +375,7 @@ static int uv_probe(void)
        return apic == &apic_x2apic_uv_x;
  }
  
@@ -21103,7 +21091,7 @@ index 9f6b934..cf5ffb3 100644
        BLANK();
        OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
 diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
-index fdcbb4d..036dd93 100644
+index 5ce6f2d..9e738f3 100644
 --- a/arch/x86/kernel/asm-offsets_64.c
 +++ b/arch/x86/kernel/asm-offsets_64.c
 @@ -80,6 +80,7 @@ int main(void)
@@ -21112,10 +21100,10 @@ index fdcbb4d..036dd93 100644
  
 +      DEFINE(TSS_size, sizeof(struct tss_struct));
        OFFSET(TSS_ist, tss_struct, x86_tss.ist);
+       OFFSET(TSS_sp0, tss_struct, x86_tss.sp0);
        BLANK();
 diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
-index 80091ae..0c5184f 100644
+index 9bff687..5b899fb 100644
 --- a/arch/x86/kernel/cpu/Makefile
 +++ b/arch/x86/kernel/cpu/Makefile
 @@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
@@ -21130,10 +21118,10 @@ index 80091ae..0c5184f 100644
  obj-y                 += common.o
  obj-y                 += rdrand.o
 diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
-index a220239..607fc38 100644
+index e4cf633..941f450 100644
 --- a/arch/x86/kernel/cpu/amd.c
 +++ b/arch/x86/kernel/cpu/amd.c
-@@ -717,7 +717,7 @@ static void init_amd(struct cpuinfo_x86 *c)
+@@ -729,7 +729,7 @@ static void init_amd(struct cpuinfo_x86 *c)
  static unsigned int amd_size_cache(struct cpuinfo_x86 *c, unsigned int size)
  {
        /* AMD errata T13 (order #21922) */
@@ -21143,7 +21131,7 @@ index a220239..607fc38 100644
                if (c->x86_model == 3 && c->x86_mask == 0)
                        size = 64;
 diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
-index 2346c95..c061472 100644
+index a62cf04..56afd65 100644
 --- a/arch/x86/kernel/cpu/common.c
 +++ b/arch/x86/kernel/cpu/common.c
 @@ -91,60 +91,6 @@ static const struct cpu_dev default_cpu = {
@@ -21207,7 +21195,7 @@ index 2346c95..c061472 100644
  static int __init x86_xsave_setup(char *s)
  {
        if (strlen(s))
-@@ -306,6 +252,59 @@ static __always_inline void setup_smap(struct cpuinfo_x86 *c)
+@@ -306,6 +252,62 @@ static __always_inline void setup_smap(struct cpuinfo_x86 *c)
        }
  }
  
@@ -21228,26 +21216,31 @@ index 2346c95..c061472 100644
 +
 +static void setup_pcid(struct cpuinfo_x86 *c)
 +{
-+      if (!cpu_has(c, X86_FEATURE_PCID)) {
++      if (cpu_has(c, X86_FEATURE_PCID)) {
++              printk("PAX: PCID detected\n");
++              cr4_set_bits(X86_CR4_PCIDE);
++      } else
 +              clear_cpu_cap(c, X86_FEATURE_INVPCID);
 +
++      if (cpu_has(c, X86_FEATURE_INVPCID))
++              printk("PAX: INVPCID detected\n");
++
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
-+              if (clone_pgd_mask != ~(pgdval_t)0UL) {
-+                      pax_open_kernel();
-+                      pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
-+                      pax_close_kernel();
-+                      printk("PAX: slow and weak UDEREF enabled\n");
-+              } else
-+                      printk("PAX: UDEREF disabled\n");
-+#endif
++      if (clone_pgd_mask == ~(pgdval_t)0UL) {
++              printk("PAX: UDEREF disabled\n");
++              return;
++      }
 +
++      if (!cpu_has(c, X86_FEATURE_PCID)) {
++              pax_open_kernel();
++              pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
++              pax_close_kernel();
++              printk("PAX: slow and weak UDEREF enabled\n");
 +              return;
 +      }
 +
-+      printk("PAX: PCID detected\n");
-+      cr4_set_bits(X86_CR4_PCIDE);
++      set_cpu_cap(c, X86_FEATURE_PCIDUDEREF);
 +
-+#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      pax_open_kernel();
 +      clone_pgd_mask = ~(pgdval_t)0UL;
 +      pax_close_kernel();
@@ -21259,15 +21252,13 @@ index 2346c95..c061472 100644
 +      }
 +#endif
 +
-+      if (cpu_has(c, X86_FEATURE_INVPCID))
-+              printk("PAX: INVPCID detected\n");
 +}
 +#endif
 +
  /*
   * Some CPU features depend on higher CPUID levels, which may not always
   * be available due to CPUID level capping or broken virtualization
-@@ -406,7 +405,7 @@ void switch_to_new_gdt(int cpu)
+@@ -406,7 +408,7 @@ void switch_to_new_gdt(int cpu)
  {
        struct desc_ptr gdt_descr;
  
@@ -21276,7 +21267,7 @@ index 2346c95..c061472 100644
        gdt_descr.size = GDT_SIZE - 1;
        load_gdt(&gdt_descr);
        /* Reload the per-cpu base */
-@@ -897,6 +896,20 @@ static void identify_cpu(struct cpuinfo_x86 *c)
+@@ -935,6 +937,20 @@ static void identify_cpu(struct cpuinfo_x86 *c)
        setup_smep(c);
        setup_smap(c);
  
@@ -21297,16 +21288,16 @@ index 2346c95..c061472 100644
        /*
         * The vendor-specific functions might have changed features.
         * Now we do "generic changes."
-@@ -979,7 +992,7 @@ static void syscall32_cpu_init(void)
- void enable_sep_cpu(void)
- {
-       int cpu = get_cpu();
--      struct tss_struct *tss = &per_cpu(init_tss, cpu);
-+      struct tss_struct *tss = init_tss + cpu;
+@@ -1009,7 +1025,7 @@ void enable_sep_cpu(void)
+       int cpu;
  
-       if (!boot_cpu_has(X86_FEATURE_SEP)) {
-               put_cpu();
-@@ -1117,14 +1130,16 @@ static __init int setup_disablecpuid(char *arg)
+       cpu = get_cpu();
+-      tss = &per_cpu(cpu_tss, cpu);
++      tss = cpu_tss + cpu;
+       if (!boot_cpu_has(X86_FEATURE_SEP))
+               goto out;
+@@ -1155,14 +1171,16 @@ static __init int setup_disablecpuid(char *arg)
  }
  __setup("clearcpuid=", setup_disablecpuid);
  
@@ -21314,7 +21305,7 @@ index 2346c95..c061472 100644
 +EXPORT_PER_CPU_SYMBOL(current_tinfo);
 +
  DEFINE_PER_CPU(unsigned long, kernel_stack) =
--      (unsigned long)&init_thread_union - KERNEL_STACK_OFFSET + THREAD_SIZE;
+-      (unsigned long)&init_thread_union + THREAD_SIZE;
 +      (unsigned long)&init_thread_union - 16 + THREAD_SIZE;
  EXPORT_PER_CPU_SYMBOL(kernel_stack);
  
@@ -21327,16 +21318,16 @@ index 2346c95..c061472 100644
  
  DEFINE_PER_CPU_FIRST(union irq_stack_union,
                     irq_stack_union) __aligned(PAGE_SIZE) __visible;
-@@ -1307,7 +1322,7 @@ void cpu_init(void)
+@@ -1367,7 +1385,7 @@ void cpu_init(void)
         */
        load_ucode_ap();
  
--      t = &per_cpu(init_tss, cpu);
-+      t = init_tss + cpu;
+-      t = &per_cpu(cpu_tss, cpu);
++      t = cpu_tss + cpu;
        oist = &per_cpu(orig_ist, cpu);
  
  #ifdef CONFIG_NUMA
-@@ -1339,7 +1354,6 @@ void cpu_init(void)
+@@ -1399,7 +1417,6 @@ void cpu_init(void)
        wrmsrl(MSR_KERNEL_GS_BASE, 0);
        barrier();
  
@@ -21344,108 +21335,69 @@ index 2346c95..c061472 100644
        x2apic_setup();
  
        /*
-@@ -1391,7 +1405,7 @@ void cpu_init(void)
+@@ -1451,7 +1468,7 @@ void cpu_init(void)
  {
        int cpu = smp_processor_id();
        struct task_struct *curr = current;
--      struct tss_struct *t = &per_cpu(init_tss, cpu);
-+      struct tss_struct *t = init_tss + cpu;
+-      struct tss_struct *t = &per_cpu(cpu_tss, cpu);
++      struct tss_struct *t = cpu_tss + cpu;
        struct thread_struct *thread = &curr->thread;
  
        wait_for_master_cpu(cpu);
 diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
-index 6596433..1ad6eaf 100644
+index edcb0e2..a138233 100644
 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c
 +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
-@@ -1024,6 +1024,22 @@ static struct attribute *default_attrs[] = {
- };
+@@ -519,25 +519,23 @@ cache_private_attrs_is_visible(struct kobject *kobj,
+       return 0;
+ }
  
- #ifdef CONFIG_AMD_NB
-+static struct attribute *default_attrs_amd_nb[] = {
-+      &type.attr,
-+      &level.attr,
-+      &coherency_line_size.attr,
-+      &physical_line_partition.attr,
-+      &ways_of_associativity.attr,
-+      &number_of_sets.attr,
-+      &size.attr,
-+      &shared_cpu_map.attr,
-+      &shared_cpu_list.attr,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL
-+};
++static struct attribute *amd_l3_attrs[4];
 +
- static struct attribute **amd_l3_attrs(void)
+ static struct attribute_group cache_private_group = {
+       .is_visible = cache_private_attrs_is_visible,
++      .attrs = amd_l3_attrs,
+ };
+ static void init_amd_l3_attrs(void)
  {
-       static struct attribute **attrs;
-@@ -1034,18 +1050,7 @@ static struct attribute **amd_l3_attrs(void)
+       int n = 1;
+-      static struct attribute **amd_l3_attrs;
+-
+-      if (amd_l3_attrs) /* already initialized */
+-              return;
  
-       n = ARRAY_SIZE(default_attrs);
+       if (amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE))
+               n += 2;
+       if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
+               n += 1;
  
--      if (amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE))
--              n += 2;
--
--      if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
--              n += 1;
--
--      attrs = kzalloc(n * sizeof (struct attribute *), GFP_KERNEL);
--      if (attrs == NULL)
--              return attrs = default_attrs;
--
--      for (n = 0; default_attrs[n]; n++)
--              attrs[n] = default_attrs[n];
-+      attrs = default_attrs_amd_nb;
-       if (amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE)) {
-               attrs[n++] = &cache_disable_0.attr;
-@@ -1096,6 +1101,13 @@ static struct kobj_type ktype_cache = {
-       .default_attrs  = default_attrs,
- };
+-      amd_l3_attrs = kcalloc(n, sizeof(*amd_l3_attrs), GFP_KERNEL);
+-      if (!amd_l3_attrs)
++      if (n > 1 && amd_l3_attrs[0]) /* already initialized */
+               return;
  
-+#ifdef CONFIG_AMD_NB
-+static struct kobj_type ktype_cache_amd_nb = {
-+      .sysfs_ops      = &sysfs_ops,
-+      .default_attrs  = default_attrs_amd_nb,
-+};
-+#endif
-+
- static struct kobj_type ktype_percpu_entry = {
-       .sysfs_ops      = &sysfs_ops,
- };
-@@ -1161,20 +1173,26 @@ static int cache_add_dev(struct device *dev)
-               return retval;
+       n = 0;
+@@ -547,8 +545,6 @@ static void init_amd_l3_attrs(void)
        }
+       if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
+               amd_l3_attrs[n++] = &dev_attr_subcaches.attr;
+-
+-      cache_private_group.attrs = amd_l3_attrs;
+ }
  
-+#ifdef CONFIG_AMD_NB
-+      amd_l3_attrs();
-+#endif
-+
-       for (i = 0; i < num_cache_leaves; i++) {
-+              struct kobj_type *ktype;
-+
-               this_object = INDEX_KOBJECT_PTR(cpu, i);
-               this_object->cpu = cpu;
-               this_object->index = i;
+ const struct attribute_group *
+@@ -559,7 +555,7 @@ cache_get_priv_group(struct cacheinfo *this_leaf)
+       if (this_leaf->level < 3 || !nb)
+               return NULL;
  
-               this_leaf = CPUID4_INFO_IDX(cpu, i);
+-      if (nb && nb->l3_cache.indices)
++      if (nb->l3_cache.indices)
+               init_amd_l3_attrs();
  
--              ktype_cache.default_attrs = default_attrs;
-+              ktype = &ktype_cache;
- #ifdef CONFIG_AMD_NB
-               if (this_leaf->base.nb)
--                      ktype_cache.default_attrs = amd_l3_attrs();
-+                      ktype = &ktype_cache_amd_nb;
- #endif
-               retval = kobject_init_and_add(&(this_object->kobj),
--                                            &ktype_cache,
-+                                            ktype,
-                                             per_cpu(ici_cache_kobject, cpu),
-                                             "index%1lu", i);
-               if (unlikely(retval)) {
+       return &cache_private_group;
 diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
-index 3c036cb..3b5677d 100644
+index 20190bd..cadb2ab 100644
 --- a/arch/x86/kernel/cpu/mcheck/mce.c
 +++ b/arch/x86/kernel/cpu/mcheck/mce.c
 @@ -47,6 +47,7 @@
@@ -21456,7 +21408,7 @@ index 3c036cb..3b5677d 100644
  
  #include "mce-internal.h"
  
-@@ -258,7 +259,7 @@ static void print_mce(struct mce *m)
+@@ -256,7 +257,7 @@ static void print_mce(struct mce *m)
                        !(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
                                m->cs, m->ip);
  
@@ -21465,7 +21417,7 @@ index 3c036cb..3b5677d 100644
                        print_symbol("{%s}", m->ip);
                pr_cont("\n");
        }
-@@ -291,10 +292,10 @@ static void print_mce(struct mce *m)
+@@ -289,10 +290,10 @@ static void print_mce(struct mce *m)
  
  #define PANIC_TIMEOUT 5 /* 5 seconds */
  
@@ -21478,7 +21430,7 @@ index 3c036cb..3b5677d 100644
  
  /* Panic in progress. Enable interrupts and wait for final IPI */
  static void wait_for_panic(void)
-@@ -318,7 +319,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
+@@ -316,7 +317,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
                /*
                 * Make sure only one CPU runs in machine check panic
                 */
@@ -21487,7 +21439,7 @@ index 3c036cb..3b5677d 100644
                        wait_for_panic();
                barrier();
  
-@@ -326,7 +327,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
+@@ -324,7 +325,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
                console_verbose();
        } else {
                /* Don't log too much for fake panic */
@@ -21496,7 +21448,7 @@ index 3c036cb..3b5677d 100644
                        return;
        }
        /* First print corrected ones that are still unlogged */
-@@ -365,7 +366,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
+@@ -363,7 +364,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
        if (!fake_panic) {
                if (panic_timeout == 0)
                        panic_timeout = mca_cfg.panic_timeout;
@@ -21505,7 +21457,7 @@ index 3c036cb..3b5677d 100644
        } else
                pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
  }
-@@ -743,7 +744,7 @@ static int mce_timed_out(u64 *t, const char *msg)
+@@ -749,7 +750,7 @@ static int mce_timed_out(u64 *t, const char *msg)
         * might have been modified by someone else.
         */
        rmb();
@@ -21514,7 +21466,7 @@ index 3c036cb..3b5677d 100644
                wait_for_panic();
        if (!mca_cfg.monarch_timeout)
                goto out;
-@@ -1669,7 +1670,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
+@@ -1679,7 +1680,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
  }
  
  /* Call the installed machine check handler for this CPU setup. */
@@ -21523,7 +21475,7 @@ index 3c036cb..3b5677d 100644
                                                unexpected_machine_check;
  
  /*
-@@ -1692,7 +1693,9 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
+@@ -1702,7 +1703,9 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
                return;
        }
  
@@ -21533,7 +21485,7 @@ index 3c036cb..3b5677d 100644
  
        __mcheck_cpu_init_generic();
        __mcheck_cpu_init_vendor(c);
-@@ -1706,7 +1709,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
+@@ -1716,7 +1719,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
   */
  
  static DEFINE_SPINLOCK(mce_chrdev_state_lock);
@@ -21542,7 +21494,7 @@ index 3c036cb..3b5677d 100644
  static int mce_chrdev_open_exclu;     /* already open exclusive? */
  
  static int mce_chrdev_open(struct inode *inode, struct file *file)
-@@ -1714,7 +1717,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
+@@ -1724,7 +1727,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
        spin_lock(&mce_chrdev_state_lock);
  
        if (mce_chrdev_open_exclu ||
@@ -21551,7 +21503,7 @@ index 3c036cb..3b5677d 100644
                spin_unlock(&mce_chrdev_state_lock);
  
                return -EBUSY;
-@@ -1722,7 +1725,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
+@@ -1732,7 +1735,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
  
        if (file->f_flags & O_EXCL)
                mce_chrdev_open_exclu = 1;
@@ -21560,7 +21512,7 @@ index 3c036cb..3b5677d 100644
  
        spin_unlock(&mce_chrdev_state_lock);
  
-@@ -1733,7 +1736,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
+@@ -1743,7 +1746,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
  {
        spin_lock(&mce_chrdev_state_lock);
  
@@ -21569,7 +21521,7 @@ index 3c036cb..3b5677d 100644
        mce_chrdev_open_exclu = 0;
  
        spin_unlock(&mce_chrdev_state_lock);
-@@ -2408,7 +2411,7 @@ static __init void mce_init_banks(void)
+@@ -2419,7 +2422,7 @@ static __init void mce_init_banks(void)
  
        for (i = 0; i < mca_cfg.banks; i++) {
                struct mce_bank *b = &mce_banks[i];
@@ -21578,7 +21530,7 @@ index 3c036cb..3b5677d 100644
  
                sysfs_attr_init(&a->attr);
                a->attr.name    = b->attrname;
-@@ -2515,7 +2518,7 @@ struct dentry *mce_get_debugfs_dir(void)
+@@ -2526,7 +2529,7 @@ struct dentry *mce_get_debugfs_dir(void)
  static void mce_reset(void)
  {
        cpu_missing = 0;
@@ -21645,7 +21597,7 @@ index 36a8361..e7058c2 100644
  };
  
 diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
-index 746e7fd..8dc677e 100644
+index a41bead..4e3685b 100644
 --- a/arch/x86/kernel/cpu/microcode/intel.c
 +++ b/arch/x86/kernel/cpu/microcode/intel.c
 @@ -298,13 +298,13 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device,
@@ -21691,10 +21643,10 @@ index df5e41f..816c719 100644
  extern int generic_get_free_region(unsigned long base, unsigned long size,
                                   int replace_reg);
 diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
-index b71a7f8..534af0e 100644
+index aa4e3a7..469370f 100644
 --- a/arch/x86/kernel/cpu/perf_event.c
 +++ b/arch/x86/kernel/cpu/perf_event.c
-@@ -1376,7 +1376,7 @@ static void __init pmu_check_apic(void)
+@@ -1509,7 +1509,7 @@ static void __init pmu_check_apic(void)
  
  }
  
@@ -21703,7 +21655,7 @@ index b71a7f8..534af0e 100644
        .name = "format",
        .attrs = NULL,
  };
-@@ -1475,7 +1475,7 @@ static struct attribute *events_attr[] = {
+@@ -1608,7 +1608,7 @@ static struct attribute *events_attr[] = {
        NULL,
  };
  
@@ -21712,7 +21664,7 @@ index b71a7f8..534af0e 100644
        .name = "events",
        .attrs = events_attr,
  };
-@@ -2037,7 +2037,7 @@ static unsigned long get_segment_base(unsigned int segment)
+@@ -2181,7 +2181,7 @@ static unsigned long get_segment_base(unsigned int segment)
                if (idx > GDT_ENTRIES)
                        return 0;
  
@@ -21721,7 +21673,7 @@ index b71a7f8..534af0e 100644
        }
  
        return get_desc_base(desc + idx);
-@@ -2127,7 +2127,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
+@@ -2271,7 +2271,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
                        break;
  
                perf_callchain_store(entry, frame.return_address);
@@ -21744,10 +21696,10 @@ index 97242a9..cf9c30e 100644
  
        while (amd_iommu_v2_event_descs[i].attr.attr.name)
 diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
-index 2589906..1ca1000 100644
+index 2813ea0..3ef5969c8 100644
 --- a/arch/x86/kernel/cpu/perf_event_intel.c
 +++ b/arch/x86/kernel/cpu/perf_event_intel.c
-@@ -2353,10 +2353,10 @@ __init int intel_pmu_init(void)
+@@ -3033,10 +3033,10 @@ __init int intel_pmu_init(void)
                x86_pmu.num_counters_fixed = max((int)edx.split.num_counters_fixed, 3);
  
        if (boot_cpu_has(X86_FEATURE_PDCM)) {
@@ -21761,11 +21713,147 @@ index 2589906..1ca1000 100644
        }
  
        intel_ds_init();
+diff --git a/arch/x86/kernel/cpu/perf_event_intel_bts.c b/arch/x86/kernel/cpu/perf_event_intel_bts.c
+index 7795f3f..3535b76 100644
+--- a/arch/x86/kernel/cpu/perf_event_intel_bts.c
++++ b/arch/x86/kernel/cpu/perf_event_intel_bts.c
+@@ -252,7 +252,7 @@ static void bts_event_start(struct perf_event *event, int flags)
+       __bts_event_start(event);
+       /* PMI handler: this counter is running and likely generating PMIs */
+-      ACCESS_ONCE(bts->started) = 1;
++      ACCESS_ONCE_RW(bts->started) = 1;
+ }
+ static void __bts_event_stop(struct perf_event *event)
+@@ -266,7 +266,7 @@ static void __bts_event_stop(struct perf_event *event)
+       if (event->hw.state & PERF_HES_STOPPED)
+               return;
+-      ACCESS_ONCE(event->hw.state) |= PERF_HES_STOPPED;
++      ACCESS_ONCE_RW(event->hw.state) |= PERF_HES_STOPPED;
+ }
+ static void bts_event_stop(struct perf_event *event, int flags)
+@@ -274,7 +274,7 @@ static void bts_event_stop(struct perf_event *event, int flags)
+       struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
+       /* PMI handler: don't restart this counter */
+-      ACCESS_ONCE(bts->started) = 0;
++      ACCESS_ONCE_RW(bts->started) = 0;
+       __bts_event_stop(event);
+diff --git a/arch/x86/kernel/cpu/perf_event_intel_cqm.c b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
+index e4d1b8b..2c6ffa0 100644
+--- a/arch/x86/kernel/cpu/perf_event_intel_cqm.c
++++ b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
+@@ -1352,7 +1352,9 @@ static int __init intel_cqm_init(void)
+               goto out;
+       }
+-      event_attr_intel_cqm_llc_scale.event_str = str;
++      pax_open_kernel();
++      *(const char **)&event_attr_intel_cqm_llc_scale.event_str = str;
++      pax_close_kernel();
+       ret = intel_cqm_setup_rmid_cache();
+       if (ret)
+diff --git a/arch/x86/kernel/cpu/perf_event_intel_pt.c b/arch/x86/kernel/cpu/perf_event_intel_pt.c
+index 123ff1b..d53e500 100644
+--- a/arch/x86/kernel/cpu/perf_event_intel_pt.c
++++ b/arch/x86/kernel/cpu/perf_event_intel_pt.c
+@@ -116,16 +116,12 @@ static const struct attribute_group *pt_attr_groups[] = {
+ static int __init pt_pmu_hw_init(void)
+ {
+-      struct dev_ext_attribute *de_attrs;
+-      struct attribute **attrs;
+-      size_t size;
+-      int ret;
++      static struct dev_ext_attribute de_attrs[ARRAY_SIZE(pt_caps)];
++      static struct attribute *attrs[ARRAY_SIZE(pt_caps)];
+       long i;
+-      attrs = NULL;
+-      ret = -ENODEV;
+       if (!test_cpu_cap(&boot_cpu_data, X86_FEATURE_INTEL_PT))
+-              goto fail;
++              return -ENODEV;
+       for (i = 0; i < PT_CPUID_LEAVES; i++) {
+               cpuid_count(20, i,
+@@ -135,39 +131,25 @@ static int __init pt_pmu_hw_init(void)
+                           &pt_pmu.caps[CR_EDX + i*4]);
+       }
+-      ret = -ENOMEM;
+-      size = sizeof(struct attribute *) * (ARRAY_SIZE(pt_caps)+1);
+-      attrs = kzalloc(size, GFP_KERNEL);
+-      if (!attrs)
+-              goto fail;
+-
+-      size = sizeof(struct dev_ext_attribute) * (ARRAY_SIZE(pt_caps)+1);
+-      de_attrs = kzalloc(size, GFP_KERNEL);
+-      if (!de_attrs)
+-              goto fail;
+-
++      pax_open_kernel();
+       for (i = 0; i < ARRAY_SIZE(pt_caps); i++) {
+-              struct dev_ext_attribute *de_attr = de_attrs + i;
++              struct dev_ext_attribute *de_attr = &de_attrs[i];
+-              de_attr->attr.attr.name = pt_caps[i].name;
++              *(const char **)&de_attr->attr.attr.name = pt_caps[i].name;
+               sysfs_attr_init(&de_attr->attr.attr);
+-              de_attr->attr.attr.mode         = S_IRUGO;
+-              de_attr->attr.show              = pt_cap_show;
+-              de_attr->var                    = (void *)i;
++              *(umode_t *)&de_attr->attr.attr.mode    = S_IRUGO;
++              *(void **)&de_attr->attr.show           = pt_cap_show;
++              *(void **)&de_attr->var                 = (void *)i;
+               attrs[i] = &de_attr->attr.attr;
+       }
+-      pt_cap_group.attrs = attrs;
++      *(struct attribute ***)&pt_cap_group.attrs = attrs;
++      pax_close_kernel();
+       return 0;
+-
+-fail:
+-      kfree(attrs);
+-
+-      return ret;
+ }
+ #define PT_CONFIG_MASK (RTIT_CTL_TSC_EN | RTIT_CTL_DISRETC)
+@@ -928,7 +910,7 @@ static void pt_event_start(struct perf_event *event, int mode)
+               return;
+       }
+-      ACCESS_ONCE(pt->handle_nmi) = 1;
++      ACCESS_ONCE_RW(pt->handle_nmi) = 1;
+       event->hw.state = 0;
+       pt_config_buffer(buf->cur->table, buf->cur_idx,
+@@ -945,7 +927,7 @@ static void pt_event_stop(struct perf_event *event, int mode)
+        * Protect against the PMI racing with disabling wrmsr,
+        * see comment in intel_pt_interrupt().
+        */
+-      ACCESS_ONCE(pt->handle_nmi) = 0;
++      ACCESS_ONCE_RW(pt->handle_nmi) = 0;
+       pt_config_start(false);
+       if (event->hw.state == PERF_HES_STOPPED)
 diff --git a/arch/x86/kernel/cpu/perf_event_intel_rapl.c b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
-index c4bb8b8..9f7384d 100644
+index 358c54a..f068235 100644
 --- a/arch/x86/kernel/cpu/perf_event_intel_rapl.c
 +++ b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
-@@ -465,7 +465,7 @@ static struct attribute *rapl_events_hsw_attr[] = {
+@@ -487,7 +487,7 @@ static struct attribute *rapl_events_hsw_attr[] = {
        NULL,
  };
  
@@ -21775,10 +21863,10 @@ index c4bb8b8..9f7384d 100644
        .attrs = NULL, /* patched at runtime */
  };
 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
-index c635b8b..b78835e 100644
+index 90b7c50..7863ae3 100644
 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
-@@ -733,7 +733,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
+@@ -732,7 +732,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
  static int __init uncore_type_init(struct intel_uncore_type *type)
  {
        struct intel_uncore_pmu *pmus;
@@ -21788,10 +21876,10 @@ index c635b8b..b78835e 100644
        int i, j;
  
 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.h b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
-index 6c8c1e7..515b98a 100644
+index ceac8f5..a562de7 100644
 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.h
 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
-@@ -114,7 +114,7 @@ struct intel_uncore_box {
+@@ -115,7 +115,7 @@ struct intel_uncore_box {
  struct uncore_event_desc {
        struct kobj_attribute attr;
        const char *config;
@@ -21813,19 +21901,6 @@ index 83741a7..bd3507d 100644
  {
        .notifier_call = cpuid_class_cpu_callback,
  };
-diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
-index aceb2f9..c76d3e3 100644
---- a/arch/x86/kernel/crash.c
-+++ b/arch/x86/kernel/crash.c
-@@ -105,7 +105,7 @@ static void kdump_nmi_callback(int cpu, struct pt_regs *regs)
- #ifdef CONFIG_X86_32
-       struct pt_regs fixed_regs;
--      if (!user_mode_vm(regs)) {
-+      if (!user_mode(regs)) {
-               crash_fixup_ss_esp(&fixed_regs, regs);
-               regs = &fixed_regs;
-       }
 diff --git a/arch/x86/kernel/crash_dump_64.c b/arch/x86/kernel/crash_dump_64.c
 index afa64ad..dce67dd 100644
 --- a/arch/x86/kernel/crash_dump_64.c
@@ -21875,7 +21950,7 @@ index f6dfd93..892ade4 100644
  
                .__cr3          = __pa_nodebug(swapper_pg_dir),
 diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
-index cf3df1d..b637d9a 100644
+index 9c30acf..8cf2411 100644
 --- a/arch/x86/kernel/dumpstack.c
 +++ b/arch/x86/kernel/dumpstack.c
 @@ -2,6 +2,9 @@
@@ -21888,7 +21963,7 @@ index cf3df1d..b637d9a 100644
  #include <linux/kallsyms.h>
  #include <linux/kprobes.h>
  #include <linux/uaccess.h>
-@@ -33,23 +36,21 @@ static void printk_stack_address(unsigned long address, int reliable)
+@@ -35,23 +38,21 @@ static void printk_stack_address(unsigned long address, int reliable,
  
  void printk_address(unsigned long address)
  {
@@ -21914,7 +21989,7 @@ index cf3df1d..b637d9a 100644
        index = task->curr_ret_stack;
  
        if (!task->ret_stack || index < *graph)
-@@ -66,7 +67,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
+@@ -68,7 +69,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
  static inline void
  print_ftrace_graph_addr(unsigned long addr, void *data,
                        const struct stacktrace_ops *ops,
@@ -21923,7 +21998,7 @@ index cf3df1d..b637d9a 100644
  { }
  #endif
  
-@@ -77,10 +78,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
+@@ -79,10 +80,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
   * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
   */
  
@@ -21935,7 +22010,7 @@ index cf3df1d..b637d9a 100644
        if (end) {
                if (p < end && p >= (end-THREAD_SIZE))
                        return 1;
-@@ -91,14 +90,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
+@@ -93,14 +92,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
  }
  
  unsigned long
@@ -21952,7 +22027,7 @@ index cf3df1d..b637d9a 100644
                unsigned long addr;
  
                addr = *stack;
-@@ -110,7 +109,7 @@ print_context_stack(struct thread_info *tinfo,
+@@ -112,7 +111,7 @@ print_context_stack(struct thread_info *tinfo,
                        } else {
                                ops->address(data, addr, 0);
                        }
@@ -21961,7 +22036,7 @@ index cf3df1d..b637d9a 100644
                }
                stack++;
        }
-@@ -119,7 +118,7 @@ print_context_stack(struct thread_info *tinfo,
+@@ -121,7 +120,7 @@ print_context_stack(struct thread_info *tinfo,
  EXPORT_SYMBOL_GPL(print_context_stack);
  
  unsigned long
@@ -21970,7 +22045,7 @@ index cf3df1d..b637d9a 100644
                       unsigned long *stack, unsigned long bp,
                       const struct stacktrace_ops *ops, void *data,
                       unsigned long *end, int *graph)
-@@ -127,7 +126,7 @@ print_context_stack_bp(struct thread_info *tinfo,
+@@ -129,7 +128,7 @@ print_context_stack_bp(struct thread_info *tinfo,
        struct stack_frame *frame = (struct stack_frame *)bp;
        unsigned long *ret_addr = &frame->return_address;
  
@@ -21979,7 +22054,7 @@ index cf3df1d..b637d9a 100644
                unsigned long addr = *ret_addr;
  
                if (!__kernel_text_address(addr))
-@@ -136,7 +135,7 @@ print_context_stack_bp(struct thread_info *tinfo,
+@@ -138,7 +137,7 @@ print_context_stack_bp(struct thread_info *tinfo,
                ops->address(data, addr, 1);
                frame = frame->next_frame;
                ret_addr = &frame->return_address;
@@ -21988,16 +22063,7 @@ index cf3df1d..b637d9a 100644
        }
  
        return (unsigned long)frame;
-@@ -155,7 +154,7 @@ static int print_trace_stack(void *data, char *name)
- static void print_trace_address(void *data, unsigned long addr, int reliable)
- {
-       touch_nmi_watchdog();
--      printk(data);
-+      printk("%s", (char *)data);
-       printk_stack_address(addr, reliable);
- }
-@@ -225,6 +224,8 @@ unsigned long oops_begin(void)
+@@ -226,6 +225,8 @@ unsigned long oops_begin(void)
  EXPORT_SYMBOL_GPL(oops_begin);
  NOKPROBE_SYMBOL(oops_begin);
  
@@ -22006,7 +22072,7 @@ index cf3df1d..b637d9a 100644
  void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
  {
        if (regs && kexec_should_crash(current))
-@@ -246,7 +247,10 @@ void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
+@@ -247,7 +248,10 @@ void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
                panic("Fatal exception in interrupt");
        if (panic_on_oops)
                panic("Fatal exception");
@@ -22018,26 +22084,8 @@ index cf3df1d..b637d9a 100644
  }
  NOKPROBE_SYMBOL(oops_end);
  
-@@ -278,7 +282,7 @@ int __die(const char *str, struct pt_regs *regs, long err)
-       print_modules();
-       show_regs(regs);
- #ifdef CONFIG_X86_32
--      if (user_mode_vm(regs)) {
-+      if (user_mode(regs)) {
-               sp = regs->sp;
-               ss = regs->ss & 0xffff;
-       } else {
-@@ -307,7 +311,7 @@ void die(const char *str, struct pt_regs *regs, long err)
-       unsigned long flags = oops_begin();
-       int sig = SIGSEGV;
--      if (!user_mode_vm(regs))
-+      if (!user_mode(regs))
-               report_bug(regs->ip, regs);
-       if (__die(str, regs, err))
 diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
-index 5abd4cd..c65733b 100644
+index 464ffd6..01f2cda 100644
 --- a/arch/x86/kernel/dumpstack_32.c
 +++ b/arch/x86/kernel/dumpstack_32.c
 @@ -61,15 +61,14 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
@@ -22058,20 +22106,7 @@ index 5abd4cd..c65733b 100644
                                     end_stack, &graph);
  
                /* Stop if not on irq stack */
-@@ -123,27 +122,28 @@ void show_regs(struct pt_regs *regs)
-       int i;
-       show_regs_print_info(KERN_EMERG);
--      __show_regs(regs, !user_mode_vm(regs));
-+      __show_regs(regs, !user_mode(regs));
-       /*
-        * When in-kernel, we also print out the stack and code at the
-        * time of the fault..
-        */
--      if (!user_mode_vm(regs)) {
-+      if (!user_mode(regs)) {
-               unsigned int code_prologue = code_bytes * 43 / 64;
+@@ -137,16 +136,17 @@ void show_regs(struct pt_regs *regs)
                unsigned int code_len = code_bytes;
                unsigned char c;
                u8 *ip;
@@ -22091,7 +22126,7 @@ index 5abd4cd..c65733b 100644
                        code_len = code_len - code_prologue + 1;
                }
                for (i = 0; i < code_len; i++, ip++) {
-@@ -152,7 +152,7 @@ void show_regs(struct pt_regs *regs)
+@@ -155,7 +155,7 @@ void show_regs(struct pt_regs *regs)
                                pr_cont("  Bad EIP value.");
                                break;
                        }
@@ -22100,7 +22135,7 @@ index 5abd4cd..c65733b 100644
                                pr_cont(" <%02x>", c);
                        else
                                pr_cont(" %02x", c);
-@@ -165,6 +165,7 @@ int is_valid_bugaddr(unsigned long ip)
+@@ -168,6 +168,7 @@ int is_valid_bugaddr(unsigned long ip)
  {
        unsigned short ud2;
  
@@ -22108,13 +22143,13 @@ index 5abd4cd..c65733b 100644
        if (ip < PAGE_OFFSET)
                return 0;
        if (probe_kernel_address((unsigned short *)ip, ud2))
-@@ -172,3 +173,15 @@ int is_valid_bugaddr(unsigned long ip)
+@@ -175,3 +176,15 @@ int is_valid_bugaddr(unsigned long ip)
  
        return ud2 == 0x0b0f;
  }
 +
 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
-+void pax_check_alloca(unsigned long size)
++void __used pax_check_alloca(unsigned long size)
 +{
 +      unsigned long sp = (unsigned long)&sp, stack_left;
 +
@@ -22125,7 +22160,7 @@ index 5abd4cd..c65733b 100644
 +EXPORT_SYMBOL(pax_check_alloca);
 +#endif
 diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
-index ff86f19..73eabf4 100644
+index 5f1c626..1cba97e 100644
 --- a/arch/x86/kernel/dumpstack_64.c
 +++ b/arch/x86/kernel/dumpstack_64.c
 @@ -153,12 +153,12 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
@@ -22188,7 +22223,7 @@ index ff86f19..73eabf4 100644
        put_cpu();
  }
  EXPORT_SYMBOL(dump_trace);
-@@ -344,8 +347,55 @@ int is_valid_bugaddr(unsigned long ip)
+@@ -347,8 +350,55 @@ int is_valid_bugaddr(unsigned long ip)
  {
        unsigned short ud2;
  
@@ -22200,7 +22235,7 @@ index ff86f19..73eabf4 100644
  }
 +
 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
-+void pax_check_alloca(unsigned long size)
++void __used pax_check_alloca(unsigned long size)
 +{
 +      unsigned long sp = (unsigned long)&sp, stack_start, stack_end;
 +      unsigned cpu, used;
@@ -22246,10 +22281,10 @@ index ff86f19..73eabf4 100644
 +EXPORT_SYMBOL(pax_check_alloca);
 +#endif
 diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
-index 46201de..ebffabf 100644
+index e2ce85d..00ccad0 100644
 --- a/arch/x86/kernel/e820.c
 +++ b/arch/x86/kernel/e820.c
-@@ -794,8 +794,8 @@ unsigned long __init e820_end_of_low_ram_pfn(void)
+@@ -802,8 +802,8 @@ unsigned long __init e820_end_of_low_ram_pfn(void)
  
  static void early_panic(char *msg)
  {
@@ -22261,7 +22296,7 @@ index 46201de..ebffabf 100644
  
  static int userdef __initdata;
 diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
-index a62536a..8444df4 100644
+index 89427d8..00c0d52 100644
 --- a/arch/x86/kernel/early_printk.c
 +++ b/arch/x86/kernel/early_printk.c
 @@ -7,6 +7,7 @@
@@ -22273,7 +22308,7 @@ index a62536a..8444df4 100644
  #include <asm/processor.h>
  #include <asm/fcntl.h>
 diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
-index 31e2d5b..b31c76d 100644
+index 1c30976..71b41b9 100644
 --- a/arch/x86/kernel/entry_32.S
 +++ b/arch/x86/kernel/entry_32.S
 @@ -177,13 +177,154 @@
@@ -22317,7 +22352,7 @@ index 31e2d5b..b31c76d 100644
 +#else
 +      mov %cr0, %esi
 +#endif
-+      bts $16, %esi
++      bts $X86_CR0_WP_BIT, %esi
 +      jnc 1f
 +      mov %cs, %esi
 +      cmp $__KERNEL_CS, %esi
@@ -22353,7 +22388,7 @@ index 31e2d5b..b31c76d 100644
 +#else
 +      mov %cr0, %esi
 +#endif
-+      btr $16, %esi
++      btr $X86_CR0_WP_BIT, %esi
 +      ljmp $__KERNEL_CS, $1f
 +1:
 +#ifdef CONFIG_PARAVIRT
@@ -22502,14 +22537,17 @@ index 31e2d5b..b31c76d 100644
  #endif
        CFI_ENDPROC
  
-@@ -395,30 +553,45 @@ sysenter_past_esp:
+@@ -395,33 +553,45 @@ sysenter_past_esp:
        /*CFI_REL_OFFSET cs, 0*/
        /*
         * Push current_thread_info()->sysenter_return to the stack.
--       * A tiny bit of offset fixup is necessary - 4*4 means the 4 words
--       * pushed above; +8 corresponds to copy_thread's esp0 setting.
+-       * A tiny bit of offset fixup is necessary: TI_sysenter_return
+-       * is relative to thread_info, which is at the bottom of the
+-       * kernel stack page.  4*4 means the 4 words pushed above;
+-       * TOP_OF_KERNEL_STACK_PADDING takes us to the top of the stack;
+-       * and THREAD_SIZE takes us to the bottom.
         */
--      pushl_cfi ((TI_sysenter_return)-THREAD_SIZE+8+4*4)(%esp)
+-      pushl_cfi ((TI_sysenter_return) - THREAD_SIZE + TOP_OF_KERNEL_STACK_PADDING + 4*4)(%esp)
 +      pushl_cfi $0
        CFI_REL_OFFSET eip, 0
  
@@ -22551,9 +22589,9 @@ index 31e2d5b..b31c76d 100644
        testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp)
        jnz sysenter_audit
  sysenter_do_call:
-@@ -434,12 +607,24 @@ sysenter_after_call:
+@@ -437,12 +607,24 @@ sysenter_after_call:
        testl $_TIF_ALLWORK_MASK, %ecx
-       jne sysexit_audit
+       jnz sysexit_audit
  sysenter_exit:
 +
 +#ifdef CONFIG_PAX_RANDKSTACK
@@ -22576,7 +22614,7 @@ index 31e2d5b..b31c76d 100644
        PTGS_TO_GS
        ENABLE_INTERRUPTS_SYSEXIT
  
-@@ -453,6 +638,9 @@ sysenter_audit:
+@@ -456,6 +638,9 @@ sysenter_audit:
        pushl_cfi PT_ESI(%esp)          /* a3: 5th arg */
        pushl_cfi PT_EDX+4(%esp)        /* a2: 4th arg */
        call __audit_syscall_entry
@@ -22586,7 +22624,7 @@ index 31e2d5b..b31c76d 100644
        popl_cfi %ecx /* get that remapped edx off the stack */
        popl_cfi %ecx /* get that remapped esi off the stack */
        movl PT_EAX(%esp),%eax          /* reload syscall number */
-@@ -479,10 +667,16 @@ sysexit_audit:
+@@ -482,10 +667,16 @@ sysexit_audit:
  
        CFI_ENDPROC
  .pushsection .fixup,"ax"
@@ -22605,7 +22643,7 @@ index 31e2d5b..b31c76d 100644
        PTGS_TO_GS_EX
  ENDPROC(ia32_sysenter_target)
  
-@@ -493,6 +687,11 @@ ENTRY(system_call)
+@@ -496,6 +687,11 @@ ENTRY(system_call)
        pushl_cfi %eax                  # save orig_eax
        SAVE_ALL
        GET_THREAD_INFO(%ebp)
@@ -22617,9 +22655,9 @@ index 31e2d5b..b31c76d 100644
                                        # system call tracing in operation / emulation
        testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp)
        jnz syscall_trace_entry
-@@ -512,6 +711,15 @@ syscall_exit:
+@@ -515,6 +711,15 @@ syscall_exit:
        testl $_TIF_ALLWORK_MASK, %ecx  # current->work
-       jne syscall_exit_work
+       jnz syscall_exit_work
  
 +restore_all_pax:
 +
@@ -22633,7 +22671,7 @@ index 31e2d5b..b31c76d 100644
  restore_all:
        TRACE_IRQS_IRET
  restore_all_notrace:
-@@ -566,14 +774,34 @@ ldt_ss:
+@@ -569,14 +774,34 @@ ldt_ss:
   * compensating for the offset by changing to the ESPFIX segment with
   * a base address that matches for the difference.
   */
@@ -22656,7 +22694,7 @@ index 31e2d5b..b31c76d 100644
 +
 +#ifdef CONFIG_PAX_KERNEXEC
 +      mov %cr0, %esi
-+      btr $16, %esi
++      btr $X86_CR0_WP_BIT, %esi
 +      mov %esi, %cr0
 +#endif
 +
@@ -22664,14 +22702,14 @@ index 31e2d5b..b31c76d 100644
 +      mov %dh, 7 + GDT_ESPFIX_SS /* bits 24..31 */
 +
 +#ifdef CONFIG_PAX_KERNEXEC
-+      bts $16, %esi
++      bts $X86_CR0_WP_BIT, %esi
 +      mov %esi, %cr0
 +#endif
 +
        pushl_cfi $__ESPFIX_SS
        pushl_cfi %eax                  /* new kernel esp */
        /* Disable interrupts, but do not irqtrace this section: we
-@@ -603,20 +831,18 @@ work_resched:
+@@ -606,20 +831,18 @@ work_resched:
        movl TI_flags(%ebp), %ecx
        andl $_TIF_WORK_MASK, %ecx      # is there any work to be done other
                                        # than syscall tracing?
@@ -22686,7 +22724,7 @@ index 31e2d5b..b31c76d 100644
  #ifdef CONFIG_VM86
        testl $X86_EFLAGS_VM, PT_EFLAGS(%esp)
 -      movl %esp, %eax
-       jne work_notifysig_v86          # returning to kernel-space or
+       jnz work_notifysig_v86          # returning to kernel-space or
                                        # vm86-space
  1:
 -#else
@@ -22694,7 +22732,7 @@ index 31e2d5b..b31c76d 100644
  #endif
        TRACE_IRQS_ON
        ENABLE_INTERRUPTS(CLBR_NONE)
-@@ -637,7 +863,7 @@ work_notifysig_v86:
+@@ -640,7 +863,7 @@ work_notifysig_v86:
        movl %eax, %esp
        jmp 1b
  #endif
@@ -22703,7 +22741,7 @@ index 31e2d5b..b31c76d 100644
  
        # perform syscall exit tracing
        ALIGN
-@@ -645,11 +871,14 @@ syscall_trace_entry:
+@@ -648,11 +871,14 @@ syscall_trace_entry:
        movl $-ENOSYS,PT_EAX(%esp)
        movl %esp, %eax
        call syscall_trace_enter
@@ -22719,7 +22757,7 @@ index 31e2d5b..b31c76d 100644
  
        # perform syscall exit tracing
        ALIGN
-@@ -662,26 +891,30 @@ syscall_exit_work:
+@@ -665,26 +891,30 @@ syscall_exit_work:
        movl %esp, %eax
        call syscall_trace_leave
        jmp resume_userspace
@@ -22754,7 +22792,7 @@ index 31e2d5b..b31c76d 100644
        CFI_ENDPROC
  
  .macro FIXUP_ESPFIX_STACK
-@@ -694,8 +927,15 @@ END(sysenter_badsys)
+@@ -697,8 +927,15 @@ END(sysenter_badsys)
   */
  #ifdef CONFIG_X86_ESPFIX32
        /* fixup the stack */
@@ -22772,16 +22810,16 @@ index 31e2d5b..b31c76d 100644
        shl $16, %eax
        addl %esp, %eax                 /* the adjusted stack pointer */
        pushl_cfi $__KERNEL_DS
-@@ -751,7 +991,7 @@ vector=vector+1
-   .endr
- 2:    jmp common_interrupt
- .endr
+@@ -737,7 +974,7 @@ ENTRY(irq_entries_start)
+       CFI_ADJUST_CFA_OFFSET -4
+       .align  8
    .endr
 -END(irq_entries_start)
 +ENDPROC(irq_entries_start)
  
- .previous
- END(interrupt)
-@@ -808,7 +1048,7 @@ ENTRY(coprocessor_error)
+ /*
+  * the CPU automatically disables interrupts when executing an IRQ vector,
+@@ -790,7 +1027,7 @@ ENTRY(coprocessor_error)
        pushl_cfi $do_coprocessor_error
        jmp error_code
        CFI_ENDPROC
@@ -22790,16 +22828,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(simd_coprocessor_error)
        RING0_INT_FRAME
-@@ -821,7 +1061,7 @@ ENTRY(simd_coprocessor_error)
- .section .altinstructions,"a"
-       altinstruction_entry 661b, 663f, X86_FEATURE_XMM, 662b-661b, 664f-663f
- .previous
--.section .altinstr_replacement,"ax"
-+.section .altinstr_replacement,"a"
- 663:  pushl $do_simd_coprocessor_error
- 664:
- .previous
-@@ -830,7 +1070,7 @@ ENTRY(simd_coprocessor_error)
+@@ -806,7 +1043,7 @@ ENTRY(simd_coprocessor_error)
  #endif
        jmp error_code
        CFI_ENDPROC
@@ -22808,7 +22837,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(device_not_available)
        RING0_INT_FRAME
-@@ -839,18 +1079,18 @@ ENTRY(device_not_available)
+@@ -815,18 +1052,18 @@ ENTRY(device_not_available)
        pushl_cfi $do_device_not_available
        jmp error_code
        CFI_ENDPROC
@@ -22830,7 +22859,7 @@ index 31e2d5b..b31c76d 100644
  #endif
  
  ENTRY(overflow)
-@@ -860,7 +1100,7 @@ ENTRY(overflow)
+@@ -836,7 +1073,7 @@ ENTRY(overflow)
        pushl_cfi $do_overflow
        jmp error_code
        CFI_ENDPROC
@@ -22839,7 +22868,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(bounds)
        RING0_INT_FRAME
-@@ -869,7 +1109,7 @@ ENTRY(bounds)
+@@ -845,7 +1082,7 @@ ENTRY(bounds)
        pushl_cfi $do_bounds
        jmp error_code
        CFI_ENDPROC
@@ -22848,7 +22877,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(invalid_op)
        RING0_INT_FRAME
-@@ -878,7 +1118,7 @@ ENTRY(invalid_op)
+@@ -854,7 +1091,7 @@ ENTRY(invalid_op)
        pushl_cfi $do_invalid_op
        jmp error_code
        CFI_ENDPROC
@@ -22857,7 +22886,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(coprocessor_segment_overrun)
        RING0_INT_FRAME
-@@ -887,7 +1127,7 @@ ENTRY(coprocessor_segment_overrun)
+@@ -863,7 +1100,7 @@ ENTRY(coprocessor_segment_overrun)
        pushl_cfi $do_coprocessor_segment_overrun
        jmp error_code
        CFI_ENDPROC
@@ -22866,7 +22895,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(invalid_TSS)
        RING0_EC_FRAME
-@@ -895,7 +1135,7 @@ ENTRY(invalid_TSS)
+@@ -871,7 +1108,7 @@ ENTRY(invalid_TSS)
        pushl_cfi $do_invalid_TSS
        jmp error_code
        CFI_ENDPROC
@@ -22875,7 +22904,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(segment_not_present)
        RING0_EC_FRAME
-@@ -903,7 +1143,7 @@ ENTRY(segment_not_present)
+@@ -879,7 +1116,7 @@ ENTRY(segment_not_present)
        pushl_cfi $do_segment_not_present
        jmp error_code
        CFI_ENDPROC
@@ -22884,7 +22913,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(stack_segment)
        RING0_EC_FRAME
-@@ -911,7 +1151,7 @@ ENTRY(stack_segment)
+@@ -887,7 +1124,7 @@ ENTRY(stack_segment)
        pushl_cfi $do_stack_segment
        jmp error_code
        CFI_ENDPROC
@@ -22893,7 +22922,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(alignment_check)
        RING0_EC_FRAME
-@@ -919,7 +1159,7 @@ ENTRY(alignment_check)
+@@ -895,7 +1132,7 @@ ENTRY(alignment_check)
        pushl_cfi $do_alignment_check
        jmp error_code
        CFI_ENDPROC
@@ -22902,7 +22931,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(divide_error)
        RING0_INT_FRAME
-@@ -928,7 +1168,7 @@ ENTRY(divide_error)
+@@ -904,7 +1141,7 @@ ENTRY(divide_error)
        pushl_cfi $do_divide_error
        jmp error_code
        CFI_ENDPROC
@@ -22911,7 +22940,7 @@ index 31e2d5b..b31c76d 100644
  
  #ifdef CONFIG_X86_MCE
  ENTRY(machine_check)
-@@ -938,7 +1178,7 @@ ENTRY(machine_check)
+@@ -914,7 +1151,7 @@ ENTRY(machine_check)
        pushl_cfi machine_check_vector
        jmp error_code
        CFI_ENDPROC
@@ -22920,7 +22949,7 @@ index 31e2d5b..b31c76d 100644
  #endif
  
  ENTRY(spurious_interrupt_bug)
-@@ -948,7 +1188,7 @@ ENTRY(spurious_interrupt_bug)
+@@ -924,7 +1161,7 @@ ENTRY(spurious_interrupt_bug)
        pushl_cfi $do_spurious_interrupt_bug
        jmp error_code
        CFI_ENDPROC
@@ -22929,7 +22958,7 @@ index 31e2d5b..b31c76d 100644
  
  #ifdef CONFIG_XEN
  /* Xen doesn't set %esp to be precisely what the normal sysenter
-@@ -1057,7 +1297,7 @@ BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR,
+@@ -1033,7 +1270,7 @@ BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR,
  
  ENTRY(mcount)
        ret
@@ -22938,7 +22967,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(ftrace_caller)
        pushl %eax
-@@ -1087,7 +1327,7 @@ ftrace_graph_call:
+@@ -1063,7 +1300,7 @@ ftrace_graph_call:
  .globl ftrace_stub
  ftrace_stub:
        ret
@@ -22947,7 +22976,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(ftrace_regs_caller)
        pushf   /* push flags before compare (in cs location) */
-@@ -1185,7 +1425,7 @@ trace:
+@@ -1161,7 +1398,7 @@ trace:
        popl %ecx
        popl %eax
        jmp ftrace_stub
@@ -22956,7 +22985,7 @@ index 31e2d5b..b31c76d 100644
  #endif /* CONFIG_DYNAMIC_FTRACE */
  #endif /* CONFIG_FUNCTION_TRACER */
  
-@@ -1203,7 +1443,7 @@ ENTRY(ftrace_graph_caller)
+@@ -1179,7 +1416,7 @@ ENTRY(ftrace_graph_caller)
        popl %ecx
        popl %eax
        ret
@@ -22965,7 +22994,7 @@ index 31e2d5b..b31c76d 100644
  
  .globl return_to_handler
  return_to_handler:
-@@ -1264,15 +1504,18 @@ error_code:
+@@ -1233,15 +1470,18 @@ error_code:
        movl $-1, PT_ORIG_EAX(%esp)     # no syscall to restart
        REG_TO_PTGS %ecx
        SET_KERNEL_GS %ecx
@@ -22986,7 +23015,7 @@ index 31e2d5b..b31c76d 100644
  
  /*
   * Debug traps and NMI can happen at the one SYSENTER instruction
-@@ -1315,7 +1558,7 @@ debug_stack_correct:
+@@ -1284,7 +1524,7 @@ debug_stack_correct:
        call do_debug
        jmp ret_from_exception
        CFI_ENDPROC
@@ -22995,7 +23024,7 @@ index 31e2d5b..b31c76d 100644
  
  /*
   * NMI is doubly nasty. It can happen _while_ we're handling
-@@ -1355,6 +1598,9 @@ nmi_stack_correct:
+@@ -1324,6 +1564,9 @@ nmi_stack_correct:
        xorl %edx,%edx          # zero error code
        movl %esp,%eax          # pt_regs pointer
        call do_nmi
@@ -23005,7 +23034,7 @@ index 31e2d5b..b31c76d 100644
        jmp restore_all_notrace
        CFI_ENDPROC
  
-@@ -1392,13 +1638,16 @@ nmi_espfix_stack:
+@@ -1361,13 +1604,16 @@ nmi_espfix_stack:
        FIXUP_ESPFIX_STACK              # %eax == %esp
        xorl %edx,%edx                  # zero error code
        call do_nmi
@@ -23023,7 +23052,7 @@ index 31e2d5b..b31c76d 100644
  
  ENTRY(int3)
        RING0_INT_FRAME
-@@ -1411,14 +1660,14 @@ ENTRY(int3)
+@@ -1380,14 +1626,14 @@ ENTRY(int3)
        call do_int3
        jmp ret_from_exception
        CFI_ENDPROC
@@ -23040,7 +23069,7 @@ index 31e2d5b..b31c76d 100644
  
  #ifdef CONFIG_KVM_GUEST
  ENTRY(async_page_fault)
-@@ -1427,6 +1676,6 @@ ENTRY(async_page_fault)
+@@ -1396,6 +1642,6 @@ ENTRY(async_page_fault)
        pushl_cfi $do_async_page_fault
        jmp error_code
        CFI_ENDPROC
@@ -23049,10 +23078,10 @@ index 31e2d5b..b31c76d 100644
  #endif
  
 diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
-index f0095a7..ec77893 100644
+index 02c2eff..a13739f 100644
 --- a/arch/x86/kernel/entry_64.S
 +++ b/arch/x86/kernel/entry_64.S
-@@ -59,6 +59,8 @@
+@@ -46,6 +46,8 @@
  #include <asm/smap.h>
  #include <asm/pgtable_types.h>
  #include <linux/err.h>
@@ -23061,7 +23090,7 @@ index f0095a7..ec77893 100644
  
  /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this.  */
  #include <linux/elf-em.h>
-@@ -81,6 +83,431 @@ ENTRY(native_usergs_sysret64)
+@@ -64,6 +66,401 @@ ENTRY(native_usergs_sysret64)
  ENDPROC(native_usergs_sysret64)
  #endif /* CONFIG_PARAVIRT */
  
@@ -23103,7 +23132,7 @@ index f0095a7..ec77893 100644
 +
 +#ifdef CONFIG_PAX_KERNEXEC
 +      GET_CR0_INTO_RDI
-+      bts $16,%rdi
++      bts $X86_CR0_WP_BIT,%rdi
 +      jnc 3f
 +      mov %cs,%edi
 +      cmp $__KERNEL_CS,%edi
@@ -23112,13 +23141,7 @@ index f0095a7..ec77893 100644
 +#endif
 +
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
-+      661: jmp 111f
-+      .pushsection .altinstr_replacement, "a"
-+      662: ASM_NOP2
-+      .popsection
-+      .pushsection .altinstructions, "a"
-+      altinstruction_entry 661b, 662b, X86_FEATURE_PCID, 2, 2
-+      .popsection
++      ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
 +      GET_CR3_INTO_RDI
 +      cmp $0,%dil
 +      jnz 112f
@@ -23164,19 +23187,13 @@ index f0095a7..ec77893 100644
 +      cmp $__KERNEXEC_KERNEL_CS,%edi
 +      jz 2f
 +      GET_CR0_INTO_RDI
-+      bts $16,%rdi
++      bts $X86_CR0_WP_BIT,%rdi
 +      jnc 4f
 +1:
 +#endif
 +
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
-+      661: jmp 111f
-+      .pushsection .altinstr_replacement, "a"
-+      662: ASM_NOP2
-+      .popsection
-+      .pushsection .altinstructions, "a"
-+      altinstruction_entry 661b, 662b, X86_FEATURE_PCID, 2, 2
-+      .popsection
++      ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
 +      mov %ss,%edi
 +      cmp $__UDEREF_KERNEL_DS,%edi
 +      jnz 111f
@@ -23202,7 +23219,7 @@ index f0095a7..ec77893 100644
 +
 +#ifdef CONFIG_PAX_KERNEXEC
 +2:    GET_CR0_INTO_RDI
-+      btr $16,%rdi
++      btr $X86_CR0_WP_BIT,%rdi
 +      jnc 4f
 +      ljmpq __KERNEL_CS,3f
 +3:    SET_RDI_INTO_CR0
@@ -23242,13 +23259,7 @@ index f0095a7..ec77893 100644
 +      PV_SAVE_REGS(CLBR_RDI)
 +#endif
 +
-+      661: jmp 111f
-+      .pushsection .altinstr_replacement, "a"
-+      662: ASM_NOP2
-+      .popsection
-+      .pushsection .altinstructions, "a"
-+      altinstruction_entry 661b, 662b, X86_FEATURE_PCID, 2, 2
-+      .popsection
++      ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
 +      GET_CR3_INTO_RDI
 +      cmp $1,%dil
 +      jnz 4f
@@ -23290,7 +23301,7 @@ index f0095a7..ec77893 100644
 +
 +#ifdef CONFIG_PAX_KERNEXEC
 +      GET_CR0_INTO_RDI
-+      bts $16,%rdi
++      bts $X86_CR0_WP_BIT,%rdi
 +      SET_RDI_INTO_CR0
 +#endif
 +
@@ -23316,13 +23327,7 @@ index f0095a7..ec77893 100644
 +#endif
 +
 +      GET_CR3_INTO_RDI
-+      661: jmp 1f
-+      .pushsection .altinstr_replacement, "a"
-+      662: ASM_NOP2
-+      .popsection
-+      .pushsection .altinstructions, "a"
-+      altinstruction_entry 661b, 662b, X86_FEATURE_PCID, 2, 2
-+      .popsection
++      ALTERNATIVE "jmp 1f", "", X86_FEATURE_PCID
 +      cmp $0,%dil
 +      jnz 3f
 +      add $4097,%rdi
@@ -23335,7 +23340,7 @@ index f0095a7..ec77893 100644
 +
 +#ifdef CONFIG_PAX_KERNEXEC
 +      GET_CR0_INTO_RDI
-+      btr $16,%rdi
++      btr $X86_CR0_WP_BIT,%rdi
 +      jnc 3f
 +      SET_RDI_INTO_CR0
 +#endif
@@ -23382,7 +23387,7 @@ index f0095a7..ec77893 100644
 +
 +#ifdef CONFIG_PAX_KERNEXEC
 +      GET_CR0_INTO_RDI
-+      bts $16,%rdi
++      bts $X86_CR0_WP_BIT,%rdi
 +      jc 110f
 +      SET_RDI_INTO_CR0
 +      or $2,%ebx
@@ -23390,13 +23395,7 @@ index f0095a7..ec77893 100644
 +#endif
 +
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
-+      661: jmp 111f
-+      .pushsection .altinstr_replacement, "a"
-+      662: ASM_NOP2
-+      .popsection
-+      .pushsection .altinstructions, "a"
-+      altinstruction_entry 661b, 662b, X86_FEATURE_PCID, 2, 2
-+      .popsection
++      ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
 +      GET_CR3_INTO_RDI
 +      cmp $0,%dil
 +      jz 111f
@@ -23415,7 +23414,7 @@ index f0095a7..ec77893 100644
 +      btr $1,%ebx
 +      jnc 110f
 +      GET_CR0_INTO_RDI
-+      btr $16,%rdi
++      btr $X86_CR0_WP_BIT,%rdi
 +      SET_RDI_INTO_CR0
 +110:
 +#endif
@@ -23491,247 +23490,160 @@ index f0095a7..ec77893 100644
 +ENDPROC(pax_erase_kstack)
 +#endif
  
- .macro TRACE_IRQS_IRETQ offset=ARGOFFSET
+ .macro TRACE_IRQS_IRETQ
  #ifdef CONFIG_TRACE_IRQFLAGS
-@@ -117,7 +544,7 @@ ENDPROC(native_usergs_sysret64)
+@@ -100,7 +497,7 @@ ENDPROC(native_usergs_sysret64)
  .endm
  
- .macro TRACE_IRQS_IRETQ_DEBUG offset=ARGOFFSET
--      bt   $9,EFLAGS-\offset(%rsp)    /* interrupts off? */
-+      bt   $X86_EFLAGS_IF_BIT,EFLAGS-\offset(%rsp)    /* interrupts off? */
+ .macro TRACE_IRQS_IRETQ_DEBUG
+-      bt   $9,EFLAGS(%rsp)    /* interrupts off? */
++      bt   $X86_EFLAGS_IF_BIT,EFLAGS(%rsp)    /* interrupts off? */
        jnc  1f
        TRACE_IRQS_ON_DEBUG
  1:
-@@ -243,9 +670,52 @@ ENTRY(save_paranoid)
-       js 1f   /* negative -> in kernel */
-       SWAPGS
-       xorl %ebx,%ebx
--1:    ret
-+1:
-+#ifdef CONFIG_PAX_MEMORY_UDEREF
-+      testb $3, CS+8(%rsp)
-+      jnz 1f
-+      pax_enter_kernel
-+      jmp 2f
-+1:    pax_enter_kernel_user
-+2:
-+#else
-+      pax_enter_kernel
+@@ -221,14 +618,6 @@ GLOBAL(system_call_after_swapgs)
+       /* Construct struct pt_regs on stack */
+       pushq_cfi $__USER_DS                    /* pt_regs->ss */
+       pushq_cfi PER_CPU_VAR(rsp_scratch)      /* pt_regs->sp */
+-      /*
+-       * Re-enable interrupts.
+-       * We use 'rsp_scratch' as a scratch space, hence irq-off block above
+-       * must execute atomically in the face of possible interrupt-driven
+-       * task preemption. We must enable interrupts only after we're done
+-       * with using rsp_scratch:
+-       */
+-      ENABLE_INTERRUPTS(CLBR_NONE)
+       pushq_cfi       %r11                    /* pt_regs->flags */
+       pushq_cfi       $__USER_CS              /* pt_regs->cs */
+       pushq_cfi       %rcx                    /* pt_regs->ip */
+@@ -246,7 +635,27 @@ GLOBAL(system_call_after_swapgs)
+       sub     $(6*8),%rsp /* pt_regs->bp,bx,r12-15 not saved */
+       CFI_ADJUST_CFA_OFFSET 6*8
+-      testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
++#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
++      movq_cfi r12, R12
 +#endif
-+      pax_force_retaddr
-+      ret
-       CFI_ENDPROC
--END(save_paranoid)
-+ENDPROC(save_paranoid)
 +
-+ENTRY(save_paranoid_nmi)
-+      XCPT_FRAME 1 RDI+8
-+      cld
-+      movq_cfi rdi, RDI+8
-+      movq_cfi rsi, RSI+8
-+      movq_cfi rdx, RDX+8
-+      movq_cfi rcx, RCX+8
-+      movq_cfi rax, RAX+8
-+      movq_cfi r8, R8+8
-+      movq_cfi r9, R9+8
-+      movq_cfi r10, R10+8
-+      movq_cfi r11, R11+8
-+      movq_cfi rbx, RBX+8
-+      movq_cfi rbp, RBP+8
-+      movq_cfi r12, R12+8
-+      movq_cfi r13, R13+8
-+      movq_cfi r14, R14+8
-+      movq_cfi r15, R15+8
-+      movl $1,%ebx
-+      movl $MSR_GS_BASE,%ecx
-+      rdmsr
-+      testl %edx,%edx
-+      js 1f   /* negative -> in kernel */
-+      SWAPGS
-+      xorl %ebx,%ebx
-+1:    pax_enter_kernel_nmi
-+      pax_force_retaddr
-+      ret
-+      CFI_ENDPROC
-+ENDPROC(save_paranoid_nmi)
- /*
-  * A newly forked process directly context switches into this address.
-@@ -266,7 +736,7 @@ ENTRY(ret_from_fork)
-       RESTORE_REST
--      testl $3, CS-ARGOFFSET(%rsp)            # from kernel_thread?
-+      testb $3, CS-ARGOFFSET(%rsp)            # from kernel_thread?
-       jz   1f
-       /*
-@@ -279,15 +749,13 @@ ENTRY(ret_from_fork)
-       jmp  int_ret_from_sys_call
- 1:
--      subq $REST_SKIP, %rsp   # leave space for volatiles
--      CFI_ADJUST_CFA_OFFSET   REST_SKIP
-       movq %rbp, %rdi
-       call *%rbx
-       movl $0, RAX(%rsp)
-       RESTORE_REST
-       jmp int_ret_from_sys_call
-       CFI_ENDPROC
--END(ret_from_fork)
-+ENDPROC(ret_from_fork)
- /*
-  * System call entry. Up to 6 arguments in registers are supported.
-@@ -324,7 +792,7 @@ END(ret_from_fork)
- ENTRY(system_call)
-       CFI_STARTPROC   simple
-       CFI_SIGNAL_FRAME
--      CFI_DEF_CFA     rsp,KERNEL_STACK_OFFSET
-+      CFI_DEF_CFA     rsp,0
-       CFI_REGISTER    rip,rcx
-       /*CFI_REGISTER  rflags,r11*/
-       SWAPGS_UNSAFE_STACK
-@@ -337,16 +805,23 @@ GLOBAL(system_call_after_swapgs)
-       movq    %rsp,PER_CPU_VAR(old_rsp)
-       movq    PER_CPU_VAR(kernel_stack),%rsp
-+      SAVE_ARGS 8*6, 0, rax_enosys=1
 +      pax_enter_kernel_user
 +
 +#ifdef CONFIG_PAX_RANDKSTACK
 +      pax_erase_kstack
 +#endif
 +
-       /*
-        * No need to follow this irqs off/on section - it's straight
-        * and short:
-        */
-       ENABLE_INTERRUPTS(CLBR_NONE)
--      SAVE_ARGS 8, 0, rax_enosys=1
-       movq_cfi rax,(ORIG_RAX-ARGOFFSET)
-       movq  %rcx,RIP-ARGOFFSET(%rsp)
-       CFI_REL_OFFSET rip,RIP-ARGOFFSET
--      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
++      /*
++       * Re-enable interrupts.
++       * We use 'rsp_scratch' as a scratch space, hence irq-off block above
++       * must execute atomically in the face of possible interrupt-driven
++       * task preemption. We must enable interrupts only after we're done
++       * with using rsp_scratch:
++       */
++      ENABLE_INTERRUPTS(CLBR_NONE)
++
 +      GET_THREAD_INFO(%rcx)
 +      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%rcx)
        jnz tracesys
  system_call_fastpath:
  #if __SYSCALL_MASK == ~0
-@@ -376,10 +851,13 @@ ret_from_sys_call:
+@@ -279,10 +688,13 @@ system_call_fastpath:
         * flags (TIF_NOTIFY_RESUME, TIF_USER_RETURN_NOTIFY, etc) set is
         * very bad.
         */
--      testl $_TIF_ALLWORK_MASK,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 +      GET_THREAD_INFO(%rcx)
 +      testl $_TIF_ALLWORK_MASK,TI_flags(%rcx)
-       jnz int_ret_from_sys_call_fixup /* Go the the slow path */
+       jnz int_ret_from_sys_call_irqs_off      /* Go to the slow path */
  
        CFI_REMEMBER_STATE
 +      pax_exit_kernel_user
 +      pax_erase_kstack
-       /*
-        * sysretq will re-enable interrupts:
-        */
-@@ -399,12 +877,15 @@ int_ret_from_sys_call_fixup:
  
-       /* Do syscall tracing */
- tracesys:
--      leaq -REST_SKIP(%rsp), %rdi
-+      movq %rsp, %rdi
-       movq $AUDIT_ARCH_X86_64, %rsi
+       RESTORE_C_REGS_EXCEPT_RCX_R11
+       movq    RIP(%rsp),%rcx
+@@ -316,6 +728,9 @@ tracesys:
        call syscall_trace_enter_phase1
        test %rax, %rax
        jnz tracesys_phase2             /* if needed, run the slow path */
--      LOAD_ARGS 0                     /* else restore clobbered regs */
 +
 +      pax_erase_kstack
 +
-+      LOAD_ARGS                       /* else restore clobbered regs */
+       RESTORE_C_REGS_EXCEPT_RAX       /* else restore clobbered regs */
+       movq ORIG_RAX(%rsp), %rax
        jmp system_call_fastpath        /*      and return to the fast path */
- tracesys_phase2:
-@@ -415,12 +896,14 @@ tracesys_phase2:
+@@ -327,6 +742,8 @@ tracesys_phase2:
        movq %rax,%rdx
        call syscall_trace_enter_phase2
  
 +      pax_erase_kstack
 +
        /*
-        * Reload arg registers from stack in case ptrace changed them.
+        * Reload registers from stack in case ptrace changed them.
         * We don't reload %rax because syscall_trace_entry_phase2() returned
-        * the value it wants us to use in the table lookup.
-        */
--      LOAD_ARGS ARGOFFSET, 1
-+      LOAD_ARGS 1
-       RESTORE_REST
- #if __SYSCALL_MASK == ~0
-       cmpq $__NR_syscall_max,%rax
-@@ -451,7 +934,9 @@ GLOBAL(int_with_check)
+@@ -364,6 +781,8 @@ GLOBAL(int_with_check)
        andl %edi,%edx
        jnz   int_careful
-       andl    $~TS_COMPAT,TI_status(%rcx)
--      jmp   retint_swapgs
+       andl    $~TS_COMPAT,TI_status(%rcx)
 +      pax_exit_kernel_user
 +      pax_erase_kstack
-+      jmp   retint_swapgs_pax
+       jmp     syscall_return
  
        /* Either reschedule or signal or syscall exit tracking needed. */
-       /* First do a reschedule test. */
-@@ -497,7 +982,7 @@ int_restore_rest:
-       TRACE_IRQS_OFF
-       jmp int_with_check
+@@ -485,7 +904,7 @@ opportunistic_sysret_failed:
+       SWAPGS
+       jmp     restore_c_regs_and_iret
        CFI_ENDPROC
 -END(system_call)
 +ENDPROC(system_call)
  
        .macro FORK_LIKE func
- ENTRY(stub_\func)
-@@ -510,9 +995,10 @@ ENTRY(stub_\func)
-       DEFAULT_FRAME 0 8               /* offset 8: return address */
-       call sys_\func
-       RESTORE_TOP_OF_STACK %r11, 8
--      ret $REST_SKIP          /* pop extended registers */
-+      pax_force_retaddr
-+      ret
+@@ -495,7 +914,7 @@ ENTRY(stub_\func)
+       SAVE_EXTRA_REGS 8
+       jmp sys_\func
        CFI_ENDPROC
 -END(stub_\func)
 +ENDPROC(stub_\func)
        .endm
  
-       .macro FIXED_FRAME label,func
-@@ -522,9 +1008,10 @@ ENTRY(\label)
-       FIXUP_TOP_OF_STACK %r11, 8-ARGOFFSET
-       call \func
-       RESTORE_TOP_OF_STACK %r11, 8-ARGOFFSET
-+      pax_force_retaddr
-       ret
-       CFI_ENDPROC
--END(\label)
-+ENDPROC(\label)
-       .endm
        FORK_LIKE  clone
-@@ -543,7 +1030,7 @@ ENTRY(stub_execve)
-       RESTORE_REST
-       jmp int_ret_from_sys_call
+@@ -519,7 +938,7 @@ return_from_execve:
+       movq    %rax,RAX(%rsp)
+       jmp     int_ret_from_sys_call
        CFI_ENDPROC
 -END(stub_execve)
 +ENDPROC(stub_execve)
- ENTRY(stub_execveat)
-       CFI_STARTPROC
-@@ -557,7 +1044,7 @@ ENTRY(stub_execveat)
-       RESTORE_REST
-       jmp int_ret_from_sys_call
+ /*
+  * Remaining execve stubs are only 7 bytes long.
+  * ENTRY() often aligns to 16 bytes, which in this case has no benefits.
+@@ -531,7 +950,7 @@ GLOBAL(stub_execveat)
+       call    sys_execveat
+       jmp     return_from_execve
        CFI_ENDPROC
 -END(stub_execveat)
 +ENDPROC(stub_execveat)
  
- /*
-  * sigreturn is special because it needs to restore all registers on return.
-@@ -574,7 +1061,7 @@ ENTRY(stub_rt_sigreturn)
-       RESTORE_REST
+ #ifdef CONFIG_X86_X32_ABI
+       .align  8
+@@ -541,7 +960,7 @@ GLOBAL(stub_x32_execve)
+       call    compat_sys_execve
+       jmp     return_from_execve
+       CFI_ENDPROC
+-END(stub_x32_execve)
++ENDPROC(stub_x32_execve)
+       .align  8
+ GLOBAL(stub_x32_execveat)
+       CFI_STARTPROC
+@@ -549,7 +968,7 @@ GLOBAL(stub_x32_execveat)
+       call    compat_sys_execveat
+       jmp     return_from_execve
+       CFI_ENDPROC
+-END(stub_x32_execveat)
++ENDPROC(stub_x32_execveat)
+ #endif
+ #ifdef CONFIG_IA32_EMULATION
+@@ -592,7 +1011,7 @@ return_from_stub:
+       movq %rax,RAX(%rsp)
        jmp int_ret_from_sys_call
        CFI_ENDPROC
 -END(stub_rt_sigreturn)
@@ -23739,90 +23651,75 @@ index f0095a7..ec77893 100644
  
  #ifdef CONFIG_X86_X32_ABI
  ENTRY(stub_x32_rt_sigreturn)
-@@ -588,7 +1075,7 @@ ENTRY(stub_x32_rt_sigreturn)
-       RESTORE_REST
-       jmp int_ret_from_sys_call
+@@ -602,7 +1021,7 @@ ENTRY(stub_x32_rt_sigreturn)
+       call sys32_x32_rt_sigreturn
+       jmp  return_from_stub
        CFI_ENDPROC
 -END(stub_x32_rt_sigreturn)
 +ENDPROC(stub_x32_rt_sigreturn)
+ #endif
  
- ENTRY(stub_x32_execve)
-       CFI_STARTPROC
-@@ -602,7 +1089,7 @@ ENTRY(stub_x32_execve)
-       RESTORE_REST
-       jmp int_ret_from_sys_call
-       CFI_ENDPROC
--END(stub_x32_execve)
-+ENDPROC(stub_x32_execve)
+ /*
+@@ -622,7 +1041,7 @@ ENTRY(ret_from_fork)
  
- ENTRY(stub_x32_execveat)
-       CFI_STARTPROC
-@@ -616,7 +1103,7 @@ ENTRY(stub_x32_execveat)
-       RESTORE_REST
+       RESTORE_EXTRA_REGS
+-      testl $3,CS(%rsp)                       # from kernel_thread?
++      testb $3,CS(%rsp)                       # from kernel_thread?
+       /*
+        * By the time we get here, we have no idea whether our pt_regs,
+@@ -641,7 +1060,7 @@ ENTRY(ret_from_fork)
+       RESTORE_EXTRA_REGS
        jmp int_ret_from_sys_call
        CFI_ENDPROC
--END(stub_x32_execveat)
-+ENDPROC(stub_x32_execveat)
- #endif
+-END(ret_from_fork)
++ENDPROC(ret_from_fork)
  
-@@ -653,7 +1140,7 @@ vector=vector+1
- 2:    jmp common_interrupt
- .endr
+ /*
+  * Build the entry stubs with some assembler magic.
+@@ -659,7 +1078,7 @@ ENTRY(irq_entries_start)
+       .align  8
+     .endr
        CFI_ENDPROC
 -END(irq_entries_start)
 +ENDPROC(irq_entries_start)
  
- .previous
- END(interrupt)
-@@ -670,28 +1157,29 @@ END(interrupt)
+ /*
+  * Interrupt entry/exit.
+@@ -672,21 +1091,13 @@ END(irq_entries_start)
  /* 0(%rsp): ~(interrupt number) */
        .macro interrupt func
-       /* reserve pt_regs for scratch regs and rbp */
--      subq $ORIG_RAX-RBP, %rsp
--      CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP
-+      subq $ORIG_RAX, %rsp
-+      CFI_ADJUST_CFA_OFFSET ORIG_RAX
        cld
--      /* start from rbp in pt_regs and jump over */
--      movq_cfi rdi, (RDI-RBP)
--      movq_cfi rsi, (RSI-RBP)
--      movq_cfi rdx, (RDX-RBP)
--      movq_cfi rcx, (RCX-RBP)
--      movq_cfi rax, (RAX-RBP)
--      movq_cfi  r8,  (R8-RBP)
--      movq_cfi  r9,  (R9-RBP)
--      movq_cfi r10, (R10-RBP)
--      movq_cfi r11, (R11-RBP)
-+      /* start from r15 in pt_regs and jump over */
-+      movq_cfi rdi, RDI
-+      movq_cfi rsi, RSI
-+      movq_cfi rdx, RDX
-+      movq_cfi rcx, RCX
-+      movq_cfi rax, RAX
-+      movq_cfi  r8,  R8
-+      movq_cfi  r9,  R9
-+      movq_cfi r10, R10
-+      movq_cfi r11, R11
-+      movq_cfi r12, R12
-       /* Save rbp so that we can unwind from get_irq_regs() */
--      movq_cfi rbp, 0
-+      movq_cfi rbp, RBP
-       /* Save previous stack value */
-       movq %rsp, %rsi
--      leaq -RBP(%rsp),%rdi    /* arg1 for handler */
--      testl $3, CS-RBP(%rsi)
-+      movq %rsp,%rdi  /* arg1 for handler */
-+      testb $3, CS(%rsi)
+-      /*
+-       * Since nothing in interrupt handling code touches r12...r15 members
+-       * of "struct pt_regs", and since interrupts can nest, we can save
+-       * four stack slots and simultaneously provide
+-       * an unwind-friendly stack layout by saving "truncated" pt_regs
+-       * exactly up to rbp slot, without these members.
+-       */
+-      ALLOC_PT_GPREGS_ON_STACK -RBP
+-      SAVE_C_REGS -RBP
+-      /* this goes to 0(%rsp) for unwinder, not for saving the value: */
+-      SAVE_EXTRA_REGS_RBP -RBP
++      ALLOC_PT_GPREGS_ON_STACK
++      SAVE_C_REGS
++      SAVE_EXTRA_REGS
+-      leaq -RBP(%rsp),%rdi    /* arg1 for \func (pointer to pt_regs) */
++      movq %rsp,%rdi  /* arg1 for \func (pointer to pt_regs) */
+-      testl $3, CS-RBP(%rsp)
++      testb $3, CS(%rsp)
        je 1f
        SWAPGS
-       /*
-@@ -711,6 +1199,18 @@ END(interrupt)
+ 1:
+@@ -709,8 +1120,20 @@ END(irq_entries_start)
+       CFI_ESCAPE      0x0f /* DW_CFA_def_cfa_expression */, 6, \
+                       0x77 /* DW_OP_breg7 (rsp) */, 0, \
                        0x06 /* DW_OP_deref */, \
-                       0x08 /* DW_OP_const1u */, SS+8-RBP, \
+-                      0x08 /* DW_OP_const1u */, SIZEOF_PTREGS-RBP, \
++                      0x08 /* DW_OP_const1u */, SIZEOF_PTREGS, \
                        0x22 /* DW_OP_plus */
 +
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
@@ -23839,57 +23736,38 @@ index f0095a7..ec77893 100644
        /* We entered an interrupt context - irqs are off: */
        TRACE_IRQS_OFF
  
-@@ -735,14 +1235,14 @@ ret_from_intr:
+@@ -735,13 +1158,12 @@ ret_from_intr:
  
        /* Restore saved previous stack */
        popq %rsi
--      CFI_DEF_CFA rsi,SS+8-RBP        /* reg/off reset after def_cfa_expr */
--      leaq ARGOFFSET-RBP(%rsi), %rsp
-+      CFI_DEF_CFA rsi,SS+8    /* reg/off reset after def_cfa_expr */
+-      CFI_DEF_CFA rsi,SIZEOF_PTREGS-RBP /* reg/off reset after def_cfa_expr */
+-      /* return code expects complete pt_regs - adjust rsp accordingly: */
+-      leaq -RBP(%rsi),%rsp
++      CFI_DEF_CFA rsi,SIZEOF_PTREGS /* reg/off reset after def_cfa_expr */
 +      movq %rsi, %rsp
        CFI_DEF_CFA_REGISTER    rsp
--      CFI_ADJUST_CFA_OFFSET   RBP-ARGOFFSET
-+      CFI_ADJUST_CFA_OFFSET   -ARGOFFSET
+-      CFI_ADJUST_CFA_OFFSET   RBP
++      CFI_ADJUST_CFA_OFFSET   0
  
- exit_intr:
-       GET_THREAD_INFO(%rcx)
--      testl $3,CS-ARGOFFSET(%rsp)
-+      testb $3,CS-ARGOFFSET(%rsp)
+-      testl $3,CS(%rsp)
++      testb $3,CS(%rsp)
        je retint_kernel
        /* Interrupt came from user space */
-@@ -764,14 +1264,16 @@ retint_swapgs:          /* return to user-space */
+@@ -763,6 +1185,8 @@ retint_swapgs:            /* return to user-space */
         * The iretq could re-enable interrupts:
         */
        DISABLE_INTERRUPTS(CLBR_ANY)
 +      pax_exit_kernel_user
-+retint_swapgs_pax:
++#     pax_erase_kstack
        TRACE_IRQS_IRETQ
  
-       /*
-        * Try to use SYSRET instead of IRET if we're returning to
-        * a completely clean 64-bit userspace context.
-        */
--      movq (RCX-R11)(%rsp), %rcx
--      cmpq %rcx,(RIP-R11)(%rsp)               /* RCX == RIP */
-+      movq (RCX-ARGOFFSET)(%rsp), %rcx
-+      cmpq %rcx,(RIP-ARGOFFSET)(%rsp)         /* RCX == RIP */
-       jne opportunistic_sysret_failed
-       /*
-@@ -792,7 +1294,7 @@ retint_swapgs:            /* return to user-space */
-       shr $__VIRTUAL_MASK_SHIFT, %rcx
-       jnz opportunistic_sysret_failed
--      cmpq $__USER_CS,(CS-R11)(%rsp)          /* CS must match SYSRET */
-+      cmpq $__USER_CS,(CS-ARGOFFSET)(%rsp)    /* CS must match SYSRET */
-       jne opportunistic_sysret_failed
-       movq (R11-ARGOFFSET)(%rsp), %r11
-@@ -838,6 +1340,27 @@ opportunistic_sysret_failed:
- retint_restore_args:  /* return to kernel space */
-       DISABLE_INTERRUPTS(CLBR_ANY)
+       SWAPGS
+@@ -781,6 +1205,21 @@ retint_kernel:
+       jmp     0b
+ 1:
+ #endif
++
 +      pax_exit_kernel
 +
 +#if defined(CONFIG_EFI) && defined(CONFIG_PAX_KERNEXEC)
@@ -23899,22 +23777,24 @@ index f0095a7..ec77893 100644
 +       * (BTS/OR) before starting any userland process; even before starting
 +       * up the APs.
 +       */
-+      .pushsection .altinstr_replacement, "a"
-+      601: pax_force_retaddr (RIP-ARGOFFSET)
-+      602:
-+      .popsection
-+      603: .fill 602b-601b, 1, 0x90
-+      .pushsection .altinstructions, "a"
-+      altinstruction_entry 603b, 601b, X86_FEATURE_ALWAYS, 602b-601b, 602b-601b
-+      .popsection
++      ALTERNATIVE "", "pax_force_retaddr 16*8", X86_FEATURE_ALWAYS
 +#else
-+      pax_force_retaddr (RIP-ARGOFFSET)
++      pax_force_retaddr RIP
 +#endif
 +
        /*
         * The iretq could re-enable interrupts:
         */
-@@ -875,15 +1398,15 @@ native_irq_return_ldt:
+@@ -793,8 +1232,6 @@ retint_kernel:
+ restore_c_regs_and_iret:
+       RESTORE_C_REGS
+       REMOVE_PT_GPREGS_FROM_STACK 8
+-
+-irq_return:
+       INTERRUPT_RETURN
+ ENTRY(native_iret)
+@@ -824,15 +1261,15 @@ native_irq_return_ldt:
        SWAPGS
        movq PER_CPU_VAR(espfix_waddr),%rdi
        movq %rax,(0*8)(%rdi)   /* RAX */
@@ -23935,16 +23815,16 @@ index f0095a7..ec77893 100644
        movq %rax,(4*8)(%rdi)
        andl $0xffff0000,%eax
        popq_cfi %rdi
-@@ -937,7 +1460,7 @@ ENTRY(retint_kernel)
-       jmp exit_intr
- #endif
+@@ -875,7 +1312,7 @@ retint_signal:
+       jmp retint_with_reschedule
        CFI_ENDPROC
 -END(common_interrupt)
 +ENDPROC(common_interrupt)
  
  /*
   * APIC interrupts.
-@@ -951,7 +1474,7 @@ ENTRY(\sym)
+@@ -889,7 +1326,7 @@ ENTRY(\sym)
        interrupt \do_sym
        jmp ret_from_intr
        CFI_ENDPROC
@@ -23953,29 +23833,29 @@ index f0095a7..ec77893 100644
  .endm
  
  #ifdef CONFIG_TRACING
-@@ -1024,7 +1547,7 @@ apicinterrupt IRQ_WORK_VECTOR \
+@@ -962,7 +1399,7 @@ apicinterrupt IRQ_WORK_VECTOR \
  /*
   * Exception entry points.
   */
--#define INIT_TSS_IST(x) PER_CPU_VAR(init_tss) + (TSS_ist + ((x) - 1) * 8)
-+#define INIT_TSS_IST(x) (TSS_ist + ((x) - 1) * 8)(%r13)
+-#define CPU_TSS_IST(x) PER_CPU_VAR(cpu_tss) + (TSS_ist + ((x) - 1) * 8)
++#define CPU_TSS_IST(x) (TSS_ist + ((x) - 1) * 8)(%r13)
  
  .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1
  ENTRY(\sym)
-@@ -1080,6 +1603,12 @@ ENTRY(\sym)
+@@ -1018,6 +1455,12 @@ ENTRY(\sym)
        .endif
  
        .if \shift_ist != -1
 +#ifdef CONFIG_SMP
 +      imul $TSS_size, PER_CPU_VAR(cpu_number), %r13d
-+      lea init_tss(%r13), %r13
++      lea cpu_tss(%r13), %r13
 +#else
-+      lea init_tss(%rip), %r13
++      lea cpu_tss(%rip), %r13
 +#endif
-       subq $EXCEPTION_STKSZ, INIT_TSS_IST(\shift_ist)
+       subq $EXCEPTION_STKSZ, CPU_TSS_IST(\shift_ist)
        .endif
  
-@@ -1126,7 +1655,7 @@ ENTRY(\sym)
+@@ -1065,7 +1508,7 @@ ENTRY(\sym)
        .endif
  
        CFI_ENDPROC
@@ -23984,7 +23864,7 @@ index f0095a7..ec77893 100644
  .endm
  
  #ifdef CONFIG_TRACING
-@@ -1167,9 +1696,10 @@ gs_change:
+@@ -1106,9 +1549,10 @@ gs_change:
  2:    mfence          /* workaround */
        SWAPGS
        popfq_cfi
@@ -23996,7 +23876,7 @@ index f0095a7..ec77893 100644
  
        _ASM_EXTABLE(gs_change,bad_gs)
        .section .fixup,"ax"
-@@ -1197,9 +1727,10 @@ ENTRY(do_softirq_own_stack)
+@@ -1136,9 +1580,10 @@ ENTRY(do_softirq_own_stack)
        CFI_DEF_CFA_REGISTER    rsp
        CFI_ADJUST_CFA_OFFSET   -8
        decl PER_CPU_VAR(irq_count)
@@ -24008,7 +23888,7 @@ index f0095a7..ec77893 100644
  
  #ifdef CONFIG_XEN
  idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0
-@@ -1240,7 +1771,7 @@ ENTRY(xen_do_hypervisor_callback)   # do_hypervisor_callback(struct *pt_regs)
+@@ -1179,7 +1624,7 @@ ENTRY(xen_do_hypervisor_callback)   # do_hypervisor_callback(struct *pt_regs)
  #endif
        jmp  error_exit
        CFI_ENDPROC
@@ -24017,8 +23897,8 @@ index f0095a7..ec77893 100644
  
  /*
   * Hypervisor uses this for application faults while it executes.
-@@ -1299,7 +1830,7 @@ ENTRY(xen_failsafe_callback)
-       SAVE_ALL
+@@ -1240,7 +1685,7 @@ ENTRY(xen_failsafe_callback)
+       SAVE_EXTRA_REGS
        jmp error_exit
        CFI_ENDPROC
 -END(xen_failsafe_callback)
@@ -24026,26 +23906,70 @@ index f0095a7..ec77893 100644
  
  apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
        xen_hvm_callback_vector xen_evtchn_do_upcall
-@@ -1344,18 +1875,25 @@ ENTRY(paranoid_exit)
+@@ -1286,9 +1731,39 @@ ENTRY(paranoid_entry)
+       js 1f   /* negative -> in kernel */
+       SWAPGS
+       xorl %ebx,%ebx
+-1:    ret
++1:
++#ifdef CONFIG_PAX_MEMORY_UDEREF
++      testb $3, CS+8(%rsp)
++      jnz 1f
++      pax_enter_kernel
++      jmp 2f
++1:    pax_enter_kernel_user
++2:
++#else
++      pax_enter_kernel
++#endif
++      pax_force_retaddr
++      ret
+       CFI_ENDPROC
+-END(paranoid_entry)
++ENDPROC(paranoid_entry)
++
++ENTRY(paranoid_entry_nmi)
++      XCPT_FRAME 1 15*8
++      cld
++      SAVE_C_REGS 8
++      SAVE_EXTRA_REGS 8
++      movl $1,%ebx
++      movl $MSR_GS_BASE,%ecx
++      rdmsr
++      testl %edx,%edx
++      js 1f   /* negative -> in kernel */
++      SWAPGS
++      xorl %ebx,%ebx
++1:    pax_enter_kernel_nmi
++      pax_force_retaddr
++      ret
++      CFI_ENDPROC
++ENDPROC(paranoid_entry_nmi)
+ /*
+  * "Paranoid" exit path from exception stack.  This is invoked
+@@ -1305,20 +1780,27 @@ ENTRY(paranoid_exit)
        DEFAULT_FRAME
        DISABLE_INTERRUPTS(CLBR_NONE)
        TRACE_IRQS_OFF_DEBUG
 -      testl %ebx,%ebx                         /* swapgs needed? */
 +      testl $1,%ebx                           /* swapgs needed? */
-       jnz paranoid_restore
+       jnz paranoid_exit_no_swapgs
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      pax_exit_kernel_user
 +#else
 +      pax_exit_kernel
 +#endif
-       TRACE_IRQS_IRETQ 0
+       TRACE_IRQS_IRETQ
        SWAPGS_UNSAFE_STACK
-       RESTORE_ALL 8
-       INTERRUPT_RETURN
- paranoid_restore:
+       jmp paranoid_exit_restore
+ paranoid_exit_no_swapgs:
 +      pax_exit_kernel
-       TRACE_IRQS_IRETQ_DEBUG 0
-       RESTORE_ALL 8
+       TRACE_IRQS_IRETQ_DEBUG
+ paranoid_exit_restore:
+       RESTORE_EXTRA_REGS
+       RESTORE_C_REGS
+       REMOVE_PT_GPREGS_FROM_STACK 8
 +      pax_force_retaddr_bts
        INTERRUPT_RETURN
        CFI_ENDPROC
@@ -24053,10 +23977,10 @@ index f0095a7..ec77893 100644
 +ENDPROC(paranoid_exit)
  
  /*
-  * Exception entry point. This expects an error code/orig_rax on the stack.
-@@ -1382,12 +1920,23 @@ ENTRY(error_entry)
-       movq %r14, R14+8(%rsp)
-       movq %r15, R15+8(%rsp)
+  * Save all registers in pt_regs, and switch gs if needed.
+@@ -1330,12 +1812,23 @@ ENTRY(error_entry)
+       SAVE_C_REGS 8
+       SAVE_EXTRA_REGS 8
        xorl %ebx,%ebx
 -      testl $3,CS+8(%rsp)
 +      testb $3,CS+8(%rsp)
@@ -24078,8 +24002,8 @@ index f0095a7..ec77893 100644
 +      pax_force_retaddr
        ret
  
- /*
-@@ -1422,7 +1971,7 @@ error_bad_iret:
      /*
+@@ -1370,7 +1863,7 @@ error_bad_iret:
        decl %ebx       /* Return to usergs */
        jmp error_sti
        CFI_ENDPROC
@@ -24087,8 +24011,8 @@ index f0095a7..ec77893 100644
 +ENDPROC(error_entry)
  
  
- /* ebx:       no swapgs flag (1: don't need swapgs, 0: need it) */
-@@ -1433,7 +1982,7 @@ ENTRY(error_exit)
+ /* On entry, ebx is "no swapgs" flag (1: don't need swapgs, 0: need it) */
+@@ -1381,7 +1874,7 @@ ENTRY(error_exit)
        DISABLE_INTERRUPTS(CLBR_NONE)
        TRACE_IRQS_OFF
        GET_THREAD_INFO(%rcx)
@@ -24097,85 +24021,418 @@ index f0095a7..ec77893 100644
        jne retint_kernel
        LOCKDEP_SYS_EXIT_IRQ
        movl TI_flags(%rcx),%edx
-@@ -1442,7 +1991,7 @@ ENTRY(error_exit)
+@@ -1390,7 +1883,7 @@ ENTRY(error_exit)
        jnz retint_careful
        jmp retint_swapgs
        CFI_ENDPROC
 -END(error_exit)
 +ENDPROC(error_exit)
  
- /*
-  * Test if a given stack is an NMI stack or not.
-@@ -1500,9 +2049,11 @@ ENTRY(nmi)
-        * If %cs was not the kernel segment, then the NMI triggered in user
-        * space, which means it is definitely not nested.
+ /* Runs on exception stack */
+ ENTRY(nmi)
+@@ -1413,11 +1906,12 @@ ENTRY(nmi)
+        *  If the variable is not set and the stack is not the NMI
+        *  stack then:
+        *    o Set the special variable on the stack
+-       *    o Copy the interrupt frame into a "saved" location on the stack
+-       *    o Copy the interrupt frame into a "copy" location on the stack
++       *    o Copy the interrupt frame into an "outermost" location on the
++       *      stack
++       *    o Copy the interrupt frame into an "iret" location on the stack
+        *    o Continue processing the NMI
+        *  If the variable is set or the previous stack is the NMI stack:
+-       *    o Modify the "copy" location to jump to the repeate_nmi
++       *    o Modify the "iret" location to jump to the repeat_nmi
+        *    o return back to the first NMI
+        *
+        * Now on exit of the first NMI, we first clear the stack variable
+@@ -1426,32 +1920,185 @@ ENTRY(nmi)
+        * a nested NMI that updated the copy interrupt stack frame, a
+        * jump will be made to the repeat_nmi code that will handle the second
+        * NMI.
++       *
++       * However, espfix prevents us from directly returning to userspace
++       * with a single IRET instruction.  Similarly, IRET to user mode
++       * can fault.  We therefore handle NMIs from user space like
++       * other IST entries.
         */
-+      cmpl $__KERNEXEC_KERNEL_CS, 16(%rsp)
-+      je 1f
-       cmpl $__KERNEL_CS, 16(%rsp)
-       jne first_nmi
--
+       /* Use %rdx as our temp variable throughout */
+       pushq_cfi %rdx
+       CFI_REL_OFFSET rdx, 0
++      testb   $3, CS-RIP+8(%rsp)
++      jz      .Lnmi_from_kernel
++
++      /*
++       * NMI from user mode.  We need to run on the thread stack, but we
++       * can't go through the normal entry paths: NMIs are masked, and
++       * we don't want to enable interrupts, because then we'll end
++       * up in an awkward situation in which IRQs are on but NMIs
++       * are off.
++       */
++
++      SWAPGS
++      cld
++      movq    %rsp, %rdx
++      movq    PER_CPU_VAR(kernel_stack), %rsp
++      pushq   5*8(%rdx)       /* pt_regs->ss */
++      pushq   4*8(%rdx)       /* pt_regs->rsp */
++      pushq   3*8(%rdx)       /* pt_regs->flags */
++      pushq   2*8(%rdx)       /* pt_regs->cs */
++      pushq   1*8(%rdx)       /* pt_regs->rip */
++      pushq   $-1             /* pt_regs->orig_ax */
++      pushq   %rdi            /* pt_regs->di */
++      pushq   %rsi            /* pt_regs->si */
++      pushq   (%rdx)          /* pt_regs->dx */
++      pushq   %rcx            /* pt_regs->cx */
++      pushq   %rax            /* pt_regs->ax */
++      pushq   %r8             /* pt_regs->r8 */
++      pushq   %r9             /* pt_regs->r9 */
++      pushq   %r10            /* pt_regs->r10 */
++      pushq   %r11            /* pt_regs->r11 */
++      pushq   %rbx            /* pt_regs->rbx */
++      pushq   %rbp            /* pt_regs->rbp */
++      pushq   %r12            /* pt_regs->r12 */
++      pushq   %r13            /* pt_regs->r13 */
++      pushq   %r14            /* pt_regs->r14 */
++      pushq   %r15            /* pt_regs->r15 */
++
++#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
++      xorl %ebx,%ebx
++#endif
++
++      pax_enter_kernel_nmi
++
+       /*
+-       * If %cs was not the kernel segment, then the NMI triggered in user
+-       * space, which means it is definitely not nested.
++       * At this point we no longer need to worry about stack damage
++       * due to nesting -- we're on the normal thread stack and we're
++       * done with the NMI stack.
+        */
+-      cmpl $__KERNEL_CS, 16(%rsp)
+-      jne first_nmi
++
++      movq    %rsp, %rdi
++      movq    $-1, %rsi
++      call    do_nmi
++
++      pax_exit_kernel_nmi
++
++      /*
++       * Return back to user mode.  We must *not* do the normal exit
++       * work, because we don't want to enable interrupts.  Fortunately,
++       * do_nmi doesn't modify pt_regs.
++       */
++      SWAPGS
++
++      /*
++       * Open-code the entire return process for compatibility with varying
++       * register layouts across different kernel versions.
++       */
++
++#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
++      movq    RBX(%rsp), %rbx /* pt_regs->rbx*/
++#endif
++
++#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
++      movq    R12(%rsp), %r12 /* pt_regs->r12*/
++#endif
++
++      addq    $6*8, %rsp      /* skip bx, bp, and r12-r15 */
++      popq    %r11            /* pt_regs->r11 */
++      popq    %r10            /* pt_regs->r10 */
++      popq    %r9             /* pt_regs->r9 */
++      popq    %r8             /* pt_regs->r8 */
++      popq    %rax            /* pt_regs->ax */
++      popq    %rcx            /* pt_regs->cx */
++      popq    %rdx            /* pt_regs->dx */
++      popq    %rsi            /* pt_regs->si */
++      popq    %rdi            /* pt_regs->di */
++      addq    $8, %rsp        /* skip orig_ax */
++      INTERRUPT_RETURN
++
++.Lnmi_from_kernel:
++      /*
++       * Here's what our stack frame will look like:
++       * +---------------------------------------------------------+
++       * | original SS                                             |
++       * | original Return RSP                                     |
++       * | original RFLAGS                                         |
++       * | original CS                                             |
++       * | original RIP                                            |
++       * +---------------------------------------------------------+
++       * | temp storage for rdx                                    |
++       * +---------------------------------------------------------+
++       * | "NMI executing" variable                                |
++       * +---------------------------------------------------------+
++       * | iret SS          } Copied from "outermost" frame        |
++       * | iret Return RSP  } on each loop iteration; overwritten  |
++       * | iret RFLAGS      } by a nested NMI to force another     |
++       * | iret CS          } iteration if needed.                 |
++       * | iret RIP         }                                      |
++       * +---------------------------------------------------------+
++       * | outermost SS          } initialized in first_nmi;       |
++       * | outermost Return RSP  } will not be changed before      |
++       * | outermost RFLAGS      } NMI processing is done.         |
++       * | outermost CS          } Copied to "iret" frame on each  |
++       * | outermost RIP         } iteration.                      |
++       * +---------------------------------------------------------+
++       * | pt_regs                                                 |
++       * +---------------------------------------------------------+
++       *
++       * The "original" frame is used by hardware.  Before re-enabling
++       * NMIs, we need to be done with it, and we need to leave enough
++       * space for the asm code here.
++       *
++       * We return by executing IRET while RSP points to the "iret" frame.
++       * That will either return for real or it will loop back into NMI
++       * processing.
++       *
++       * The "outermost" frame is copied to the "iret" frame on each
++       * iteration of the loop, so each iteration starts with the "iret"
++       * frame pointing to the final return target.
++       */
++
++      /*
++       * If we interrupted kernel code between repeat_nmi and
++       * end_repeat_nmi, then we are a nested NMI.  We must not
++       * modify the "iret" frame because it's being written by
++       * the outer NMI.  That's okay: the outer NMI handler is
++       * about to about to call do_nmi anyway, so we can just
++       * resume the outer NMI.
++       */
++
++      movq    $repeat_nmi, %rdx
++      cmpq    8(%rsp), %rdx
++      ja      1f
++      movq    $end_repeat_nmi, %rdx
++      cmpq    8(%rsp), %rdx
++      ja      nested_nmi_out
 +1:
        /*
-        * Check the special variable on the stack to see if NMIs are
-        * executing.
-@@ -1536,8 +2087,7 @@ nested_nmi:
+-       * Check the special variable on the stack to see if NMIs are
+-       * executing.
++       * Now check "NMI executing".  If it's set, then we're nested.
++       *
++       * First check "NMI executing".  If it's set, then we're nested.
++       * This will not detect if we interrupted an outer NMI just
++       * before IRET.
+        */
+       cmpl $1, -8(%rsp)
+       je nested_nmi
  
- 1:
-       /* Set up the interrupted NMIs stack to jump to repeat_nmi */
+       /*
+-       * Now test if the previous stack was an NMI stack.
+-       * We need the double check. We check the NMI stack to satisfy the
+-       * race when the first NMI clears the variable before returning.
+-       * We check the variable because the first NMI could be in a
+-       * breakpoint routine using a breakpoint stack.
++       * Now test if the previous stack was an NMI stack.  This covers
++       * the case where we interrupt an outer NMI after it clears
++       * "NMI executing" but before IRET.  We need to be careful, though:
++       * there is one case in which RSP could point to the NMI stack
++       * despite there being no NMI active: naughty userspace controls
++       * RSP at the very beginning of the SYSCALL targets.  We can
++       * pull a fast one on naughty userspace, though: we program
++       * SYSCALL to mask DF, so userspace cannot cause DF to be set
++       * if it controls the kernel's RSP.  We set DF before we clear
++       * "NMI executing".
+        */
+       lea     6*8(%rsp), %rdx
+       /* Compare the NMI stack (rdx) with the stack we came from (4*8(%rsp)) */
+@@ -1462,27 +2109,22 @@ ENTRY(nmi)
+       cmpq    %rdx, 4*8(%rsp)
+       /* If it is below the NMI stack, it is a normal NMI */
+       jb      first_nmi
+-      /* Ah, it is within the NMI stack, treat it as nested */
++
++      /* Ah, it is within the NMI stack. */
++
++      testb   $(X86_EFLAGS_DF >> 8), (3*8 + 1)(%rsp)
++      jz      first_nmi       /* RSP was user controlled. */
+       CFI_REMEMBER_STATE
++      /* This is a nested NMI. */
++
+ nested_nmi:
+       /*
+-       * Do nothing if we interrupted the fixup in repeat_nmi.
+-       * It's about to repeat the NMI handler, so we are fine
+-       * with ignoring this one.
++       * Modify the "iret" frame to point to repeat_nmi, forcing another
++       * iteration of NMI handling.
+        */
+-      movq $repeat_nmi, %rdx
+-      cmpq 8(%rsp), %rdx
+-      ja 1f
+-      movq $end_repeat_nmi, %rdx
+-      cmpq 8(%rsp), %rdx
+-      ja nested_nmi_out
+-
+-1:
+-      /* Set up the interrupted NMIs stack to jump to repeat_nmi */
 -      leaq -1*8(%rsp), %rdx
 -      movq %rdx, %rsp
 +      subq $8, %rsp
        CFI_ADJUST_CFA_OFFSET 1*8
        leaq -10*8(%rsp), %rdx
        pushq_cfi $__KERNEL_DS
-@@ -1555,6 +2105,7 @@ nested_nmi_out:
+@@ -1499,60 +2141,24 @@ nested_nmi_out:
+       popq_cfi %rdx
        CFI_RESTORE rdx
  
-       /* No need to check faults here */
+-      /* No need to check faults here */
++      /* We are returning to kernel mode, so this cannot result in a fault. */
 +#     pax_force_retaddr_bts
        INTERRUPT_RETURN
  
        CFI_RESTORE_STATE
-@@ -1651,13 +2202,13 @@ end_repeat_nmi:
-       subq $ORIG_RAX-R15, %rsp
-       CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
+ first_nmi:
+-      /*
+-       * Because nested NMIs will use the pushed location that we
+-       * stored in rdx, we must keep that space available.
+-       * Here's what our stack frame will look like:
+-       * +-------------------------+
+-       * | original SS             |
+-       * | original Return RSP     |
+-       * | original RFLAGS         |
+-       * | original CS             |
+-       * | original RIP            |
+-       * +-------------------------+
+-       * | temp storage for rdx    |
+-       * +-------------------------+
+-       * | NMI executing variable  |
+-       * +-------------------------+
+-       * | copied SS               |
+-       * | copied Return RSP       |
+-       * | copied RFLAGS           |
+-       * | copied CS               |
+-       * | copied RIP              |
+-       * +-------------------------+
+-       * | Saved SS                |
+-       * | Saved Return RSP        |
+-       * | Saved RFLAGS            |
+-       * | Saved CS                |
+-       * | Saved RIP               |
+-       * +-------------------------+
+-       * | pt_regs                 |
+-       * +-------------------------+
+-       *
+-       * The saved stack frame is used to fix up the copied stack frame
+-       * that a nested NMI may change to make the interrupted NMI iret jump
+-       * to the repeat_nmi. The original stack frame and the temp storage
+-       * is also used by nested NMIs and can not be trusted on exit.
+-       */
+-      /* Do not pop rdx, nested NMIs will corrupt that part of the stack */
++      /* Restore rdx. */
+       movq (%rsp), %rdx
+       CFI_RESTORE rdx
+       /* Set the NMI executing variable on the stack. */
+       pushq_cfi $1
+-      /*
+-       * Leave room for the "copied" frame
+-       */
++      /* Leave room for the "iret" frame */
+       subq $(5*8), %rsp
+       CFI_ADJUST_CFA_OFFSET 5*8
+-      /* Copy the stack frame to the Saved frame */
++      /* Copy the "original" frame to the "outermost" frame */
+       .rept 5
+       pushq_cfi 11*8(%rsp)
+       .endr
+@@ -1560,6 +2166,7 @@ first_nmi:
+       /* Everything up to here is safe from nested NMIs */
++repeat_nmi:
+       /*
+        * If there was a nested NMI, the first NMI's iret will return
+        * here. But NMIs are still enabled and we can take another
+@@ -1568,16 +2175,21 @@ first_nmi:
+        * it will just return, as we are about to repeat an NMI anyway.
+        * This makes it safe to copy to the stack frame that a nested
+        * NMI will update.
+-       */
+-repeat_nmi:
+-      /*
+-       * Update the stack variable to say we are still in NMI (the update
+-       * is benign for the non-repeat case, where 1 was pushed just above
+-       * to this very stack slot).
++       *
++       * RSP is pointing to "outermost RIP".  gsbase is unknown, but, if
++       * we're repeating an NMI, gsbase has the same value that it had on
++       * the first iteration.  paranoid_entry will load the kernel
++       * gsbase if needed before we call do_nmi.
++       *
++       * Set "NMI executing" in case we came back here via IRET.
+        */
+       movq $1, 10*8(%rsp)
+-      /* Make another copy, this one may be modified by nested NMIs */
++      /*
++       * Copy the "outermost" frame to the "iret" frame.  NMIs that nest
++       * here must not modify the "iret" frame while we're writing to
++       * it or it will end up containing garbage.
++       */
+       addq $(10*8), %rsp
+       CFI_ADJUST_CFA_OFFSET -10*8
+       .rept 5
+@@ -1588,66 +2200,65 @@ repeat_nmi:
+ end_repeat_nmi:
+       /*
+-       * Everything below this point can be preempted by a nested
+-       * NMI if the first NMI took an exception and reset our iret stack
+-       * so that we repeat another NMI.
++       * Everything below this point can be preempted by a nested NMI.
++       * If this happens, then the inner NMI will change the "iret"
++       * frame to point back to repeat_nmi.
+        */
+       pushq_cfi $-1           /* ORIG_RAX: no syscall to restart */
+       ALLOC_PT_GPREGS_ON_STACK
        /*
--       * Use save_paranoid to handle SWAPGS, but no need to use paranoid_exit
-+       * Use save_paranoid_nmi to handle SWAPGS, but no need to use paranoid_exit
+-       * Use paranoid_entry to handle SWAPGS, but no need to use paranoid_exit
++       * Use paranoid_entry_nmi to handle SWAPGS, but no need to use paranoid_exit
         * as we should not be calling schedule in NMI context.
         * Even with normal interrupts enabled. An NMI should not be
         * setting NEED_RESCHED or anything that normal interrupts and
         * exceptions might do.
         */
--      call save_paranoid
-+      call save_paranoid_nmi
+-      call paranoid_entry
++      call paranoid_entry_nmi
        DEFAULT_FRAME 0
  
-       /*
-@@ -1667,9 +2218,9 @@ end_repeat_nmi:
-        * NMI itself takes a page fault, the page fault that was preempted
-        * will read the information from the NMI page fault and not the
-        * origin fault. Save it off and restore it if it changes.
+-      /*
+-       * Save off the CR2 register. If we take a page fault in the NMI then
+-       * it could corrupt the CR2 value. If the NMI preempts a page fault
+-       * handler before it was able to read the CR2 register, and then the
+-       * NMI itself takes a page fault, the page fault that was preempted
+-       * will read the information from the NMI page fault and not the
+-       * origin fault. Save it off and restore it if it changes.
 -       * Use the r12 callee-saved register.
-+       * Use the r13 callee-saved register.
-        */
+-       */
 -      movq %cr2, %r12
-+      movq %cr2, %r13
+-
        /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
        movq %rsp,%rdi
-@@ -1678,29 +2229,34 @@ end_repeat_nmi:
+       movq $-1,%rsi
+       call do_nmi
  
-       /* Did the NMI take a page fault? Restore cr2 if it did */
-       movq %cr2, %rcx
+-      /* Did the NMI take a page fault? Restore cr2 if it did */
+-      movq %cr2, %rcx
 -      cmpq %rcx, %r12
-+      cmpq %rcx, %r13
-       je 1f
+-      je 1f
 -      movq %r12, %cr2
-+      movq %r13, %cr2
- 1:
-       
+-1:
+-      
 -      testl %ebx,%ebx                         /* swapgs needed? */
 +      testl $1,%ebx                           /* swapgs needed? */
        jnz nmi_restore
@@ -24183,16 +24440,34 @@ index f0095a7..ec77893 100644
        SWAPGS_UNSAFE_STACK
  nmi_restore:
 +      pax_exit_kernel_nmi
-       /* Pop the extra iret frame at once */
-       RESTORE_ALL 6*8
-+      testb $3, 8(%rsp)
-+      jnz 1f
-+      pax_force_retaddr_bts
-+1:
+       RESTORE_EXTRA_REGS
+       RESTORE_C_REGS
+-      /* Pop the extra iret frame at once */
++
+       REMOVE_PT_GPREGS_FROM_STACK 6*8
  
-       /* Clear the NMI executing stack variable */
-       movq $0, 5*8(%rsp)
-       jmp irq_return
+-      /* Clear the NMI executing stack variable */
+-      movq $0, 5*8(%rsp)
+-      jmp irq_return
++      pax_force_retaddr_bts
++
++      /*
++       * Clear "NMI executing".  Set DF first so that we can easily
++       * distinguish the remaining code between here and IRET from
++       * the SYSCALL entry and exit paths.  On a native kernel, we
++       * could just inspect RIP, but, on paravirt kernels,
++       * INTERRUPT_RETURN can translate into a jump into a
++       * hypercall page.
++       */
++      std
++      movq    $0, 5*8(%rsp)           /* clear "NMI executing" */
++
++      /*
++       * INTERRUPT_RETURN reads the "iret" frame and exits the NMI
++       * stack in a single instruction.  We are returning to kernel
++       * mode, so this cannot result in a fault.
++       */
++      INTERRUPT_RETURN
        CFI_ENDPROC
 -END(nmi)
 +ENDPROC(nmi)
@@ -24248,7 +24523,7 @@ index f5d0730..5bce89c 100644
  unlock_done:
        mutex_unlock(&espfix_init_mutex);
 diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
-index 8b7b0a5..2395f29 100644
+index 8b7b0a5..02219db 100644
 --- a/arch/x86/kernel/ftrace.c
 +++ b/arch/x86/kernel/ftrace.c
 @@ -89,7 +89,7 @@ static unsigned long text_ip_addr(unsigned long ip)
@@ -24287,8 +24562,58 @@ index 8b7b0a5..2395f29 100644
                return -EFAULT;
  
        /* Make sure it is what we expect it to be */
+@@ -670,11 +672,11 @@ static unsigned char *ftrace_jmp_replace(unsigned long ip, unsigned long addr)
+ /* Module allocation simplifies allocating memory for code */
+ static inline void *alloc_tramp(unsigned long size)
+ {
+-      return module_alloc(size);
++      return module_alloc_exec(size);
+ }
+ static inline void tramp_free(void *tramp)
+ {
+-      module_memfree(tramp);
++      module_memfree_exec(tramp);
+ }
+ #else
+ /* Trampolines can only be created if modules are supported */
+@@ -753,7 +755,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
+       *tramp_size = size + MCOUNT_INSN_SIZE + sizeof(void *);
+       /* Copy ftrace_caller onto the trampoline memory */
++      pax_open_kernel();
+       ret = probe_kernel_read(trampoline, (void *)start_offset, size);
++      pax_close_kernel();
+       if (WARN_ON(ret < 0)) {
+               tramp_free(trampoline);
+               return 0;
+@@ -763,6 +767,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
+       /* The trampoline ends with a jmp to ftrace_return */
+       jmp = ftrace_jmp_replace(ip, (unsigned long)ftrace_return);
++      pax_open_kernel();
+       memcpy(trampoline + size, jmp, MCOUNT_INSN_SIZE);
+       /*
+@@ -775,6 +780,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
+       ptr = (unsigned long *)(trampoline + size + MCOUNT_INSN_SIZE);
+       *ptr = (unsigned long)ops;
++      pax_close_kernel();
+       op_offset -= start_offset;
+       memcpy(&op_ptr, trampoline + op_offset, OP_REF_SIZE);
+@@ -792,7 +798,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
+       op_ptr.offset = offset;
+       /* put in the new offset to the ftrace_ops */
++      pax_open_kernel();
+       memcpy(trampoline + op_offset, &op_ptr, OP_REF_SIZE);
++      pax_close_kernel();
+       /* ALLOC_TRAMP flags lets us know we created it */
+       ops->flags |= FTRACE_OPS_FL_ALLOC_TRAMP;
 diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
-index c4f8d46..2d63ae2 100644
+index 5a46681..1ef7ffa 100644
 --- a/arch/x86/kernel/head64.c
 +++ b/arch/x86/kernel/head64.c
 @@ -68,12 +68,12 @@ again:
@@ -24332,19 +24657,19 @@ index c4f8d46..2d63ae2 100644
        }
        pmd = (physaddr & PMD_MASK) + early_pmd_flags;
        pmd_p[pmd_index(address)] = pmd;
-@@ -180,7 +180,6 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
-       if (console_loglevel >= CONSOLE_LOGLEVEL_DEBUG)
-               early_printk("Kernel alive\n");
+@@ -177,7 +177,6 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
+        */
+       load_ucode_bsp();
  
 -      clear_page(init_level4_pgt);
        /* set init_level4_pgt kernel high mapping*/
        init_level4_pgt[511] = early_level4_pgt[511];
  
 diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
-index f36bd42..0ab4474 100644
+index 7e429c9..7244a52 100644
 --- a/arch/x86/kernel/head_32.S
 +++ b/arch/x86/kernel/head_32.S
-@@ -26,6 +26,12 @@
+@@ -27,6 +27,12 @@
  /* Physical address */
  #define pa(X) ((X) - __PAGE_OFFSET)
  
@@ -24357,7 +24682,7 @@ index f36bd42..0ab4474 100644
  /*
   * References to members of the new_cpu_data structure.
   */
-@@ -55,11 +61,7 @@
+@@ -56,11 +62,7 @@
   * and small than max_low_pfn, otherwise will waste some page table entries
   */
  
@@ -24368,9 +24693,9 @@ index f36bd42..0ab4474 100644
 -#endif
 +#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PTE)
  
- /* Number of possible pages in the lowmem region */
- LOWMEM_PAGES = (((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT)
-@@ -78,6 +80,12 @@ INIT_MAP_SIZE = PAGE_TABLE_SIZE(KERNEL_PAGES) * PAGE_SIZE
+ /*
+  * Number of possible pages in the lowmem region.
+@@ -86,6 +88,12 @@ INIT_MAP_SIZE = PAGE_TABLE_SIZE(KERNEL_PAGES) * PAGE_SIZE
  RESERVE_BRK(pagetables, INIT_MAP_SIZE)
  
  /*
@@ -24383,7 +24708,7 @@ index f36bd42..0ab4474 100644
   * 32-bit kernel entrypoint; only used by the boot CPU.  On entry,
   * %esi points to the real-mode code as a 32-bit pointer.
   * CS and DS must be 4 GB flat segments, but we don't depend on
-@@ -85,6 +93,13 @@ RESERVE_BRK(pagetables, INIT_MAP_SIZE)
+@@ -93,6 +101,13 @@ RESERVE_BRK(pagetables, INIT_MAP_SIZE)
   * can.
   */
  __HEAD
@@ -24397,7 +24722,7 @@ index f36bd42..0ab4474 100644
  ENTRY(startup_32)
        movl pa(stack_start),%ecx
        
-@@ -106,6 +121,59 @@ ENTRY(startup_32)
+@@ -114,6 +129,59 @@ ENTRY(startup_32)
  2:
        leal -__PAGE_OFFSET(%ecx),%esp
  
@@ -24457,7 +24782,7 @@ index f36bd42..0ab4474 100644
  /*
   * Clear BSS first so that there are no surprises...
   */
-@@ -201,8 +269,11 @@ ENTRY(startup_32)
+@@ -209,8 +277,11 @@ ENTRY(startup_32)
        movl %eax, pa(max_pfn_mapped)
  
        /* Do early initialization of the fixmap area */
@@ -24471,7 +24796,7 @@ index f36bd42..0ab4474 100644
  #else /* Not PAE */
  
  page_pde_offset = (__PAGE_OFFSET >> 20);
-@@ -232,8 +303,11 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
+@@ -240,8 +311,11 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
        movl %eax, pa(max_pfn_mapped)
  
        /* Do early initialization of the fixmap area */
@@ -24485,7 +24810,7 @@ index f36bd42..0ab4474 100644
  #endif
  
  #ifdef CONFIG_PARAVIRT
-@@ -247,9 +321,7 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
+@@ -255,9 +329,7 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
        cmpl $num_subarch_entries, %eax
        jae bad_subarch
  
@@ -24496,7 +24821,7 @@ index f36bd42..0ab4474 100644
  
  bad_subarch:
  WEAK(lguest_entry)
-@@ -261,10 +333,10 @@ WEAK(xen_entry)
+@@ -269,10 +341,10 @@ WEAK(xen_entry)
        __INITDATA
  
  subarch_entries:
@@ -24511,7 +24836,7 @@ index f36bd42..0ab4474 100644
  num_subarch_entries = (. - subarch_entries) / 4
  .previous
  #else
-@@ -354,6 +426,7 @@ default_entry:
+@@ -362,6 +434,7 @@ default_entry:
        movl pa(mmu_cr4_features),%eax
        movl %eax,%cr4
  
@@ -24519,7 +24844,7 @@ index f36bd42..0ab4474 100644
        testb $X86_CR4_PAE, %al         # check if PAE is enabled
        jz enable_paging
  
-@@ -382,6 +455,9 @@ default_entry:
+@@ -390,6 +463,9 @@ default_entry:
        /* Make changes effective */
        wrmsr
  
@@ -24529,7 +24854,7 @@ index f36bd42..0ab4474 100644
  enable_paging:
  
  /*
-@@ -449,14 +525,20 @@ is486:
+@@ -457,14 +533,20 @@ is486:
  1:    movl $(__KERNEL_DS),%eax        # reload all the segment registers
        movl %eax,%ss                   # after changing gdt.
  
@@ -24551,7 +24876,7 @@ index f36bd42..0ab4474 100644
        movl %eax,%gs
  
        xorl %eax,%eax                  # Clear LDT
-@@ -512,8 +594,11 @@ setup_once:
+@@ -521,8 +603,11 @@ setup_once:
         * relocation.  Manually set base address in stack canary
         * segment descriptor.
         */
@@ -24564,7 +24889,7 @@ index f36bd42..0ab4474 100644
        movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax)
        shrl $16, %ecx
        movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax)
-@@ -548,7 +633,7 @@ ENTRY(early_idt_handler)
+@@ -559,7 +644,7 @@ early_idt_handler_common:
        cmpl $2,(%esp)          # X86_TRAP_NMI
        je is_nmi               # Ignore NMI
  
@@ -24573,7 +24898,7 @@ index f36bd42..0ab4474 100644
        je hlt_loop
        incl %ss:early_recursion_flag
  
-@@ -586,8 +671,8 @@ ENTRY(early_idt_handler)
+@@ -597,8 +682,8 @@ early_idt_handler_common:
        pushl (20+6*4)(%esp)    /* trapno */
        pushl $fault_msg
        call printk
@@ -24583,7 +24908,7 @@ index f36bd42..0ab4474 100644
  hlt_loop:
        hlt
        jmp hlt_loop
-@@ -607,8 +692,11 @@ ENDPROC(early_idt_handler)
+@@ -618,8 +703,11 @@ ENDPROC(early_idt_handler_common)
  /* This is the default interrupt "handler" :-) */
        ALIGN
  ignore_int:
@@ -24596,7 +24921,7 @@ index f36bd42..0ab4474 100644
        pushl %eax
        pushl %ecx
        pushl %edx
-@@ -617,9 +705,6 @@ ignore_int:
+@@ -628,9 +716,6 @@ ignore_int:
        movl $(__KERNEL_DS),%eax
        movl %eax,%ds
        movl %eax,%es
@@ -24606,7 +24931,7 @@ index f36bd42..0ab4474 100644
        pushl 16(%esp)
        pushl 24(%esp)
        pushl 32(%esp)
-@@ -653,29 +738,34 @@ ENTRY(setup_once_ref)
+@@ -664,29 +749,34 @@ ENTRY(setup_once_ref)
  /*
   * BSS section
   */
@@ -24646,7 +24971,7 @@ index f36bd42..0ab4474 100644
  ENTRY(initial_page_table)
        .long   pa(initial_pg_pmd+PGD_IDENT_ATTR),0     /* low identity map */
  # if KPMDS == 3
-@@ -694,12 +784,20 @@ ENTRY(initial_page_table)
+@@ -705,12 +795,20 @@ ENTRY(initial_page_table)
  #  error "Kernel PMDs should be 1, 2 or 3"
  # endif
        .align PAGE_SIZE                /* needs to be page-sized too */
@@ -24668,7 +24993,7 @@ index f36bd42..0ab4474 100644
  
  __INITRODATA
  int_msg:
-@@ -727,7 +825,7 @@ fault_msg:
+@@ -738,7 +836,7 @@ fault_msg:
   * segment size, and 32-bit linear address value:
   */
  
@@ -24677,7 +25002,7 @@ index f36bd42..0ab4474 100644
  .globl boot_gdt_descr
  .globl idt_descr
  
-@@ -736,7 +834,7 @@ fault_msg:
+@@ -747,7 +845,7 @@ fault_msg:
        .word 0                         # 32 bit align gdt_desc.address
  boot_gdt_descr:
        .word __BOOT_DS+7
@@ -24686,7 +25011,7 @@ index f36bd42..0ab4474 100644
  
        .word 0                         # 32-bit align idt_desc.address
  idt_descr:
-@@ -747,7 +845,7 @@ idt_descr:
+@@ -758,7 +856,7 @@ idt_descr:
        .word 0                         # 32 bit align gdt_desc.address
  ENTRY(early_gdt_descr)
        .word GDT_ENTRIES*8-1
@@ -24695,7 +25020,7 @@ index f36bd42..0ab4474 100644
  
  /*
   * The boot_gdt must mirror the equivalent in setup.S and is
-@@ -756,5 +854,65 @@ ENTRY(early_gdt_descr)
+@@ -767,5 +865,65 @@ ENTRY(early_gdt_descr)
        .align L1_CACHE_BYTES
  ENTRY(boot_gdt)
        .fill GDT_ENTRY_BOOT_CS,8,0
@@ -24764,7 +25089,7 @@ index f36bd42..0ab4474 100644
 +      .fill PAGE_SIZE_asm - GDT_SIZE,1,0
 +      .endr
 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
-index 6fd514d9..320367e 100644
+index df7e780..e97a497 100644
 --- a/arch/x86/kernel/head_64.S
 +++ b/arch/x86/kernel/head_64.S
 @@ -20,6 +20,8 @@
@@ -24873,7 +25198,7 @@ index 6fd514d9..320367e 100644
        .word  0
        __FINITDATA
  
-@@ -391,7 +427,7 @@ ENTRY(early_idt_handler)
+@@ -393,7 +429,7 @@ early_idt_handler_common:
        call dump_stack
  #ifdef CONFIG_KALLSYMS        
        leaq early_idt_ripmsg(%rip),%rdi
@@ -24882,7 +25207,7 @@ index 6fd514d9..320367e 100644
        call __print_symbol
  #endif
  #endif /* EARLY_PRINTK */
-@@ -420,6 +456,7 @@ ENDPROC(early_idt_handler)
+@@ -422,6 +458,7 @@ ENDPROC(early_idt_handler_common)
  early_recursion_flag:
        .long 0
  
@@ -24890,7 +25215,7 @@ index 6fd514d9..320367e 100644
  #ifdef CONFIG_EARLY_PRINTK
  early_idt_msg:
        .asciz "PANIC: early exception %02lx rip %lx:%lx error %lx cr2 %lx\n"
-@@ -447,29 +484,52 @@ NEXT_PAGE(early_level4_pgt)
+@@ -449,29 +486,52 @@ NEXT_PAGE(early_level4_pgt)
  NEXT_PAGE(early_dynamic_pgts)
        .fill   512*EARLY_DYNAMIC_PAGE_TABLES,8,0
  
@@ -24952,7 +25277,7 @@ index 6fd514d9..320367e 100644
  
  NEXT_PAGE(level3_kernel_pgt)
        .fill   L3_START_KERNEL,8,0
-@@ -477,6 +537,9 @@ NEXT_PAGE(level3_kernel_pgt)
+@@ -479,6 +539,9 @@ NEXT_PAGE(level3_kernel_pgt)
        .quad   level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
        .quad   level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
  
@@ -24962,7 +25287,7 @@ index 6fd514d9..320367e 100644
  NEXT_PAGE(level2_kernel_pgt)
        /*
         * 512 MB kernel mapping. We spend a full page on this pagetable
-@@ -492,23 +555,61 @@ NEXT_PAGE(level2_kernel_pgt)
+@@ -494,23 +557,61 @@ NEXT_PAGE(level2_kernel_pgt)
                KERNEL_IMAGE_SIZE/PMD_SIZE)
  
  NEXT_PAGE(level2_fixmap_pgt)
@@ -25030,7 +25355,7 @@ index 6fd514d9..320367e 100644
  
  ENTRY(phys_base)
        /* This must match the first entry in level2_kernel_pgt */
-@@ -532,8 +633,8 @@ NEXT_PAGE(kasan_zero_pud)
+@@ -534,8 +635,8 @@ NEXT_PAGE(kasan_zero_pud)
  
  
  #include "../../x86/xen/xen-head.S"
@@ -25070,19 +25395,6 @@ index 05fd74f..c3548b1 100644
 +#ifdef CONFIG_PAX_PER_CPU_PGD
 +EXPORT_SYMBOL(cpu_pgd);
 +#endif
-diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
-index d5651fc..29c740d 100644
---- a/arch/x86/kernel/i387.c
-+++ b/arch/x86/kernel/i387.c
-@@ -68,7 +68,7 @@ static inline bool interrupted_kernel_fpu_idle(void)
- static inline bool interrupted_user_mode(void)
- {
-       struct pt_regs *regs = get_irq_regs();
--      return regs && user_mode_vm(regs);
-+      return regs && user_mode(regs);
- }
- /*
 diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
 index e7cc537..67d7372 100644
 --- a/arch/x86/kernel/i8259.c
@@ -25138,7 +25450,7 @@ index a979b5b..1d6db75 100644
                .callback       = dmi_io_delay_0xed_port,
                .ident          = "Compaq Presario V6000",
 diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
-index 4ddaf66..49d5c18 100644
+index 37dae79..620dd84 100644
 --- a/arch/x86/kernel/ioport.c
 +++ b/arch/x86/kernel/ioport.c
 @@ -6,6 +6,7 @@
@@ -25166,8 +25478,8 @@ index 4ddaf66..49d5c18 100644
         * because the ->io_bitmap_max value must match the bitmap
         * contents:
         */
--      tss = &per_cpu(init_tss, get_cpu());
-+      tss = init_tss + get_cpu();
+-      tss = &per_cpu(cpu_tss, get_cpu());
++      tss = cpu_tss + get_cpu();
  
        if (turn_on)
                bitmap_clear(t->io_bitmap_ptr, from, num);
@@ -25185,7 +25497,7 @@ index 4ddaf66..49d5c18 100644
        regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12);
        t->iopl = level << 12;
 diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
-index 67b1cbe..6ad4cbc 100644
+index e5952c2..11c3a54 100644
 --- a/arch/x86/kernel/irq.c
 +++ b/arch/x86/kernel/irq.c
 @@ -22,7 +22,7 @@
@@ -25219,7 +25531,7 @@ index 67b1cbe..6ad4cbc 100644
  }
  
 diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
-index 28d28f5..e6cc9ae 100644
+index f9fd86a..e6cc9ae 100644
 --- a/arch/x86/kernel/irq_32.c
 +++ b/arch/x86/kernel/irq_32.c
 @@ -29,6 +29,8 @@ EXPORT_PER_CPU_SYMBOL(irq_regs);
@@ -25345,17 +25657,8 @@ index 28d28f5..e6cc9ae 100644
  }
  
  bool handle_irq(unsigned irq, struct pt_regs *regs)
-@@ -165,7 +171,7 @@ bool handle_irq(unsigned irq, struct pt_regs *regs)
-       if (unlikely(!desc))
-               return false;
--      if (user_mode_vm(regs) || !execute_on_irq_stack(overflow, desc, irq)) {
-+      if (user_mode(regs) || !execute_on_irq_stack(overflow, desc, irq)) {
-               if (unlikely(overflow))
-                       print_stack_overflow();
-               desc->handle_irq(irq, desc);
 diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
-index e4b503d..824fce8 100644
+index 394e643..824fce8 100644
 --- a/arch/x86/kernel/irq_64.c
 +++ b/arch/x86/kernel/irq_64.c
 @@ -26,6 +26,8 @@ EXPORT_PER_CPU_SYMBOL(irq_stat);
@@ -25367,15 +25670,6 @@ index e4b503d..824fce8 100644
  int sysctl_panic_on_stackoverflow;
  
  /*
-@@ -44,7 +46,7 @@ static inline void stack_overflow_check(struct pt_regs *regs)
-       u64 estack_top, estack_bottom;
-       u64 curbase = (u64)task_stack_page(current);
--      if (user_mode_vm(regs))
-+      if (user_mode(regs))
-               return;
-       if (regs->sp >= curbase + sizeof(struct thread_info) +
 @@ -69,6 +71,8 @@ static inline void stack_overflow_check(struct pt_regs *regs)
                irq_stack_top, irq_stack_bottom,
                estack_top, estack_bottom);
@@ -25424,23 +25718,9 @@ index 26d5a55..a01160a 100644
                }
                memcpy(&code, ideal_nops[NOP_ATOMIC5], JUMP_LABEL_NOP_SIZE);
 diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
-index 25ecd56..e12482f 100644
+index d6178d9..e12482f 100644
 --- a/arch/x86/kernel/kgdb.c
 +++ b/arch/x86/kernel/kgdb.c
-@@ -126,11 +126,11 @@ char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs)
- #ifdef CONFIG_X86_32
-       switch (regno) {
-       case GDB_SS:
--              if (!user_mode_vm(regs))
-+              if (!user_mode(regs))
-                       *(unsigned long *)mem = __KERNEL_DS;
-               break;
-       case GDB_SP:
--              if (!user_mode_vm(regs))
-+              if (!user_mode(regs))
-                       *(unsigned long *)mem = kernel_stack_pointer(regs);
-               break;
-       case GDB_GS:
 @@ -228,7 +228,10 @@ static void kgdb_correct_hw_break(void)
                bp->attr.bp_addr = breakinfo[breakno].addr;
                bp->attr.bp_len = breakinfo[breakno].len;
@@ -25517,7 +25797,7 @@ index 25ecd56..e12482f 100644
  }
  
 diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
-index 4e3d5a9..03fffd8 100644
+index 1deffe6..4705700 100644
 --- a/arch/x86/kernel/kprobes/core.c
 +++ b/arch/x86/kernel/kprobes/core.c
 @@ -120,9 +120,12 @@ __synthesize_relative_insn(void *from, void *to, u8 op)
@@ -25558,17 +25838,17 @@ index 4e3d5a9..03fffd8 100644
  }
  
  /*
-@@ -364,7 +367,9 @@ int __copy_instruction(u8 *dest, u8 *src)
+@@ -367,7 +370,9 @@ int __copy_instruction(u8 *dest, u8 *src)
        /* Another subsystem puts a breakpoint, failed to recover */
        if (insn.opcode.bytes[0] == BREAKPOINT_INSTRUCTION)
                return 0;
 +      pax_open_kernel();
-       memcpy(dest, insn.kaddr, insn.length);
+       memcpy(dest, insn.kaddr, length);
 +      pax_close_kernel();
  
  #ifdef CONFIG_X86_64
        if (insn_rip_relative(&insn)) {
-@@ -391,7 +396,9 @@ int __copy_instruction(u8 *dest, u8 *src)
+@@ -394,7 +399,9 @@ int __copy_instruction(u8 *dest, u8 *src)
                        return 0;
                }
                disp = (u8 *) dest + insn_offset_displacement(&insn);
@@ -25577,8 +25857,8 @@ index 4e3d5a9..03fffd8 100644
 +              pax_close_kernel();
        }
  #endif
-       return insn.length;
-@@ -533,7 +540,7 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
+       return length;
+@@ -536,7 +543,7 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
                 * nor set current_kprobe, because it doesn't use single
                 * stepping.
                 */
@@ -25587,7 +25867,7 @@ index 4e3d5a9..03fffd8 100644
                preempt_enable_no_resched();
                return;
        }
-@@ -550,9 +557,9 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
+@@ -553,9 +560,9 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
        regs->flags &= ~X86_EFLAGS_IF;
        /* single step inline if the instruction is an int3 */
        if (p->opcode == BREAKPOINT_INSTRUCTION)
@@ -25599,16 +25879,7 @@ index 4e3d5a9..03fffd8 100644
  }
  NOKPROBE_SYMBOL(setup_singlestep);
  
-@@ -602,7 +609,7 @@ int kprobe_int3_handler(struct pt_regs *regs)
-       struct kprobe *p;
-       struct kprobe_ctlblk *kcb;
--      if (user_mode_vm(regs))
-+      if (user_mode(regs))
-               return 0;
-       addr = (kprobe_opcode_t *)(regs->ip - sizeof(kprobe_opcode_t));
-@@ -637,7 +644,7 @@ int kprobe_int3_handler(struct pt_regs *regs)
+@@ -640,7 +647,7 @@ int kprobe_int3_handler(struct pt_regs *regs)
                                setup_singlestep(p, regs, kcb, 0);
                        return 1;
                }
@@ -25617,7 +25888,7 @@ index 4e3d5a9..03fffd8 100644
                /*
                 * The breakpoint instruction was removed right
                 * after we hit it.  Another cpu has removed
-@@ -684,6 +691,9 @@ static void __used kretprobe_trampoline_holder(void)
+@@ -687,6 +694,9 @@ static void __used kretprobe_trampoline_holder(void)
                        "       movq %rax, 152(%rsp)\n"
                        RESTORE_REGS_STRING
                        "       popfq\n"
@@ -25627,7 +25898,7 @@ index 4e3d5a9..03fffd8 100644
  #else
                        "       pushf\n"
                        SAVE_REGS_STRING
-@@ -824,7 +834,7 @@ static void resume_execution(struct kprobe *p, struct pt_regs *regs,
+@@ -827,7 +837,7 @@ static void resume_execution(struct kprobe *p, struct pt_regs *regs,
                             struct kprobe_ctlblk *kcb)
  {
        unsigned long *tos = stack_addr(regs);
@@ -25636,15 +25907,6 @@ index 4e3d5a9..03fffd8 100644
        unsigned long orig_ip = (unsigned long)p->addr;
        kprobe_opcode_t *insn = p->ainsn.insn;
  
-@@ -1007,7 +1017,7 @@ int kprobe_exceptions_notify(struct notifier_block *self, unsigned long val,
-       struct die_args *args = data;
-       int ret = NOTIFY_DONE;
--      if (args->regs && user_mode_vm(args->regs))
-+      if (args->regs && user_mode(args->regs))
-               return ret;
-       if (val == DIE_GPF) {
 diff --git a/arch/x86/kernel/kprobes/opt.c b/arch/x86/kernel/kprobes/opt.c
 index 7b3b9d1..e2478b91 100644
 --- a/arch/x86/kernel/kprobes/opt.c
@@ -25728,10 +25990,33 @@ index c2bedae..25e7ab60 100644
                .name = "data",
                .mode = S_IRUGO,
 diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c
-index c37886d..d851d32 100644
+index c37886d..f43b63d 100644
 --- a/arch/x86/kernel/ldt.c
 +++ b/arch/x86/kernel/ldt.c
-@@ -66,13 +66,13 @@ static int alloc_ldt(mm_context_t *pc, int mincount, int reload)
+@@ -11,6 +11,7 @@
+ #include <linux/sched.h>
+ #include <linux/string.h>
+ #include <linux/mm.h>
++#include <linux/ratelimit.h>
+ #include <linux/smp.h>
+ #include <linux/vmalloc.h>
+ #include <linux/uaccess.h>
+@@ -20,6 +21,14 @@
+ #include <asm/mmu_context.h>
+ #include <asm/syscalls.h>
++#ifdef CONFIG_GRKERNSEC
++int sysctl_modify_ldt __read_only = 0;
++#elif defined(CONFIG_DEFAULT_MODIFY_LDT_SYSCALL)
++int sysctl_modify_ldt __read_only = 1;
++#else
++int sysctl_modify_ldt __read_only = 0;
++#endif
++
+ #ifdef CONFIG_SMP
+ static void flush_ldt(void *current_mm)
+ {
+@@ -66,13 +75,13 @@ static int alloc_ldt(mm_context_t *pc, int mincount, int reload)
        if (reload) {
  #ifdef CONFIG_SMP
                preempt_disable();
@@ -25747,7 +26032,7 @@ index c37886d..d851d32 100644
  #endif
        }
        if (oldsize) {
-@@ -94,7 +94,7 @@ static inline int copy_ldt(mm_context_t *new, mm_context_t *old)
+@@ -94,7 +103,7 @@ static inline int copy_ldt(mm_context_t *new, mm_context_t *old)
                return err;
  
        for (i = 0; i < old->size; i++)
@@ -25756,7 +26041,7 @@ index c37886d..d851d32 100644
        return 0;
  }
  
-@@ -115,6 +115,24 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
+@@ -115,6 +124,24 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
                retval = copy_ldt(&mm->context, &old_mm->context);
                mutex_unlock(&old_mm->context.lock);
        }
@@ -25770,7 +26055,7 @@ index c37886d..d851d32 100644
 +              mm->context.user_cs_limit = ~0UL;
 +
 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
-+              cpus_clear(mm->context.cpu_user_cs_mask);
++              cpumask_clear(&mm->context.cpu_user_cs_mask);
 +#endif
 +
 +#endif
@@ -25781,7 +26066,7 @@ index c37886d..d851d32 100644
        return retval;
  }
  
-@@ -229,6 +247,13 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
+@@ -229,6 +256,13 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
                }
        }
  
@@ -25795,6 +26080,22 @@ index c37886d..d851d32 100644
        if (!IS_ENABLED(CONFIG_X86_16BIT) && !ldt_info.seg_32bit) {
                error = -EINVAL;
                goto out_unlock;
+@@ -254,6 +288,15 @@ asmlinkage int sys_modify_ldt(int func, void __user *ptr,
+ {
+       int ret = -ENOSYS;
++      if (!sysctl_modify_ldt) {
++              printk_ratelimited(KERN_INFO
++                      "Denied a call to modify_ldt() from %s[%d] (uid: %d)."
++                      " Adjust sysctl if this was not an exploit attempt.\n",
++                      current->comm, task_pid_nr(current),
++                      from_kuid_munged(current_user_ns(), current_uid()));
++              return ret;
++      }
++
+       switch (func) {
+       case 0:
+               ret = read_ldt(ptr, bytecount);
 diff --git a/arch/x86/kernel/livepatch.c b/arch/x86/kernel/livepatch.c
 index ff3c3101d..d7c0cd8 100644
 --- a/arch/x86/kernel/livepatch.c
@@ -25945,10 +26246,10 @@ index 94ea120..4154cea 100644
 +ENDPROC(return_to_handler)
  #endif
 diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
-index d1ac80b..f593701 100644
+index 005c03e..2f440cd 100644
 --- a/arch/x86/kernel/module.c
 +++ b/arch/x86/kernel/module.c
-@@ -82,17 +82,17 @@ static unsigned long int get_module_load_offset(void)
+@@ -75,17 +75,17 @@ static unsigned long int get_module_load_offset(void)
  }
  #endif
  
@@ -25970,7 +26271,7 @@ index d1ac80b..f593701 100644
                                    __builtin_return_address(0));
        if (p && (kasan_module_alloc(p, size) < 0)) {
                vfree(p);
-@@ -102,6 +102,51 @@ void *module_alloc(unsigned long size)
+@@ -95,6 +95,51 @@ void *module_alloc(unsigned long size)
        return p;
  }
  
@@ -26022,7 +26323,7 @@ index d1ac80b..f593701 100644
  #ifdef CONFIG_X86_32
  int apply_relocate(Elf32_Shdr *sechdrs,
                   const char *strtab,
-@@ -112,14 +157,16 @@ int apply_relocate(Elf32_Shdr *sechdrs,
+@@ -105,14 +150,16 @@ int apply_relocate(Elf32_Shdr *sechdrs,
        unsigned int i;
        Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr;
        Elf32_Sym *sym;
@@ -26042,7 +26343,7 @@ index d1ac80b..f593701 100644
                /* This is the symbol it is referring to.  Note that all
                   undefined symbols have been resolved.  */
                sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
-@@ -128,11 +175,15 @@ int apply_relocate(Elf32_Shdr *sechdrs,
+@@ -121,11 +168,15 @@ int apply_relocate(Elf32_Shdr *sechdrs,
                switch (ELF32_R_TYPE(rel[i].r_info)) {
                case R_386_32:
                        /* We add the value into the location given */
@@ -26060,7 +26361,7 @@ index d1ac80b..f593701 100644
                        break;
                default:
                        pr_err("%s: Unknown relocation: %u\n",
-@@ -177,21 +228,30 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
+@@ -170,21 +221,30 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
                case R_X86_64_NONE:
                        break;
                case R_X86_64_64:
@@ -26136,7 +26437,7 @@ index 113e707..0a690e1 100644
  };
  
 diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
-index c3e985d..110a36a 100644
+index c3e985d..f690edd 100644
 --- a/arch/x86/kernel/nmi.c
 +++ b/arch/x86/kernel/nmi.c
 @@ -98,16 +98,16 @@ fs_initcall(nmi_warning_debugfs);
@@ -26214,9 +26515,116 @@ index c3e985d..110a36a 100644
                        break;
                }
        }
-@@ -528,6 +529,17 @@ static inline void nmi_nesting_postprocess(void)
- dotraplinkage notrace void
- do_nmi(struct pt_regs *regs, long error_code)
+@@ -408,15 +409,15 @@ static void default_do_nmi(struct pt_regs *regs)
+ NOKPROBE_SYMBOL(default_do_nmi);
+ /*
+- * NMIs can hit breakpoints which will cause it to lose its
+- * NMI context with the CPU when the breakpoint does an iret.
+- */
+-#ifdef CONFIG_X86_32
+-/*
+- * For i386, NMIs use the same stack as the kernel, and we can
+- * add a workaround to the iret problem in C (preventing nested
+- * NMIs if an NMI takes a trap). Simply have 3 states the NMI
+- * can be in:
++ * NMIs can page fault or hit breakpoints which will cause it to lose
++ * its NMI context with the CPU when the breakpoint or page fault does an IRET.
++ *
++ * As a result, NMIs can nest if NMIs get unmasked due an IRET during
++ * NMI processing.  On x86_64, the asm glue protects us from nested NMIs
++ * if the outer NMI came from kernel mode, but we can still nest if the
++ * outer NMI came from user mode.
++ *
++ * To handle these nested NMIs, we have three states:
+  *
+  *  1) not running
+  *  2) executing
+@@ -430,15 +431,14 @@ NOKPROBE_SYMBOL(default_do_nmi);
+  * (Note, the latch is binary, thus multiple NMIs triggering,
+  *  when one is running, are ignored. Only one NMI is restarted.)
+  *
+- * If an NMI hits a breakpoint that executes an iret, another
+- * NMI can preempt it. We do not want to allow this new NMI
+- * to run, but we want to execute it when the first one finishes.
+- * We set the state to "latched", and the exit of the first NMI will
+- * perform a dec_return, if the result is zero (NOT_RUNNING), then
+- * it will simply exit the NMI handler. If not, the dec_return
+- * would have set the state to NMI_EXECUTING (what we want it to
+- * be when we are running). In this case, we simply jump back
+- * to rerun the NMI handler again, and restart the 'latched' NMI.
++ * If an NMI executes an iret, another NMI can preempt it. We do not
++ * want to allow this new NMI to run, but we want to execute it when the
++ * first one finishes.  We set the state to "latched", and the exit of
++ * the first NMI will perform a dec_return, if the result is zero
++ * (NOT_RUNNING), then it will simply exit the NMI handler. If not, the
++ * dec_return would have set the state to NMI_EXECUTING (what we want it
++ * to be when we are running). In this case, we simply jump back to
++ * rerun the NMI handler again, and restart the 'latched' NMI.
+  *
+  * No trap (breakpoint or page fault) should be hit before nmi_restart,
+  * thus there is no race between the first check of state for NOT_RUNNING
+@@ -461,49 +461,47 @@ enum nmi_states {
+ static DEFINE_PER_CPU(enum nmi_states, nmi_state);
+ static DEFINE_PER_CPU(unsigned long, nmi_cr2);
+-#define nmi_nesting_preprocess(regs)                                  \
+-      do {                                                            \
+-              if (this_cpu_read(nmi_state) != NMI_NOT_RUNNING) {      \
+-                      this_cpu_write(nmi_state, NMI_LATCHED);         \
+-                      return;                                         \
+-              }                                                       \
+-              this_cpu_write(nmi_state, NMI_EXECUTING);               \
+-              this_cpu_write(nmi_cr2, read_cr2());                    \
+-      } while (0);                                                    \
+-      nmi_restart:
+-
+-#define nmi_nesting_postprocess()                                     \
+-      do {                                                            \
+-              if (unlikely(this_cpu_read(nmi_cr2) != read_cr2()))     \
+-                      write_cr2(this_cpu_read(nmi_cr2));              \
+-              if (this_cpu_dec_return(nmi_state))                     \
+-                      goto nmi_restart;                               \
+-      } while (0)
+-#else /* x86_64 */
++#ifdef CONFIG_X86_64
+ /*
+- * In x86_64 things are a bit more difficult. This has the same problem
+- * where an NMI hitting a breakpoint that calls iret will remove the
+- * NMI context, allowing a nested NMI to enter. What makes this more
+- * difficult is that both NMIs and breakpoints have their own stack.
+- * When a new NMI or breakpoint is executed, the stack is set to a fixed
+- * point. If an NMI is nested, it will have its stack set at that same
+- * fixed address that the first NMI had, and will start corrupting the
+- * stack. This is handled in entry_64.S, but the same problem exists with
+- * the breakpoint stack.
++ * In x86_64, we need to handle breakpoint -> NMI -> breakpoint.  Without
++ * some care, the inner breakpoint will clobber the outer breakpoint's
++ * stack.
+  *
+- * If a breakpoint is being processed, and the debug stack is being used,
+- * if an NMI comes in and also hits a breakpoint, the stack pointer
+- * will be set to the same fixed address as the breakpoint that was
+- * interrupted, causing that stack to be corrupted. To handle this case,
+- * check if the stack that was interrupted is the debug stack, and if
+- * so, change the IDT so that new breakpoints will use the current stack
+- * and not switch to the fixed address. On return of the NMI, switch back
+- * to the original IDT.
++ * If a breakpoint is being processed, and the debug stack is being
++ * used, if an NMI comes in and also hits a breakpoint, the stack
++ * pointer will be set to the same fixed address as the breakpoint that
++ * was interrupted, causing that stack to be corrupted. To handle this
++ * case, check if the stack that was interrupted is the debug stack, and
++ * if so, change the IDT so that new breakpoints will use the current
++ * stack and not switch to the fixed address. On return of the NMI,
++ * switch back to the original IDT.
+  */
+ static DEFINE_PER_CPU(int, update_debug_stack);
++#endif
+-static inline void nmi_nesting_preprocess(struct pt_regs *regs)
++dotraplinkage notrace void
++do_nmi(struct pt_regs *regs, long error_code)
  {
 +
 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
@@ -26229,9 +26637,61 @@ index c3e985d..110a36a 100644
 +      }
 +#endif
 +
-       nmi_nesting_preprocess(regs);
++      if (this_cpu_read(nmi_state) != NMI_NOT_RUNNING) {
++              this_cpu_write(nmi_state, NMI_LATCHED);
++              return;
++      }
++      this_cpu_write(nmi_state, NMI_EXECUTING);
++      this_cpu_write(nmi_cr2, read_cr2());
++nmi_restart:
++
++#ifdef CONFIG_X86_64
+       /*
+        * If we interrupted a breakpoint, it is possible that
+        * the nmi handler will have breakpoints too. We need to
+@@ -514,22 +512,8 @@ static inline void nmi_nesting_preprocess(struct pt_regs *regs)
+               debug_stack_set_zero();
+               this_cpu_write(update_debug_stack, 1);
+       }
+-}
+-
+-static inline void nmi_nesting_postprocess(void)
+-{
+-      if (unlikely(this_cpu_read(update_debug_stack))) {
+-              debug_stack_reset();
+-              this_cpu_write(update_debug_stack, 0);
+-      }
+-}
+ #endif
  
+-dotraplinkage notrace void
+-do_nmi(struct pt_regs *regs, long error_code)
+-{
+-      nmi_nesting_preprocess(regs);
+-
        nmi_enter();
+       inc_irq_stat(__nmi_count);
+@@ -539,8 +523,17 @@ do_nmi(struct pt_regs *regs, long error_code)
+       nmi_exit();
+-      /* On i386, may loop back to preprocess */
+-      nmi_nesting_postprocess();
++#ifdef CONFIG_X86_64
++      if (unlikely(this_cpu_read(update_debug_stack))) {
++              debug_stack_reset();
++              this_cpu_write(update_debug_stack, 0);
++      }
++#endif
++
++      if (unlikely(this_cpu_read(nmi_cr2) != read_cr2()))
++              write_cr2(this_cpu_read(nmi_cr2));
++      if (this_cpu_dec_return(nmi_state))
++              goto nmi_restart;
+ }
+ NOKPROBE_SYMBOL(do_nmi);
 diff --git a/arch/x86/kernel/nmi_selftest.c b/arch/x86/kernel/nmi_selftest.c
 index 6d9582e..f746287 100644
 --- a/arch/x86/kernel/nmi_selftest.c
@@ -26268,7 +26728,7 @@ index bbb6c73..24a58ef 100644
        .lock_spinning = __PV_IS_CALLEE_SAVE(paravirt_nop),
        .unlock_kick = paravirt_nop,
 diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
-index 548d25f..f8fb99c 100644
+index c614dd4..9ad659e 100644
 --- a/arch/x86/kernel/paravirt.c
 +++ b/arch/x86/kernel/paravirt.c
 @@ -56,6 +56,9 @@ u64 _paravirt_ident_64(u64 x)
@@ -26389,7 +26849,7 @@ index 548d25f..f8fb99c 100644
        .set_pgd = native_set_pgd,
 +      .set_pgd_batched = native_set_pgd_batched,
  #endif
- #endif /* PAGETABLE_LEVELS >= 3 */
+ #endif /* CONFIG_PGTABLE_LEVELS >= 3 */
  
 @@ -479,6 +492,12 @@ struct pv_mmu_ops pv_mmu_ops = {
        },
@@ -26472,20 +26932,28 @@ index 77dd0ad..9ec4723 100644
                dma_generic_free_coherent(dev, size, vaddr, dma_addr, attrs);
  }
 diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
-index a388bb8..97064ad 100644
+index 6e338e3..82f946e 100644
 --- a/arch/x86/kernel/process.c
 +++ b/arch/x86/kernel/process.c
 @@ -38,7 +38,8 @@
   * section. Since TSS's are completely CPU-local, we want them
   * on exact cacheline boundaries, to eliminate cacheline ping-pong.
   */
--__visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS;
-+struct tss_struct init_tss[NR_CPUS] __visible ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS };
-+EXPORT_SYMBOL(init_tss);
+-__visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
++struct tss_struct cpu_tss[NR_CPUS] __visible ____cacheline_internodealigned_in_smp = {
++      [0 ... NR_CPUS-1] = {
+       .x86_tss = {
+               .sp0 = TOP_OF_INIT_STACK,
+ #ifdef CONFIG_X86_32
+@@ -56,6 +57,7 @@ __visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
+         */
+       .io_bitmap              = { [0 ... IO_BITMAP_LONGS] = ~0 },
+ #endif
++}
+ };
+ EXPORT_PER_CPU_SYMBOL(cpu_tss);
  
- #ifdef CONFIG_X86_64
- static DEFINE_PER_CPU(unsigned char, is_idle);
-@@ -96,7 +97,7 @@ void arch_task_cache_init(void)
+@@ -115,7 +117,7 @@ void arch_task_cache_init(void)
          task_xstate_cachep =
                kmem_cache_create("task_xstate", xstate_size,
                                  __alignof__(union thread_xstate),
@@ -26494,16 +26962,16 @@ index a388bb8..97064ad 100644
        setup_xstate_comp();
  }
  
-@@ -110,7 +111,7 @@ void exit_thread(void)
+@@ -129,7 +131,7 @@ void exit_thread(void)
        unsigned long *bp = t->io_bitmap_ptr;
  
        if (bp) {
--              struct tss_struct *tss = &per_cpu(init_tss, get_cpu());
-+              struct tss_struct *tss = init_tss + get_cpu();
+-              struct tss_struct *tss = &per_cpu(cpu_tss, get_cpu());
++              struct tss_struct *tss = cpu_tss + get_cpu();
  
                t->io_bitmap_ptr = NULL;
                clear_thread_flag(TIF_IO_BITMAP);
-@@ -130,6 +131,9 @@ void flush_thread(void)
+@@ -149,6 +151,9 @@ void flush_thread(void)
  {
        struct task_struct *tsk = current;
  
@@ -26512,8 +26980,8 @@ index a388bb8..97064ad 100644
 +#endif
        flush_ptrace_hw_breakpoint(tsk);
        memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
-       drop_init_fpu(tsk);
-@@ -276,7 +280,7 @@ static void __exit_idle(void)
+@@ -302,7 +307,7 @@ static void __exit_idle(void)
  void exit_idle(void)
  {
        /* idle loop has pid 0 */
@@ -26522,7 +26990,7 @@ index a388bb8..97064ad 100644
                return;
        __exit_idle();
  }
-@@ -329,7 +333,7 @@ bool xen_set_default_idle(void)
+@@ -355,7 +360,7 @@ bool xen_set_default_idle(void)
        return ret;
  }
  #endif
@@ -26531,32 +26999,35 @@ index a388bb8..97064ad 100644
  {
        local_irq_disable();
        /*
-@@ -508,16 +512,37 @@ static int __init idle_setup(char *str)
+@@ -531,16 +536,43 @@ static int __init idle_setup(char *str)
  }
  early_param("idle", idle_setup);
  
 -unsigned long arch_align_stack(unsigned long sp)
-+#ifdef CONFIG_PAX_RANDKSTACK
-+void pax_randomize_kstack(struct pt_regs *regs)
- {
+-{
 -      if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
 -              sp -= get_random_int() % 8192;
 -      return sp & ~0xf;
 -}
+-
+ unsigned long arch_randomize_brk(struct mm_struct *mm)
+ {
+       unsigned long range_end = mm->brk + 0x02000000;
+       return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
+ }
++#ifdef CONFIG_PAX_RANDKSTACK
++void pax_randomize_kstack(struct pt_regs *regs)
++{
 +      struct thread_struct *thread = &current->thread;
 +      unsigned long time;
--unsigned long arch_randomize_brk(struct mm_struct *mm)
--{
--      unsigned long range_end = mm->brk + 0x02000000;
--      return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
--}
++
 +      if (!randomize_va_space)
 +              return;
 +
 +      if (v8086_mode(regs))
 +              return;
++
 +      rdtscl(time);
 +
 +      /* P4 seems to return a 0 LSB, ignore it */
@@ -26572,7 +27043,7 @@ index a388bb8..97064ad 100644
 +#endif
 +
 +      thread->sp0 ^= time;
-+      load_sp0(init_tss + smp_processor_id(), thread);
++      load_sp0(cpu_tss + smp_processor_id(), thread);
 +
 +#ifdef CONFIG_X86_64
 +      this_cpu_write(kernel_stack, thread->sp0);
@@ -26580,7 +27051,7 @@ index a388bb8..97064ad 100644
 +}
 +#endif
 diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
-index 603c4f9..3a105d7 100644
+index 8ed2106..1345704 100644
 --- a/arch/x86/kernel/process_32.c
 +++ b/arch/x86/kernel/process_32.c
 @@ -64,6 +64,7 @@ asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread");
@@ -26591,12 +27062,8 @@ index 603c4f9..3a105d7 100644
  }
  
  void __show_regs(struct pt_regs *regs, int all)
-@@ -73,19 +74,18 @@ void __show_regs(struct pt_regs *regs, int all)
-       unsigned long sp;
-       unsigned short ss, gs;
--      if (user_mode_vm(regs)) {
-+      if (user_mode(regs)) {
+@@ -76,16 +77,15 @@ void __show_regs(struct pt_regs *regs, int all)
+       if (user_mode(regs)) {
                sp = regs->sp;
                ss = regs->ss & 0xffff;
 -              gs = get_user_gs(regs);
@@ -26641,16 +27108,16 @@ index 603c4f9..3a105d7 100644
                childregs->fs = __KERNEL_PERCPU;
                childregs->bx = sp;     /* function */
                childregs->bp = arg;
-@@ -248,7 +249,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -244,7 +245,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
        struct thread_struct *prev = &prev_p->thread,
                                 *next = &next_p->thread;
        int cpu = smp_processor_id();
--      struct tss_struct *tss = &per_cpu(init_tss, cpu);
-+      struct tss_struct *tss = init_tss + cpu;
+-      struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
++      struct tss_struct *tss = cpu_tss + cpu;
        fpu_switch_t fpu;
  
        /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
-@@ -272,6 +273,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -263,6 +264,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
         */
        lazy_save_gs(prev->gs);
  
@@ -26661,20 +27128,24 @@ index 603c4f9..3a105d7 100644
        /*
         * Load the per-thread Thread-Local Storage descriptor.
         */
-@@ -310,9 +315,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -306,12 +311,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+        * current_thread_info().
         */
-       arch_end_context_switch(next_p);
+       load_sp0(tss, next);
 -      this_cpu_write(kernel_stack,
--                (unsigned long)task_stack_page(next_p) +
--                THREAD_SIZE - KERNEL_STACK_OFFSET);
+-                     (unsigned long)task_stack_page(next_p) +
+-                     THREAD_SIZE);
+-      this_cpu_write(cpu_current_top_of_stack,
+-                     (unsigned long)task_stack_page(next_p) +
+-                     THREAD_SIZE);
 +      this_cpu_write(current_task, next_p);
 +      this_cpu_write(current_tinfo, &next_p->tinfo);
 +      this_cpu_write(kernel_stack, next->sp0);
++      this_cpu_write(cpu_current_top_of_stack, next->sp0);
  
        /*
         * Restore %gs if needed (which is common)
-@@ -322,8 +327,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -321,8 +324,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
  
        switch_fpu_finish(next_p, fpu);
  
@@ -26683,16 +27154,16 @@ index 603c4f9..3a105d7 100644
        return prev_p;
  }
  
-@@ -353,4 +356,3 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -352,4 +353,3 @@ unsigned long get_wchan(struct task_struct *p)
        } while (count++ < 16);
        return 0;
  }
 -
 diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
-index 67fcc43..0d2c630 100644
+index ddfdbf7..625417c 100644
 --- a/arch/x86/kernel/process_64.c
 +++ b/arch/x86/kernel/process_64.c
-@@ -158,10 +158,11 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
+@@ -158,9 +158,10 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
        struct pt_regs *childregs;
        struct task_struct *me = current;
  
@@ -26700,12 +27171,11 @@ index 67fcc43..0d2c630 100644
 +      p->thread.sp0 = (unsigned long)task_stack_page(p) + THREAD_SIZE - 16;
        childregs = task_pt_regs(p);
        p->thread.sp = (unsigned long) childregs;
-       p->thread.usersp = me->thread.usersp;
 +      p->tinfo.lowest_stack = (unsigned long)task_stack_page(p) + 2 * sizeof(unsigned long);
        set_tsk_thread_flag(p, TIF_FORK);
        p->thread.io_bitmap_ptr = NULL;
  
-@@ -171,6 +172,8 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
+@@ -170,6 +171,8 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
        p->thread.fs = p->thread.fsindex ? 0 : me->thread.fs;
        savesegment(es, p->thread.es);
        savesegment(ds, p->thread.ds);
@@ -26714,16 +27184,16 @@ index 67fcc43..0d2c630 100644
        memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
  
        if (unlikely(p->flags & PF_KTHREAD)) {
-@@ -277,7 +280,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -275,7 +278,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
        struct thread_struct *prev = &prev_p->thread;
        struct thread_struct *next = &next_p->thread;
        int cpu = smp_processor_id();
--      struct tss_struct *tss = &per_cpu(init_tss, cpu);
-+      struct tss_struct *tss = init_tss + cpu;
+-      struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
++      struct tss_struct *tss = cpu_tss + cpu;
        unsigned fsindex, gsindex;
        fpu_switch_t fpu;
  
-@@ -331,6 +334,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -326,6 +329,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
        if (unlikely(next->ds | prev->ds))
                loadsegment(ds, next->ds);
  
@@ -26734,26 +27204,25 @@ index 67fcc43..0d2c630 100644
        /*
         * Switch FS and GS.
         *
-@@ -404,6 +411,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
-       prev->usersp = this_cpu_read(old_rsp);
-       this_cpu_write(old_rsp, next->usersp);
+@@ -397,6 +404,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+        * Switch the PDA and FPU contexts.
+        */
        this_cpu_write(current_task, next_p);
 +      this_cpu_write(current_tinfo, &next_p->tinfo);
  
        /*
         * If it were not for PREEMPT_ACTIVE we could guarantee that the
-@@ -413,9 +421,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
-       task_thread_info(prev_p)->saved_preempt_count = this_cpu_read(__preempt_count);
-       this_cpu_write(__preempt_count, task_thread_info(next_p)->saved_preempt_count);
+@@ -409,8 +417,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+       /* Reload esp0 and ss1.  This changes current_thread_info(). */
+       load_sp0(tss, next);
  
 -      this_cpu_write(kernel_stack,
--                (unsigned long)task_stack_page(next_p) +
--                THREAD_SIZE - KERNEL_STACK_OFFSET);
+-              (unsigned long)task_stack_page(next_p) + THREAD_SIZE);
 +      this_cpu_write(kernel_stack, next->sp0);
  
        /*
         * Now maybe reload the debug registers and handle I/O bitmaps
-@@ -485,12 +491,11 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -508,12 +515,11 @@ unsigned long get_wchan(struct task_struct *p)
        if (!p || p == current || p->state == TASK_RUNNING)
                return 0;
        stack = (unsigned long)task_stack_page(p);
@@ -26769,7 +27238,7 @@ index 67fcc43..0d2c630 100644
                ip = *(u64 *)(fp+8);
                if (!in_sched_functions(ip))
 diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
-index e510618..5165ac0 100644
+index a7bc794..094ee8e 100644
 --- a/arch/x86/kernel/ptrace.c
 +++ b/arch/x86/kernel/ptrace.c
 @@ -186,10 +186,10 @@ unsigned long kernel_stack_pointer(struct pt_regs *regs)
@@ -26785,7 +27254,7 @@ index e510618..5165ac0 100644
        if (prev_esp)
                return (unsigned long)prev_esp;
  
-@@ -452,6 +452,20 @@ static int putreg(struct task_struct *child,
+@@ -446,6 +446,20 @@ static int putreg(struct task_struct *child,
                if (child->thread.gs != value)
                        return do_arch_prctl(child, ARCH_SET_GS, value);
                return 0;
@@ -26806,7 +27275,7 @@ index e510618..5165ac0 100644
  #endif
        }
  
-@@ -588,7 +602,7 @@ static void ptrace_triggered(struct perf_event *bp,
+@@ -582,7 +596,7 @@ static void ptrace_triggered(struct perf_event *bp,
  static unsigned long ptrace_get_dr7(struct perf_event *bp[])
  {
        int i;
@@ -26815,7 +27284,7 @@ index e510618..5165ac0 100644
        struct arch_hw_breakpoint *info;
  
        for (i = 0; i < HBP_NUM; i++) {
-@@ -822,7 +836,7 @@ long arch_ptrace(struct task_struct *child, long request,
+@@ -816,7 +830,7 @@ long arch_ptrace(struct task_struct *child, long request,
                 unsigned long addr, unsigned long data)
  {
        int ret;
@@ -26824,7 +27293,7 @@ index e510618..5165ac0 100644
  
        switch (request) {
        /* read the word at location addr in the USER area. */
-@@ -907,14 +921,14 @@ long arch_ptrace(struct task_struct *child, long request,
+@@ -901,14 +915,14 @@ long arch_ptrace(struct task_struct *child, long request,
                if ((int) addr < 0)
                        return -EIO;
                ret = do_get_thread_area(child, addr,
@@ -26841,7 +27310,7 @@ index e510618..5165ac0 100644
                break;
  #endif
  
-@@ -1292,7 +1306,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
+@@ -1286,7 +1300,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
  
  #ifdef CONFIG_X86_64
  
@@ -26850,7 +27319,7 @@ index e510618..5165ac0 100644
        [REGSET_GENERAL] = {
                .core_note_type = NT_PRSTATUS,
                .n = sizeof(struct user_regs_struct) / sizeof(long),
-@@ -1333,7 +1347,7 @@ static const struct user_regset_view user_x86_64_view = {
+@@ -1327,7 +1341,7 @@ static const struct user_regset_view user_x86_64_view = {
  #endif        /* CONFIG_X86_64 */
  
  #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
@@ -26859,7 +27328,7 @@ index e510618..5165ac0 100644
        [REGSET_GENERAL] = {
                .core_note_type = NT_PRSTATUS,
                .n = sizeof(struct user_regs_struct32) / sizeof(u32),
-@@ -1386,7 +1400,7 @@ static const struct user_regset_view user_x86_32_view = {
+@@ -1380,7 +1394,7 @@ static const struct user_regset_view user_x86_32_view = {
   */
  u64 xstate_fx_sw_bytes[USER_XSTATE_FX_SW_WORDS];
  
@@ -26868,16 +27337,16 @@ index e510618..5165ac0 100644
  {
  #ifdef CONFIG_X86_64
        x86_64_regsets[REGSET_XSTATE].n = size / sizeof(u64);
-@@ -1421,7 +1435,7 @@ static void fill_sigtrap_info(struct task_struct *tsk,
+@@ -1415,7 +1429,7 @@ static void fill_sigtrap_info(struct task_struct *tsk,
        memset(info, 0, sizeof(*info));
        info->si_signo = SIGTRAP;
        info->si_code = si_code;
--      info->si_addr = user_mode_vm(regs) ? (void __user *)regs->ip : NULL;
+-      info->si_addr = user_mode(regs) ? (void __user *)regs->ip : NULL;
 +      info->si_addr = user_mode(regs) ? (__force void __user *)regs->ip : NULL;
  }
  
  void user_single_step_siginfo(struct task_struct *tsk,
-@@ -1455,6 +1469,10 @@ static void do_audit_syscall_entry(struct pt_regs *regs, u32 arch)
+@@ -1449,6 +1463,10 @@ static void do_audit_syscall_entry(struct pt_regs *regs, u32 arch)
        }
  }
  
@@ -26888,7 +27357,7 @@ index e510618..5165ac0 100644
  /*
   * We can return 0 to resume the syscall or anything else to go to phase
   * 2.  If we resume the syscall, we need to put something appropriate in
-@@ -1562,6 +1580,11 @@ long syscall_trace_enter_phase2(struct pt_regs *regs, u32 arch,
+@@ -1556,6 +1574,11 @@ long syscall_trace_enter_phase2(struct pt_regs *regs, u32 arch,
  
        BUG_ON(regs != task_pt_regs(current));
  
@@ -26900,7 +27369,7 @@ index e510618..5165ac0 100644
        /*
         * If we stepped into a sysenter/syscall insn, it trapped in
         * kernel mode; do_debug() cleared TF and set TIF_SINGLESTEP.
-@@ -1620,6 +1643,11 @@ void syscall_trace_leave(struct pt_regs *regs)
+@@ -1614,6 +1637,11 @@ void syscall_trace_leave(struct pt_regs *regs)
         */
        user_exit();
  
@@ -26913,7 +27382,7 @@ index e510618..5165ac0 100644
  
        if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
 diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
-index e5ecd20..60f7eef 100644
+index 2f355d2..e75ed0a 100644
 --- a/arch/x86/kernel/pvclock.c
 +++ b/arch/x86/kernel/pvclock.c
 @@ -51,11 +51,11 @@ void pvclock_touch_watchdogs(void)
@@ -27069,7 +27538,7 @@ index c8e41e9..64049ef 100644
  /*
   * PCI ids solely used for fixups_table go here
 diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
-index 3fd2c69..a444264 100644
+index 98111b3..73ca125 100644
 --- a/arch/x86/kernel/relocate_kernel_64.S
 +++ b/arch/x86/kernel/relocate_kernel_64.S
 @@ -96,8 +96,7 @@ relocate_kernel:
@@ -27083,7 +27552,7 @@ index 3fd2c69..a444264 100644
  identity_mapped:
        /* set return address to 0 if not preserving context */
 diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 0a2421c..11f3f36 100644
+index d74ac33..d9efe04 100644
 --- a/arch/x86/kernel/setup.c
 +++ b/arch/x86/kernel/setup.c
 @@ -111,6 +111,7 @@
@@ -27128,7 +27597,7 @@ index 0a2421c..11f3f36 100644
        u64 size = __pa_symbol(_end) - start;
  
        /*
-@@ -855,8 +858,12 @@ dump_kernel_offset(struct notifier_block *self, unsigned long v, void *p)
+@@ -860,8 +863,12 @@ dump_kernel_offset(struct notifier_block *self, unsigned long v, void *p)
  
  void __init setup_arch(char **cmdline_p)
  {
@@ -27141,7 +27610,7 @@ index 0a2421c..11f3f36 100644
  
        early_reserve_initrd();
  
-@@ -954,16 +961,16 @@ void __init setup_arch(char **cmdline_p)
+@@ -959,16 +966,16 @@ void __init setup_arch(char **cmdline_p)
  
        if (!boot_params.hdr.root_flags)
                root_mountflags &= ~MS_RDONLY;
@@ -27240,10 +27709,10 @@ index e4fcb87..9c06c55 100644
                 * Up to this point, the boot CPU has been using .init.data
                 * area.  Reload any changed state for the boot CPU.
 diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
-index e504246..ba10432 100644
+index 1ea14fd..b16147f 100644
 --- a/arch/x86/kernel/signal.c
 +++ b/arch/x86/kernel/signal.c
-@@ -190,7 +190,7 @@ static unsigned long align_sigframe(unsigned long sp)
+@@ -183,7 +183,7 @@ static unsigned long align_sigframe(unsigned long sp)
         * Align the stack pointer according to the i386 ABI,
         * i.e. so that on function entry ((sp + 4) & 15) == 0.
         */
@@ -27252,7 +27721,7 @@ index e504246..ba10432 100644
  #else /* !CONFIG_X86_32 */
        sp = round_down(sp, 16) - 8;
  #endif
-@@ -298,10 +298,9 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
+@@ -291,10 +291,9 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
        }
  
        if (current->mm->context.vdso)
@@ -27265,7 +27734,7 @@ index e504246..ba10432 100644
        if (ksig->ka.sa.sa_flags & SA_RESTORER)
                restorer = ksig->ka.sa.sa_restorer;
  
-@@ -315,7 +314,7 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
+@@ -308,7 +307,7 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
         * reasons and because gdb uses it as a signature to notice
         * signal handler stack frames.
         */
@@ -27274,7 +27743,7 @@ index e504246..ba10432 100644
  
        if (err)
                return -EFAULT;
-@@ -362,8 +361,10 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
+@@ -355,8 +354,10 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
                save_altstack_ex(&frame->uc.uc_stack, regs->sp);
  
                /* Set up to return from userspace.  */
@@ -27287,7 +27756,7 @@ index e504246..ba10432 100644
                if (ksig->ka.sa.sa_flags & SA_RESTORER)
                        restorer = ksig->ka.sa.sa_restorer;
                put_user_ex(restorer, &frame->pretcode);
-@@ -375,7 +376,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
+@@ -368,7 +369,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
                 * reasons and because gdb uses it as a signature to notice
                 * signal handler stack frames.
                 */
@@ -27296,9 +27765,9 @@ index e504246..ba10432 100644
        } put_user_catch(err);
        
        err |= copy_siginfo_to_user(&frame->info, &ksig->info);
-@@ -611,7 +612,12 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
+@@ -598,7 +599,12 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
  {
-       int usig = signr_convert(ksig->sig);
+       int usig = ksig->sig;
        sigset_t *set = sigmask_to_save();
 -      compat_sigset_t *cset = (compat_sigset_t *) set;
 +      sigset_t sigcopy;
@@ -27310,7 +27779,7 @@ index e504246..ba10432 100644
  
        /* Set up the stack frame */
        if (is_ia32_frame()) {
-@@ -622,7 +628,7 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
+@@ -609,7 +615,7 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
        } else if (is_x32_frame()) {
                return x32_setup_rt_frame(ksig, cset, regs);
        } else {
@@ -27333,10 +27802,10 @@ index be8e1bd..a3d93fa 100644
        .smp_prepare_cpus       = native_smp_prepare_cpus,
        .smp_cpus_done          = native_smp_cpus_done,
 diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
-index febc6aa..37d8edf 100644
+index 50e547e..d59d06a 100644
 --- a/arch/x86/kernel/smpboot.c
 +++ b/arch/x86/kernel/smpboot.c
-@@ -229,14 +229,17 @@ static void notrace start_secondary(void *unused)
+@@ -226,14 +226,17 @@ static void notrace start_secondary(void *unused)
  
        enable_start_cpu0 = 0;
  
@@ -27358,34 +27827,44 @@ index febc6aa..37d8edf 100644
        /*
         * Check TSC synchronization with the BP:
         */
-@@ -800,8 +803,9 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
+@@ -782,18 +785,17 @@ void common_cpu_up(unsigned int cpu, struct task_struct *idle)
        alternatives_enable_smp();
  
-       idle->thread.sp = (unsigned long) (((struct pt_regs *)
--                        (THREAD_SIZE +  task_stack_page(idle))) - 1);
-+                        (THREAD_SIZE - 16 + task_stack_page(idle))) - 1);
        per_cpu(current_task, cpu) = idle;
 +      per_cpu(current_tinfo, cpu) = &idle->tinfo;
  
  #ifdef CONFIG_X86_32
        /* Stack for startup_32 can be just as for start_secondary onwards */
-@@ -810,10 +814,10 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
+       irq_ctx_init(cpu);
+-      per_cpu(cpu_current_top_of_stack, cpu) =
+-              (unsigned long)task_stack_page(idle) + THREAD_SIZE;
++      per_cpu(cpu_current_top_of_stack, cpu) = (unsigned long)task_stack_page(idle) - 16 + THREAD_SIZE;
+ #else
        clear_tsk_thread_flag(idle, TIF_FORK);
        initial_gs = per_cpu_offset(cpu);
  #endif
 -      per_cpu(kernel_stack, cpu) =
--              (unsigned long)task_stack_page(idle) -
--              KERNEL_STACK_OFFSET + THREAD_SIZE;
+-              (unsigned long)task_stack_page(idle) + THREAD_SIZE;
 +      per_cpu(kernel_stack, cpu) = (unsigned long)task_stack_page(idle) - 16 + THREAD_SIZE;
+ }
+ /*
+@@ -814,9 +816,11 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
+       unsigned long timeout;
+       idle->thread.sp = (unsigned long) (((struct pt_regs *)
+-                        (THREAD_SIZE +  task_stack_page(idle))) - 1);
++                        (THREAD_SIZE - 16 + task_stack_page(idle))) - 1);
 +      pax_open_kernel();
        early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
 +      pax_close_kernel();
        initial_code = (unsigned long)start_secondary;
        stack_start  = idle->thread.sp;
  
-@@ -953,6 +957,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
-       /* the FPU context is blank, nobody can own it */
-       __cpu_disable_lazy_restore(cpu);
+@@ -961,6 +965,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
+       common_cpu_up(cpu, tidle);
  
 +#ifdef CONFIG_PAX_PER_CPU_PGD
 +      clone_pgd_range(get_cpu_pgd(cpu, kernel) + KERNEL_PGD_BOUNDARY,
@@ -27632,10 +28111,10 @@ index 0000000..5877189
 +      return arch_get_unmapped_area(filp, addr0, len, pgoff, flags);
 +}
 diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
-index 30277e2..5664a29 100644
+index 10e0272..b4bb9a7 100644
 --- a/arch/x86/kernel/sys_x86_64.c
 +++ b/arch/x86/kernel/sys_x86_64.c
-@@ -81,8 +81,8 @@ out:
+@@ -97,8 +97,8 @@ out:
        return error;
  }
  
@@ -27646,7 +28125,7 @@ index 30277e2..5664a29 100644
  {
        if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT)) {
                unsigned long new_begin;
-@@ -101,7 +101,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
+@@ -117,7 +117,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
                                *begin = new_begin;
                }
        } else {
@@ -27655,7 +28134,7 @@ index 30277e2..5664a29 100644
                *end = TASK_SIZE;
        }
  }
-@@ -114,20 +114,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -130,20 +130,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
        struct vm_area_struct *vma;
        struct vm_unmapped_area_info info;
        unsigned long begin, end;
@@ -27683,15 +28162,15 @@ index 30277e2..5664a29 100644
                        return addr;
        }
  
-@@ -137,6 +141,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
-       info.high_limit = end;
-       info.align_mask = filp ? get_align_mask() : 0;
-       info.align_offset = pgoff << PAGE_SHIFT;
+@@ -157,6 +161,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+               info.align_mask = get_align_mask();
+               info.align_offset += get_align_bits();
+       }
 +      info.threadstack_offset = offset;
        return vm_unmapped_area(&info);
  }
  
-@@ -149,6 +154,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -169,6 +174,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        struct mm_struct *mm = current->mm;
        unsigned long addr = addr0;
        struct vm_unmapped_area_info info;
@@ -27699,7 +28178,7 @@ index 30277e2..5664a29 100644
  
        /* requested length too big for entire address space */
        if (len > TASK_SIZE)
-@@ -161,12 +167,15 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -181,12 +187,15 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT))
                goto bottomup;
  
@@ -27717,10 +28196,10 @@ index 30277e2..5664a29 100644
                        return addr;
        }
  
-@@ -176,6 +185,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
-       info.high_limit = mm->mmap_base;
-       info.align_mask = filp ? get_align_mask() : 0;
-       info.align_offset = pgoff << PAGE_SHIFT;
+@@ -200,6 +209,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+               info.align_mask = get_align_mask();
+               info.align_offset += get_align_bits();
+       }
 +      info.threadstack_offset = offset;
        addr = vm_unmapped_area(&info);
        if (!(addr & ~PAGE_MASK))
@@ -27788,15 +28267,12 @@ index 91a4496..42fc304 100644
  
  #ifdef CONFIG_DEBUG_FS
 diff --git a/arch/x86/kernel/time.c b/arch/x86/kernel/time.c
-index 25adc0e..1df4349 100644
+index d39c091..1df4349 100644
 --- a/arch/x86/kernel/time.c
 +++ b/arch/x86/kernel/time.c
-@@ -30,9 +30,9 @@ unsigned long profile_pc(struct pt_regs *regs)
- {
-       unsigned long pc = instruction_pointer(regs);
+@@ -32,7 +32,7 @@ unsigned long profile_pc(struct pt_regs *regs)
  
--      if (!user_mode_vm(regs) && in_lock_functions(pc)) {
-+      if (!user_mode(regs) && in_lock_functions(pc)) {
+       if (!user_mode(regs) && in_lock_functions(pc)) {
  #ifdef CONFIG_FRAME_POINTER
 -              return *(unsigned long *)(regs->bp + sizeof(long));
 +              return ktla_ktva(*(unsigned long *)(regs->bp + sizeof(long)));
@@ -27865,7 +28341,7 @@ index 1c113db..287b42e 100644
  static int trace_irq_vector_refcount;
  static DEFINE_MUTEX(irq_vector_mutex);
 diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index 4ff5d16..736e3e1 100644
+index 324ab52..0cfd2d05 100644
 --- a/arch/x86/kernel/traps.c
 +++ b/arch/x86/kernel/traps.c
 @@ -68,7 +68,7 @@
@@ -27886,43 +28362,16 @@ index 4ff5d16..736e3e1 100644
  
  DECLARE_BITMAP(used_vectors, NR_VECTORS);
  EXPORT_SYMBOL_GPL(used_vectors);
-@@ -112,7 +112,7 @@ enum ctx_state ist_enter(struct pt_regs *regs)
- {
-       enum ctx_state prev_state;
+@@ -174,7 +174,7 @@ void ist_begin_non_atomic(struct pt_regs *regs)
+        * will catch asm bugs and any attempt to use ist_preempt_enable
+        * from double_fault.
+        */
+-      BUG_ON((unsigned long)(current_top_of_stack() -
++      BUG_ON((unsigned long)(current_top_of_stack(smp_processor_id()) -
+                              current_stack_pointer()) >= THREAD_SIZE);
  
--      if (user_mode_vm(regs)) {
-+      if (user_mode(regs)) {
-               /* Other than that, we're just an exception. */
-               prev_state = exception_enter();
-       } else {
-@@ -146,7 +146,7 @@ void ist_exit(struct pt_regs *regs, enum ctx_state prev_state)
-       /* Must be before exception_exit. */
        preempt_count_sub(HARDIRQ_OFFSET);
--      if (user_mode_vm(regs))
-+      if (user_mode(regs))
-               return exception_exit(prev_state);
-       else
-               rcu_nmi_exit();
-@@ -158,7 +158,7 @@ void ist_exit(struct pt_regs *regs, enum ctx_state prev_state)
-  *
-  * IST exception handlers normally cannot schedule.  As a special
-  * exception, if the exception interrupted userspace code (i.e.
-- * user_mode_vm(regs) would return true) and the exception was not
-+ * user_mode(regs) would return true) and the exception was not
-  * a double fault, it can be safe to schedule.  ist_begin_non_atomic()
-  * begins a non-atomic section within an ist_enter()/ist_exit() region.
-  * Callers are responsible for enabling interrupts themselves inside
-@@ -167,7 +167,7 @@ void ist_exit(struct pt_regs *regs, enum ctx_state prev_state)
-  */
- void ist_begin_non_atomic(struct pt_regs *regs)
- {
--      BUG_ON(!user_mode_vm(regs));
-+      BUG_ON(!user_mode(regs));
-       /*
-        * Sanity check: we need to be on the normal thread stack.  This
-@@ -191,11 +191,11 @@ void ist_end_non_atomic(void)
+@@ -191,7 +191,7 @@ void ist_end_non_atomic(void)
  }
  
  static nokprobe_inline int
@@ -27930,18 +28379,8 @@ index 4ff5d16..736e3e1 100644
 +do_trap_no_signal(struct task_struct *tsk, int trapnr, const char *str,
                  struct pt_regs *regs, long error_code)
  {
- #ifdef CONFIG_X86_32
--      if (regs->flags & X86_VM_MASK) {
-+      if (v8086_mode(regs)) {
-               /*
-                * Traps 0, 1, 3, 4, and 5 should be forwarded to vm86.
-                * On nmi (interrupt 2), do_trap should not be called.
-@@ -208,12 +208,24 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
-               return -1;
-       }
- #endif
--      if (!user_mode(regs)) {
-+      if (!user_mode_novm(regs)) {
+       if (v8086_mode(regs)) {
+@@ -211,8 +211,20 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
                if (!fixup_exception(regs)) {
                        tsk->thread.error_code = error_code;
                        tsk->thread.trap_nr = trapnr;
@@ -27962,7 +28401,7 @@ index 4ff5d16..736e3e1 100644
                return 0;
        }
  
-@@ -252,7 +264,7 @@ static siginfo_t *fill_trap_info(struct pt_regs *regs, int signr, int trapnr,
+@@ -251,7 +263,7 @@ static siginfo_t *fill_trap_info(struct pt_regs *regs, int signr, int trapnr,
  }
  
  static void
@@ -27971,7 +28410,7 @@ index 4ff5d16..736e3e1 100644
        long error_code, siginfo_t *info)
  {
        struct task_struct *tsk = current;
-@@ -276,7 +288,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
+@@ -275,7 +287,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
        if (show_unhandled_signals && unhandled_signal(tsk, signr) &&
            printk_ratelimit()) {
                pr_info("%s[%d] trap %s ip:%lx sp:%lx error:%lx",
@@ -27980,7 +28419,7 @@ index 4ff5d16..736e3e1 100644
                        regs->ip, regs->sp, error_code);
                print_vma_addr(" in ", regs->ip);
                pr_cont("\n");
-@@ -358,6 +370,11 @@ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
+@@ -357,6 +369,11 @@ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
        tsk->thread.error_code = error_code;
        tsk->thread.trap_nr = X86_TRAP_DF;
  
@@ -27992,33 +28431,7 @@ index 4ff5d16..736e3e1 100644
  #ifdef CONFIG_DOUBLEFAULT
        df_debug(regs, error_code);
  #endif
-@@ -384,7 +401,7 @@ dotraplinkage void do_bounds(struct pt_regs *regs, long error_code)
-               goto exit;
-       conditional_sti(regs);
--      if (!user_mode_vm(regs))
-+      if (!user_mode(regs))
-               die("bounds", regs, error_code);
-       if (!cpu_feature_enabled(X86_FEATURE_MPX)) {
-@@ -463,7 +480,7 @@ do_general_protection(struct pt_regs *regs, long error_code)
-       conditional_sti(regs);
- #ifdef CONFIG_X86_32
--      if (regs->flags & X86_VM_MASK) {
-+      if (v8086_mode(regs)) {
-               local_irq_enable();
-               handle_vm86_fault((struct kernel_vm86_regs *) regs, error_code);
-               goto exit;
-@@ -471,18 +488,42 @@ do_general_protection(struct pt_regs *regs, long error_code)
- #endif
-       tsk = current;
--      if (!user_mode(regs)) {
-+      if (!user_mode_novm(regs)) {
-               if (fixup_exception(regs))
-                       goto exit;
+@@ -475,11 +492,35 @@ do_general_protection(struct pt_regs *regs, long error_code)
                tsk->thread.error_code = error_code;
                tsk->thread.trap_nr = X86_TRAP_GP;
                if (notify_die(DIE_GPF, "general protection fault", regs, error_code,
@@ -28055,7 +28468,7 @@ index 4ff5d16..736e3e1 100644
        tsk->thread.error_code = error_code;
        tsk->thread.trap_nr = X86_TRAP_GP;
  
-@@ -581,13 +622,16 @@ struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
+@@ -578,6 +619,9 @@ struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
                container_of(task_pt_regs(current),
                             struct bad_iret_stack, regs);
  
@@ -28065,50 +28478,6 @@ index 4ff5d16..736e3e1 100644
        /* Copy the IRET target to the new stack. */
        memmove(&new_stack->regs.ip, (void *)s->regs.sp, 5*8);
  
-       /* Copy the remainder of the stack from the current stack. */
-       memmove(new_stack, s, offsetof(struct bad_iret_stack, regs.ip));
--      BUG_ON(!user_mode_vm(&new_stack->regs));
-+      BUG_ON(!user_mode(&new_stack->regs));
-       return new_stack;
- }
- NOKPROBE_SYMBOL(fixup_bad_iret);
-@@ -637,7 +681,7 @@ dotraplinkage void do_debug(struct pt_regs *regs, long error_code)
-        * then it's very likely the result of an icebp/int01 trap.
-        * User wants a sigtrap for that.
-        */
--      if (!dr6 && user_mode_vm(regs))
-+      if (!dr6 && user_mode(regs))
-               user_icebp = 1;
-       /* Catch kmemcheck conditions first of all! */
-@@ -673,7 +717,7 @@ dotraplinkage void do_debug(struct pt_regs *regs, long error_code)
-       /* It's safe to allow irq's after DR6 has been saved */
-       preempt_conditional_sti(regs);
--      if (regs->flags & X86_VM_MASK) {
-+      if (v8086_mode(regs)) {
-               handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code,
-                                       X86_TRAP_DB);
-               preempt_conditional_cli(regs);
-@@ -688,7 +732,7 @@ dotraplinkage void do_debug(struct pt_regs *regs, long error_code)
-        * We already checked v86 mode above, so we can check for kernel mode
-        * by just checking the CPL of CS.
-        */
--      if ((dr6 & DR_STEP) && !user_mode(regs)) {
-+      if ((dr6 & DR_STEP) && !user_mode_novm(regs)) {
-               tsk->thread.debugreg6 &= ~DR_STEP;
-               set_tsk_thread_flag(tsk, TIF_SINGLESTEP);
-               regs->flags &= ~X86_EFLAGS_TF;
-@@ -721,7 +765,7 @@ static void math_error(struct pt_regs *regs, int error_code, int trapnr)
-               return;
-       conditional_sti(regs);
--      if (!user_mode_vm(regs))
-+      if (!user_mode(regs))
-       {
-               if (!fixup_exception(regs)) {
-                       task->thread.error_code = error_code;
 diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
 index 5054497..139f8f8 100644
 --- a/arch/x86/kernel/tsc.c
@@ -28123,18 +28492,9 @@ index 5054497..139f8f8 100644
  
  /*
 diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
-index 81f8adb0..fff670e 100644
+index 0b81ad6..fff670e 100644
 --- a/arch/x86/kernel/uprobes.c
 +++ b/arch/x86/kernel/uprobes.c
-@@ -912,7 +912,7 @@ int arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val,
-       int ret = NOTIFY_DONE;
-       /* We are only interested in userspace traps */
--      if (regs && !user_mode_vm(regs))
-+      if (regs && !user_mode(regs))
-               return NOTIFY_DONE;
-       switch (val) {
 @@ -986,7 +986,7 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs
  
        if (nleft != rasize) {
@@ -28157,7 +28517,7 @@ index b9242ba..50c5edd 100644
   *    verify_cpu, returns the status of longmode and SSE in register %eax.
   *            0: Success    1: Failure
 diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
-index e8edcf5..27f9344 100644
+index fc9db6e..2c5865d 100644
 --- a/arch/x86/kernel/vm86_32.c
 +++ b/arch/x86/kernel/vm86_32.c
 @@ -44,6 +44,7 @@
@@ -28172,8 +28532,8 @@ index e8edcf5..27f9344 100644
                do_exit(SIGSEGV);
        }
  
--      tss = &per_cpu(init_tss, get_cpu());
-+      tss = init_tss + get_cpu();
+-      tss = &per_cpu(cpu_tss, get_cpu());
++      tss = cpu_tss + get_cpu();
        current->thread.sp0 = current->thread.saved_sp0;
        current->thread.sysenter_cs = __KERNEL_CS;
        load_sp0(tss, &current->thread);
@@ -28210,8 +28570,8 @@ index e8edcf5..27f9344 100644
        tsk->thread.saved_fs = info->regs32->fs;
        tsk->thread.saved_gs = get_user_gs(info->regs32);
  
--      tss = &per_cpu(init_tss, get_cpu());
-+      tss = init_tss + get_cpu();
+-      tss = &per_cpu(cpu_tss, get_cpu());
++      tss = cpu_tss + get_cpu();
        tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0;
        if (cpu_has_sep)
                tsk->thread.sysenter_cs = 0;
@@ -28595,7 +28955,7 @@ index 234b072..b7ab191 100644
        .read                   = native_io_apic_read,
        .write                  = native_io_apic_write,
 diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
-index cdc6cf9..e04f495 100644
+index 87a815b..727dbe6 100644
 --- a/arch/x86/kernel/xsave.c
 +++ b/arch/x86/kernel/xsave.c
 @@ -168,18 +168,18 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
@@ -28646,10 +29006,10 @@ index cdc6cf9..e04f495 100644
                if ((unsigned long)buf % 64 || fx_only) {
                        u64 init_bv = pcntxt_mask & ~XSTATE_FPSSE;
 diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
-index 8a80737..bac4961 100644
+index 1d08ad3..c6a4faf 100644
 --- a/arch/x86/kvm/cpuid.c
 +++ b/arch/x86/kvm/cpuid.c
-@@ -182,15 +182,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
+@@ -204,15 +204,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
                              struct kvm_cpuid2 *cpuid,
                              struct kvm_cpuid_entry2 __user *entries)
  {
@@ -28673,7 +29033,7 @@ index 8a80737..bac4961 100644
        vcpu->arch.cpuid_nent = cpuid->nent;
        kvm_apic_set_version(vcpu);
        kvm_x86_ops->cpuid_update(vcpu);
-@@ -203,15 +208,19 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
+@@ -225,15 +230,19 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
                              struct kvm_cpuid2 *cpuid,
                              struct kvm_cpuid_entry2 __user *entries)
  {
@@ -28697,10 +29057,10 @@ index 8a80737..bac4961 100644
  
  out:
 diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
-index 106c015..2db7161 100644
+index 630bcb0..a7f6d9e 100644
 --- a/arch/x86/kvm/emulate.c
 +++ b/arch/x86/kvm/emulate.c
-@@ -3572,7 +3572,7 @@ static int check_cr_write(struct x86_emulate_ctxt *ctxt)
+@@ -3569,7 +3569,7 @@ static int check_cr_write(struct x86_emulate_ctxt *ctxt)
        int cr = ctxt->modrm_reg;
        u64 efer = 0;
  
@@ -28710,7 +29070,7 @@ index 106c015..2db7161 100644
                0, 0, 0, /* CR3 checked later */
                CR4_RESERVED_BITS,
 diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
-index 4ee827d..a14eff9 100644
+index 67d07e0..10769d5 100644
 --- a/arch/x86/kvm/lapic.c
 +++ b/arch/x86/kvm/lapic.c
 @@ -56,7 +56,7 @@
@@ -28722,8 +29082,21 @@ index 4ee827d..a14eff9 100644
  
  #define APIC_LVT_NUM                  6
  /* 14 is the version for Xeon and Pentium 8.4.8*/
+diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
+index 9d28383..c4ea87e 100644
+--- a/arch/x86/kvm/lapic.h
++++ b/arch/x86/kvm/lapic.h
+@@ -150,7 +150,7 @@ static inline bool kvm_apic_vid_enabled(struct kvm *kvm)
+ static inline bool kvm_apic_has_events(struct kvm_vcpu *vcpu)
+ {
+-      return vcpu->arch.apic->pending_events;
++      return kvm_vcpu_has_lapic(vcpu) && vcpu->arch.apic->pending_events;
+ }
+ bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector);
 diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
-index fd49c86..77e1aa0 100644
+index 6e6d115..43fecbf 100644
 --- a/arch/x86/kvm/paging_tmpl.h
 +++ b/arch/x86/kvm/paging_tmpl.h
 @@ -343,7 +343,7 @@ retry_walk:
@@ -28736,10 +29109,10 @@ index fd49c86..77e1aa0 100644
                        goto error;
                walker->ptep_user[walker->level - 1] = ptep_user;
 diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
-index cc618c8..3f72f76 100644
+index 4911bf1..e7d3ed2 100644
 --- a/arch/x86/kvm/svm.c
 +++ b/arch/x86/kvm/svm.c
-@@ -3568,7 +3568,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
+@@ -3577,7 +3577,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
        int cpu = raw_smp_processor_id();
  
        struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
@@ -28751,7 +29124,7 @@ index cc618c8..3f72f76 100644
        load_TR_desc();
  }
  
-@@ -3964,6 +3968,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -3973,6 +3977,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
  #endif
  #endif
  
@@ -28763,7 +29136,7 @@ index cc618c8..3f72f76 100644
  
        local_irq_disable();
 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index a60bd3a..748e856 100644
+index 2d73807..84a0e59 100644
 --- a/arch/x86/kvm/vmx.c
 +++ b/arch/x86/kvm/vmx.c
 @@ -1440,12 +1440,12 @@ static void vmcs_write64(unsigned long field, u64 value)
@@ -28813,7 +29186,7 @@ index a60bd3a..748e856 100644
  {
        u64 host_tsc, tsc_offset;
  
-@@ -4466,7 +4474,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
+@@ -4467,7 +4475,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
        unsigned long cr4;
  
        vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS);  /* 22.2.3 */
@@ -28824,7 +29197,7 @@ index a60bd3a..748e856 100644
  
        /* Save the most likely value for this task's CR4 in the VMCS. */
        cr4 = cr4_read_shadow();
-@@ -4493,7 +4504,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
+@@ -4494,7 +4505,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
        vmcs_writel(HOST_IDTR_BASE, dt.address);   /* 22.2.4 */
        vmx->host_idt_base = dt.address;
  
@@ -28833,7 +29206,7 @@ index a60bd3a..748e856 100644
  
        rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
        vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
-@@ -6104,11 +6115,17 @@ static __init int hardware_setup(void)
+@@ -6107,11 +6118,17 @@ static __init int hardware_setup(void)
         * page upon invalidation.  No need to do anything if not
         * using the APIC_ACCESS_ADDR VMCS field.
         */
@@ -28855,7 +29228,7 @@ index a60bd3a..748e856 100644
  
        if (enable_ept && !cpu_has_vmx_ept_2m_page())
                kvm_disable_largepages();
-@@ -6119,14 +6136,16 @@ static __init int hardware_setup(void)
+@@ -6122,14 +6139,16 @@ static __init int hardware_setup(void)
        if (!cpu_has_vmx_apicv())
                enable_apicv = 0;
  
@@ -28877,7 +29250,7 @@ index a60bd3a..748e856 100644
  
        vmx_disable_intercept_for_msr(MSR_FS_BASE, false);
        vmx_disable_intercept_for_msr(MSR_GS_BASE, false);
-@@ -6179,10 +6198,12 @@ static __init int hardware_setup(void)
+@@ -6182,10 +6201,12 @@ static __init int hardware_setup(void)
                enable_pml = 0;
  
        if (!enable_pml) {
@@ -28894,7 +29267,7 @@ index a60bd3a..748e856 100644
        }
  
        return alloc_kvm_area();
-@@ -8227,6 +8248,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -8230,6 +8251,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
                "jmp 2f \n\t"
                "1: " __ex(ASM_VMX_VMRESUME) "\n\t"
                "2: "
@@ -28907,7 +29280,7 @@ index a60bd3a..748e856 100644
                /* Save guest registers, load host registers, keep flags */
                "mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
                "pop %0 \n\t"
-@@ -8279,6 +8306,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -8282,6 +8309,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
  #endif
                [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)),
                [wordsize]"i"(sizeof(ulong))
@@ -28919,7 +29292,7 @@ index a60bd3a..748e856 100644
              : "cc", "memory"
  #ifdef CONFIG_X86_64
                , "rax", "rbx", "rdi", "rsi"
-@@ -8292,7 +8324,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -8295,7 +8327,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
        if (debugctlmsr)
                update_debugctlmsr(debugctlmsr);
  
@@ -28928,7 +29301,7 @@ index a60bd3a..748e856 100644
        /*
         * The sysexit path does not restore ds/es, so we must set them to
         * a reasonable value ourselves.
-@@ -8301,8 +8333,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -8304,8 +8336,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
         * may be executed in interrupt context, which saves and restore segments
         * around it, nullifying its effect.
         */
@@ -28950,10 +29323,10 @@ index a60bd3a..748e856 100644
  
        vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index e222ba5..6f0f2de 100644
+index ea306ad..669f42d 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
-@@ -1897,8 +1897,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
+@@ -1929,8 +1929,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
  {
        struct kvm *kvm = vcpu->kvm;
        int lm = is_long_mode(vcpu);
@@ -28964,7 +29337,7 @@ index e222ba5..6f0f2de 100644
        u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
                : kvm->arch.xen_hvm_config.blob_size_32;
        u32 page_num = data & ~PAGE_MASK;
-@@ -2835,6 +2835,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
+@@ -2867,6 +2867,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
                if (n < msr_list.nmsrs)
                        goto out;
                r = -EFAULT;
@@ -28973,7 +29346,7 @@ index e222ba5..6f0f2de 100644
                if (copy_to_user(user_msr_list->indices, &msrs_to_save,
                                 num_msrs_to_save * sizeof(u32)))
                        goto out;
-@@ -5739,7 +5741,7 @@ static struct notifier_block pvclock_gtod_notifier = {
+@@ -5784,7 +5786,7 @@ static struct notifier_block pvclock_gtod_notifier = {
  };
  #endif
  
@@ -28983,10 +29356,10 @@ index e222ba5..6f0f2de 100644
        int r;
        struct kvm_x86_ops *ops = opaque;
 diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
-index ac4453d..1f43bf3 100644
+index 8f9a133..3c7694b 100644
 --- a/arch/x86/lguest/boot.c
 +++ b/arch/x86/lguest/boot.c
-@@ -1340,9 +1340,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
+@@ -1341,9 +1341,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
   * Rebooting also tells the Host we're finished, but the RESTART flag tells the
   * Launcher to reboot us.
   */
@@ -29258,10 +29631,10 @@ index 00933d5..3a64af9 100644
        movl %eax,  (v)
        movl %edx, 4(v)
 diff --git a/arch/x86/lib/atomic64_cx8_32.S b/arch/x86/lib/atomic64_cx8_32.S
-index f5cc9eb..51fa319 100644
+index 082a851..6a963bc 100644
 --- a/arch/x86/lib/atomic64_cx8_32.S
 +++ b/arch/x86/lib/atomic64_cx8_32.S
-@@ -35,10 +35,20 @@ ENTRY(atomic64_read_cx8)
+@@ -25,10 +25,20 @@ ENTRY(atomic64_read_cx8)
        CFI_STARTPROC
  
        read64 %ecx
@@ -29282,7 +29655,7 @@ index f5cc9eb..51fa319 100644
  ENTRY(atomic64_set_cx8)
        CFI_STARTPROC
  
-@@ -48,10 +58,25 @@ ENTRY(atomic64_set_cx8)
+@@ -38,10 +48,25 @@ ENTRY(atomic64_set_cx8)
        cmpxchg8b (%esi)
        jne 1b
  
@@ -29308,7 +29681,7 @@ index f5cc9eb..51fa319 100644
  ENTRY(atomic64_xchg_cx8)
        CFI_STARTPROC
  
-@@ -60,12 +85,13 @@ ENTRY(atomic64_xchg_cx8)
+@@ -50,12 +75,13 @@ ENTRY(atomic64_xchg_cx8)
        cmpxchg8b (%esi)
        jne 1b
  
@@ -29322,9 +29695,9 @@ index f5cc9eb..51fa319 100644
 +.macro addsub_return func ins insc unchecked=""
 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
        CFI_STARTPROC
-       SAVE ebp
-       SAVE ebx
-@@ -82,27 +108,44 @@ ENTRY(atomic64_\func\()_return_cx8)
+       pushl_cfi_reg ebp
+       pushl_cfi_reg ebx
+@@ -72,27 +98,44 @@ ENTRY(atomic64_\func\()_return_cx8)
        movl %edx, %ecx
        \ins\()l %esi, %ebx
        \insc\()l %edi, %ecx
@@ -29351,10 +29724,10 @@ index f5cc9eb..51fa319 100644
 +#endif
 +.endif
 +
-       RESTORE edi
-       RESTORE esi
-       RESTORE ebx
-       RESTORE ebp
+       popl_cfi_reg edi
+       popl_cfi_reg esi
+       popl_cfi_reg ebx
+       popl_cfi_reg ebp
 +      pax_force_retaddr
        ret
        CFI_ENDPROC
@@ -29372,9 +29745,9 @@ index f5cc9eb..51fa319 100644
 +.macro incdec_return func ins insc unchecked=""
 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
        CFI_STARTPROC
-       SAVE ebx
+       pushl_cfi_reg ebx
  
-@@ -112,21 +155,39 @@ ENTRY(atomic64_\func\()_return_cx8)
+@@ -102,21 +145,38 @@ ENTRY(atomic64_\func\()_return_cx8)
        movl %edx, %ecx
        \ins\()l $1, %ebx
        \insc\()l $0, %ecx
@@ -29390,7 +29763,7 @@ index f5cc9eb..51fa319 100644
        LOCK_PREFIX
        cmpxchg8b (%esi)
        jne 1b
+-
 -10:
        movl %ebx, %eax
        movl %ecx, %edx
@@ -29401,7 +29774,7 @@ index f5cc9eb..51fa319 100644
 +#endif
 +.endif
 +
-       RESTORE ebx
+       popl_cfi_reg ebx
 +      pax_force_retaddr
        ret
        CFI_ENDPROC
@@ -29416,7 +29789,7 @@ index f5cc9eb..51fa319 100644
  
  ENTRY(atomic64_dec_if_positive_cx8)
        CFI_STARTPROC
-@@ -138,6 +199,13 @@ ENTRY(atomic64_dec_if_positive_cx8)
+@@ -128,6 +188,13 @@ ENTRY(atomic64_dec_if_positive_cx8)
        movl %edx, %ecx
        subl $1, %ebx
        sbb $0, %ecx
@@ -29430,15 +29803,15 @@ index f5cc9eb..51fa319 100644
        js 2f
        LOCK_PREFIX
        cmpxchg8b (%esi)
-@@ -147,6 +215,7 @@ ENTRY(atomic64_dec_if_positive_cx8)
+@@ -137,6 +204,7 @@ ENTRY(atomic64_dec_if_positive_cx8)
        movl %ebx, %eax
        movl %ecx, %edx
-       RESTORE ebx
+       popl_cfi_reg ebx
 +      pax_force_retaddr
        ret
        CFI_ENDPROC
  ENDPROC(atomic64_dec_if_positive_cx8)
-@@ -171,6 +240,13 @@ ENTRY(atomic64_add_unless_cx8)
+@@ -161,6 +229,13 @@ ENTRY(atomic64_add_unless_cx8)
        movl %edx, %ecx
        addl %ebp, %ebx
        adcl %edi, %ecx
@@ -29452,15 +29825,15 @@ index f5cc9eb..51fa319 100644
        LOCK_PREFIX
        cmpxchg8b (%esi)
        jne 1b
-@@ -181,6 +257,7 @@ ENTRY(atomic64_add_unless_cx8)
+@@ -171,6 +246,7 @@ ENTRY(atomic64_add_unless_cx8)
        CFI_ADJUST_CFA_OFFSET -8
-       RESTORE ebx
-       RESTORE ebp
+       popl_cfi_reg ebx
+       popl_cfi_reg ebp
 +      pax_force_retaddr
        ret
  4:
        cmpl %edx, 4(%esp)
-@@ -203,6 +280,13 @@ ENTRY(atomic64_inc_not_zero_cx8)
+@@ -193,6 +269,13 @@ ENTRY(atomic64_inc_not_zero_cx8)
        xorl %ecx, %ecx
        addl $1, %ebx
        adcl %edx, %ecx
@@ -29474,16 +29847,16 @@ index f5cc9eb..51fa319 100644
        LOCK_PREFIX
        cmpxchg8b (%esi)
        jne 1b
-@@ -210,6 +294,7 @@ ENTRY(atomic64_inc_not_zero_cx8)
+@@ -200,6 +283,7 @@ ENTRY(atomic64_inc_not_zero_cx8)
        movl $1, %eax
  3:
-       RESTORE ebx
+       popl_cfi_reg ebx
 +      pax_force_retaddr
        ret
        CFI_ENDPROC
  ENDPROC(atomic64_inc_not_zero_cx8)
 diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S
-index e78b8eee..7e173a8 100644
+index 9bc944a..e52be6c 100644
 --- a/arch/x86/lib/checksum_32.S
 +++ b/arch/x86/lib/checksum_32.S
 @@ -29,7 +29,8 @@
@@ -29496,7 +29869,7 @@ index e78b8eee..7e173a8 100644
  /*
   * computes a partial checksum, e.g. for TCP/UDP fragments
   */
-@@ -293,9 +294,24 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst,
+@@ -285,9 +286,24 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst,
  
  #define ARGBASE 16            
  #define FP            12
@@ -29522,8 +29895,8 @@ index e78b8eee..7e173a8 100644
 +ENTRY(csum_partial_copy_generic)
        subl  $4,%esp   
        CFI_ADJUST_CFA_OFFSET 4
-       pushl_cfi %edi
-@@ -317,7 +333,7 @@ ENTRY(csum_partial_copy_generic)
+       pushl_cfi_reg edi
+@@ -306,7 +322,7 @@ ENTRY(csum_partial_copy_generic)
        jmp 4f
  SRC(1:        movw (%esi), %bx        )
        addl $2, %esi
@@ -29532,7 +29905,7 @@ index e78b8eee..7e173a8 100644
        addl $2, %edi
        addw %bx, %ax   
        adcl $0, %eax
-@@ -329,30 +345,30 @@ DST(     movw %bx, (%edi)        )
+@@ -318,30 +334,30 @@ DST(     movw %bx, (%edi)        )
  SRC(1:        movl (%esi), %ebx       )
  SRC(  movl 4(%esi), %edx      )
        adcl %ebx, %eax
@@ -29571,7 +29944,7 @@ index e78b8eee..7e173a8 100644
  
        lea 32(%esi), %esi
        lea 32(%edi), %edi
-@@ -366,7 +382,7 @@ DST(       movl %edx, 28(%edi)     )
+@@ -355,7 +371,7 @@ DST(       movl %edx, 28(%edi)     )
        shrl $2, %edx                   # This clears CF
  SRC(3:        movl (%esi), %ebx       )
        adcl %ebx, %eax
@@ -29580,7 +29953,7 @@ index e78b8eee..7e173a8 100644
        lea 4(%esi), %esi
        lea 4(%edi), %edi
        dec %edx
-@@ -378,12 +394,12 @@ DST(     movl %ebx, (%edi)       )
+@@ -367,12 +383,12 @@ DST(     movl %ebx, (%edi)       )
        jb 5f
  SRC(  movw (%esi), %cx        )
        leal 2(%esi), %esi
@@ -29595,7 +29968,7 @@ index e78b8eee..7e173a8 100644
  6:    addl %ecx, %eax
        adcl $0, %eax
  7:
-@@ -394,7 +410,7 @@ DST(       movb %cl, (%edi)        )
+@@ -383,7 +399,7 @@ DST(       movb %cl, (%edi)        )
  
  6001:
        movl ARGBASE+20(%esp), %ebx     # src_err_ptr
@@ -29604,7 +29977,7 @@ index e78b8eee..7e173a8 100644
  
        # zero the complete destination - computing the rest
        # is too much work 
-@@ -407,11 +423,15 @@ DST(     movb %cl, (%edi)        )
+@@ -396,37 +412,58 @@ DST(     movb %cl, (%edi)        )
  
  6002:
        movl ARGBASE+24(%esp), %ebx     # dst_err_ptr
@@ -29618,10 +29991,9 @@ index e78b8eee..7e173a8 100644
 +      popl_cfi %ds
 +      pushl_cfi %ss
 +      popl_cfi %es
-       popl_cfi %ebx
-       CFI_RESTORE ebx
-       popl_cfi %esi
-@@ -421,26 +441,43 @@ DST(     movb %cl, (%edi)        )
+       popl_cfi_reg ebx
+       popl_cfi_reg esi
+       popl_cfi_reg edi
        popl_cfi %ecx                   # equivalent to addl $4,%esp
        ret     
        CFI_ENDPROC
@@ -29667,10 +30039,10 @@ index e78b8eee..7e173a8 100644
 +#endif
 +
 +ENTRY(csum_partial_copy_generic)
-       pushl_cfi %ebx
-       CFI_REL_OFFSET ebx, 0
-       pushl_cfi %edi
-@@ -461,7 +498,7 @@ ENTRY(csum_partial_copy_generic)
+       pushl_cfi_reg ebx
+       pushl_cfi_reg edi
+       pushl_cfi_reg esi
+@@ -444,7 +481,7 @@ ENTRY(csum_partial_copy_generic)
        subl %ebx, %edi  
        lea  -1(%esi),%edx
        andl $-32,%edx
@@ -29679,7 +30051,7 @@ index e78b8eee..7e173a8 100644
        testl %esi, %esi 
        jmp *%ebx
  1:    addl $64,%esi
-@@ -482,19 +519,19 @@ ENTRY(csum_partial_copy_generic)
+@@ -465,19 +502,19 @@ ENTRY(csum_partial_copy_generic)
        jb 5f
  SRC(  movw (%esi), %dx         )
        leal 2(%esi), %esi
@@ -29702,7 +30074,7 @@ index e78b8eee..7e173a8 100644
        # zero the complete destination (computing the rest is too much work)
        movl ARGBASE+8(%esp),%edi       # dst
        movl ARGBASE+12(%esp),%ecx      # len
-@@ -502,10 +539,17 @@ DST(     movb %dl, (%edi)         )
+@@ -485,16 +522,23 @@ DST(     movb %dl, (%edi)         )
        rep; stosb
        jmp 7b
  6002: movl ARGBASE+24(%esp), %ebx     # dst_err_ptr
@@ -29718,11 +30090,9 @@ index e78b8eee..7e173a8 100644
 +      popl_cfi %es
 +#endif
 +
-       popl_cfi %esi
-       CFI_RESTORE esi
-       popl_cfi %edi
-@@ -514,7 +558,7 @@ DST(       movb %dl, (%edi)         )
-       CFI_RESTORE ebx
+       popl_cfi_reg esi
+       popl_cfi_reg edi
+       popl_cfi_reg ebx
        ret
        CFI_ENDPROC
 -ENDPROC(csum_partial_copy_generic)
@@ -29731,18 +30101,26 @@ index e78b8eee..7e173a8 100644
  #undef ROUND
  #undef ROUND1         
 diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S
-index f2145cf..cea889d 100644
+index e67e579..4782449 100644
 --- a/arch/x86/lib/clear_page_64.S
 +++ b/arch/x86/lib/clear_page_64.S
-@@ -11,6 +11,7 @@ ENTRY(clear_page_c)
+@@ -23,6 +23,7 @@ ENTRY(clear_page)
        movl $4096/8,%ecx
        xorl %eax,%eax
        rep stosq
 +      pax_force_retaddr
        ret
        CFI_ENDPROC
- ENDPROC(clear_page_c)
-@@ -20,6 +21,7 @@ ENTRY(clear_page_c_e)
+ ENDPROC(clear_page)
+@@ -47,6 +48,7 @@ ENTRY(clear_page_orig)
+       leaq    64(%rdi),%rdi
+       jnz     .Lloop
+       nop
++      pax_force_retaddr
+       ret
+       CFI_ENDPROC
+ ENDPROC(clear_page_orig)
+@@ -56,6 +58,7 @@ ENTRY(clear_page_c_e)
        movl $4096,%ecx
        xorl %eax,%eax
        rep stosb
@@ -29750,23 +30128,6 @@ index f2145cf..cea889d 100644
        ret
        CFI_ENDPROC
  ENDPROC(clear_page_c_e)
-@@ -43,6 +45,7 @@ ENTRY(clear_page)
-       leaq    64(%rdi),%rdi
-       jnz     .Lloop
-       nop
-+      pax_force_retaddr
-       ret
-       CFI_ENDPROC
- .Lclear_page_end:
-@@ -58,7 +61,7 @@ ENDPROC(clear_page)
- #include <asm/cpufeature.h>
--      .section .altinstr_replacement,"ax"
-+      .section .altinstr_replacement,"a"
- 1:    .byte 0xeb                                      /* jmp <disp8> */
-       .byte (clear_page_c - clear_page) - (2f - 1b)   /* offset */
- 2:    .byte 0xeb                                      /* jmp <disp8> */
 diff --git a/arch/x86/lib/cmpxchg16b_emu.S b/arch/x86/lib/cmpxchg16b_emu.S
 index 40a1725..5d12ac4 100644
 --- a/arch/x86/lib/cmpxchg16b_emu.S
@@ -29795,18 +30156,18 @@ index 40a1725..5d12ac4 100644
  
  CFI_ENDPROC
 diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S
-index 176cca6..e0d658e 100644
+index 8239dbc..e714d2a 100644
 --- a/arch/x86/lib/copy_page_64.S
 +++ b/arch/x86/lib/copy_page_64.S
-@@ -9,6 +9,7 @@ copy_page_rep:
-       CFI_STARTPROC
+@@ -17,6 +17,7 @@ ENTRY(copy_page)
+       ALTERNATIVE "jmp copy_page_regs", "", X86_FEATURE_REP_GOOD
        movl    $4096/8, %ecx
        rep     movsq
 +      pax_force_retaddr
        ret
        CFI_ENDPROC
- ENDPROC(copy_page_rep)
-@@ -24,8 +25,8 @@ ENTRY(copy_page)
+ ENDPROC(copy_page)
+@@ -27,8 +28,8 @@ ENTRY(copy_page_regs)
        CFI_ADJUST_CFA_OFFSET 2*8
        movq    %rbx,   (%rsp)
        CFI_REL_OFFSET rbx, 0
@@ -29817,7 +30178,7 @@ index 176cca6..e0d658e 100644
  
        movl    $(4096/64)-5,   %ecx
        .p2align 4
-@@ -38,7 +39,7 @@ ENTRY(copy_page)
+@@ -41,7 +42,7 @@ ENTRY(copy_page_regs)
        movq    0x8*4(%rsi), %r9
        movq    0x8*5(%rsi), %r10
        movq    0x8*6(%rsi), %r11
@@ -29826,7 +30187,7 @@ index 176cca6..e0d658e 100644
  
        prefetcht0 5*64(%rsi)
  
-@@ -49,7 +50,7 @@ ENTRY(copy_page)
+@@ -52,7 +53,7 @@ ENTRY(copy_page_regs)
        movq    %r9,  0x8*4(%rdi)
        movq    %r10, 0x8*5(%rdi)
        movq    %r11, 0x8*6(%rdi)
@@ -29835,7 +30196,7 @@ index 176cca6..e0d658e 100644
  
        leaq    64 (%rsi), %rsi
        leaq    64 (%rdi), %rdi
-@@ -68,7 +69,7 @@ ENTRY(copy_page)
+@@ -71,7 +72,7 @@ ENTRY(copy_page_regs)
        movq    0x8*4(%rsi), %r9
        movq    0x8*5(%rsi), %r10
        movq    0x8*6(%rsi), %r11
@@ -29844,7 +30205,7 @@ index 176cca6..e0d658e 100644
  
        movq    %rax, 0x8*0(%rdi)
        movq    %rbx, 0x8*1(%rdi)
-@@ -77,7 +78,7 @@ ENTRY(copy_page)
+@@ -80,7 +81,7 @@ ENTRY(copy_page_regs)
        movq    %r9,  0x8*4(%rdi)
        movq    %r10, 0x8*5(%rdi)
        movq    %r11, 0x8*6(%rdi)
@@ -29853,7 +30214,7 @@ index 176cca6..e0d658e 100644
  
        leaq    64(%rdi), %rdi
        leaq    64(%rsi), %rsi
-@@ -85,10 +86,11 @@ ENTRY(copy_page)
+@@ -88,10 +89,11 @@ ENTRY(copy_page_regs)
  
        movq    (%rsp), %rbx
        CFI_RESTORE rbx
@@ -29865,56 +30226,22 @@ index 176cca6..e0d658e 100644
        CFI_ADJUST_CFA_OFFSET -2*8
 +      pax_force_retaddr
        ret
- .Lcopy_page_end:
        CFI_ENDPROC
-@@ -99,7 +101,7 @@ ENDPROC(copy_page)
- #include <asm/cpufeature.h>
--      .section .altinstr_replacement,"ax"
-+      .section .altinstr_replacement,"a"
- 1:    .byte 0xeb                                      /* jmp <disp8> */
-       .byte (copy_page_rep - copy_page) - (2f - 1b)   /* offset */
- 2:
+ ENDPROC(copy_page_regs)
 diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S
-index dee945d..a84067b 100644
+index fa997df..060ab18 100644
 --- a/arch/x86/lib/copy_user_64.S
 +++ b/arch/x86/lib/copy_user_64.S
-@@ -18,31 +18,7 @@
+@@ -15,6 +15,7 @@
  #include <asm/alternative-asm.h>
  #include <asm/asm.h>
  #include <asm/smap.h>
--
--/*
-- * By placing feature2 after feature1 in altinstructions section, we logically
-- * implement:
-- * If CPU has feature2, jmp to alt2 is used
-- * else if CPU has feature1, jmp to alt1 is used
-- * else jmp to orig is used.
-- */
--      .macro ALTERNATIVE_JUMP feature1,feature2,orig,alt1,alt2
--0:
--      .byte 0xe9      /* 32bit jump */
--      .long \orig-1f  /* by default jump to orig */
--1:
--      .section .altinstr_replacement,"ax"
--2:    .byte 0xe9                      /* near jump with 32bit immediate */
--      .long \alt1-1b /* offset */   /* or alternatively to alt1 */
--3:    .byte 0xe9                      /* near jump with 32bit immediate */
--      .long \alt2-1b /* offset */   /* or alternatively to alt2 */
--      .previous
--
--      .section .altinstructions,"a"
--      altinstruction_entry 0b,2b,\feature1,5,5
--      altinstruction_entry 0b,3b,\feature2,5,5
--      .previous
--      .endm
 +#include <asm/pgtable.h>
  
        .macro ALIGN_DESTINATION
- #ifdef FIX_ALIGNMENT
-@@ -70,52 +46,6 @@
- #endif
+       /* check for bad alignment of destination */
+@@ -40,56 +41,6 @@
+       _ASM_EXTABLE(101b,103b)
        .endm
  
 -/* Standard copy_to_user with segment limit checking */
@@ -29926,9 +30253,11 @@ index dee945d..a84067b 100644
 -      jc bad_to_user
 -      cmpq TI_addr_limit(%rax),%rcx
 -      ja bad_to_user
--      ALTERNATIVE_JUMP X86_FEATURE_REP_GOOD,X86_FEATURE_ERMS, \
--              copy_user_generic_unrolled,copy_user_generic_string,    \
--              copy_user_enhanced_fast_string
+-      ALTERNATIVE_2 "jmp copy_user_generic_unrolled",         \
+-                    "jmp copy_user_generic_string",           \
+-                    X86_FEATURE_REP_GOOD,                     \
+-                    "jmp copy_user_enhanced_fast_string",     \
+-                    X86_FEATURE_ERMS
 -      CFI_ENDPROC
 -ENDPROC(_copy_to_user)
 -
@@ -29941,9 +30270,11 @@ index dee945d..a84067b 100644
 -      jc bad_from_user
 -      cmpq TI_addr_limit(%rax),%rcx
 -      ja bad_from_user
--      ALTERNATIVE_JUMP X86_FEATURE_REP_GOOD,X86_FEATURE_ERMS, \
--              copy_user_generic_unrolled,copy_user_generic_string,    \
--              copy_user_enhanced_fast_string
+-      ALTERNATIVE_2 "jmp copy_user_generic_unrolled",         \
+-                    "jmp copy_user_generic_string",           \
+-                    X86_FEATURE_REP_GOOD,                     \
+-                    "jmp copy_user_enhanced_fast_string",     \
+-                    X86_FEATURE_ERMS
 -      CFI_ENDPROC
 -ENDPROC(_copy_from_user)
 -
@@ -29966,7 +30297,7 @@ index dee945d..a84067b 100644
  /*
   * copy_user_generic_unrolled - memory copy with exception handling.
   * This version is for CPUs like P4 that don't have efficient micro
-@@ -131,6 +61,7 @@ ENDPROC(bad_from_user)
+@@ -105,6 +56,7 @@ ENDPROC(bad_from_user)
   */
  ENTRY(copy_user_generic_unrolled)
        CFI_STARTPROC
@@ -29974,7 +30305,7 @@ index dee945d..a84067b 100644
        ASM_STAC
        cmpl $8,%edx
        jb 20f          /* less then 8 bytes, go to byte copy loop */
-@@ -180,6 +111,8 @@ ENTRY(copy_user_generic_unrolled)
+@@ -154,6 +106,8 @@ ENTRY(copy_user_generic_unrolled)
        jnz 21b
  23:   xor %eax,%eax
        ASM_CLAC
@@ -29983,7 +30314,7 @@ index dee945d..a84067b 100644
        ret
  
        .section .fixup,"ax"
-@@ -235,6 +168,7 @@ ENDPROC(copy_user_generic_unrolled)
+@@ -209,6 +163,7 @@ ENDPROC(copy_user_generic_unrolled)
   */
  ENTRY(copy_user_generic_string)
        CFI_STARTPROC
@@ -29991,7 +30322,7 @@ index dee945d..a84067b 100644
        ASM_STAC
        cmpl $8,%edx
        jb 2f           /* less than 8 bytes, go to byte copy loop */
-@@ -249,6 +183,8 @@ ENTRY(copy_user_generic_string)
+@@ -223,6 +178,8 @@ ENTRY(copy_user_generic_string)
        movsb
        xorl %eax,%eax
        ASM_CLAC
@@ -30000,7 +30331,7 @@ index dee945d..a84067b 100644
        ret
  
        .section .fixup,"ax"
-@@ -276,12 +212,15 @@ ENDPROC(copy_user_generic_string)
+@@ -250,12 +207,15 @@ ENDPROC(copy_user_generic_string)
   */
  ENTRY(copy_user_enhanced_fast_string)
        CFI_STARTPROC
@@ -30064,7 +30395,7 @@ index 6a4f43c..c70fb52 100644
  
        .section .fixup,"ax"
 diff --git a/arch/x86/lib/csum-copy_64.S b/arch/x86/lib/csum-copy_64.S
-index 2419d5f..fe52d0e 100644
+index 9734182..dbee61c 100644
 --- a/arch/x86/lib/csum-copy_64.S
 +++ b/arch/x86/lib/csum-copy_64.S
 @@ -9,6 +9,7 @@
@@ -30324,7 +30655,7 @@ index a451235..a74bfa3 100644
        CFI_ENDPROC
  END(bad_get_user_8)
 diff --git a/arch/x86/lib/insn.c b/arch/x86/lib/insn.c
-index 85994f5..9929d7f 100644
+index 8f72b33..a43d9969 100644
 --- a/arch/x86/lib/insn.c
 +++ b/arch/x86/lib/insn.c
 @@ -20,8 +20,10 @@
@@ -30372,41 +30703,26 @@ index 05a95e7..326f2fa 100644
        CFI_ENDPROC
  ENDPROC(__iowrite32_copy)
 diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S
-index 89b53c9..97357ca 100644
+index b046664..dec9465 100644
 --- a/arch/x86/lib/memcpy_64.S
 +++ b/arch/x86/lib/memcpy_64.S
-@@ -24,7 +24,7 @@
-  * This gets patched over the unrolled variant (below) via the
-  * alternative instructions framework:
-  */
--      .section .altinstr_replacement, "ax", @progbits
-+      .section .altinstr_replacement, "a", @progbits
- .Lmemcpy_c:
-       movq %rdi, %rax
-       movq %rdx, %rcx
-@@ -33,6 +33,7 @@
+@@ -37,6 +37,7 @@ ENTRY(memcpy)
        rep movsq
        movl %edx, %ecx
        rep movsb
 +      pax_force_retaddr
        ret
- .Lmemcpy_e:
-       .previous
-@@ -44,11 +45,12 @@
-  * This gets patched over the unrolled variant (below) via the
-  * alternative instructions framework:
-  */
--      .section .altinstr_replacement, "ax", @progbits
-+      .section .altinstr_replacement, "a", @progbits
- .Lmemcpy_c_e:
+ ENDPROC(memcpy)
+ ENDPROC(__memcpy)
+@@ -49,6 +50,7 @@ ENTRY(memcpy_erms)
        movq %rdi, %rax
        movq %rdx, %rcx
        rep movsb
 +      pax_force_retaddr
        ret
- .Lmemcpy_e_e:
-       .previous
-@@ -138,6 +140,7 @@ ENTRY(memcpy)
+ ENDPROC(memcpy_erms)
+@@ -134,6 +136,7 @@ ENTRY(memcpy_orig)
        movq %r9,       1*8(%rdi)
        movq %r10,      -2*8(%rdi, %rdx)
        movq %r11,      -1*8(%rdi, %rdx)
@@ -30414,7 +30730,7 @@ index 89b53c9..97357ca 100644
        retq
        .p2align 4
  .Lless_16bytes:
-@@ -150,6 +153,7 @@ ENTRY(memcpy)
+@@ -146,6 +149,7 @@ ENTRY(memcpy_orig)
        movq -1*8(%rsi, %rdx),  %r9
        movq %r8,       0*8(%rdi)
        movq %r9,       -1*8(%rdi, %rdx)
@@ -30422,7 +30738,7 @@ index 89b53c9..97357ca 100644
        retq
        .p2align 4
  .Lless_8bytes:
-@@ -163,6 +167,7 @@ ENTRY(memcpy)
+@@ -159,6 +163,7 @@ ENTRY(memcpy_orig)
        movl -4(%rsi, %rdx), %r8d
        movl %ecx, (%rdi)
        movl %r8d, -4(%rdi, %rdx)
@@ -30430,74 +30746,56 @@ index 89b53c9..97357ca 100644
        retq
        .p2align 4
  .Lless_3bytes:
-@@ -181,6 +186,7 @@ ENTRY(memcpy)
+@@ -177,6 +182,7 @@ ENTRY(memcpy_orig)
        movb %cl, (%rdi)
  
  .Lend:
 +      pax_force_retaddr
        retq
        CFI_ENDPROC
- ENDPROC(memcpy)
+ ENDPROC(memcpy_orig)
 diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S
-index 9c4b530..830b77a 100644
+index 0f8a0d0..f6e0ea4 100644
 --- a/arch/x86/lib/memmove_64.S
 +++ b/arch/x86/lib/memmove_64.S
-@@ -205,14 +205,16 @@ ENTRY(__memmove)
+@@ -43,7 +43,7 @@ ENTRY(__memmove)
+       jg 2f
+ .Lmemmove_begin_forward:
+-      ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; retq", X86_FEATURE_ERMS
++      ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; pax_force_retaddr; retq", X86_FEATURE_ERMS
+       /*
+        * movsq instruction have many startup latency
+@@ -206,6 +206,7 @@ ENTRY(__memmove)
        movb (%rsi), %r11b
        movb %r11b, (%rdi)
  13:
 +      pax_force_retaddr
        retq
        CFI_ENDPROC
--      .section .altinstr_replacement,"ax"
-+      .section .altinstr_replacement,"a"
- .Lmemmove_begin_forward_efs:
-       /* Forward moving data. */
-       movq %rdx, %rcx
-       rep movsb
-+      pax_force_retaddr
-       retq
- .Lmemmove_end_forward_efs:
-       .previous
+ ENDPROC(__memmove)
 diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S
-index 6f44935..fbf5f6d 100644
+index 93118fb..386ed2a 100644
 --- a/arch/x86/lib/memset_64.S
 +++ b/arch/x86/lib/memset_64.S
-@@ -16,7 +16,7 @@
-  * 
-  * rax   original destination
-  */   
--      .section .altinstr_replacement, "ax", @progbits
-+      .section .altinstr_replacement, "a", @progbits
- .Lmemset_c:
-       movq %rdi,%r9
-       movq %rdx,%rcx
-@@ -30,6 +30,7 @@
+@@ -41,6 +41,7 @@ ENTRY(__memset)
        movl %edx,%ecx
        rep stosb
        movq %r9,%rax
 +      pax_force_retaddr
        ret
- .Lmemset_e:
-       .previous
-@@ -45,13 +46,14 @@
-  *
-  * rax   original destination
-  */
--      .section .altinstr_replacement, "ax", @progbits
-+      .section .altinstr_replacement, "a", @progbits
- .Lmemset_c_e:
-       movq %rdi,%r9
-       movb %sil,%al
+ ENDPROC(memset)
+ ENDPROC(__memset)
+@@ -62,6 +63,7 @@ ENTRY(memset_erms)
        movq %rdx,%rcx
        rep stosb
        movq %r9,%rax
 +      pax_force_retaddr
        ret
- .Lmemset_e_e:
-       .previous
-@@ -120,6 +122,7 @@ ENTRY(__memset)
+ ENDPROC(memset_erms)
+@@ -126,6 +128,7 @@ ENTRY(memset_orig)
  
  .Lende:
        movq    %r10,%rax
@@ -30825,7 +31123,7 @@ index c9f2d9b..e7fd2c0 100644
                from += 64;
                to += 64;
 diff --git a/arch/x86/lib/msr-reg.S b/arch/x86/lib/msr-reg.S
-index f6d13ee..d789440 100644
+index 3ca5218..c2ae6bc 100644
 --- a/arch/x86/lib/msr-reg.S
 +++ b/arch/x86/lib/msr-reg.S
 @@ -3,6 +3,7 @@
@@ -30838,8 +31136,8 @@ index f6d13ee..d789440 100644
  /*
 @@ -37,6 +38,7 @@ ENTRY(\op\()_safe_regs)
        movl    %edi, 28(%r10)
-       popq_cfi %rbp
-       popq_cfi %rbx
+       popq_cfi_reg rbp
+       popq_cfi_reg rbx
 +      pax_force_retaddr
        ret
  3:
@@ -30995,18 +31293,18 @@ index fc6ba17..14ad9a5 100644
        xor %eax,%eax
        EXIT
 diff --git a/arch/x86/lib/rwsem.S b/arch/x86/lib/rwsem.S
-index 5dff5f0..cadebf4 100644
+index 2322abe..1e78a75 100644
 --- a/arch/x86/lib/rwsem.S
 +++ b/arch/x86/lib/rwsem.S
-@@ -94,6 +94,7 @@ ENTRY(call_rwsem_down_read_failed)
-       __ASM_SIZE(pop,_cfi) %__ASM_REG(dx)
-       CFI_RESTORE __ASM_REG(dx)
+@@ -92,6 +92,7 @@ ENTRY(call_rwsem_down_read_failed)
+       call rwsem_down_read_failed
+       __ASM_SIZE(pop,_cfi_reg) __ASM_REG(dx)
        restore_common_regs
 +      pax_force_retaddr
        ret
        CFI_ENDPROC
  ENDPROC(call_rwsem_down_read_failed)
-@@ -104,6 +105,7 @@ ENTRY(call_rwsem_down_write_failed)
+@@ -102,6 +103,7 @@ ENTRY(call_rwsem_down_write_failed)
        movq %rax,%rdi
        call rwsem_down_write_failed
        restore_common_regs
@@ -31014,7 +31312,7 @@ index 5dff5f0..cadebf4 100644
        ret
        CFI_ENDPROC
  ENDPROC(call_rwsem_down_write_failed)
-@@ -117,7 +119,8 @@ ENTRY(call_rwsem_wake)
+@@ -115,7 +117,8 @@ ENTRY(call_rwsem_wake)
        movq %rax,%rdi
        call rwsem_wake
        restore_common_regs
@@ -31024,16 +31322,16 @@ index 5dff5f0..cadebf4 100644
        CFI_ENDPROC
  ENDPROC(call_rwsem_wake)
  
-@@ -131,6 +134,7 @@ ENTRY(call_rwsem_downgrade_wake)
-       __ASM_SIZE(pop,_cfi) %__ASM_REG(dx)
-       CFI_RESTORE __ASM_REG(dx)
+@@ -127,6 +130,7 @@ ENTRY(call_rwsem_downgrade_wake)
+       call rwsem_downgrade_wake
+       __ASM_SIZE(pop,_cfi_reg) __ASM_REG(dx)
        restore_common_regs
 +      pax_force_retaddr
        ret
        CFI_ENDPROC
  ENDPROC(call_rwsem_downgrade_wake)
 diff --git a/arch/x86/lib/thunk_64.S b/arch/x86/lib/thunk_64.S
-index b30b5eb..2b57052 100644
+index f89ba4e9..512b2de 100644
 --- a/arch/x86/lib/thunk_64.S
 +++ b/arch/x86/lib/thunk_64.S
 @@ -9,6 +9,7 @@
@@ -31044,34 +31342,27 @@ index b30b5eb..2b57052 100644
  
        /* rdi: arg1 ... normal C conventions. rax is saved/restored. */
        .macro THUNK name, func, put_ret_addr_in_rdi=0
-@@ -16,11 +17,11 @@
- \name:
-       CFI_STARTPROC
--      /* this one pushes 9 elems, the next one would be %rIP */
--      SAVE_ARGS
-+      /* this one pushes 15+1 elems, the next one would be %rIP */
-+      SAVE_ARGS 8
-       .if \put_ret_addr_in_rdi
--      movq_cfi_restore 9*8, rdi
-+      movq_cfi_restore RIP, rdi
-       .endif
-       call \func
-@@ -47,9 +48,10 @@
-       /* SAVE_ARGS below is used only for the .cfi directives it contains. */
-       CFI_STARTPROC
--      SAVE_ARGS
-+      SAVE_ARGS 8
- restore:
--      RESTORE_ARGS
-+      RESTORE_ARGS 1,8
+@@ -69,6 +70,7 @@ restore:
+       popq_cfi_reg rdx
+       popq_cfi_reg rsi
+       popq_cfi_reg rdi
 +      pax_force_retaddr
        ret
        CFI_ENDPROC
        _ASM_NOKPROBE(restore)
+diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c
+index ddf9ecb..e342586 100644
+--- a/arch/x86/lib/usercopy.c
++++ b/arch/x86/lib/usercopy.c
+@@ -20,7 +20,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
+       unsigned long ret;
+       if (__range_not_ok(from, n, TASK_SIZE))
+-              return 0;
++              return n;
+       /*
+        * Even though this function is typically called from NMI/IRQ context
 diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
 index e2f5e21..4b22130 100644
 --- a/arch/x86/lib/usercopy_32.c
@@ -31718,17 +32009,17 @@ index 0a42327..7a82465 100644
        return len;
  }
 diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
-index c4cc740..60a7362 100644
+index a482d10..1a6edb5 100644
 --- a/arch/x86/mm/Makefile
 +++ b/arch/x86/mm/Makefile
-@@ -35,3 +35,7 @@ obj-$(CONFIG_NUMA_EMU)               += numa_emulation.o
- obj-$(CONFIG_MEMTEST)         += memtest.o
+@@ -33,3 +33,7 @@ obj-$(CONFIG_ACPI_NUMA)              += srat.o
+ obj-$(CONFIG_NUMA_EMU)                += numa_emulation.o
  
  obj-$(CONFIG_X86_INTEL_MPX)   += mpx.o
 +
 +quote:="
 +obj-$(CONFIG_X86_64)          += uderef_64.o
-+CFLAGS_uderef_64.o            := $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS))
++CFLAGS_uderef_64.o            := $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS)) -fcall-saved-rax
 diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
 index 903ec1e..c4166b2 100644
 --- a/arch/x86/mm/extable.c
@@ -31784,7 +32075,7 @@ index 903ec1e..c4166b2 100644
  }
  
 diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
-index ede025f..380466b 100644
+index 181c53b..d336596 100644
 --- a/arch/x86/mm/fault.c
 +++ b/arch/x86/mm/fault.c
 @@ -13,12 +13,19 @@
@@ -31807,15 +32098,6 @@ index ede025f..380466b 100644
  
  #define CREATE_TRACE_POINTS
  #include <asm/trace/exceptions.h>
-@@ -59,7 +66,7 @@ static nokprobe_inline int kprobes_fault(struct pt_regs *regs)
-       int ret = 0;
-       /* kprobe_running() needs smp_processor_id() */
--      if (kprobes_built_in() && !user_mode_vm(regs)) {
-+      if (kprobes_built_in() && !user_mode(regs)) {
-               preempt_disable();
-               if (kprobe_running() && kprobe_fault_handler(regs, 14))
-                       ret = 1;
 @@ -120,7 +127,10 @@ check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr,
                return !instr_lo || (instr_lo>>1) == 1;
        case 0x00:
@@ -32005,11 +32287,11 @@ index ede025f..380466b 100644
 +#ifdef CONFIG_PAX_KERNEXEC
 +      if (init_mm.start_code <= address && address < init_mm.end_code) {
 +              if (current->signal->curr_ip)
-+                      printk(KERN_ERR "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n",
++                      printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n",
 +                                      &current->signal->curr_ip, current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
 +              else
-+                      printk(KERN_ERR "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
++                      printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
 +                                      from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
 +      }
 +#endif
@@ -32049,11 +32331,19 @@ index ede025f..380466b 100644
                code = BUS_MCEERR_AR;
        }
  #endif
-@@ -916,6 +1028,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
+@@ -916,6 +1028,107 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
        return 1;
  }
  
 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
++static inline unsigned long get_limit(unsigned long segment)
++{
++      unsigned long __limit;
++
++      asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
++      return __limit + 1;
++}
++
 +static int pax_handle_pageexec_fault(struct pt_regs *regs, struct mm_struct *mm, unsigned long address, unsigned long error_code)
 +{
 +      pte_t *pte;
@@ -32100,7 +32390,7 @@ index ede025f..380466b 100644
 +      }
 +
 +#ifdef CONFIG_SMP
-+      if (likely(address > get_limit(regs->cs) && cpu_isset(smp_processor_id(), mm->context.cpu_user_cs_mask)))
++      if (likely(address > get_limit(regs->cs) && cpumask_test_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask)))
 +#else
 +      if (likely(address > get_limit(regs->cs)))
 +#endif
@@ -32149,7 +32439,7 @@ index ede025f..380466b 100644
  /*
   * Handle a spurious fault caused by a stale TLB entry.
   *
-@@ -1001,6 +1206,9 @@ int show_unhandled_signals = 1;
+@@ -1001,6 +1214,9 @@ int show_unhandled_signals = 1;
  static inline int
  access_error(unsigned long error_code, struct vm_area_struct *vma)
  {
@@ -32159,30 +32449,21 @@ index ede025f..380466b 100644
        if (error_code & PF_WRITE) {
                /* write, present and write, not present: */
                if (unlikely(!(vma->vm_flags & VM_WRITE)))
-@@ -1035,7 +1243,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
-       if (error_code & PF_USER)
-               return false;
--      if (!user_mode_vm(regs) && (regs->flags & X86_EFLAGS_AC))
-+      if (!user_mode(regs) && (regs->flags & X86_EFLAGS_AC))
-               return false;
-       return true;
-@@ -1063,6 +1271,22 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code,
+@@ -1063,6 +1279,22 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code,
        tsk = current;
        mm = tsk->mm;
  
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
 +      if (!user_mode(regs) && address < 2 * pax_user_shadow_base) {
 +              if (!search_exception_tables(regs->ip)) {
-+                      printk(KERN_ERR "PAX: please report this to pageexec@freemail.hu\n");
++                      printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
 +                      bad_area_nosemaphore(regs, error_code, address);
 +                      return;
 +              }
 +              if (address < pax_user_shadow_base) {
-+                      printk(KERN_ERR "PAX: please report this to pageexec@freemail.hu\n");
-+                      printk(KERN_ERR "PAX: faulting IP: %pS\n", (void *)regs->ip);
-+                      show_trace_log_lvl(NULL, NULL, (void *)regs->sp, regs->bp, KERN_ERR);
++                      printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
++                      printk(KERN_EMERG "PAX: faulting IP: %pS\n", (void *)regs->ip);
++                      show_trace_log_lvl(NULL, NULL, (void *)regs->sp, regs->bp, KERN_EMERG);
 +              } else
 +                      address -= pax_user_shadow_base;
 +      }
@@ -32191,16 +32472,7 @@ index ede025f..380466b 100644
        /*
         * Detect and handle instructions that would cause a page fault for
         * both a tracked kernel page and a userspace page.
-@@ -1140,7 +1364,7 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code,
-        * User-mode registers count as a user access even for any
-        * potential system fault or CPU buglet:
-        */
--      if (user_mode_vm(regs)) {
-+      if (user_mode(regs)) {
-               local_irq_enable();
-               error_code |= PF_USER;
-               flags |= FAULT_FLAG_USER;
-@@ -1187,6 +1411,11 @@ retry:
+@@ -1187,6 +1419,11 @@ retry:
                might_sleep();
        }
  
@@ -32212,7 +32484,7 @@ index ede025f..380466b 100644
        vma = find_vma(mm, address);
        if (unlikely(!vma)) {
                bad_area(regs, error_code, address);
-@@ -1198,18 +1427,24 @@ retry:
+@@ -1198,18 +1435,24 @@ retry:
                bad_area(regs, error_code, address);
                return;
        }
@@ -32248,7 +32520,7 @@ index ede025f..380466b 100644
        if (unlikely(expand_stack(vma, address))) {
                bad_area(regs, error_code, address);
                return;
-@@ -1329,3 +1564,292 @@ trace_do_page_fault(struct pt_regs *regs, unsigned long error_code)
+@@ -1329,3 +1572,292 @@ trace_do_page_fault(struct pt_regs *regs, unsigned long error_code)
  }
  NOKPROBE_SYMBOL(trace_do_page_fault);
  #endif /* CONFIG_TRACING */
@@ -32684,7 +32956,7 @@ index 42982b2..7168fc3 100644
  #endif /* CONFIG_HUGETLB_PAGE */
  
 diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-index a110efc..a31a18f 100644
+index 1d55318..d58fd6a 100644
 --- a/arch/x86/mm/init.c
 +++ b/arch/x86/mm/init.c
 @@ -4,6 +4,7 @@
@@ -32704,7 +32976,7 @@ index a110efc..a31a18f 100644
  
  /*
   * We need to define the tracepoints somewhere, and tlb.c
-@@ -620,7 +623,18 @@ void __init init_mem_mapping(void)
+@@ -615,7 +618,18 @@ void __init init_mem_mapping(void)
        early_ioremap_page_table_range_init();
  #endif
  
@@ -32723,7 +32995,7 @@ index a110efc..a31a18f 100644
        __flush_tlb_all();
  
        early_memtest(0, max_pfn_mapped << PAGE_SHIFT);
-@@ -636,10 +650,40 @@ void __init init_mem_mapping(void)
+@@ -631,10 +645,40 @@ void __init init_mem_mapping(void)
   * Access has to be given to non-kernel-ram areas as well, these contain the PCI
   * mmio resources as well as potential bios/acpi data regions.
   */
@@ -32765,7 +33037,7 @@ index a110efc..a31a18f 100644
        if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
                return 0;
        if (!page_is_ram(pagenr))
-@@ -685,8 +729,117 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
+@@ -680,8 +724,117 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
  #endif
  }
  
@@ -33137,10 +33409,10 @@ index c8140e1..59257fc 100644
        printk(KERN_INFO "Write protecting the kernel text: %luk\n",
                size >> 10);
 diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
-index 30eb05a..ae671ac 100644
+index 3fba623..5ee9802 100644
 --- a/arch/x86/mm/init_64.c
 +++ b/arch/x86/mm/init_64.c
-@@ -150,7 +150,7 @@ early_param("gbpages", parse_direct_gbpages_on);
+@@ -136,7 +136,7 @@ int kernel_ident_mapping_init(struct x86_mapping_info *info, pgd_t *pgd_page,
   * around without checking the pgd every time.
   */
  
@@ -33149,7 +33421,7 @@ index 30eb05a..ae671ac 100644
  EXPORT_SYMBOL_GPL(__supported_pte_mask);
  
  int force_personality32;
-@@ -183,7 +183,12 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
+@@ -169,7 +169,12 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
  
        for (address = start; address <= end; address += PGDIR_SIZE) {
                const pgd_t *pgd_ref = pgd_offset_k(address);
@@ -33162,7 +33434,7 @@ index 30eb05a..ae671ac 100644
  
                /*
                 * When it is called after memory hot remove, pgd_none()
-@@ -194,6 +199,25 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
+@@ -180,6 +185,25 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
                        continue;
  
                spin_lock(&pgd_lock);
@@ -33188,7 +33460,7 @@ index 30eb05a..ae671ac 100644
                list_for_each_entry(page, &pgd_list, lru) {
                        pgd_t *pgd;
                        spinlock_t *pgt_lock;
-@@ -202,6 +226,7 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
+@@ -188,6 +212,7 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
                        /* the pgt_lock only for Xen */
                        pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
                        spin_lock(pgt_lock);
@@ -33196,7 +33468,7 @@ index 30eb05a..ae671ac 100644
  
                        if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
                                BUG_ON(pgd_page_vaddr(*pgd)
-@@ -215,7 +240,10 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
+@@ -201,7 +226,10 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
                                        set_pgd(pgd, *pgd_ref);
                        }
  
@@ -33207,7 +33479,7 @@ index 30eb05a..ae671ac 100644
                }
                spin_unlock(&pgd_lock);
        }
-@@ -248,7 +276,7 @@ static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
+@@ -234,7 +262,7 @@ static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
  {
        if (pgd_none(*pgd)) {
                pud_t *pud = (pud_t *)spp_getpage();
@@ -33216,7 +33488,7 @@ index 30eb05a..ae671ac 100644
                if (pud != pud_offset(pgd, 0))
                        printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n",
                               pud, pud_offset(pgd, 0));
-@@ -260,7 +288,7 @@ static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
+@@ -246,7 +274,7 @@ static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
  {
        if (pud_none(*pud)) {
                pmd_t *pmd = (pmd_t *) spp_getpage();
@@ -33225,7 +33497,7 @@ index 30eb05a..ae671ac 100644
                if (pmd != pmd_offset(pud, 0))
                        printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
                               pmd, pmd_offset(pud, 0));
-@@ -289,7 +317,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
+@@ -275,7 +303,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
        pmd = fill_pmd(pud, vaddr);
        pte = fill_pte(pmd, vaddr);
  
@@ -33235,7 +33507,7 @@ index 30eb05a..ae671ac 100644
  
        /*
         * It's enough to flush this one mapping.
-@@ -351,14 +381,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
+@@ -337,14 +367,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
                pgd = pgd_offset_k((unsigned long)__va(phys));
                if (pgd_none(*pgd)) {
                        pud = (pud_t *) spp_getpage();
@@ -33252,7 +33524,7 @@ index 30eb05a..ae671ac 100644
                }
                pmd = pmd_offset(pud, phys);
                BUG_ON(!pmd_none(*pmd));
-@@ -599,7 +627,7 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
+@@ -585,7 +613,7 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
                                              prot);
  
                spin_lock(&init_mm.page_table_lock);
@@ -33261,7 +33533,7 @@ index 30eb05a..ae671ac 100644
                spin_unlock(&init_mm.page_table_lock);
        }
        __flush_tlb_all();
-@@ -640,7 +668,7 @@ kernel_physical_mapping_init(unsigned long start,
+@@ -626,7 +654,7 @@ kernel_physical_mapping_init(unsigned long start,
                                                 page_size_mask);
  
                spin_lock(&init_mm.page_table_lock);
@@ -33287,7 +33559,7 @@ index 9ca35fc..4b2b7b7 100644
  
        return (void *)vaddr;
 diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
-index fdf617c..b9e85bc 100644
+index 70e7444..75b9a13 100644
 --- a/arch/x86/mm/ioremap.c
 +++ b/arch/x86/mm/ioremap.c
 @@ -56,8 +56,8 @@ static int __ioremap_check_ram(unsigned long start_pfn, unsigned long nr_pages,
@@ -33301,7 +33573,7 @@ index fdf617c..b9e85bc 100644
                        return 1;
  
        WARN_ONCE(1, "ioremap on RAM pfn 0x%lx\n", start_pfn);
-@@ -283,7 +283,7 @@ EXPORT_SYMBOL(ioremap_prot);
+@@ -288,7 +288,7 @@ EXPORT_SYMBOL(ioremap_prot);
   *
   * Caller must ensure there is only one unmapping for the same pointer.
   */
@@ -33310,39 +33582,52 @@ index fdf617c..b9e85bc 100644
  {
        struct vm_struct *p, *o;
  
-@@ -332,30 +332,29 @@ EXPORT_SYMBOL(iounmap);
+@@ -351,32 +351,36 @@ int arch_ioremap_pmd_supported(void)
   */
  void *xlate_dev_mem_ptr(phys_addr_t phys)
  {
--      void *addr;
--      unsigned long start = phys & PAGE_MASK;
--
-       /* If page is RAM, we can use __va. Otherwise ioremap and unmap. */
+-      unsigned long start  = phys &  PAGE_MASK;
+-      unsigned long offset = phys & ~PAGE_MASK;
+-      unsigned long vaddr;
++      phys_addr_t pfn = phys >> PAGE_SHIFT;
+-      /* If page is RAM, we can use __va. Otherwise ioremap and unmap. */
 -      if (page_is_ram(start >> PAGE_SHIFT))
-+      if (page_is_ram(phys >> PAGE_SHIFT))
+-              return __va(phys);
++      if (page_is_ram(pfn)) {
 +#ifdef CONFIG_HIGHMEM
-+      if ((phys >> PAGE_SHIFT) < max_low_pfn)
++              if (pfn >= max_low_pfn)
++                      return kmap_high(pfn_to_page(pfn));
++              else
 +#endif
-               return __va(phys);
++                      return __va(phys);
++      }
  
--      addr = (void __force *)ioremap_cache(start, PAGE_SIZE);
--      if (addr)
--              addr = (void *)((unsigned long)addr | (phys & ~PAGE_MASK));
+-      vaddr = (unsigned long)ioremap_cache(start, PAGE_SIZE);
+-      /* Only add the offset on success and return NULL if the ioremap() failed: */
+-      if (vaddr)
+-              vaddr += offset;
 -
--      return addr;
-+      return (void __force *)ioremap_cache(phys, PAGE_SIZE);
+-      return (void *)vaddr;
++      return (void __force *)ioremap_cache(phys, 1);
  }
  
  void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr)
  {
-       if (page_is_ram(phys >> PAGE_SHIFT))
+-      if (page_is_ram(phys >> PAGE_SHIFT))
++      phys_addr_t pfn = phys >> PAGE_SHIFT;
++
++      if (page_is_ram(pfn)) {
 +#ifdef CONFIG_HIGHMEM
-+      if ((phys >> PAGE_SHIFT) < max_low_pfn)
++              if (pfn >= max_low_pfn)
++                      kunmap_high(pfn_to_page(pfn));
 +#endif
                return;
++      }
  
-       iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK));
-       return;
+-      iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK));
+-      return;
++      iounmap((void __iomem __force *)addr);
  }
  
 -static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_bss;
@@ -33350,7 +33635,7 @@ index fdf617c..b9e85bc 100644
  
  static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
  {
-@@ -391,8 +390,7 @@ void __init early_ioremap_init(void)
+@@ -412,8 +416,7 @@ void __init early_ioremap_init(void)
        early_ioremap_setup();
  
        pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
@@ -33377,7 +33662,7 @@ index b4f2e7e..96c9c3e 100644
  
        pte = kmemcheck_pte_lookup(address);
 diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
-index df4552b..12c129c 100644
+index 9d518d6..8a091f5 100644
 --- a/arch/x86/mm/mmap.c
 +++ b/arch/x86/mm/mmap.c
 @@ -52,7 +52,7 @@ static unsigned long stack_maxrandom_size(void)
@@ -33389,12 +33674,12 @@ index df4552b..12c129c 100644
  
  static int mmap_is_legacy(void)
  {
-@@ -82,27 +82,40 @@ static unsigned long mmap_rnd(void)
+@@ -81,27 +81,40 @@ unsigned long arch_mmap_rnd(void)
        return rnd << PAGE_SHIFT;
  }
  
--static unsigned long mmap_base(void)
-+static unsigned long mmap_base(struct mm_struct *mm)
+-static unsigned long mmap_base(unsigned long rnd)
++static unsigned long mmap_base(struct mm_struct *mm, unsigned long rnd)
  {
        unsigned long gap = rlimit(RLIMIT_STACK);
 +      unsigned long pax_task_size = TASK_SIZE;
@@ -33409,16 +33694,16 @@ index df4552b..12c129c 100644
        else if (gap > MAX_GAP)
                gap = MAX_GAP;
  
--      return PAGE_ALIGN(TASK_SIZE - gap - mmap_rnd());
-+      return PAGE_ALIGN(pax_task_size - gap - mmap_rnd());
+-      return PAGE_ALIGN(TASK_SIZE - gap - rnd);
++      return PAGE_ALIGN(pax_task_size - gap - rnd);
  }
  
  /*
   * Bottom-up (legacy) layout on X86_32 did not support randomization, X86_64
   * does, but not when emulating X86_32
   */
--static unsigned long mmap_legacy_base(void)
-+static unsigned long mmap_legacy_base(struct mm_struct *mm)
+-static unsigned long mmap_legacy_base(unsigned long rnd)
++static unsigned long mmap_legacy_base(struct mm_struct *mm, unsigned long rnd)
  {
 -      if (mmap_is_ia32())
 +      if (mmap_is_ia32()) {
@@ -33432,17 +33717,30 @@ index df4552b..12c129c 100644
                return TASK_UNMAPPED_BASE;
 -      else
 +      } else
-               return TASK_UNMAPPED_BASE + mmap_rnd();
+               return TASK_UNMAPPED_BASE + rnd;
  }
  
-@@ -112,8 +125,15 @@ static unsigned long mmap_legacy_base(void)
-  */
- void arch_pick_mmap_layout(struct mm_struct *mm)
+@@ -113,16 +126,27 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
  {
--      mm->mmap_legacy_base = mmap_legacy_base();
--      mm->mmap_base = mmap_base();
-+      mm->mmap_legacy_base = mmap_legacy_base(mm);
-+      mm->mmap_base = mmap_base(mm);
+       unsigned long random_factor = 0UL;
++#ifdef CONFIG_PAX_RANDMMAP
++      if (!(mm->pax_flags & MF_PAX_RANDMMAP))
++#endif
+       if (current->flags & PF_RANDOMIZE)
+               random_factor = arch_mmap_rnd();
+-      mm->mmap_legacy_base = mmap_legacy_base(random_factor);
++      mm->mmap_legacy_base = mmap_legacy_base(mm, random_factor);
+       if (mmap_is_legacy()) {
+               mm->mmap_base = mm->mmap_legacy_base;
+               mm->get_unmapped_area = arch_get_unmapped_area;
+       } else {
+-              mm->mmap_base = mmap_base(random_factor);
++              mm->mmap_base = mmap_base(mm, random_factor);
+               mm->get_unmapped_area = arch_get_unmapped_area_topdown;
+       }
 +
 +#ifdef CONFIG_PAX_RANDMMAP
 +      if (mm->pax_flags & MF_PAX_RANDMMAP) {
@@ -33450,9 +33748,8 @@ index df4552b..12c129c 100644
 +              mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
 +      }
 +#endif
-       if (mmap_is_legacy()) {
-               mm->mmap_base = mm->mmap_legacy_base;
++
+ }
 diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
 index 0057a7a..95c7edd 100644
 --- a/arch/x86/mm/mmio-mod.c
@@ -33503,10 +33800,10 @@ index 0057a7a..95c7edd 100644
        might_sleep();
        if (is_enabled()) /* recheck and proper locking in *_core() */
 diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
-index cd4785b..25188b6 100644
+index 4053bb5..b1ad3dc 100644
 --- a/arch/x86/mm/numa.c
 +++ b/arch/x86/mm/numa.c
-@@ -499,7 +499,7 @@ static void __init numa_clear_kernel_node_hotplug(void)
+@@ -506,7 +506,7 @@ static void __init numa_clear_kernel_node_hotplug(void)
        }
  }
  
@@ -33516,10 +33813,10 @@ index cd4785b..25188b6 100644
        unsigned long uninitialized_var(pfn_align);
        int i, nid;
 diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
-index 536ea2f..f42c293 100644
+index 89af288..05381957 100644
 --- a/arch/x86/mm/pageattr.c
 +++ b/arch/x86/mm/pageattr.c
-@@ -262,7 +262,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
+@@ -260,7 +260,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
         */
  #ifdef CONFIG_PCI_BIOS
        if (pcibios_enabled && within(pfn, BIOS_BEGIN >> PAGE_SHIFT, BIOS_END >> PAGE_SHIFT))
@@ -33528,7 +33825,7 @@ index 536ea2f..f42c293 100644
  #endif
  
        /*
-@@ -270,9 +270,10 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
+@@ -268,9 +268,10 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
         * Does not cover __inittext since that is gone later on. On
         * 64bit we do not enforce !NX on the low mapping
         */
@@ -33541,7 +33838,7 @@ index 536ea2f..f42c293 100644
        /*
         * The .rodata section needs to be read-only. Using the pfn
         * catches all aliases.
-@@ -280,6 +281,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
+@@ -278,6 +279,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
        if (within(pfn, __pa_symbol(__start_rodata) >> PAGE_SHIFT,
                   __pa_symbol(__end_rodata) >> PAGE_SHIFT))
                pgprot_val(forbidden) |= _PAGE_RW;
@@ -33549,7 +33846,7 @@ index 536ea2f..f42c293 100644
  
  #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA)
        /*
-@@ -318,6 +320,13 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
+@@ -316,6 +318,13 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
        }
  #endif
  
@@ -33563,7 +33860,7 @@ index 536ea2f..f42c293 100644
        prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden));
  
        return prot;
-@@ -440,23 +449,37 @@ EXPORT_SYMBOL_GPL(slow_virt_to_phys);
+@@ -438,23 +447,37 @@ EXPORT_SYMBOL_GPL(slow_virt_to_phys);
  static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
  {
        /* change init_mm */
@@ -33604,7 +33901,7 @@ index 536ea2f..f42c293 100644
  
  static int
 diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
-index 7ac6869..c0ba541 100644
+index 35af677..e7bf11f 100644
 --- a/arch/x86/mm/pat.c
 +++ b/arch/x86/mm/pat.c
 @@ -89,7 +89,7 @@ static inline enum page_cache_mode get_page_memtype(struct page *pg)
@@ -33651,10 +33948,10 @@ index 7ac6869..c0ba541 100644
  
        while (cursor < to) {
                if (!devmem_is_allowed(pfn)) {
--                      printk(KERN_INFO "Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx]\n",
--                              current->comm, from, to - 1);
-+                      printk(KERN_INFO "Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx] (%#010Lx)\n",
-+                              current->comm, from, to - 1, cursor);
+-                      printk(KERN_INFO "Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx], PAT prevents it\n",
+-                             current->comm, from, to - 1);
++                      printk(KERN_INFO "Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx] (%#010Lx), PAT prevents it\n",
++                             current->comm, from, to - 1, cursor);
                        return 0;
                }
                cursor += PAGE_SIZE;
@@ -33748,10 +34045,10 @@ index 9f0614d..92ae64a 100644
        p += get_opcode(p, &opcode);
        for (i = 0; i < ARRAY_SIZE(imm_wop); i++)
 diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
-index 7b22ada..b11e66f 100644
+index 0b97d2c..597bb38 100644
 --- a/arch/x86/mm/pgtable.c
 +++ b/arch/x86/mm/pgtable.c
-@@ -97,10 +97,75 @@ static inline void pgd_list_del(pgd_t *pgd)
+@@ -98,10 +98,75 @@ static inline void pgd_list_del(pgd_t *pgd)
        list_del(&page->lru);
  }
  
@@ -33829,7 +34126,7 @@ index 7b22ada..b11e66f 100644
  static void pgd_set_mm(pgd_t *pgd, struct mm_struct *mm)
  {
        BUILD_BUG_ON(sizeof(virt_to_page(pgd)->index) < sizeof(mm));
-@@ -141,6 +206,7 @@ static void pgd_dtor(pgd_t *pgd)
+@@ -142,6 +207,7 @@ static void pgd_dtor(pgd_t *pgd)
        pgd_list_del(pgd);
        spin_unlock(&pgd_lock);
  }
@@ -33837,7 +34134,7 @@ index 7b22ada..b11e66f 100644
  
  /*
   * List of all pgd's needed for non-PAE so it can invalidate entries
-@@ -153,7 +219,7 @@ static void pgd_dtor(pgd_t *pgd)
+@@ -154,7 +220,7 @@ static void pgd_dtor(pgd_t *pgd)
   * -- nyc
   */
  
@@ -33846,7 +34143,7 @@ index 7b22ada..b11e66f 100644
  /*
   * In PAE mode, we need to do a cr3 reload (=tlb flush) when
   * updating the top-level pagetable entries to guarantee the
-@@ -165,7 +231,7 @@ static void pgd_dtor(pgd_t *pgd)
+@@ -166,7 +232,7 @@ static void pgd_dtor(pgd_t *pgd)
   * not shared between pagetables (!SHARED_KERNEL_PMDS), we allocate
   * and initialize the kernel pmds here.
   */
@@ -33855,7 +34152,7 @@ index 7b22ada..b11e66f 100644
  
  void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
  {
-@@ -183,46 +249,48 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
+@@ -184,46 +250,48 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
         */
        flush_tlb_mm(mm);
  }
@@ -33922,7 +34219,7 @@ index 7b22ada..b11e66f 100644
                return -ENOMEM;
        }
  
-@@ -235,50 +303,54 @@ static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
+@@ -236,43 +304,47 @@ static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
   * preallocate which never got a corresponding vma will need to be
   * freed manually.
   */
@@ -33986,15 +34283,16 @@ index 7b22ada..b11e66f 100644
        }
  }
  
+@@ -354,7 +426,7 @@ static inline void _pgd_free(pgd_t *pgd)
  pgd_t *pgd_alloc(struct mm_struct *mm)
  {
        pgd_t *pgd;
 -      pmd_t *pmds[PREALLOCATED_PMDS];
 +      pxd_t *pxds[PREALLOCATED_PXDS];
  
-       pgd = (pgd_t *)__get_free_page(PGALLOC_GFP);
+       pgd = _pgd_alloc();
  
-@@ -287,11 +359,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
+@@ -363,11 +435,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
  
        mm->pgd = pgd;
  
@@ -34008,7 +34306,7 @@ index 7b22ada..b11e66f 100644
  
        /*
         * Make sure that pre-populating the pmds is atomic with
-@@ -301,14 +373,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
+@@ -377,14 +449,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
        spin_lock(&pgd_lock);
  
        pgd_ctor(mm, pgd);
@@ -34024,9 +34322,9 @@ index 7b22ada..b11e66f 100644
 +out_free_pxds:
 +      free_pxds(mm, pxds);
  out_free_pgd:
-       free_page((unsigned long)pgd);
+       _pgd_free(pgd);
  out:
-@@ -317,7 +389,7 @@ out:
+@@ -393,7 +465,7 @@ out:
  
  void pgd_free(struct mm_struct *mm, pgd_t *pgd)
  {
@@ -34034,7 +34332,7 @@ index 7b22ada..b11e66f 100644
 +      pgd_mop_up_pxds(mm, pgd);
        pgd_dtor(pgd);
        paravirt_pgd_free(mm, pgd);
-       free_page((unsigned long)pgd);
+       _pgd_free(pgd);
 diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
 index 75cc097..79a097f 100644
 --- a/arch/x86/mm/pgtable_32.c
@@ -34126,7 +34424,7 @@ index 3250f23..7a97ba2 100644
                 * functions differently.  Tracing normally
 diff --git a/arch/x86/mm/uderef_64.c b/arch/x86/mm/uderef_64.c
 new file mode 100644
-index 0000000..dace51c
+index 0000000..3fda3f3
 --- /dev/null
 +++ b/arch/x86/mm/uderef_64.c
 @@ -0,0 +1,37 @@
@@ -34139,7 +34437,7 @@ index 0000000..dace51c
 + * - remain leaf functions under all configurations,
 + * - never be called directly, only dereferenced from the wrappers.
 + */
-+void __pax_open_userland(void)
++void __used __pax_open_userland(void)
 +{
 +      unsigned int cpu;
 +
@@ -34148,12 +34446,12 @@ index 0000000..dace51c
 +
 +      cpu = raw_get_cpu();
 +      BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_KERNEL);
-+      write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
++      write_cr3(__pa_nodebug(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
 +      raw_put_cpu_no_resched();
 +}
 +EXPORT_SYMBOL(__pax_open_userland);
 +
-+void __pax_close_userland(void)
++void __used __pax_close_userland(void)
 +{
 +      unsigned int cpu;
 +
@@ -34162,7 +34460,7 @@ index 0000000..dace51c
 +
 +      cpu = raw_get_cpu();
 +      BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_USER);
-+      write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
++      write_cr3(__pa_nodebug(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
 +      raw_put_cpu_no_resched();
 +}
 +EXPORT_SYMBOL(__pax_close_userland);
@@ -34257,7 +34555,7 @@ index 6440221..f84b5c7 100644
 +      pax_force_retaddr
        ret
 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
-index 9875143..36776ae 100644
+index ddeff48..877ead6 100644
 --- a/arch/x86/net/bpf_jit_comp.c
 +++ b/arch/x86/net/bpf_jit_comp.c
 @@ -13,7 +13,11 @@
@@ -34282,49 +34580,7 @@ index 9875143..36776ae 100644
  }
  
  struct jit_context {
-@@ -559,6 +565,13 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
-                               if (is_ereg(dst_reg))
-                                       EMIT1(0x41);
-                               EMIT3(0xC1, add_1reg(0xC8, dst_reg), 8);
-+
-+                              /* emit 'movzwl eax, ax' */
-+                              if (is_ereg(dst_reg))
-+                                      EMIT3(0x45, 0x0F, 0xB7);
-+                              else
-+                                      EMIT2(0x0F, 0xB7);
-+                              EMIT1(add_2reg(0xC0, dst_reg, dst_reg));
-                               break;
-                       case 32:
-                               /* emit 'bswap eax' to swap lower 4 bytes */
-@@ -577,6 +590,27 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
-                       break;
-               case BPF_ALU | BPF_END | BPF_FROM_LE:
-+                      switch (imm32) {
-+                      case 16:
-+                              /* emit 'movzwl eax, ax' to zero extend 16-bit
-+                               * into 64 bit
-+                               */
-+                              if (is_ereg(dst_reg))
-+                                      EMIT3(0x45, 0x0F, 0xB7);
-+                              else
-+                                      EMIT2(0x0F, 0xB7);
-+                              EMIT1(add_2reg(0xC0, dst_reg, dst_reg));
-+                              break;
-+                      case 32:
-+                              /* emit 'mov eax, eax' to clear upper 32-bits */
-+                              if (is_ereg(dst_reg))
-+                                      EMIT1(0x45);
-+                              EMIT2(0x89, add_2reg(0xC0, dst_reg, dst_reg));
-+                              break;
-+                      case 64:
-+                              /* nop */
-+                              break;
-+                      }
-                       break;
-                       /* ST: *(u8*)(dst_reg + off) = imm */
-@@ -896,7 +930,9 @@ common_load:
+@@ -924,7 +930,9 @@ common_load:
                                pr_err("bpf_jit_compile fatal error\n");
                                return -EFAULT;
                        }
@@ -34334,7 +34590,7 @@ index 9875143..36776ae 100644
                }
                proglen += ilen;
                addrs[i] = proglen;
-@@ -968,7 +1004,6 @@ void bpf_int_jit_compile(struct bpf_prog *prog)
+@@ -1001,7 +1009,6 @@ void bpf_int_jit_compile(struct bpf_prog *prog)
  
        if (image) {
                bpf_flush_icache(header, image + proglen);
@@ -34342,7 +34598,7 @@ index 9875143..36776ae 100644
                prog->bpf_func = (void *)image;
                prog->jited = true;
        }
-@@ -981,12 +1016,8 @@ void bpf_jit_free(struct bpf_prog *fp)
+@@ -1014,12 +1021,8 @@ void bpf_jit_free(struct bpf_prog *fp)
        unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
        struct bpf_binary_header *header = (void *)addr;
  
@@ -34358,7 +34614,7 @@ index 9875143..36776ae 100644
        bpf_prog_unlock_free(fp);
  }
 diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
-index 5d04be5..2beeaa2 100644
+index 4e664bd..2beeaa2 100644
 --- a/arch/x86/oprofile/backtrace.c
 +++ b/arch/x86/oprofile/backtrace.c
 @@ -46,11 +46,11 @@ dump_user_backtrace_32(struct stack_frame_ia32 *head)
@@ -34384,15 +34640,6 @@ index 5d04be5..2beeaa2 100644
        if (bytes != 0)
                return NULL;
  
-@@ -111,7 +111,7 @@ x86_backtrace(struct pt_regs * const regs, unsigned int depth)
- {
-       struct stack_frame *head = (struct stack_frame *)frame_pointer(regs);
--      if (!user_mode_vm(regs)) {
-+      if (!user_mode(regs)) {
-               unsigned long stack = kernel_stack_pointer(regs);
-               if (depth)
-                       dump_trace(NULL, regs, (unsigned long *)stack, 0,
 diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
 index 1d2e639..f6ef82a 100644
 --- a/arch/x86/oprofile/nmi_int.c
@@ -34832,19 +35079,24 @@ index 9b83b90..4112152 100644
  }
  EXPORT_SYMBOL(pcibios_set_irq_routing);
 diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c
-index 40e7cda..c7e6672 100644
+index ed5b673..24d2d53 100644
 --- a/arch/x86/platform/efi/efi_32.c
 +++ b/arch/x86/platform/efi/efi_32.c
-@@ -61,11 +61,22 @@ void __init efi_call_phys_prolog(void)
- {
+@@ -61,11 +61,27 @@ pgd_t * __init efi_call_phys_prolog(void)
        struct desc_ptr gdt_descr;
+       pgd_t *save_pgd;
  
 +#ifdef CONFIG_PAX_KERNEXEC
 +      struct desc_struct d;
 +#endif
 +
-       local_irq_save(efi_rt_eflags);
+       /* Current pgd is swapper_pg_dir, we'll restore it later: */
++#ifdef CONFIG_PAX_PER_CPU_PGD
++      save_pgd = get_cpu_pgd(smp_processor_id(), kernel);
++#else
+       save_pgd = swapper_pg_dir;
++#endif
++
        load_cr3(initial_page_table);
        __flush_tlb_all();
  
@@ -34858,7 +35110,7 @@ index 40e7cda..c7e6672 100644
        gdt_descr.address = __pa(get_cpu_gdt_table(0));
        gdt_descr.size = GDT_SIZE - 1;
        load_gdt(&gdt_descr);
-@@ -75,11 +86,24 @@ void __init efi_call_phys_epilog(void)
+@@ -77,6 +93,14 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
  {
        struct desc_ptr gdt_descr;
  
@@ -34873,21 +35125,11 @@ index 40e7cda..c7e6672 100644
        gdt_descr.address = (unsigned long)get_cpu_gdt_table(0);
        gdt_descr.size = GDT_SIZE - 1;
        load_gdt(&gdt_descr);
-+#ifdef CONFIG_PAX_PER_CPU_PGD
-+      load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
-+#else
-       load_cr3(swapper_pg_dir);
-+#endif
-+
-       __flush_tlb_all();
-       local_irq_restore(efi_rt_eflags);
 diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
-index 17e80d8..9fa6e41 100644
+index a0ac0f9..f41d324 100644
 --- a/arch/x86/platform/efi/efi_64.c
 +++ b/arch/x86/platform/efi/efi_64.c
-@@ -98,6 +98,11 @@ void __init efi_call_phys_prolog(void)
+@@ -96,6 +96,11 @@ pgd_t * __init efi_call_phys_prolog(void)
                vaddress = (unsigned long)__va(pgd * PGDIR_SIZE);
                set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), *pgd_offset_k(vaddress));
        }
@@ -34897,21 +35139,20 @@ index 17e80d8..9fa6e41 100644
 +#endif
 +
        __flush_tlb_all();
- }
  
-@@ -115,6 +120,11 @@ void __init efi_call_phys_epilog(void)
-       for (pgd = 0; pgd < n_pgds; pgd++)
-               set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), save_pgd[pgd]);
+       return save_pgd;
+@@ -119,6 +124,10 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
        kfree(save_pgd);
-+
 +#ifdef CONFIG_PAX_PER_CPU_PGD
 +      load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
 +#endif
 +
        __flush_tlb_all();
-       local_irq_restore(efi_flags);
        early_code_mapping_set_exec(0);
-@@ -145,8 +155,23 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
+ }
+@@ -148,8 +157,23 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
        unsigned npages;
        pgd_t *pgd;
  
@@ -35157,10 +35398,10 @@ index aaca917..66eadbc 100644
        return &tangier_ops;
  }
 diff --git a/arch/x86/platform/intel-quark/imr_selftest.c b/arch/x86/platform/intel-quark/imr_selftest.c
-index c9a0838..fae0977 100644
+index 278e4da..55e8d8a 100644
 --- a/arch/x86/platform/intel-quark/imr_selftest.c
 +++ b/arch/x86/platform/intel-quark/imr_selftest.c
-@@ -54,7 +54,7 @@ static void __init imr_self_test_result(int res, const char *fmt, ...)
+@@ -55,7 +55,7 @@ static void __init imr_self_test_result(int res, const char *fmt, ...)
   */
  static void __init imr_self_test(void)
  {
@@ -35183,19 +35424,19 @@ index d6ee929..3637cb5 100644
        .getproplen = olpc_dt_getproplen,
        .getproperty = olpc_dt_getproperty,
 diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
-index 3e32ed5..cc0adc5 100644
+index 757678f..9895d9b 100644
 --- a/arch/x86/power/cpu.c
 +++ b/arch/x86/power/cpu.c
 @@ -134,11 +134,8 @@ static void do_fpu_end(void)
  static void fix_processor_context(void)
  {
        int cpu = smp_processor_id();
--      struct tss_struct *t = &per_cpu(init_tss, cpu);
+-      struct tss_struct *t = &per_cpu(cpu_tss, cpu);
 -#ifdef CONFIG_X86_64
 -      struct desc_struct *desc = get_cpu_gdt_table(cpu);
 -      tss_desc tss;
 -#endif
-+      struct tss_struct *t = init_tss + cpu;
++      struct tss_struct *t = cpu_tss + cpu;
 +
        set_tss_desc(cpu, t);   /*
                                 * This just modifies memory; should not be
@@ -35620,7 +35861,7 @@ index 80ffa5b..a33bd15 100644
  
        return 0;
 diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
-index 7b9be98..39bb57f 100644
+index e970320..c006fea 100644
 --- a/arch/x86/vdso/Makefile
 +++ b/arch/x86/vdso/Makefile
 @@ -175,7 +175,7 @@ quiet_cmd_vdso = VDSO    $@
@@ -35783,7 +36024,7 @@ index e88fda8..76ce7ce 100644
          This is the Linux Xen port.  Enabling this will allow the
          kernel to boot in a paravirtualized environment under the
 diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index 5240f56..0c12163 100644
+index 46957ea..ef7b714 100644
 --- a/arch/x86/xen/enlighten.c
 +++ b/arch/x86/xen/enlighten.c
 @@ -125,8 +125,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
@@ -35824,16 +36065,7 @@ index 5240f56..0c12163 100644
        BUG_ON(va & ~PAGE_MASK);
  
        for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
-@@ -991,7 +987,7 @@ static u32 xen_safe_apic_wait_icr_idle(void)
-         return 0;
- }
--static void set_xen_basic_apic_ops(void)
-+static void __init set_xen_basic_apic_ops(void)
- {
-       apic->read = xen_apic_read;
-       apic->write = xen_apic_write;
-@@ -1308,30 +1304,30 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
+@@ -1223,30 +1219,30 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
  #endif
  };
  
@@ -35871,7 +36103,7 @@ index 5240f56..0c12163 100644
  {
        if (pm_power_off)
                pm_power_off();
-@@ -1484,8 +1480,11 @@ static void __ref xen_setup_gdt(int cpu)
+@@ -1399,8 +1395,11 @@ static void __ref xen_setup_gdt(int cpu)
        pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry_boot;
        pv_cpu_ops.load_gdt = xen_load_gdt_boot;
  
@@ -35885,7 +36117,7 @@ index 5240f56..0c12163 100644
  
        pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry;
        pv_cpu_ops.load_gdt = xen_load_gdt;
-@@ -1600,7 +1599,17 @@ asmlinkage __visible void __init xen_start_kernel(void)
+@@ -1515,7 +1514,17 @@ asmlinkage __visible void __init xen_start_kernel(void)
        __userpte_alloc_gfp &= ~__GFP_HIGHMEM;
  
        /* Work out if we support NX */
@@ -35904,7 +36136,7 @@ index 5240f56..0c12163 100644
  
        /* Get mfn list */
        xen_build_dynamic_phys_to_machine();
-@@ -1628,13 +1637,6 @@ asmlinkage __visible void __init xen_start_kernel(void)
+@@ -1543,13 +1552,6 @@ asmlinkage __visible void __init xen_start_kernel(void)
  
        machine_ops = xen_machine_ops;
  
@@ -35919,7 +36151,7 @@ index 5240f56..0c12163 100644
  
  #ifdef CONFIG_ACPI_NUMA
 diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index adca9e2..cdba9d1 100644
+index dd151b2..d5ab952 100644
 --- a/arch/x86/xen/mmu.c
 +++ b/arch/x86/xen/mmu.c
 @@ -379,7 +379,7 @@ static pteval_t pte_mfn_to_pfn(pteval_t val)
@@ -35965,7 +36197,7 @@ index adca9e2..cdba9d1 100644
                pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
 @@ -2048,6 +2059,7 @@ static void __init xen_post_allocator_init(void)
        pv_mmu_ops.set_pud = xen_set_pud;
- #if PAGETABLE_LEVELS == 4
+ #if CONFIG_PGTABLE_LEVELS == 4
        pv_mmu_ops.set_pgd = xen_set_pgd;
 +      pv_mmu_ops.set_pgd_batched = xen_set_pgd;
  #endif
@@ -35980,10 +36212,10 @@ index adca9e2..cdba9d1 100644
        .alloc_pud = xen_alloc_pmd_init,
        .release_pud = xen_release_pmd_init,
 diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
-index 08e8489..b1e182f 100644
+index 8648438..18bac20 100644
 --- a/arch/x86/xen/smp.c
 +++ b/arch/x86/xen/smp.c
-@@ -288,17 +288,13 @@ static void __init xen_smp_prepare_boot_cpu(void)
+@@ -284,17 +284,13 @@ static void __init xen_smp_prepare_boot_cpu(void)
  
        if (xen_pv_domain()) {
                if (!xen_feature(XENFEAT_writable_page_tables))
@@ -36003,7 +36235,7 @@ index 08e8489..b1e182f 100644
  #endif
  
                xen_filter_cpu_maps();
-@@ -379,7 +375,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
+@@ -375,7 +371,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
  #ifdef CONFIG_X86_32
        /* Note: PVH is not yet supported on x86_32. */
        ctxt->user_regs.fs = __KERNEL_PERCPU;
@@ -36012,7 +36244,7 @@ index 08e8489..b1e182f 100644
  #endif
        memset(&ctxt->fpu_ctxt, 0, sizeof(ctxt->fpu_ctxt));
  
-@@ -387,8 +383,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
+@@ -383,8 +379,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
                ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle;
                ctxt->flags = VGCF_IN_KERNEL;
                ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
@@ -36023,24 +36255,7 @@ index 08e8489..b1e182f 100644
                ctxt->user_regs.ss = __KERNEL_DS;
  
                xen_copy_trap_info(ctxt->trap_ctxt);
-@@ -446,14 +442,13 @@ static int xen_cpu_up(unsigned int cpu, struct task_struct *idle)
-       int rc;
-       per_cpu(current_task, cpu) = idle;
-+      per_cpu(current_tinfo, cpu) = &idle->tinfo;
- #ifdef CONFIG_X86_32
-       irq_ctx_init(cpu);
- #else
-       clear_tsk_thread_flag(idle, TIF_FORK);
- #endif
--      per_cpu(kernel_stack, cpu) =
--              (unsigned long)task_stack_page(idle) -
--              KERNEL_STACK_OFFSET + THREAD_SIZE;
-+      per_cpu(kernel_stack, cpu) = (unsigned long)task_stack_page(idle) - 16 + THREAD_SIZE;
-       xen_setup_runstate_info(cpu);
-       xen_setup_timer(cpu);
-@@ -732,7 +727,7 @@ static const struct smp_ops xen_smp_ops __initconst = {
+@@ -720,7 +716,7 @@ static const struct smp_ops xen_smp_ops __initconst = {
  
  void __init xen_smp_init(void)
  {
@@ -36063,10 +36278,10 @@ index fd92a64..1f72641 100644
  #else
        movl %ss:xen_vcpu, %eax
 diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
-index 674b2225..f1f5dc1 100644
+index 8afdfcc..79239db 100644
 --- a/arch/x86/xen/xen-head.S
 +++ b/arch/x86/xen/xen-head.S
-@@ -39,6 +39,17 @@ ENTRY(startup_xen)
+@@ -41,6 +41,17 @@ ENTRY(startup_xen)
  #ifdef CONFIG_X86_32
        mov %esi,xen_start_info
        mov $init_thread_union+THREAD_SIZE,%esp
@@ -36171,7 +36386,7 @@ index 0736729..2ec3b48 100644
        struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll);
        int rearm = 0, budget = blk_iopoll_budget;
 diff --git a/block/blk-map.c b/block/blk-map.c
-index b8d2725..08c52b0 100644
+index da310a1..213b5c9 100644
 --- a/block/blk-map.c
 +++ b/block/blk-map.c
 @@ -192,7 +192,7 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf,
@@ -36183,6 +36398,19 @@ index b8d2725..08c52b0 100644
        if (do_copy)
                bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
        else
+diff --git a/block/blk-mq.c b/block/blk-mq.c
+index 594eea0..2dc1fd6 100644
+--- a/block/blk-mq.c
++++ b/block/blk-mq.c
+@@ -1968,7 +1968,7 @@ struct request_queue *blk_mq_init_allocated_queue(struct blk_mq_tag_set *set,
+               goto err_hctxs;
+       setup_timer(&q->timeout, blk_mq_rq_timer, (unsigned long) q);
+-      blk_queue_rq_timeout(q, set->timeout ? set->timeout : 30000);
++      blk_queue_rq_timeout(q, set->timeout ? set->timeout : 30 * HZ);
+       q->nr_queues = nr_cpu_ids;
+       q->nr_hw_queues = set->nr_hw_queues;
 diff --git a/block/blk-softirq.c b/block/blk-softirq.c
 index 53b1737..08177d2e 100644
 --- a/block/blk-softirq.c
@@ -36250,7 +36478,7 @@ index f678c73..f35aa18 100644
                        err = -EFAULT;
                        goto out;
 diff --git a/block/genhd.c b/block/genhd.c
-index 0a536dc..b8f7aca 100644
+index ea982ea..86e0f9e 100644
 --- a/block/genhd.c
 +++ b/block/genhd.c
 @@ -469,21 +469,24 @@ static char *bdevt_str(dev_t devt, char *buf)
@@ -36307,7 +36535,7 @@ index 26cb624..a49c3a5 100644
                        (u8 *) pte, count) < count) {
                kfree(pte);
 diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
-index e1f71c3..02d295a 100644
+index 55b6f15..b602c9a 100644
 --- a/block/scsi_ioctl.c
 +++ b/block/scsi_ioctl.c
 @@ -67,7 +67,7 @@ static int scsi_get_bus(struct request_queue *q, int __user *p)
@@ -36341,7 +36569,7 @@ index e1f71c3..02d295a 100644
        if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
                return -EPERM;
  
-@@ -422,6 +434,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
+@@ -420,6 +432,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
        int err;
        unsigned int in_len, out_len, bytes, opcode, cmdlen;
        char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
@@ -36350,7 +36578,7 @@ index e1f71c3..02d295a 100644
  
        if (!sic)
                return -EINVAL;
-@@ -460,9 +474,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
+@@ -458,9 +472,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
         */
        err = -EFAULT;
        rq->cmd_len = cmdlen;
@@ -36371,7 +36599,7 @@ index e1f71c3..02d295a 100644
                goto error;
  
 diff --git a/crypto/cryptd.c b/crypto/cryptd.c
-index 650afac1..f3307de 100644
+index b0602ba..fb71850 100644
 --- a/crypto/cryptd.c
 +++ b/crypto/cryptd.c
 @@ -63,7 +63,7 @@ struct cryptd_blkcipher_ctx {
@@ -36497,7 +36725,7 @@ index a83e3c6..c3d617f 100644
        bgrt_kobj = kobject_create_and_add("bgrt", acpi_kobj);
        if (!bgrt_kobj)
 diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
-index 9b693d5..8953d54 100644
+index 1d17919..315e955 100644
 --- a/drivers/acpi/blacklist.c
 +++ b/drivers/acpi/blacklist.c
 @@ -51,7 +51,7 @@ struct acpi_blacklist_item {
@@ -36519,7 +36747,7 @@ index 9b693d5..8953d54 100644
        .callback = dmi_disable_osi_vista,
        .ident = "Fujitsu Siemens",
 diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
-index 8b67bd0..b59593e 100644
+index 513e7230e..802015a 100644
 --- a/drivers/acpi/bus.c
 +++ b/drivers/acpi/bus.c
 @@ -67,7 +67,7 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
@@ -36556,10 +36784,10 @@ index c68e724..e863008 100644
                /* parse the table header to get the table length */
                if (count <= sizeof(struct acpi_table_header))
 diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c
-index 735db11..91e07ff 100644
+index 8217e0b..3294cb6 100644
 --- a/drivers/acpi/device_pm.c
 +++ b/drivers/acpi/device_pm.c
-@@ -1025,6 +1025,8 @@ EXPORT_SYMBOL_GPL(acpi_subsys_freeze);
+@@ -1026,6 +1026,8 @@ EXPORT_SYMBOL_GPL(acpi_subsys_freeze);
  
  #endif /* CONFIG_PM_SLEEP */
  
@@ -36568,7 +36796,7 @@ index 735db11..91e07ff 100644
  static struct dev_pm_domain acpi_general_pm_domain = {
        .ops = {
                .runtime_suspend = acpi_subsys_runtime_suspend,
-@@ -1041,6 +1043,7 @@ static struct dev_pm_domain acpi_general_pm_domain = {
+@@ -1042,6 +1044,7 @@ static struct dev_pm_domain acpi_general_pm_domain = {
                .restore_early = acpi_subsys_resume_early,
  #endif
        },
@@ -36576,7 +36804,7 @@ index 735db11..91e07ff 100644
  };
  
  /**
-@@ -1110,7 +1113,6 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on)
+@@ -1111,7 +1114,6 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on)
                acpi_device_wakeup(adev, ACPI_STATE_S0, false);
        }
  
@@ -36585,10 +36813,10 @@ index 735db11..91e07ff 100644
  }
  EXPORT_SYMBOL_GPL(acpi_dev_pm_attach);
 diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
-index a8dd2f7..e15950e 100644
+index 5e8fed4..d9bb545 100644
 --- a/drivers/acpi/ec.c
 +++ b/drivers/acpi/ec.c
-@@ -1242,7 +1242,7 @@ static int ec_clear_on_resume(const struct dmi_system_id *id)
+@@ -1293,7 +1293,7 @@ static int ec_clear_on_resume(const struct dmi_system_id *id)
        return 0;
  }
  
@@ -36624,10 +36852,10 @@ index d9f7158..168e742 100644
  };
  
 diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
-index f98db0b..8309c83 100644
+index 39e0c8e..b5ae20c 100644
 --- a/drivers/acpi/processor_idle.c
 +++ b/drivers/acpi/processor_idle.c
-@@ -912,7 +912,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
+@@ -910,7 +910,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
  {
        int i, count = CPUIDLE_DRIVER_STATE_START;
        struct acpi_processor_cx *cx;
@@ -36650,7 +36878,7 @@ index e5dd808..1eceed1 100644
        set_no_mwait, "Extensa 5220", {
        DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
 diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
-index 7f251dd..47b262c 100644
+index 2f0d4db..b9e9b15 100644
 --- a/drivers/acpi/sleep.c
 +++ b/drivers/acpi/sleep.c
 @@ -148,7 +148,7 @@ static int __init init_nvs_nosave(const struct dmi_system_id *d)
@@ -36663,7 +36891,7 @@ index 7f251dd..47b262c 100644
        .callback = init_old_suspend_ordering,
        .ident = "Abit KN9 (nForce4 variant)",
 diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
-index 13e577c..cef11ee 100644
+index 0876d77b..3ba0127 100644
 --- a/drivers/acpi/sysfs.c
 +++ b/drivers/acpi/sysfs.c
 @@ -423,11 +423,11 @@ static u32 num_counters;
@@ -36694,10 +36922,10 @@ index d24fa19..782f1e6 100644
         * Award BIOS on this AOpen makes thermal control almost worthless.
         * http://bugzilla.kernel.org/show_bug.cgi?id=8842
 diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
-index 26eb70c..4d66ddf 100644
+index cc79d3f..28adb33 100644
 --- a/drivers/acpi/video.c
 +++ b/drivers/acpi/video.c
-@@ -418,7 +418,7 @@ static int __init video_disable_native_backlight(const struct dmi_system_id *d)
+@@ -431,7 +431,7 @@ static int __init video_enable_native_backlight(const struct dmi_system_id *d)
        return 0;
  }
  
@@ -36707,7 +36935,7 @@ index 26eb70c..4d66ddf 100644
         * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121
         */
 diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
-index 61a9c07..ea98fa1 100644
+index 287c4ba..6a600bc 100644
 --- a/drivers/ata/libahci.c
 +++ b/drivers/ata/libahci.c
 @@ -1252,7 +1252,7 @@ int ahci_kick_engine(struct ata_port *ap)
@@ -36720,10 +36948,10 @@ index 61a9c07..ea98fa1 100644
                                unsigned long timeout_msec)
  {
 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index 23dac3b..89ada44 100644
+index 577849c..920847c 100644
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
-@@ -99,7 +99,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
+@@ -102,7 +102,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
  static void ata_dev_xfermask(struct ata_device *dev);
  static unsigned long ata_dev_blacklisted(const struct ata_device *dev);
  
@@ -36732,7 +36960,7 @@ index 23dac3b..89ada44 100644
  
  struct ata_force_param {
        const char      *name;
-@@ -4780,7 +4780,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
+@@ -4801,7 +4801,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
        struct ata_port *ap;
        unsigned int tag;
  
@@ -36741,7 +36969,7 @@ index 23dac3b..89ada44 100644
        ap = qc->ap;
  
        qc->flags = 0;
-@@ -4797,7 +4797,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
+@@ -4818,7 +4818,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
        struct ata_port *ap;
        struct ata_link *link;
  
@@ -36750,7 +36978,7 @@ index 23dac3b..89ada44 100644
        WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
        ap = qc->ap;
        link = qc->dev->link;
-@@ -5901,6 +5901,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5925,6 +5925,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
                return;
  
        spin_lock(&lock);
@@ -36758,7 +36986,7 @@ index 23dac3b..89ada44 100644
  
        for (cur = ops->inherits; cur; cur = cur->inherits) {
                void **inherit = (void **)cur;
-@@ -5914,8 +5915,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5938,8 +5939,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
                if (IS_ERR(*pp))
                        *pp = NULL;
  
@@ -36769,7 +36997,7 @@ index 23dac3b..89ada44 100644
        spin_unlock(&lock);
  }
  
-@@ -6111,7 +6113,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
+@@ -6135,7 +6137,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
  
        /* give ports names and add SCSI hosts */
        for (i = 0; i < host->n_ports; i++) {
@@ -36779,10 +37007,10 @@ index 23dac3b..89ada44 100644
        }
  
 diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
-index b061ba2..fdcd85f 100644
+index 3131adc..93e7aa0 100644
 --- a/drivers/ata/libata-scsi.c
 +++ b/drivers/ata/libata-scsi.c
-@@ -4172,7 +4172,7 @@ int ata_sas_port_init(struct ata_port *ap)
+@@ -4209,7 +4209,7 @@ int ata_sas_port_init(struct ata_port *ap)
  
        if (rc)
                return rc;
@@ -36792,7 +37020,7 @@ index b061ba2..fdcd85f 100644
  }
  EXPORT_SYMBOL_GPL(ata_sas_port_init);
 diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
-index f840ca1..edd6ef3 100644
+index a998a17..8de4bf4 100644
 --- a/drivers/ata/libata.h
 +++ b/drivers/ata/libata.h
 @@ -53,7 +53,7 @@ enum {
@@ -37495,10 +37723,10 @@ index ce43ae3..969de38 100644
        lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
        cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
 diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c
-index b7e1cc0..eb336bfe 100644
+index ddc4ceb..36e29aa 100644
 --- a/drivers/atm/nicstar.c
 +++ b/drivers/atm/nicstar.c
-@@ -1640,7 +1640,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -1632,7 +1632,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
        if ((vc = (vc_map *) vcc->dev_data) == NULL) {
                printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
                       card->index);
@@ -37507,7 +37735,7 @@ index b7e1cc0..eb336bfe 100644
                dev_kfree_skb_any(skb);
                return -EINVAL;
        }
-@@ -1648,7 +1648,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -1640,7 +1640,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
        if (!vc->tx) {
                printk("nicstar%d: Trying to transmit on a non-tx VC.\n",
                       card->index);
@@ -37516,7 +37744,7 @@ index b7e1cc0..eb336bfe 100644
                dev_kfree_skb_any(skb);
                return -EINVAL;
        }
-@@ -1656,14 +1656,14 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -1648,14 +1648,14 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
        if (vcc->qos.aal != ATM_AAL5 && vcc->qos.aal != ATM_AAL0) {
                printk("nicstar%d: Only AAL0 and AAL5 are supported.\n",
                       card->index);
@@ -37533,7 +37761,7 @@ index b7e1cc0..eb336bfe 100644
                dev_kfree_skb_any(skb);
                return -EINVAL;
        }
-@@ -1711,11 +1711,11 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -1703,11 +1703,11 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
        }
  
        if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
@@ -37547,7 +37775,7 @@ index b7e1cc0..eb336bfe 100644
  
        return 0;
  }
-@@ -2032,14 +2032,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2024,14 +2024,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                                printk
                                    ("nicstar%d: Can't allocate buffers for aal0.\n",
                                     card->index);
@@ -37564,7 +37792,7 @@ index b7e1cc0..eb336bfe 100644
                                dev_kfree_skb_any(sb);
                                break;
                        }
-@@ -2054,7 +2054,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2046,7 +2046,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                        ATM_SKB(sb)->vcc = vcc;
                        __net_timestamp(sb);
                        vcc->push(vcc, sb);
@@ -37573,7 +37801,7 @@ index b7e1cc0..eb336bfe 100644
                        cell += ATM_CELL_PAYLOAD;
                }
  
-@@ -2071,7 +2071,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2063,7 +2063,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                        if (iovb == NULL) {
                                printk("nicstar%d: Out of iovec buffers.\n",
                                       card->index);
@@ -37582,7 +37810,7 @@ index b7e1cc0..eb336bfe 100644
                                recycle_rx_buf(card, skb);
                                return;
                        }
-@@ -2095,7 +2095,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2087,7 +2087,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                   small or large buffer itself. */
        } else if (NS_PRV_IOVCNT(iovb) >= NS_MAX_IOVECS) {
                printk("nicstar%d: received too big AAL5 SDU.\n", card->index);
@@ -37591,7 +37819,7 @@ index b7e1cc0..eb336bfe 100644
                recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
                                      NS_MAX_IOVECS);
                NS_PRV_IOVCNT(iovb) = 0;
-@@ -2115,7 +2115,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2107,7 +2107,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                            ("nicstar%d: Expected a small buffer, and this is not one.\n",
                             card->index);
                        which_list(card, skb);
@@ -37600,7 +37828,7 @@ index b7e1cc0..eb336bfe 100644
                        recycle_rx_buf(card, skb);
                        vc->rx_iov = NULL;
                        recycle_iov_buf(card, iovb);
-@@ -2128,7 +2128,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2120,7 +2120,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                            ("nicstar%d: Expected a large buffer, and this is not one.\n",
                             card->index);
                        which_list(card, skb);
@@ -37609,7 +37837,7 @@ index b7e1cc0..eb336bfe 100644
                        recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
                                              NS_PRV_IOVCNT(iovb));
                        vc->rx_iov = NULL;
-@@ -2151,7 +2151,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2143,7 +2143,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                                printk(" - PDU size mismatch.\n");
                        else
                                printk(".\n");
@@ -37618,7 +37846,7 @@ index b7e1cc0..eb336bfe 100644
                        recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
                                              NS_PRV_IOVCNT(iovb));
                        vc->rx_iov = NULL;
-@@ -2165,7 +2165,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2157,14 +2157,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                        /* skb points to a small buffer */
                        if (!atm_charge(vcc, skb->truesize)) {
                                push_rxbufs(card, skb);
@@ -37627,7 +37855,6 @@ index b7e1cc0..eb336bfe 100644
                        } else {
                                skb_put(skb, len);
                                dequeue_sm_buf(card, skb);
-@@ -2175,7 +2175,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                                ATM_SKB(skb)->vcc = vcc;
                                __net_timestamp(skb);
                                vcc->push(vcc, skb);
@@ -37636,7 +37863,7 @@ index b7e1cc0..eb336bfe 100644
                        }
                } else if (NS_PRV_IOVCNT(iovb) == 2) {  /* One small plus one large buffer */
                        struct sk_buff *sb;
-@@ -2186,7 +2186,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2175,14 +2175,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                        if (len <= NS_SMBUFSIZE) {
                                if (!atm_charge(vcc, sb->truesize)) {
                                        push_rxbufs(card, sb);
@@ -37645,7 +37872,6 @@ index b7e1cc0..eb336bfe 100644
                                } else {
                                        skb_put(sb, len);
                                        dequeue_sm_buf(card, sb);
-@@ -2196,7 +2196,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                                        ATM_SKB(sb)->vcc = vcc;
                                        __net_timestamp(sb);
                                        vcc->push(vcc, sb);
@@ -37654,7 +37880,7 @@ index b7e1cc0..eb336bfe 100644
                                }
  
                                push_rxbufs(card, skb);
-@@ -2205,7 +2205,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2191,7 +2191,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
  
                                if (!atm_charge(vcc, skb->truesize)) {
                                        push_rxbufs(card, skb);
@@ -37662,8 +37888,8 @@ index b7e1cc0..eb336bfe 100644
 +                                      atomic_inc_unchecked(&vcc->stats->rx_drop);
                                } else {
                                        dequeue_lg_buf(card, skb);
- #ifdef NS_USE_DESTRUCTORS
-@@ -2218,7 +2218,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+                                       skb_push(skb, NS_SMBUFSIZE);
+@@ -2201,7 +2201,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                                        ATM_SKB(skb)->vcc = vcc;
                                        __net_timestamp(skb);
                                        vcc->push(vcc, skb);
@@ -37672,7 +37898,7 @@ index b7e1cc0..eb336bfe 100644
                                }
  
                                push_rxbufs(card, sb);
-@@ -2239,7 +2239,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2222,7 +2222,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                                        printk
                                            ("nicstar%d: Out of huge buffers.\n",
                                             card->index);
@@ -37681,7 +37907,7 @@ index b7e1cc0..eb336bfe 100644
                                        recycle_iovec_rx_bufs(card,
                                                              (struct iovec *)
                                                              iovb->data,
-@@ -2290,7 +2290,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2273,7 +2273,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
                                        card->hbpool.count++;
                                } else
                                        dev_kfree_skb_any(hb);
@@ -37690,8 +37916,8 @@ index b7e1cc0..eb336bfe 100644
                        } else {
                                /* Copy the small buffer to the huge buffer */
                                sb = (struct sk_buff *)iov->iov_base;
-@@ -2327,7 +2327,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
- #endif /* NS_USE_DESTRUCTORS */
+@@ -2307,7 +2307,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+                               ATM_SKB(hb)->vcc = vcc;
                                __net_timestamp(hb);
                                vcc->push(vcc, hb);
 -                              atomic_inc(&vcc->stats->rx);
@@ -37838,7 +38064,7 @@ index 79bc203..fa3945b 100644
                subsys_dev_iter_init(&iter, subsys, NULL, NULL);
                while ((dev = subsys_dev_iter_next(&iter)))
 diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
-index 25798db..15f130e 100644
+index 68f0314..ca2a609 100644
 --- a/drivers/base/devtmpfs.c
 +++ b/drivers/base/devtmpfs.c
 @@ -354,7 +354,7 @@ int devtmpfs_mount(const char *mntdir)
@@ -37866,10 +38092,10 @@ index 25798db..15f130e 100644
        while (1) {
                spin_lock(&req_lock);
 diff --git a/drivers/base/node.c b/drivers/base/node.c
-index 36fabe43..8cfc112 100644
+index a2aa65b..8831326 100644
 --- a/drivers/base/node.c
 +++ b/drivers/base/node.c
-@@ -615,7 +615,7 @@ static ssize_t print_nodes_state(enum node_states state, char *buf)
+@@ -613,7 +613,7 @@ static ssize_t print_nodes_state(enum node_states state, char *buf)
  struct node_attr {
        struct device_attribute attr;
        enum node_states state;
@@ -37879,10 +38105,10 @@ index 36fabe43..8cfc112 100644
  static ssize_t show_node_state(struct device *dev,
                               struct device_attribute *attr, char *buf)
 diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
-index 45937f8..b9a342e 100644
+index 2327613..211d7f5 100644
 --- a/drivers/base/power/domain.c
 +++ b/drivers/base/power/domain.c
-@@ -1698,7 +1698,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
+@@ -1725,7 +1725,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
  {
        struct cpuidle_driver *cpuidle_drv;
        struct gpd_cpuidle_data *cpuidle_data;
@@ -37891,7 +38117,7 @@ index 45937f8..b9a342e 100644
        int ret = 0;
  
        if (IS_ERR_OR_NULL(genpd) || state < 0)
-@@ -1766,7 +1766,7 @@ int pm_genpd_name_attach_cpuidle(const char *name, int state)
+@@ -1793,7 +1793,7 @@ int pm_genpd_name_attach_cpuidle(const char *name, int state)
  int pm_genpd_detach_cpuidle(struct generic_pm_domain *genpd)
  {
        struct gpd_cpuidle_data *cpuidle_data;
@@ -37900,13 +38126,15 @@ index 45937f8..b9a342e 100644
        int ret = 0;
  
        if (IS_ERR_OR_NULL(genpd))
-@@ -2195,7 +2195,10 @@ int genpd_dev_pm_attach(struct device *dev)
+@@ -2222,8 +2222,11 @@ int genpd_dev_pm_attach(struct device *dev)
                return ret;
        }
  
 -      dev->pm_domain->detach = genpd_dev_pm_detach;
+-      dev->pm_domain->sync = genpd_dev_pm_sync;
 +      pax_open_kernel();
 +      *(void **)&dev->pm_domain->detach = genpd_dev_pm_detach;
++      *(void **)&dev->pm_domain->sync = genpd_dev_pm_sync;
 +      pax_close_kernel();
 +
        pm_genpd_poweron(pd);
@@ -37926,7 +38154,7 @@ index d2be3f9..0a3167a 100644
  
  static DEVICE_ATTR(runtime_status, 0444, rtpm_status_show, NULL);
 diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
-index aab7158..b172db2 100644
+index 7726200..a417da7 100644
 --- a/drivers/base/power/wakeup.c
 +++ b/drivers/base/power/wakeup.c
 @@ -32,14 +32,14 @@ static bool pm_abort_suspend __read_mostly;
@@ -38161,7 +38389,7 @@ index 7fda30e..2f27946 100644
  
  struct board_type {
 diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
-index 2b94403..fd6ad1f 100644
+index f749df9..5f8b9c4 100644
 --- a/drivers/block/cpqarray.c
 +++ b/drivers/block/cpqarray.c
 @@ -404,7 +404,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
@@ -38170,8 +38398,8 @@ index 2b94403..fd6ad1f 100644
        }
 -      hba[i]->access.set_intr_mask(hba[i], 0);
 +      hba[i]->access->set_intr_mask(hba[i], 0);
-       if (request_irq(hba[i]->intr, do_ida_intr,
-               IRQF_DISABLED|IRQF_SHARED, hba[i]->devname, hba[i]))
+       if (request_irq(hba[i]->intr, do_ida_intr, IRQF_SHARED,
+                       hba[i]->devname, hba[i]))
        {
 @@ -459,7 +459,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
        add_timer(&hba[i]->timer);
@@ -38340,7 +38568,7 @@ index b905e98..0812ed8 100644
        int rs_last_events;  /* counter of read or write "events" (unit sectors)
                              * on the lower level device when we last looked. */
 diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
-index 1fc8342..7e7742b 100644
+index 81fde9e..9948c05 100644
 --- a/drivers/block/drbd/drbd_main.c
 +++ b/drivers/block/drbd/drbd_main.c
 @@ -1328,7 +1328,7 @@ static int _drbd_send_ack(struct drbd_peer_device *peer_device, enum drbd_packet
@@ -38372,7 +38600,7 @@ index 1fc8342..7e7742b 100644
        atomic_set(&device->ap_in_flight, 0);
        atomic_set(&device->md_io.in_use, 0);
  
-@@ -2684,8 +2684,8 @@ void drbd_destroy_connection(struct kref *kref)
+@@ -2683,8 +2683,8 @@ void drbd_destroy_connection(struct kref *kref)
        struct drbd_connection *connection = container_of(kref, struct drbd_connection, kref);
        struct drbd_resource *resource = connection->resource;
  
@@ -38589,19 +38817,6 @@ index d0fae55..4469096 100644
        device->rs_in_flight = 0;
        device->rs_last_events =
                (int)part_stat_read(&disk->part0, sectors[0]) +
-diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 773e964..e85af00 100644
---- a/drivers/block/loop.c
-+++ b/drivers/block/loop.c
-@@ -234,7 +234,7 @@ static int __do_lo_send_write(struct file *file,
-       file_start_write(file);
-       set_fs(get_ds());
--      bw = file->f_op->write(file, buf, len, &pos);
-+      bw = file->f_op->write(file, (const char __force_user *)buf, len, &pos);
-       set_fs(old_fs);
-       file_end_write(file);
-       if (likely(bw == len))
 diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
 index 09e628da..7607aaa 100644
 --- a/drivers/block/pktcdvd.c
@@ -38625,7 +38840,7 @@ index 09e628da..7607aaa 100644
        if (ti.nwa_v) {
                pd->nwa = be32_to_cpu(ti.next_writable);
 diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
-index b67066d..515b7f4 100644
+index ec6c5c6..820ee2abc 100644
 --- a/drivers/block/rbd.c
 +++ b/drivers/block/rbd.c
 @@ -64,7 +64,7 @@
@@ -38867,10 +39082,10 @@ index 5c0baa9..44011b1 100644
  {
        struct hpet_timer __iomem *timer;
 diff --git a/drivers/char/i8k.c b/drivers/char/i8k.c
-index 24cc4ed..f9807cf 100644
+index a43048b..14724d5 100644
 --- a/drivers/char/i8k.c
 +++ b/drivers/char/i8k.c
-@@ -788,7 +788,7 @@ static const struct i8k_config_data i8k_config_data[] = {
+@@ -790,7 +790,7 @@ static const struct i8k_config_data i8k_config_data[] = {
        },
  };
  
@@ -38880,7 +39095,7 @@ index 24cc4ed..f9807cf 100644
                .ident = "Dell Inspiron",
                .matches = {
 diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
-index 9bb5928..57a7801 100644
+index bf75f63..359fa10 100644
 --- a/drivers/char/ipmi/ipmi_msghandler.c
 +++ b/drivers/char/ipmi/ipmi_msghandler.c
 @@ -436,7 +436,7 @@ struct ipmi_smi {
@@ -38914,7 +39129,7 @@ index 9bb5928..57a7801 100644
        intf->proc_dir = NULL;
  
 diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
-index 518585c..6c985cef 100644
+index 8a45e92..e41b1c7 100644
 --- a/drivers/char/ipmi/ipmi_si_intf.c
 +++ b/drivers/char/ipmi/ipmi_si_intf.c
 @@ -289,7 +289,7 @@ struct smi_info {
@@ -38938,7 +39153,7 @@ index 518585c..6c985cef 100644
  
  #define SI_MAX_PARMS 4
  
-@@ -3498,7 +3498,7 @@ static int try_smi_init(struct smi_info *new_smi)
+@@ -3500,7 +3500,7 @@ static int try_smi_init(struct smi_info *new_smi)
        atomic_set(&new_smi->req_events, 0);
        new_smi->run_to_completion = false;
        for (i = 0; i < SI_NUM_STATS; i++)
@@ -38948,7 +39163,7 @@ index 518585c..6c985cef 100644
        new_smi->interrupt_disabled = true;
        atomic_set(&new_smi->need_watch, 0);
 diff --git a/drivers/char/mem.c b/drivers/char/mem.c
-index 297110c..3f69b43 100644
+index 6b1721f..fda9398 100644
 --- a/drivers/char/mem.c
 +++ b/drivers/char/mem.c
 @@ -18,6 +18,7 @@
@@ -39077,7 +39292,7 @@ index 297110c..3f69b43 100644
                                return -EFAULT;
                        buf += sz;
                        p += sz;
-@@ -804,6 +853,9 @@ static const struct memdev {
+@@ -802,6 +851,9 @@ static const struct memdev {
  #ifdef CONFIG_PRINTK
        [11] = { "kmsg", 0644, &kmsg_fops, 0 },
  #endif
@@ -39087,7 +39302,7 @@ index 297110c..3f69b43 100644
  };
  
  static int memory_open(struct inode *inode, struct file *filp)
-@@ -865,7 +917,7 @@ static int __init chr_dev_init(void)
+@@ -863,7 +915,7 @@ static int __init chr_dev_init(void)
                        continue;
  
                device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
@@ -39346,7 +39561,7 @@ index 3a56a13..f8cbd25 100644
        return 0;
  }
 diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
-index 72d7028..1586601 100644
+index 50754d20..9561cdc 100644
 --- a/drivers/char/virtio_console.c
 +++ b/drivers/char/virtio_console.c
 @@ -685,7 +685,7 @@ static ssize_t fill_readbuf(struct port *port, char __user *out_buf,
@@ -39380,156 +39595,41 @@ index 956b7e5..b655045 100644
  
        composite = kzalloc(sizeof(*composite), GFP_KERNEL);
        if (!composite) {
-diff --git a/drivers/clk/hisilicon/clk-hi3620.c b/drivers/clk/hisilicon/clk-hi3620.c
-index 2e4f6d4..b4cf487 100644
---- a/drivers/clk/hisilicon/clk-hi3620.c
-+++ b/drivers/clk/hisilicon/clk-hi3620.c
-@@ -38,44 +38,44 @@
- #include "clk.h"
- /* clock parent list */
--static const char *timer0_mux_p[] __initconst = { "osc32k", "timerclk01", };
--static const char *timer1_mux_p[] __initconst = { "osc32k", "timerclk01", };
--static const char *timer2_mux_p[] __initconst = { "osc32k", "timerclk23", };
--static const char *timer3_mux_p[] __initconst = { "osc32k", "timerclk23", };
--static const char *timer4_mux_p[] __initconst = { "osc32k", "timerclk45", };
--static const char *timer5_mux_p[] __initconst = { "osc32k", "timerclk45", };
--static const char *timer6_mux_p[] __initconst = { "osc32k", "timerclk67", };
--static const char *timer7_mux_p[] __initconst = { "osc32k", "timerclk67", };
--static const char *timer8_mux_p[] __initconst = { "osc32k", "timerclk89", };
--static const char *timer9_mux_p[] __initconst = { "osc32k", "timerclk89", };
--static const char *uart0_mux_p[] __initconst = { "osc26m", "pclk", };
--static const char *uart1_mux_p[] __initconst = { "osc26m", "pclk", };
--static const char *uart2_mux_p[] __initconst = { "osc26m", "pclk", };
--static const char *uart3_mux_p[] __initconst = { "osc26m", "pclk", };
--static const char *uart4_mux_p[] __initconst = { "osc26m", "pclk", };
--static const char *spi0_mux_p[] __initconst = { "osc26m", "rclk_cfgaxi", };
--static const char *spi1_mux_p[] __initconst = { "osc26m", "rclk_cfgaxi", };
--static const char *spi2_mux_p[] __initconst = { "osc26m", "rclk_cfgaxi", };
-+static const char * const timer0_mux_p[] __initconst = { "osc32k", "timerclk01", };
-+static const char * const timer1_mux_p[] __initconst = { "osc32k", "timerclk01", };
-+static const char * const timer2_mux_p[] __initconst = { "osc32k", "timerclk23", };
-+static const char * const timer3_mux_p[] __initconst = { "osc32k", "timerclk23", };
-+static const char * const timer4_mux_p[] __initconst = { "osc32k", "timerclk45", };
-+static const char * const timer5_mux_p[] __initconst = { "osc32k", "timerclk45", };
-+static const char * const timer6_mux_p[] __initconst = { "osc32k", "timerclk67", };
-+static const char * const timer7_mux_p[] __initconst = { "osc32k", "timerclk67", };
-+static const char * const timer8_mux_p[] __initconst = { "osc32k", "timerclk89", };
-+static const char * const timer9_mux_p[] __initconst = { "osc32k", "timerclk89", };
-+static const char * const uart0_mux_p[] __initconst = { "osc26m", "pclk", };
-+static const char * const uart1_mux_p[] __initconst = { "osc26m", "pclk", };
-+static const char * const uart2_mux_p[] __initconst = { "osc26m", "pclk", };
-+static const char * const uart3_mux_p[] __initconst = { "osc26m", "pclk", };
-+static const char * const uart4_mux_p[] __initconst = { "osc26m", "pclk", };
-+static const char * const spi0_mux_p[] __initconst = { "osc26m", "rclk_cfgaxi", };
-+static const char * const spi1_mux_p[] __initconst = { "osc26m", "rclk_cfgaxi", };
-+static const char * const spi2_mux_p[] __initconst = { "osc26m", "rclk_cfgaxi", };
- /* share axi parent */
--static const char *saxi_mux_p[] __initconst = { "armpll3", "armpll2", };
--static const char *pwm0_mux_p[] __initconst = { "osc32k", "osc26m", };
--static const char *pwm1_mux_p[] __initconst = { "osc32k", "osc26m", };
--static const char *sd_mux_p[] __initconst = { "armpll2", "armpll3", };
--static const char *mmc1_mux_p[] __initconst = { "armpll2", "armpll3", };
--static const char *mmc1_mux2_p[] __initconst = { "osc26m", "mmc1_div", };
--static const char *g2d_mux_p[] __initconst = { "armpll2", "armpll3", };
--static const char *venc_mux_p[] __initconst = { "armpll2", "armpll3", };
--static const char *vdec_mux_p[] __initconst = { "armpll2", "armpll3", };
--static const char *vpp_mux_p[] __initconst = { "armpll2", "armpll3", };
--static const char *edc0_mux_p[] __initconst = { "armpll2", "armpll3", };
--static const char *ldi0_mux_p[] __initconst = { "armpll2", "armpll4",
-+static const char * const saxi_mux_p[] __initconst = { "armpll3", "armpll2", };
-+static const char * const pwm0_mux_p[] __initconst = { "osc32k", "osc26m", };
-+static const char * const pwm1_mux_p[] __initconst = { "osc32k", "osc26m", };
-+static const char * const sd_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const mmc1_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const mmc1_mux2_p[] __initconst = { "osc26m", "mmc1_div", };
-+static const char * const g2d_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const venc_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const vdec_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const vpp_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const edc0_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const ldi0_mux_p[] __initconst = { "armpll2", "armpll4",
-                                            "armpll3", "armpll5", };
--static const char *edc1_mux_p[] __initconst = { "armpll2", "armpll3", };
--static const char *ldi1_mux_p[] __initconst = { "armpll2", "armpll4",
-+static const char * const edc1_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const ldi1_mux_p[] __initconst = { "armpll2", "armpll4",
-                                            "armpll3", "armpll5", };
--static const char *rclk_hsic_p[] __initconst = { "armpll3", "armpll2", };
--static const char *mmc2_mux_p[] __initconst = { "armpll2", "armpll3", };
--static const char *mmc3_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const rclk_hsic_p[] __initconst = { "armpll3", "armpll2", };
-+static const char * const mmc2_mux_p[] __initconst = { "armpll2", "armpll3", };
-+static const char * const mmc3_mux_p[] __initconst = { "armpll2", "armpll3", };
- /* fixed rate clocks */
-diff --git a/drivers/clk/hisilicon/clk-hix5hd2.c b/drivers/clk/hisilicon/clk-hix5hd2.c
-index 3f369c6..05f9ffd 100644
---- a/drivers/clk/hisilicon/clk-hix5hd2.c
-+++ b/drivers/clk/hisilicon/clk-hix5hd2.c
-@@ -46,15 +46,15 @@ static struct hisi_fixed_rate_clock hix5hd2_fixed_rate_clks[] __initdata = {
-       { HIX5HD2_FIXED_83M, "83m", NULL, CLK_IS_ROOT, 83333333, },
- };
--static const char *sfc_mux_p[] __initconst = {
-+static const char * const sfc_mux_p[] __initconst = {
-               "24m", "150m", "200m", "100m", "75m", };
- static u32 sfc_mux_table[] = {0, 4, 5, 6, 7};
--static const char *sdio_mux_p[] __initconst = {
-+static const char * const sdio_mux_p[] __initconst = {
-               "75m", "100m", "50m", "15m", };
- static u32 sdio_mux_table[] = {0, 1, 2, 3};
--static const char *fephy_mux_p[] __initconst = { "25m", "125m"};
-+static const char * const fephy_mux_p[] __initconst = { "25m", "125m"};
- static u32 fephy_mux_table[] = {0, 1};
-diff --git a/drivers/clk/rockchip/clk-rk3188.c b/drivers/clk/rockchip/clk-rk3188.c
-index 7eb684c..147c6fc 100644
---- a/drivers/clk/rockchip/clk-rk3188.c
-+++ b/drivers/clk/rockchip/clk-rk3188.c
-@@ -704,7 +704,7 @@ static struct rockchip_clk_branch rk3188_clk_branches[] __initdata = {
-       GATE(ACLK_GPS, "aclk_gps", "aclk_peri", 0, RK2928_CLKGATE_CON(8), 13, GFLAGS),
- };
--static const char *rk3188_critical_clocks[] __initconst = {
-+static const char * const rk3188_critical_clocks[] __initconst = {
-       "aclk_cpu",
-       "aclk_peri",
-       "hclk_peri",
-diff --git a/drivers/clk/rockchip/clk-rk3288.c b/drivers/clk/rockchip/clk-rk3288.c
-index 05d7a0b..4fc131c 100644
---- a/drivers/clk/rockchip/clk-rk3288.c
-+++ b/drivers/clk/rockchip/clk-rk3288.c
-@@ -771,7 +771,7 @@ static struct rockchip_clk_branch rk3288_clk_branches[] __initdata = {
-       GATE(0, "pclk_isp_in", "ext_isp", 0, RK3288_CLKGATE_CON(16), 3, GFLAGS),
- };
--static const char *rk3288_critical_clocks[] __initconst = {
-+static const char * const rk3288_critical_clocks[] __initconst = {
-       "aclk_cpu",
-       "aclk_peri",
-       "hclk_peri",
-diff --git a/drivers/clk/rockchip/clk.h b/drivers/clk/rockchip/clk.h
-index 58d2e3b..0c21b0d 100644
---- a/drivers/clk/rockchip/clk.h
-+++ b/drivers/clk/rockchip/clk.h
-@@ -182,7 +182,7 @@ struct clk *rockchip_clk_register_mmc(const char *name,
-                               const char **parent_names, u8 num_parents,
-                               void __iomem *reg, int shift);
--#define PNAME(x) static const char *x[] __initconst
-+#define PNAME(x) static const char * const x[] __initconst
- enum rockchip_clk_branch_type {
-       branch_composite,
+diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c
+index 69a094c..1fa2a8d 100644
+--- a/drivers/clk/clk-mux.c
++++ b/drivers/clk/clk-mux.c
+@@ -114,7 +114,7 @@ const struct clk_ops clk_mux_ro_ops = {
+ EXPORT_SYMBOL_GPL(clk_mux_ro_ops);
+ struct clk *clk_register_mux_table(struct device *dev, const char *name,
+-              const char **parent_names, u8 num_parents, unsigned long flags,
++              const char * const *parent_names, u8 num_parents, unsigned long flags,
+               void __iomem *reg, u8 shift, u32 mask,
+               u8 clk_mux_flags, u32 *table, spinlock_t *lock)
+ {
+@@ -166,7 +166,7 @@ struct clk *clk_register_mux_table(struct device *dev, const char *name,
+ EXPORT_SYMBOL_GPL(clk_register_mux_table);
+ struct clk *clk_register_mux(struct device *dev, const char *name,
+-              const char **parent_names, u8 num_parents, unsigned long flags,
++              const char * const *parent_names, u8 num_parents, unsigned long flags,
+               void __iomem *reg, u8 shift, u8 width,
+               u8 clk_mux_flags, spinlock_t *lock)
+ {
 diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h
-index e4c7538..99c50cd 100644
+index e4c7538..9d5c18a 100644
 --- a/drivers/clk/samsung/clk.h
 +++ b/drivers/clk/samsung/clk.h
+@@ -121,7 +121,7 @@ struct samsung_mux_clock {
+       unsigned int            id;
+       const char              *dev_name;
+       const char              *name;
+-      const char              **parent_names;
++      const char              * const *parent_names;
+       u8                      num_parents;
+       unsigned long           flags;
+       unsigned long           offset;
 @@ -260,7 +260,7 @@ struct samsung_gate_clock {
  #define GATE_DA(_id, dname, cname, pname, o, b, f, gf, a)     \
        __GATE(_id, dname, cname, pname, o, b, f, gf, a)
@@ -39607,58 +39707,6 @@ index de6da95..c98278b 100644
  
        clk = clk_register(NULL, &pll_clk->hw.hw);
        if (WARN_ON(IS_ERR(clk))) {
-diff --git a/drivers/clk/ti/composite.c b/drivers/clk/ti/composite.c
-index 3654f61..81abe81 100644
---- a/drivers/clk/ti/composite.c
-+++ b/drivers/clk/ti/composite.c
-@@ -69,7 +69,7 @@ struct component_clk {
-       struct list_head link;
- };
--static const char * __initconst component_clk_types[] = {
-+static const char *  const __initconst component_clk_types[] = {
-       "gate", "divider", "mux"
- };
-diff --git a/drivers/clk/zynq/clkc.c b/drivers/clk/zynq/clkc.c
-index f870aad..04ba1e4 100644
---- a/drivers/clk/zynq/clkc.c
-+++ b/drivers/clk/zynq/clkc.c
-@@ -85,22 +85,22 @@ static DEFINE_SPINLOCK(canmioclk_lock);
- static DEFINE_SPINLOCK(dbgclk_lock);
- static DEFINE_SPINLOCK(aperclk_lock);
--static const char *armpll_parents[] __initconst = {"armpll_int", "ps_clk"};
--static const char *ddrpll_parents[] __initconst = {"ddrpll_int", "ps_clk"};
--static const char *iopll_parents[] __initconst = {"iopll_int", "ps_clk"};
--static const char *gem0_mux_parents[] __initconst = {"gem0_div1", "dummy_name"};
--static const char *gem1_mux_parents[] __initconst = {"gem1_div1", "dummy_name"};
--static const char *can0_mio_mux2_parents[] __initconst = {"can0_gate",
-+static const char * const armpll_parents[] __initconst = {"armpll_int", "ps_clk"};
-+static const char * const ddrpll_parents[] __initconst = {"ddrpll_int", "ps_clk"};
-+static const char * const iopll_parents[] __initconst = {"iopll_int", "ps_clk"};
-+static const char * gem0_mux_parents[] __initdata = {"gem0_div1", "dummy_name"};
-+static const char * gem1_mux_parents[] __initdata = {"gem1_div1", "dummy_name"};
-+static const char * const can0_mio_mux2_parents[] __initconst = {"can0_gate",
-       "can0_mio_mux"};
--static const char *can1_mio_mux2_parents[] __initconst = {"can1_gate",
-+static const char * const can1_mio_mux2_parents[] __initconst = {"can1_gate",
-       "can1_mio_mux"};
--static const char *dbg_emio_mux_parents[] __initconst = {"dbg_div",
-+static const char * dbg_emio_mux_parents[] __initdata = {"dbg_div",
-       "dummy_name"};
--static const char *dbgtrc_emio_input_names[] __initconst = {"trace_emio_clk"};
--static const char *gem0_emio_input_names[] __initconst = {"gem0_emio_clk"};
--static const char *gem1_emio_input_names[] __initconst = {"gem1_emio_clk"};
--static const char *swdt_ext_clk_input_names[] __initconst = {"swdt_ext_clk"};
-+static const char * const dbgtrc_emio_input_names[] __initconst = {"trace_emio_clk"};
-+static const char * const gem0_emio_input_names[] __initconst = {"gem0_emio_clk"};
-+static const char * const gem1_emio_input_names[] __initconst = {"gem1_emio_clk"};
-+static const char * const swdt_ext_clk_input_names[] __initconst = {"swdt_ext_clk"};
- static void __init zynq_clk_register_fclk(enum zynq_clk fclk,
-               const char *clk_name, void __iomem *fclk_ctrl_reg,
 diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
 index b0c18ed..1713a80 100644
 --- a/drivers/cpufreq/acpi-cpufreq.c
@@ -39873,10 +39921,10 @@ index ad3f38f..8f086cd 100644
  }
  EXPORT_SYMBOL_GPL(od_unregister_powersave_bias_handler);
 diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
-index 872c577..5fb3c20 100644
+index c45d274..0f469f7 100644
 --- a/drivers/cpufreq/intel_pstate.c
 +++ b/drivers/cpufreq/intel_pstate.c
-@@ -133,10 +133,10 @@ struct pstate_funcs {
+@@ -134,10 +134,10 @@ struct pstate_funcs {
  struct cpu_defaults {
        struct pstate_adjust_policy pid_policy;
        struct pstate_funcs funcs;
@@ -39889,7 +39937,7 @@ index 872c577..5fb3c20 100644
  static int hwp_active;
  
  struct perf_limits {
-@@ -690,18 +690,18 @@ static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate)
+@@ -721,18 +721,18 @@ static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate)
  
        cpu->pstate.current_pstate = pstate;
  
@@ -39915,10 +39963,10 @@ index 872c577..5fb3c20 100644
        intel_pstate_set_pstate(cpu, cpu->pstate.min_pstate);
  }
  
-@@ -1030,9 +1030,9 @@ static int intel_pstate_msrs_not_valid(void)
-       rdmsrl(MSR_IA32_APERF, aperf);
-       rdmsrl(MSR_IA32_MPERF, mperf);
+@@ -1056,15 +1056,15 @@ static unsigned int force_load;
  
+ static int intel_pstate_msrs_not_valid(void)
+ {
 -      if (!pstate_funcs.get_max() ||
 -          !pstate_funcs.get_min() ||
 -          !pstate_funcs.get_turbo())
@@ -39927,8 +39975,6 @@ index 872c577..5fb3c20 100644
 +          !pstate_funcs->get_turbo())
                return -ENODEV;
  
-       rdmsrl(MSR_IA32_APERF, tmp);
-@@ -1046,7 +1046,7 @@ static int intel_pstate_msrs_not_valid(void)
        return 0;
  }
  
@@ -39937,7 +39983,7 @@ index 872c577..5fb3c20 100644
  {
        pid_params.sample_rate_ms = policy->sample_rate_ms;
        pid_params.p_gain_pct = policy->p_gain_pct;
-@@ -1058,12 +1058,7 @@ static void copy_pid_params(struct pstate_adjust_policy *policy)
+@@ -1076,12 +1076,7 @@ static void copy_pid_params(struct pstate_adjust_policy *policy)
  
  static void copy_cpu_funcs(struct pstate_funcs *funcs)
  {
@@ -40112,10 +40158,10 @@ index 7d4a315..21bb886 100644
        if (policy->cpu != 0)
                return -ENODEV;
 diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c
-index 2697e87..c32476c 100644
+index 5db1478..e90e25e 100644
 --- a/drivers/cpuidle/driver.c
 +++ b/drivers/cpuidle/driver.c
-@@ -194,7 +194,7 @@ static int poll_idle(struct cpuidle_device *dev,
+@@ -193,7 +193,7 @@ static int poll_idle(struct cpuidle_device *dev,
  
  static void poll_idle_init(struct cpuidle_driver *drv)
  {
@@ -40172,11 +40218,25 @@ index 8d2a772..33826c9 100644
  
        err = pci_request_regions(pdev, name);
        if (err)
+diff --git a/drivers/crypto/omap-des.c b/drivers/crypto/omap-des.c
+index 4630709..0a70e46 100644
+--- a/drivers/crypto/omap-des.c
++++ b/drivers/crypto/omap-des.c
+@@ -536,9 +536,6 @@ static int omap_des_crypt_dma_stop(struct omap_des_dev *dd)
+       dmaengine_terminate_all(dd->dma_lch_in);
+       dmaengine_terminate_all(dd->dma_lch_out);
+-      dma_unmap_sg(dd->dev, dd->in_sg, dd->in_sg_len, DMA_TO_DEVICE);
+-      dma_unmap_sg(dd->dev, dd->out_sg, dd->out_sg_len, DMA_FROM_DEVICE);
+-
+       return err;
+ }
 diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
-index 30b538d8..1610d75 100644
+index ca1b362..01cae6a 100644
 --- a/drivers/devfreq/devfreq.c
 +++ b/drivers/devfreq/devfreq.c
-@@ -673,7 +673,7 @@ int devfreq_add_governor(struct devfreq_governor *governor)
+@@ -672,7 +672,7 @@ int devfreq_add_governor(struct devfreq_governor *governor)
                goto err_out;
        }
  
@@ -40185,7 +40245,7 @@ index 30b538d8..1610d75 100644
  
        list_for_each_entry(devfreq, &devfreq_list, node) {
                int ret = 0;
-@@ -761,7 +761,7 @@ int devfreq_remove_governor(struct devfreq_governor *governor)
+@@ -760,7 +760,7 @@ int devfreq_remove_governor(struct devfreq_governor *governor)
                }
        }
  
@@ -40195,10 +40255,10 @@ index 30b538d8..1610d75 100644
        mutex_unlock(&devfreq_list_lock);
  
 diff --git a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c
-index 8ee383d..736b5de 100644
+index 10fcaba..326f709 100644
 --- a/drivers/dma/sh/shdma-base.c
 +++ b/drivers/dma/sh/shdma-base.c
-@@ -228,8 +228,8 @@ static int shdma_alloc_chan_resources(struct dma_chan *chan)
+@@ -227,8 +227,8 @@ static int shdma_alloc_chan_resources(struct dma_chan *chan)
                schan->slave_id = -EINVAL;
        }
  
@@ -40210,7 +40270,7 @@ index 8ee383d..736b5de 100644
                ret = -ENOMEM;
                goto edescalloc;
 diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
-index 9f1d4c7..fceff78 100644
+index 11707df..2ea96f7 100644
 --- a/drivers/dma/sh/shdmac.c
 +++ b/drivers/dma/sh/shdmac.c
 @@ -513,7 +513,7 @@ static int sh_dmae_nmi_handler(struct notifier_block *self,
@@ -40239,7 +40299,7 @@ index 592af5f..bb1d583 100644
  EXPORT_SYMBOL_GPL(edac_device_alloc_index);
  
 diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
-index c84eecb..4d7381d 100644
+index 112d63a..5443a61 100644
 --- a/drivers/edac/edac_mc_sysfs.c
 +++ b/drivers/edac/edac_mc_sysfs.c
 @@ -154,7 +154,7 @@ static const char * const edac_caps[] = {
@@ -40251,28 +40311,6 @@ index c84eecb..4d7381d 100644
  
  #define DEVICE_CHANNEL(_name, _mode, _show, _store, _var) \
        static struct dev_ch_attribute dev_attr_legacy_##_name = \
-@@ -1009,15 +1009,17 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
-       }
-       if (mci->set_sdram_scrub_rate || mci->get_sdram_scrub_rate) {
-+              pax_open_kernel();
-               if (mci->get_sdram_scrub_rate) {
--                      dev_attr_sdram_scrub_rate.attr.mode |= S_IRUGO;
--                      dev_attr_sdram_scrub_rate.show = &mci_sdram_scrub_rate_show;
-+                      *(umode_t *)&dev_attr_sdram_scrub_rate.attr.mode |= S_IRUGO;
-+                      *(void **)&dev_attr_sdram_scrub_rate.show = &mci_sdram_scrub_rate_show;
-               }
-               if (mci->set_sdram_scrub_rate) {
--                      dev_attr_sdram_scrub_rate.attr.mode |= S_IWUSR;
--                      dev_attr_sdram_scrub_rate.store = &mci_sdram_scrub_rate_store;
-+                      *(umode_t *)&dev_attr_sdram_scrub_rate.attr.mode |= S_IWUSR;
-+                      *(void **)&dev_attr_sdram_scrub_rate.store = &mci_sdram_scrub_rate_store;
-               }
-+              pax_close_kernel();
-               err = device_create_file(&mci->dev, &dev_attr_sdram_scrub_rate);
-               if (err) {
 diff --git a/drivers/edac/edac_pci.c b/drivers/edac/edac_pci.c
 index 2cf44b4d..6dd2dc7 100644
 --- a/drivers/edac/edac_pci.c
@@ -40507,19 +40545,6 @@ index 94a58a0..f5eba42 100644
  #define to_dmi_dev_attr(_dev_attr) \
        container_of(_dev_attr, struct dmi_device_attribute, dev_attr)
  
-diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
-index 2eebd28b..4261350 100644
---- a/drivers/firmware/dmi_scan.c
-+++ b/drivers/firmware/dmi_scan.c
-@@ -893,7 +893,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
-       if (buf == NULL)
-               return -1;
--      dmi_table(buf, dmi_len, dmi_num, decode, private_data);
-+      dmi_table((char __force_kernel *)buf, dmi_len, dmi_num, decode, private_data);
-       dmi_unmap(buf);
-       return 0;
 diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
 index 4fd9961..52d60ce 100644
 --- a/drivers/firmware/efi/cper.c
@@ -40542,10 +40567,10 @@ index 4fd9961..52d60ce 100644
  EXPORT_SYMBOL_GPL(cper_next_record_id);
  
 diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
-index 3061bb8..92b5fcc 100644
+index e14363d..c3d5d84 100644
 --- a/drivers/firmware/efi/efi.c
 +++ b/drivers/firmware/efi/efi.c
-@@ -160,14 +160,16 @@ static struct attribute_group efi_subsys_attr_group = {
+@@ -159,14 +159,16 @@ static struct attribute_group efi_subsys_attr_group = {
  };
  
  static struct efivars generic_efivars;
@@ -40581,7 +40606,7 @@ index 7b2e049..a253334 100644
  
        /* new_var */
 diff --git a/drivers/firmware/efi/runtime-map.c b/drivers/firmware/efi/runtime-map.c
-index 87b8e3b..c4afb35 100644
+index 5c55227..97f4978 100644
 --- a/drivers/firmware/efi/runtime-map.c
 +++ b/drivers/firmware/efi/runtime-map.c
 @@ -97,7 +97,7 @@ static void map_release(struct kobject *kobj)
@@ -40658,7 +40683,7 @@ index 3cfcfc6..09d6f117 100644
        int ret;
  
 diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c
-index 7818cd1..1be40e5 100644
+index 4ba7ed5..1536b5d 100644
 --- a/drivers/gpio/gpio-ich.c
 +++ b/drivers/gpio/gpio-ich.c
 @@ -94,7 +94,7 @@ struct ichx_desc {
@@ -40671,10 +40696,19 @@ index 7818cd1..1be40e5 100644
  static struct {
        spinlock_t lock;
 diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
-index f476ae2..05e1bdd 100644
+index b232397..ce8c4dc 100644
 --- a/drivers/gpio/gpio-omap.c
 +++ b/drivers/gpio/gpio-omap.c
-@@ -1188,7 +1188,7 @@ static int omap_gpio_probe(struct platform_device *pdev)
+@@ -1054,7 +1054,7 @@ static void omap_gpio_mod_init(struct gpio_bank *bank)
+               dev_err(bank->dev, "Could not get gpio dbck\n");
+ }
+-static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)
++static int omap_gpio_chip_init(struct gpio_bank *bank, irq_chip_no_const *irqc)
+ {
+       static int gpio;
+       int irq_base = 0;
+@@ -1137,7 +1137,7 @@ static int omap_gpio_probe(struct platform_device *pdev)
        const struct omap_gpio_platform_data *pdata;
        struct resource *res;
        struct gpio_bank *bank;
@@ -40684,10 +40718,10 @@ index f476ae2..05e1bdd 100644
  
        match = of_match_device(of_match_ptr(omap_gpio_match), dev);
 diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
-index c49522e..9a7ee54 100644
+index 1e14a6c..0442450 100644
 --- a/drivers/gpio/gpio-rcar.c
 +++ b/drivers/gpio/gpio-rcar.c
-@@ -348,7 +348,7 @@ static int gpio_rcar_probe(struct platform_device *pdev)
+@@ -379,7 +379,7 @@ static int gpio_rcar_probe(struct platform_device *pdev)
        struct gpio_rcar_priv *p;
        struct resource *io, *irq;
        struct gpio_chip *gpio_chip;
@@ -40710,10 +40744,10 @@ index c1caa45..f0f97d2 100644
        return -EINVAL;
  }
 diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
-index 1ca9295..9f3d481 100644
+index 6bc612b..3932464 100644
 --- a/drivers/gpio/gpiolib.c
 +++ b/drivers/gpio/gpiolib.c
-@@ -554,8 +554,10 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip)
+@@ -558,8 +558,10 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip)
        }
  
        if (gpiochip->irqchip) {
@@ -40726,7 +40760,7 @@ index 1ca9295..9f3d481 100644
                gpiochip->irqchip = NULL;
        }
  }
-@@ -621,8 +623,11 @@ int gpiochip_irqchip_add(struct gpio_chip *gpiochip,
+@@ -625,8 +627,11 @@ int gpiochip_irqchip_add(struct gpio_chip *gpiochip,
                gpiochip->irqchip = NULL;
                return -EINVAL;
        }
@@ -40918,10 +40952,10 @@ index 9b23525..65f4110 100644
                        dev->driver->context_dtor(dev, ctx->handle);
                drm_legacy_ctxbitmap_free(dev, ctx->handle);
 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
-index b6f076b..2918de2 100644
+index 3007b44..420b4a3 100644
 --- a/drivers/gpu/drm/drm_crtc.c
 +++ b/drivers/gpu/drm/drm_crtc.c
-@@ -4118,7 +4118,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
+@@ -4176,7 +4176,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
                                        goto done;
                                }
  
@@ -40931,7 +40965,7 @@ index b6f076b..2918de2 100644
                                        ret = -EFAULT;
                                        goto done;
 diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
-index d512134..a80a8e4 100644
+index 48f7359..8c3b594 100644
 --- a/drivers/gpu/drm/drm_drv.c
 +++ b/drivers/gpu/drm/drm_drv.c
 @@ -448,7 +448,7 @@ void drm_unplug_dev(struct drm_device *dev)
@@ -41076,10 +41110,10 @@ index 3d2e91c..d31c4c9 100644
                item->object = NULL;
        }
 diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
-index f1b32f9..394f791 100644
+index cbb4fc0..5c756cb9 100644
 --- a/drivers/gpu/drm/drm_info.c
 +++ b/drivers/gpu/drm/drm_info.c
-@@ -76,10 +76,13 @@ int drm_vm_info(struct seq_file *m, void *data)
+@@ -77,10 +77,13 @@ int drm_vm_info(struct seq_file *m, void *data)
        struct drm_local_map *map;
        struct drm_map_list *r_list;
  
@@ -41097,7 +41131,7 @@ index f1b32f9..394f791 100644
        const char *type;
        int i;
  
-@@ -90,7 +93,7 @@ int drm_vm_info(struct seq_file *m, void *data)
+@@ -91,7 +94,7 @@ int drm_vm_info(struct seq_file *m, void *data)
                map = r_list->map;
                if (!map)
                        continue;
@@ -41107,7 +41141,7 @@ index f1b32f9..394f791 100644
                else
                        type = types[map->type];
 diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c
-index 2f4c4343..dd12cd2 100644
+index aa8bbb4..0f62630 100644
 --- a/drivers/gpu/drm/drm_ioc32.c
 +++ b/drivers/gpu/drm/drm_ioc32.c
 @@ -457,7 +457,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd,
@@ -41132,12 +41166,12 @@ index 2f4c4343..dd12cd2 100644
        return 0;
  }
  
--drm_ioctl_compat_t *drm_compat_ioctls[] = {
-+drm_ioctl_compat_t drm_compat_ioctls[] = {
+-static drm_ioctl_compat_t *drm_compat_ioctls[] = {
++static drm_ioctl_compat_t drm_compat_ioctls[] = {
        [DRM_IOCTL_NR(DRM_IOCTL_VERSION32)] = compat_drm_version,
        [DRM_IOCTL_NR(DRM_IOCTL_GET_UNIQUE32)] = compat_drm_getunique,
        [DRM_IOCTL_NR(DRM_IOCTL_GET_MAP32)] = compat_drm_getmap,
-@@ -1062,7 +1062,6 @@ drm_ioctl_compat_t *drm_compat_ioctls[] = {
+@@ -1062,7 +1062,6 @@ static drm_ioctl_compat_t *drm_compat_ioctls[] = {
  long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
        unsigned int nr = DRM_IOCTL_NR(cmd);
@@ -41159,10 +41193,10 @@ index 2f4c4343..dd12cd2 100644
                ret = drm_ioctl(filp, cmd, arg);
  
 diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
-index 3785d66..1c489ef 100644
+index 266dcd6..d0194d9 100644
 --- a/drivers/gpu/drm/drm_ioctl.c
 +++ b/drivers/gpu/drm/drm_ioctl.c
-@@ -655,7 +655,7 @@ long drm_ioctl(struct file *filp,
+@@ -663,7 +663,7 @@ long drm_ioctl(struct file *filp,
        struct drm_file *file_priv = filp->private_data;
        struct drm_device *dev;
        const struct drm_ioctl_desc *ioctl = NULL;
@@ -41253,20 +41287,19 @@ index 93ec5dc..82acbaf 100644
        int front_offset;
  } drm_i810_private_t;
 diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index 1a46787..7fb387c 100644
+index 68e0c85..3303192 100644
 --- a/drivers/gpu/drm/i915/i915_dma.c
 +++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -149,6 +149,9 @@ static int i915_getparam(struct drm_device *dev, void *data,
-       case I915_PARAM_MMAP_VERSION:
-               value = 1;
-               break;
+@@ -162,6 +162,8 @@ static int i915_getparam(struct drm_device *dev, void *data,
+               value = INTEL_INFO(dev)->eu_total;
+               if (!value)
+                       return -ENODEV;
 +      case I915_PARAM_HAS_LEGACY_CONTEXT:
 +              value = drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT);
-+              break;
+               break;
        default:
                DRM_DEBUG("Unknown parameter %d\n", param->param);
-               return -EINVAL;
-@@ -362,7 +365,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
+@@ -376,7 +378,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
         * locking inversion with the driver load path. And the access here is
         * completely racy anyway. So don't bother with locking for now.
         */
@@ -41276,10 +41309,10 @@ index 1a46787..7fb387c 100644
  
  static const struct vga_switcheroo_client_ops i915_switcheroo_ops = {
 diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-index 38a7425..5322b16 100644
+index a3190e79..86b06cb 100644
 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
 +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-@@ -872,12 +872,12 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
+@@ -936,12 +936,12 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
  static int
  validate_exec_list(struct drm_device *dev,
                   struct drm_i915_gem_exec_object2 *exec,
@@ -41353,10 +41386,10 @@ index 176de63..b50b66a 100644
                ret = drm_ioctl(filp, cmd, arg);
  
 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index f75173c..f283e45 100644
+index d0f3cbc..f3ab4cc 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -13056,13 +13056,13 @@ struct intel_quirk {
+@@ -13604,13 +13604,13 @@ struct intel_quirk {
        int subsystem_vendor;
        int subsystem_device;
        void (*hook)(struct drm_device *dev);
@@ -41372,7 +41405,7 @@ index f75173c..f283e45 100644
  
  static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
  {
-@@ -13070,18 +13070,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
+@@ -13618,18 +13618,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
        return 1;
  }
  
@@ -41404,7 +41437,7 @@ index f75173c..f283e45 100644
        },
  };
 diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
-index a002f53..0d60514 100644
+index 74f505b..21f6914 100644
 --- a/drivers/gpu/drm/imx/imx-drm-core.c
 +++ b/drivers/gpu/drm/imx/imx-drm-core.c
 @@ -355,7 +355,7 @@ int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
@@ -41519,10 +41552,10 @@ index 0190b69..60c3eaf 100644
  #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
  
 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
-index 8763deb..936b423 100644
+index 8904933..9624b38 100644
 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
-@@ -940,7 +940,8 @@ static struct drm_driver
+@@ -941,7 +941,8 @@ static struct drm_driver
  driver_stub = {
        .driver_features =
                DRIVER_USE_AGP |
@@ -41533,10 +41566,10 @@ index 8763deb..936b423 100644
        .load = nouveau_drm_load,
        .unload = nouveau_drm_unload,
 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
-index fc68f09..0511d71 100644
+index dd72652..1fd2368 100644
 --- a/drivers/gpu/drm/nouveau/nouveau_drm.h
 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
-@@ -121,7 +121,6 @@ struct nouveau_drm {
+@@ -123,7 +123,6 @@ struct nouveau_drm {
                struct drm_global_reference mem_global_ref;
                struct ttm_bo_global_ref bo_global_ref;
                struct ttm_bo_device bdev;
@@ -41558,10 +41591,10 @@ index 462679a..88e32a7 100644
  
        if (nr < DRM_COMMAND_BASE)
 diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
-index 273e501..3b6c0a2 100644
+index 18f4497..10f6025 100644
 --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
 +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
-@@ -127,11 +127,11 @@ nouveau_vram_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
+@@ -130,11 +130,11 @@ nouveau_vram_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
  }
  
  const struct ttm_mem_type_manager_func nouveau_vram_manager = {
@@ -41578,7 +41611,7 @@ index 273e501..3b6c0a2 100644
  };
  
  static int
-@@ -195,11 +195,11 @@ nouveau_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
+@@ -198,11 +198,11 @@ nouveau_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
  }
  
  const struct ttm_mem_type_manager_func nouveau_gart_manager = {
@@ -41595,7 +41628,7 @@ index 273e501..3b6c0a2 100644
  };
  
  /*XXX*/
-@@ -268,11 +268,11 @@ nv04_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
+@@ -271,11 +271,11 @@ nv04_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
  }
  
  const struct ttm_mem_type_manager_func nv04_gart_manager = {
@@ -41973,7 +42006,7 @@ index b928c17..e5d9400 100644
        if (regcomp
            (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
-index bd7519f..e1c2cd95 100644
+index a7fdfa4..04a3964 100644
 --- a/drivers/gpu/drm/radeon/radeon_device.c
 +++ b/drivers/gpu/drm/radeon/radeon_device.c
 @@ -1247,7 +1247,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
@@ -42111,10 +42144,10 @@ index edafd3c..3af7c9c 100644
        vma->vm_ops = &radeon_ttm_vm_ops;
        return 0;
 diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
-index 1a52522..8e78043 100644
+index a287e4f..df1d5dd 100644
 --- a/drivers/gpu/drm/tegra/dc.c
 +++ b/drivers/gpu/drm/tegra/dc.c
-@@ -1585,7 +1585,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
+@@ -1594,7 +1594,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
        }
  
        for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
@@ -42137,7 +42170,7 @@ index ed970f6..4eeea42 100644
        struct dentry *debugfs;
  
 diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
-index 7eaaee74..cc2bc04 100644
+index 06ab178..b5324e4 100644
 --- a/drivers/gpu/drm/tegra/hdmi.c
 +++ b/drivers/gpu/drm/tegra/hdmi.c
 @@ -64,7 +64,7 @@ struct tegra_hdmi {
@@ -42149,6 +42182,24 @@ index 7eaaee74..cc2bc04 100644
        struct drm_minor *minor;
        struct dentry *debugfs;
  };
+diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
+index 7591d89..463e2b6 100644
+--- a/drivers/gpu/drm/tegra/sor.c
++++ b/drivers/gpu/drm/tegra/sor.c
+@@ -826,8 +826,11 @@ static int tegra_sor_debugfs_init(struct tegra_sor *sor,
+               goto remove;
+       }
+-      for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
+-              sor->debugfs_files[i].data = sor;
++      for (i = 0; i < ARRAY_SIZE(debugfs_files); i++) {
++              pax_open_kernel();
++              *(void **)&sor->debugfs_files[i].data = sor;
++              pax_close_kernel();
++      }
+       err = drm_debugfs_create_files(sor->debugfs_files,
+                                      ARRAY_SIZE(debugfs_files),
 diff --git a/drivers/gpu/drm/ttm/ttm_bo_manager.c b/drivers/gpu/drm/ttm/ttm_bo_manager.c
 index aa0bd054..aea6a01 100644
 --- a/drivers/gpu/drm/ttm/ttm_bo_manager.c
@@ -42606,10 +42657,10 @@ index 37ac7b5..d52a5c9 100644
        /* copy over all the bus versions */
        if (dev->bus && dev->bus->pm) {
 diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index 56ce8c2..32ce524 100644
+index 722a925..594c312 100644
 --- a/drivers/hid/hid-core.c
 +++ b/drivers/hid/hid-core.c
-@@ -2531,7 +2531,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
+@@ -2552,7 +2552,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
  
  int hid_add_device(struct hid_device *hdev)
  {
@@ -42618,7 +42669,7 @@ index 56ce8c2..32ce524 100644
        int ret;
  
        if (WARN_ON(hdev->status & HID_STAT_ADDED))
-@@ -2574,7 +2574,7 @@ int hid_add_device(struct hid_device *hdev)
+@@ -2595,7 +2595,7 @@ int hid_add_device(struct hid_device *hdev)
        /* XXX hack, any other cleaner solution after the driver core
         * is converted to allow more than 20 bytes as the device name? */
        dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
@@ -42627,6 +42678,28 @@ index 56ce8c2..32ce524 100644
  
        hid_debug_register(hdev, dev_name(&hdev->dev));
        ret = device_add(&hdev->dev);
+diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-sensor-custom.c
+index 5614fee..8301fbf 100644
+--- a/drivers/hid/hid-sensor-custom.c
++++ b/drivers/hid/hid-sensor-custom.c
+@@ -34,7 +34,7 @@ struct hid_sensor_custom_field {
+       int report_id;
+       char group_name[HID_CUSTOM_NAME_LENGTH];
+       struct hid_sensor_hub_attribute_info attribute;
+-      struct device_attribute sd_attrs[HID_CUSTOM_MAX_CORE_ATTRS];
++      device_attribute_no_const sd_attrs[HID_CUSTOM_MAX_CORE_ATTRS];
+       char attr_name[HID_CUSTOM_TOTAL_ATTRS][HID_CUSTOM_NAME_LENGTH];
+       struct attribute *attrs[HID_CUSTOM_TOTAL_ATTRS];
+       struct attribute_group hid_custom_attribute_group;
+@@ -590,7 +590,7 @@ static int hid_sensor_custom_add_attributes(struct hid_sensor_custom
+               j = 0;
+               while (j < HID_CUSTOM_TOTAL_ATTRS &&
+                      hid_custom_attrs[j].name) {
+-                      struct device_attribute *device_attr;
++                      device_attribute_no_const *device_attr;
+                       device_attr = &sensor_inst->fields[i].sd_attrs[j];
 diff --git a/drivers/hid/hid-wiimote-debug.c b/drivers/hid/hid-wiimote-debug.c
 index c13fb5b..55a3802 100644
 --- a/drivers/hid/hid-wiimote-debug.c
@@ -42641,10 +42714,10 @@ index c13fb5b..55a3802 100644
  
        *off += size;
 diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
-index 00bc30e..d8e5097 100644
+index 54da66d..aa3a3d7 100644
 --- a/drivers/hv/channel.c
 +++ b/drivers/hv/channel.c
-@@ -370,7 +370,7 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
+@@ -373,7 +373,7 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
        int ret = 0;
  
        next_gpadl_handle =
@@ -42654,7 +42727,7 @@ index 00bc30e..d8e5097 100644
        ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount);
        if (ret)
 diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
-index 50e51a5..b0bfd78 100644
+index d3943bc..3de28a9 100644
 --- a/drivers/hv/hv.c
 +++ b/drivers/hv/hv.c
 @@ -118,7 +118,7 @@ static u64 do_hypercall(u64 control, void *input, void *output)
@@ -42676,10 +42749,10 @@ index 50e51a5..b0bfd78 100644
        if (!virtaddr)
                goto cleanup;
 diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
-index ff16938..e60879c 100644
+index cb5b7dc..6052f22 100644
 --- a/drivers/hv/hv_balloon.c
 +++ b/drivers/hv/hv_balloon.c
-@@ -470,7 +470,7 @@ MODULE_PARM_DESC(hot_add, "If set attempt memory hot_add");
+@@ -469,7 +469,7 @@ MODULE_PARM_DESC(hot_add, "If set attempt memory hot_add");
  
  module_param(pressure_report_delay, uint, (S_IRUGO | S_IWUSR));
  MODULE_PARM_DESC(pressure_report_delay, "Delay in secs in reporting pressure");
@@ -42688,7 +42761,7 @@ index ff16938..e60879c 100644
  
  static int dm_ring_size = (5 * PAGE_SIZE);
  
-@@ -947,7 +947,7 @@ static void hot_add_req(struct work_struct *dummy)
+@@ -941,7 +941,7 @@ static void hot_add_req(struct work_struct *dummy)
                pr_info("Memory hot add failed\n");
  
        dm->state = DM_INITIALIZED;
@@ -42697,7 +42770,7 @@ index ff16938..e60879c 100644
        vmbus_sendpacket(dm->dev->channel, &resp,
                        sizeof(struct dm_hot_add_response),
                        (unsigned long)NULL,
-@@ -1028,7 +1028,7 @@ static void post_status(struct hv_dynmem_device *dm)
+@@ -1022,7 +1022,7 @@ static void post_status(struct hv_dynmem_device *dm)
        memset(&status, 0, sizeof(struct dm_status));
        status.hdr.type = DM_STATUS_REPORT;
        status.hdr.size = sizeof(struct dm_status);
@@ -42705,8 +42778,8 @@ index ff16938..e60879c 100644
 +      status.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
  
        /*
-        * The host expects the guest to report free memory.
-@@ -1048,7 +1048,7 @@ static void post_status(struct hv_dynmem_device *dm)
+        * The host expects the guest to report free and committed memory.
+@@ -1046,7 +1046,7 @@ static void post_status(struct hv_dynmem_device *dm)
         * send the status. This can happen if we were interrupted
         * after we picked our transaction ID.
         */
@@ -42715,7 +42788,7 @@ index ff16938..e60879c 100644
                return;
  
        /*
-@@ -1188,7 +1188,7 @@ static void balloon_up(struct work_struct *dummy)
+@@ -1191,7 +1191,7 @@ static void balloon_up(struct work_struct *dummy)
                 */
  
                do {
@@ -42724,7 +42797,7 @@ index ff16938..e60879c 100644
                        ret = vmbus_sendpacket(dm_device.dev->channel,
                                                bl_resp,
                                                bl_resp->hdr.size,
-@@ -1234,7 +1234,7 @@ static void balloon_down(struct hv_dynmem_device *dm,
+@@ -1237,7 +1237,7 @@ static void balloon_down(struct hv_dynmem_device *dm,
  
        memset(&resp, 0, sizeof(struct dm_unballoon_response));
        resp.hdr.type = DM_UNBALLOON_RESPONSE;
@@ -42733,7 +42806,7 @@ index ff16938..e60879c 100644
        resp.hdr.size = sizeof(struct dm_unballoon_response);
  
        vmbus_sendpacket(dm_device.dev->channel, &resp,
-@@ -1295,7 +1295,7 @@ static void version_resp(struct hv_dynmem_device *dm,
+@@ -1298,7 +1298,7 @@ static void version_resp(struct hv_dynmem_device *dm,
        memset(&version_req, 0, sizeof(struct dm_version_request));
        version_req.hdr.type = DM_VERSION_REQUEST;
        version_req.hdr.size = sizeof(struct dm_version_request);
@@ -42742,7 +42815,7 @@ index ff16938..e60879c 100644
        version_req.version.version = DYNMEM_PROTOCOL_VERSION_WIN7;
        version_req.is_last_attempt = 1;
  
-@@ -1468,7 +1468,7 @@ static int balloon_probe(struct hv_device *dev,
+@@ -1471,7 +1471,7 @@ static int balloon_probe(struct hv_device *dev,
        memset(&version_req, 0, sizeof(struct dm_version_request));
        version_req.hdr.type = DM_VERSION_REQUEST;
        version_req.hdr.size = sizeof(struct dm_version_request);
@@ -42751,7 +42824,7 @@ index ff16938..e60879c 100644
        version_req.version.version = DYNMEM_PROTOCOL_VERSION_WIN8;
        version_req.is_last_attempt = 0;
  
-@@ -1499,7 +1499,7 @@ static int balloon_probe(struct hv_device *dev,
+@@ -1502,7 +1502,7 @@ static int balloon_probe(struct hv_device *dev,
        memset(&cap_msg, 0, sizeof(struct dm_capabilities));
        cap_msg.hdr.type = DM_CAPABILITIES_REPORT;
        cap_msg.hdr.size = sizeof(struct dm_capabilities);
@@ -42761,10 +42834,10 @@ index ff16938..e60879c 100644
        cap_msg.caps.cap_bits.balloon = 1;
        cap_msg.caps.cap_bits.hot_add = 1;
 diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
-index 44b1c94..6dccc2c 100644
+index 887287a..238a626 100644
 --- a/drivers/hv/hyperv_vmbus.h
 +++ b/drivers/hv/hyperv_vmbus.h
-@@ -632,7 +632,7 @@ enum vmbus_connect_state {
+@@ -645,7 +645,7 @@ enum vmbus_connect_state {
  struct vmbus_connection {
        enum vmbus_connect_state conn_state;
  
@@ -42773,23 +42846,6 @@ index 44b1c94..6dccc2c 100644
  
        /*
         * Represents channel interrupts. Each bit position represents a
-diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
-index f518b8d7..4bc0b64 100644
---- a/drivers/hv/vmbus_drv.c
-+++ b/drivers/hv/vmbus_drv.c
-@@ -840,10 +840,10 @@ int vmbus_device_register(struct hv_device *child_device_obj)
- {
-       int ret = 0;
--      static atomic_t device_num = ATOMIC_INIT(0);
-+      static atomic_unchecked_t device_num = ATOMIC_INIT(0);
-       dev_set_name(&child_device_obj->device, "vmbus_0_%d",
--                   atomic_inc_return(&device_num));
-+                   atomic_inc_return_unchecked(&device_num));
-       child_device_obj->device.bus = &hv_bus;
-       child_device_obj->device.parent = &hv_acpi_dev->dev;
 diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
 index 579bdf9..0dac21d5 100644
 --- a/drivers/hwmon/acpi_power_meter.c
@@ -42863,10 +42919,10 @@ index cccef87..06ce8ec 100644
  {
        sysfs_attr_init(&attr->attr);
 diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
-index 5b7fec8..05c957a 100644
+index ed303ba..e24bd26f 100644
 --- a/drivers/hwmon/coretemp.c
 +++ b/drivers/hwmon/coretemp.c
-@@ -783,7 +783,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
+@@ -782,7 +782,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
        return NOTIFY_OK;
  }
  
@@ -42902,7 +42958,7 @@ index 17ae2eb..21b71dd 100644
        int in_i = 1, temp_i = 1, curr_i = 1, humidity_i = 1;
        enum iio_chan_type type;
 diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
-index f3830db..9f4d6d5 100644
+index 37f0170..414ec2c 100644
 --- a/drivers/hwmon/nct6683.c
 +++ b/drivers/hwmon/nct6683.c
 @@ -397,11 +397,11 @@ static struct attribute_group *
@@ -42921,10 +42977,10 @@ index f3830db..9f4d6d5 100644
        int i, j, count;
  
 diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
-index 1be4117..88ae1e1 100644
+index bd1c99d..2fa55ad 100644
 --- a/drivers/hwmon/nct6775.c
 +++ b/drivers/hwmon/nct6775.c
-@@ -952,10 +952,10 @@ static struct attribute_group *
+@@ -953,10 +953,10 @@ static struct attribute_group *
  nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
                          int repeat)
  {
@@ -43131,7 +43187,7 @@ index 4df97f6..c751151 100644
                           struct iio_chan_spec const *chan,
                           ssize_t (*readfunc)(struct device *dev,
 diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
-index e28a494..f7c2671 100644
+index 0271608..81998c5 100644
 --- a/drivers/infiniband/core/cm.c
 +++ b/drivers/infiniband/core/cm.c
 @@ -115,7 +115,7 @@ static char const counter_group_names[CM_COUNTER_GROUPS]
@@ -43143,7 +43199,7 @@ index e28a494..f7c2671 100644
  };
  
  struct cm_counter_attribute {
-@@ -1398,7 +1398,7 @@ static void cm_dup_req_handler(struct cm_work *work,
+@@ -1397,7 +1397,7 @@ static void cm_dup_req_handler(struct cm_work *work,
        struct ib_mad_send_buf *msg = NULL;
        int ret;
  
@@ -43152,7 +43208,7 @@ index e28a494..f7c2671 100644
                        counter[CM_REQ_COUNTER]);
  
        /* Quick state check to discard duplicate REQs. */
-@@ -1785,7 +1785,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
+@@ -1784,7 +1784,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
        if (!cm_id_priv)
                return;
  
@@ -43161,7 +43217,7 @@ index e28a494..f7c2671 100644
                        counter[CM_REP_COUNTER]);
        ret = cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg);
        if (ret)
-@@ -1952,7 +1952,7 @@ static int cm_rtu_handler(struct cm_work *work)
+@@ -1951,7 +1951,7 @@ static int cm_rtu_handler(struct cm_work *work)
        if (cm_id_priv->id.state != IB_CM_REP_SENT &&
            cm_id_priv->id.state != IB_CM_MRA_REP_RCVD) {
                spin_unlock_irq(&cm_id_priv->lock);
@@ -43170,7 +43226,7 @@ index e28a494..f7c2671 100644
                                counter[CM_RTU_COUNTER]);
                goto out;
        }
-@@ -2135,7 +2135,7 @@ static int cm_dreq_handler(struct cm_work *work)
+@@ -2134,7 +2134,7 @@ static int cm_dreq_handler(struct cm_work *work)
        cm_id_priv = cm_acquire_id(dreq_msg->remote_comm_id,
                                   dreq_msg->local_comm_id);
        if (!cm_id_priv) {
@@ -43179,7 +43235,7 @@ index e28a494..f7c2671 100644
                                counter[CM_DREQ_COUNTER]);
                cm_issue_drep(work->port, work->mad_recv_wc);
                return -EINVAL;
-@@ -2160,7 +2160,7 @@ static int cm_dreq_handler(struct cm_work *work)
+@@ -2159,7 +2159,7 @@ static int cm_dreq_handler(struct cm_work *work)
        case IB_CM_MRA_REP_RCVD:
                break;
        case IB_CM_TIMEWAIT:
@@ -43188,7 +43244,7 @@ index e28a494..f7c2671 100644
                                counter[CM_DREQ_COUNTER]);
                if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
                        goto unlock;
-@@ -2174,7 +2174,7 @@ static int cm_dreq_handler(struct cm_work *work)
+@@ -2173,7 +2173,7 @@ static int cm_dreq_handler(struct cm_work *work)
                        cm_free_msg(msg);
                goto deref;
        case IB_CM_DREQ_RCVD:
@@ -43197,7 +43253,7 @@ index e28a494..f7c2671 100644
                                counter[CM_DREQ_COUNTER]);
                goto unlock;
        default:
-@@ -2541,7 +2541,7 @@ static int cm_mra_handler(struct cm_work *work)
+@@ -2540,7 +2540,7 @@ static int cm_mra_handler(struct cm_work *work)
                    ib_modify_mad(cm_id_priv->av.port->mad_agent,
                                  cm_id_priv->msg, timeout)) {
                        if (cm_id_priv->id.lap_state == IB_CM_MRA_LAP_RCVD)
@@ -43206,7 +43262,7 @@ index e28a494..f7c2671 100644
                                                counter_group[CM_RECV_DUPLICATES].
                                                counter[CM_MRA_COUNTER]);
                        goto out;
-@@ -2550,7 +2550,7 @@ static int cm_mra_handler(struct cm_work *work)
+@@ -2549,7 +2549,7 @@ static int cm_mra_handler(struct cm_work *work)
                break;
        case IB_CM_MRA_REQ_RCVD:
        case IB_CM_MRA_REP_RCVD:
@@ -43215,7 +43271,7 @@ index e28a494..f7c2671 100644
                                counter[CM_MRA_COUNTER]);
                /* fall through */
        default:
-@@ -2712,7 +2712,7 @@ static int cm_lap_handler(struct cm_work *work)
+@@ -2711,7 +2711,7 @@ static int cm_lap_handler(struct cm_work *work)
        case IB_CM_LAP_IDLE:
                break;
        case IB_CM_MRA_LAP_SENT:
@@ -43224,7 +43280,7 @@ index e28a494..f7c2671 100644
                                counter[CM_LAP_COUNTER]);
                if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
                        goto unlock;
-@@ -2728,7 +2728,7 @@ static int cm_lap_handler(struct cm_work *work)
+@@ -2727,7 +2727,7 @@ static int cm_lap_handler(struct cm_work *work)
                        cm_free_msg(msg);
                goto deref;
        case IB_CM_LAP_RCVD:
@@ -43233,7 +43289,7 @@ index e28a494..f7c2671 100644
                                counter[CM_LAP_COUNTER]);
                goto unlock;
        default:
-@@ -3012,7 +3012,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
+@@ -3011,7 +3011,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
        cur_cm_id_priv = cm_insert_remote_sidr(cm_id_priv);
        if (cur_cm_id_priv) {
                spin_unlock_irq(&cm.lock);
@@ -43242,7 +43298,7 @@ index e28a494..f7c2671 100644
                                counter[CM_SIDR_REQ_COUNTER]);
                goto out; /* Duplicate message. */
        }
-@@ -3224,10 +3224,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
+@@ -3223,10 +3223,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
        if (!msg->context[0] && (attr_index != CM_REJ_COUNTER))
                msg->retries = 1;
  
@@ -43255,7 +43311,7 @@ index e28a494..f7c2671 100644
                                &port->counter_group[CM_XMIT_RETRIES].
                                counter[attr_index]);
  
-@@ -3437,7 +3437,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
+@@ -3436,7 +3436,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
        }
  
        attr_id = be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id);
@@ -43264,7 +43320,7 @@ index e28a494..f7c2671 100644
                        counter[attr_id - CM_ATTR_ID_OFFSET]);
  
        work = kmalloc(sizeof *work + sizeof(struct ib_sa_path_rec) * paths,
-@@ -3668,7 +3668,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
+@@ -3667,7 +3667,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
        cm_attr = container_of(attr, struct cm_counter_attribute, attr);
  
        return sprintf(buf, "%ld\n",
@@ -43359,7 +43415,7 @@ index a9f0489..27a161b 100644
                   (unsigned long) cmd.response + sizeof resp,
                   in_len - sizeof cmd, out_len - sizeof resp);
 diff --git a/drivers/infiniband/hw/cxgb4/mem.c b/drivers/infiniband/hw/cxgb4/mem.c
-index 6791fd1..78bdcdf 100644
+index cff815b..75576dd 100644
 --- a/drivers/infiniband/hw/cxgb4/mem.c
 +++ b/drivers/infiniband/hw/cxgb4/mem.c
 @@ -256,7 +256,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
@@ -43435,7 +43491,7 @@ index 1f95bba..9530f87 100644
                                      sdata, wqe->wr.wr.atomic.swap);
                goto send_comp;
 diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
-index 5904026..f1c30e5 100644
+index 9cd2b00..7486df4 100644
 --- a/drivers/infiniband/hw/mlx4/mad.c
 +++ b/drivers/infiniband/hw/mlx4/mad.c
 @@ -106,7 +106,7 @@ __be64 mlx4_ib_gen_node_guid(void)
@@ -43461,10 +43517,10 @@ index ed327e6..ca1739e0 100644
        ctx->mcg_wq = create_singlethread_workqueue(name);
        if (!ctx->mcg_wq)
 diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
-index f829fd9..1a8d436 100644
+index fce39343..9d8fdff 100644
 --- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
 +++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
-@@ -439,7 +439,7 @@ struct mlx4_ib_demux_ctx {
+@@ -435,7 +435,7 @@ struct mlx4_ib_demux_ctx {
        struct list_head        mcg_mgid0_list;
        struct workqueue_struct *mcg_wq;
        struct mlx4_ib_demux_pv_ctx **tun;
@@ -43571,7 +43627,7 @@ index 415f8e1..e34214e 100644
        struct mthca_dev *dev = to_mdev(ibcq->device);
        struct mthca_cq *cq = to_mcq(ibcq);
 diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c
-index 3b2a6dc..bce26ff 100644
+index 9f9d5c5..3c19aac 100644
 --- a/drivers/infiniband/hw/nes/nes.c
 +++ b/drivers/infiniband/hw/nes/nes.c
 @@ -97,7 +97,7 @@ MODULE_PARM_DESC(limit_maxrdreqsz, "Limit max read request size to 256 Bytes");
@@ -43583,7 +43639,7 @@ index 3b2a6dc..bce26ff 100644
  
  static unsigned int ee_flsh_adapter;
  static unsigned int sysfs_nonidx_addr;
-@@ -278,7 +278,7 @@ static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_r
+@@ -279,7 +279,7 @@ static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_r
        struct nes_qp *nesqp = cqp_request->cqp_callback_pointer;
        struct nes_adapter *nesadapter = nesdev->nesadapter;
  
@@ -43652,7 +43708,7 @@ index bd9d132..70d84f4 100644
  extern u32 int_mod_timer_init;
  extern u32 int_mod_cq_depth_256;
 diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
-index 6f09a72..cf4399d 100644
+index 72b4341..2600332 100644
 --- a/drivers/infiniband/hw/nes/nes_cm.c
 +++ b/drivers/infiniband/hw/nes/nes_cm.c
 @@ -69,14 +69,14 @@ u32 cm_packets_dropped;
@@ -43724,7 +43780,7 @@ index 6f09a72..cf4399d 100644
  
  int nes_add_ref_cm_node(struct nes_cm_node *cm_node)
  {
-@@ -1436,7 +1436,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
+@@ -1461,7 +1461,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
                kfree(listener);
                listener = NULL;
                ret = 0;
@@ -43733,7 +43789,7 @@ index 6f09a72..cf4399d 100644
        } else {
                spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
        }
-@@ -1637,7 +1637,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
+@@ -1667,7 +1667,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
                  cm_node->rem_mac);
  
        add_hte_node(cm_core, cm_node);
@@ -43742,7 +43798,7 @@ index 6f09a72..cf4399d 100644
  
        return cm_node;
  }
-@@ -1698,7 +1698,7 @@ static int rem_ref_cm_node(struct nes_cm_core *cm_core,
+@@ -1728,7 +1728,7 @@ static int rem_ref_cm_node(struct nes_cm_core *cm_core,
        }
  
        atomic_dec(&cm_core->node_cnt);
@@ -43751,7 +43807,7 @@ index 6f09a72..cf4399d 100644
        nesqp = cm_node->nesqp;
        if (nesqp) {
                nesqp->cm_node = NULL;
-@@ -1762,7 +1762,7 @@ static int process_options(struct nes_cm_node *cm_node, u8 *optionsloc,
+@@ -1792,7 +1792,7 @@ static int process_options(struct nes_cm_node *cm_node, u8 *optionsloc,
  
  static void drop_packet(struct sk_buff *skb)
  {
@@ -43760,7 +43816,7 @@ index 6f09a72..cf4399d 100644
        dev_kfree_skb_any(skb);
  }
  
-@@ -1825,7 +1825,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
+@@ -1855,7 +1855,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
  {
  
        int     reset = 0;      /* whether to send reset in case of err.. */
@@ -43769,7 +43825,7 @@ index 6f09a72..cf4399d 100644
        nes_debug(NES_DBG_CM, "Received Reset, cm_node = %p, state = %u."
                        " refcnt=%d\n", cm_node, cm_node->state,
                        atomic_read(&cm_node->ref_count));
-@@ -2492,7 +2492,7 @@ static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
+@@ -2523,7 +2523,7 @@ static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
                                rem_ref_cm_node(cm_node->cm_core, cm_node);
                                return NULL;
                        }
@@ -43778,7 +43834,7 @@ index 6f09a72..cf4399d 100644
                        loopbackremotenode->loopbackpartner = cm_node;
                        loopbackremotenode->tcp_cntxt.rcv_wscale =
                                NES_CM_DEFAULT_RCV_WND_SCALE;
-@@ -2773,7 +2773,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
+@@ -2804,7 +2804,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
                                nes_queue_mgt_skbs(skb, nesvnic, cm_node->nesqp);
                        else {
                                rem_ref_cm_node(cm_core, cm_node);
@@ -43787,7 +43843,7 @@ index 6f09a72..cf4399d 100644
                                dev_kfree_skb_any(skb);
                        }
                        break;
-@@ -3081,7 +3081,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
+@@ -3112,7 +3112,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
  
        if ((cm_id) && (cm_id->event_handler)) {
                if (issue_disconn) {
@@ -43796,7 +43852,7 @@ index 6f09a72..cf4399d 100644
                        cm_event.event = IW_CM_EVENT_DISCONNECT;
                        cm_event.status = disconn_status;
                        cm_event.local_addr = cm_id->local_addr;
-@@ -3103,7 +3103,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
+@@ -3134,7 +3134,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
                }
  
                if (issue_close) {
@@ -43805,7 +43861,7 @@ index 6f09a72..cf4399d 100644
                        nes_disconnect(nesqp, 1);
  
                        cm_id->provider_data = nesqp;
-@@ -3241,7 +3241,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
+@@ -3272,7 +3272,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
  
        nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n",
                nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
@@ -43814,7 +43870,7 @@ index 6f09a72..cf4399d 100644
  
        nes_debug(NES_DBG_CM, "netdev refcnt = %u.\n",
                        netdev_refcnt_read(nesvnic->netdev));
-@@ -3439,7 +3439,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
+@@ -3470,7 +3470,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
        struct nes_cm_core *cm_core;
        u8 *start_buff;
  
@@ -43823,7 +43879,7 @@ index 6f09a72..cf4399d 100644
        cm_node = (struct nes_cm_node *)cm_id->provider_data;
        loopback = cm_node->loopbackpartner;
        cm_core = cm_node->cm_core;
-@@ -3504,7 +3504,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
+@@ -3535,7 +3535,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
                  ntohs(raddr->sin_port), ntohl(laddr->sin_addr.s_addr),
                  ntohs(laddr->sin_port));
  
@@ -43832,7 +43888,7 @@ index 6f09a72..cf4399d 100644
        nesqp->active_conn = 1;
  
        /* cache the cm_id in the qp */
-@@ -3649,7 +3649,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
+@@ -3680,7 +3680,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
                        g_cm_core->api->stop_listener(g_cm_core, (void *)cm_node);
                        return err;
                }
@@ -43841,7 +43897,7 @@ index 6f09a72..cf4399d 100644
        }
  
        cm_id->add_ref(cm_id);
-@@ -3756,7 +3756,7 @@ static void cm_event_connected(struct nes_cm_event *event)
+@@ -3787,7 +3787,7 @@ static void cm_event_connected(struct nes_cm_event *event)
  
        if (nesqp->destroyed)
                return;
@@ -43850,7 +43906,7 @@ index 6f09a72..cf4399d 100644
        nes_debug(NES_DBG_CM, "QP%u attempting to connect to  0x%08X:0x%04X on"
                  " local port 0x%04X. jiffies = %lu.\n",
                  nesqp->hwqp.qp_id, ntohl(raddr->sin_addr.s_addr),
-@@ -3941,7 +3941,7 @@ static void cm_event_reset(struct nes_cm_event *event)
+@@ -3972,7 +3972,7 @@ static void cm_event_reset(struct nes_cm_event *event)
  
        cm_id->add_ref(cm_id);
        ret = cm_id->event_handler(cm_id, &cm_event);
@@ -43859,7 +43915,7 @@ index 6f09a72..cf4399d 100644
        cm_event.event = IW_CM_EVENT_CLOSE;
        cm_event.status = 0;
        cm_event.provider_data = cm_id->provider_data;
-@@ -3981,7 +3981,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
+@@ -4012,7 +4012,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
                return;
        cm_id = cm_node->cm_id;
  
@@ -43868,7 +43924,7 @@ index 6f09a72..cf4399d 100644
        nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
                  cm_node, cm_id, jiffies);
  
-@@ -4030,7 +4030,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
+@@ -4061,7 +4061,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
                return;
        cm_id = cm_node->cm_id;
  
@@ -44010,7 +44066,7 @@ index c0d0296..3185f57 100644
  
        /* Blow away the connection if it exists. */
 diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
-index ffd48bf..83cdb56 100644
+index 7df16f7..7e1b21e 100644
 --- a/drivers/infiniband/hw/qib/qib.h
 +++ b/drivers/infiniband/hw/qib/qib.h
 @@ -52,6 +52,7 @@
@@ -44090,10 +44146,10 @@ index 4a95b22..874c182 100644
  #include <linux/gameport.h>
  #include <linux/jiffies.h>
 diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
-index 3aa2f3f..53c00ea 100644
+index 61c7611..e1bfa38 100644
 --- a/drivers/input/joystick/xpad.c
 +++ b/drivers/input/joystick/xpad.c
-@@ -886,7 +886,7 @@ static void xpad_led_set(struct led_classdev *led_cdev,
+@@ -905,7 +905,7 @@ static void xpad_led_set(struct led_classdev *led_cdev,
  
  static int xpad_led_probe(struct usb_xpad *xpad)
  {
@@ -44102,7 +44158,7 @@ index 3aa2f3f..53c00ea 100644
        unsigned long led_no;
        struct xpad_led *led;
        struct led_classdev *led_cdev;
-@@ -899,7 +899,7 @@ static int xpad_led_probe(struct usb_xpad *xpad)
+@@ -918,7 +918,7 @@ static int xpad_led_probe(struct usb_xpad *xpad)
        if (!led)
                return -ENOMEM;
  
@@ -44134,10 +44190,10 @@ index ac1fa5f..5f7502c 100644
        /*
         * PCU-B devices, both GEN_1 and GEN_2 do not have OFN sensor
 diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
-index d02e1bd..d719719 100644
+index ad5a5a1..5eac214 100644
 --- a/drivers/input/mouse/psmouse.h
 +++ b/drivers/input/mouse/psmouse.h
-@@ -124,7 +124,7 @@ struct psmouse_attribute {
+@@ -125,7 +125,7 @@ struct psmouse_attribute {
        ssize_t (*set)(struct psmouse *psmouse, void *data,
                        const char *buf, size_t count);
        bool protect;
@@ -44217,10 +44273,10 @@ index 92e2243..8fd9092 100644
                .ident = "Shift",
                .matches = {
 diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
-index 48882c1..93e0987 100644
+index ca9f4ed..b860ff1 100644
 --- a/drivers/iommu/amd_iommu.c
 +++ b/drivers/iommu/amd_iommu.c
-@@ -823,11 +823,21 @@ static void copy_cmd_to_buffer(struct amd_iommu *iommu,
+@@ -829,11 +829,21 @@ static void copy_cmd_to_buffer(struct amd_iommu *iommu,
  
  static void build_completion_wait(struct iommu_cmd *cmd, u64 address)
  {
@@ -44245,10 +44301,10 @@ index 48882c1..93e0987 100644
        CMD_SET_TYPE(cmd, CMD_COMPL_WAIT);
  }
 diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
-index a3adde6..988ee96 100644
+index 65075ef..53823f9 100644
 --- a/drivers/iommu/arm-smmu.c
 +++ b/drivers/iommu/arm-smmu.c
-@@ -338,7 +338,7 @@ enum arm_smmu_domain_stage {
+@@ -331,7 +331,7 @@ enum arm_smmu_domain_stage {
  
  struct arm_smmu_domain {
        struct arm_smmu_device          *smmu;
@@ -44257,7 +44313,7 @@ index a3adde6..988ee96 100644
        spinlock_t                      pgtbl_lock;
        struct arm_smmu_cfg             cfg;
        enum arm_smmu_domain_stage      stage;
-@@ -833,7 +833,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
+@@ -817,7 +817,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
  {
        int irq, start, ret = 0;
        unsigned long ias, oas;
@@ -44265,8 +44321,8 @@ index a3adde6..988ee96 100644
 +      struct io_pgtable *pgtbl;
        struct io_pgtable_cfg pgtbl_cfg;
        enum io_pgtable_fmt fmt;
-       struct arm_smmu_domain *smmu_domain = domain->priv;
-@@ -918,14 +918,16 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
+       struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
+@@ -902,14 +902,16 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
        };
  
        smmu_domain->smmu = smmu;
@@ -44286,7 +44342,7 @@ index a3adde6..988ee96 100644
  
        /* Initialise the context bank with our page table cfg */
        arm_smmu_init_context_bank(smmu_domain, &pgtbl_cfg);
-@@ -946,7 +948,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
+@@ -930,7 +932,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
        mutex_unlock(&smmu_domain->init_mutex);
  
        /* Publish page table ops for map/unmap */
@@ -44295,7 +44351,7 @@ index a3adde6..988ee96 100644
        return 0;
  
  out_clear_smmu:
-@@ -979,8 +981,7 @@ static void arm_smmu_destroy_domain_context(struct iommu_domain *domain)
+@@ -963,8 +965,7 @@ static void arm_smmu_destroy_domain_context(struct iommu_domain *domain)
                free_irq(irq, domain);
        }
  
@@ -44305,10 +44361,10 @@ index a3adde6..988ee96 100644
  
        __arm_smmu_free_bitmap(smmu->context_map, cfg->cbndx);
  }
-@@ -1204,13 +1205,13 @@ static int arm_smmu_map(struct iommu_domain *domain, unsigned long iova,
+@@ -1190,13 +1191,13 @@ static int arm_smmu_map(struct iommu_domain *domain, unsigned long iova,
        int ret;
        unsigned long flags;
-       struct arm_smmu_domain *smmu_domain = domain->priv;
+       struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
 -      struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
 +      struct io_pgtable *iop = smmu_domain->pgtbl;
  
@@ -44322,10 +44378,10 @@ index a3adde6..988ee96 100644
        spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
        return ret;
  }
-@@ -1221,13 +1222,13 @@ static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
+@@ -1207,13 +1208,13 @@ static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
        size_t ret;
        unsigned long flags;
-       struct arm_smmu_domain *smmu_domain = domain->priv;
+       struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
 -      struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
 +      struct io_pgtable *iop = smmu_domain->pgtbl;
  
@@ -44339,8 +44395,8 @@ index a3adde6..988ee96 100644
        spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
        return ret;
  }
-@@ -1238,7 +1239,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
-       struct arm_smmu_domain *smmu_domain = domain->priv;
+@@ -1224,7 +1225,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
+       struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
        struct arm_smmu_device *smmu = smmu_domain->smmu;
        struct arm_smmu_cfg *cfg = &smmu_domain->cfg;
 -      struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
@@ -44348,7 +44404,7 @@ index a3adde6..988ee96 100644
        struct device *dev = smmu->dev;
        void __iomem *cb_base;
        u32 tmp;
-@@ -1261,7 +1262,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
+@@ -1247,7 +1248,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
                dev_err(dev,
                        "iova to phys timed out on 0x%pad. Falling back to software table walk.\n",
                        &iova);
@@ -44357,10 +44413,10 @@ index a3adde6..988ee96 100644
        }
  
        phys = readl_relaxed(cb_base + ARM_SMMU_CB_PAR_LO);
-@@ -1282,9 +1283,9 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
+@@ -1268,9 +1269,9 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
        phys_addr_t ret;
        unsigned long flags;
-       struct arm_smmu_domain *smmu_domain = domain->priv;
+       struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
 -      struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
 +      struct io_pgtable *iop = smmu_domain->pgtbl;
  
@@ -44369,7 +44425,7 @@ index a3adde6..988ee96 100644
                return 0;
  
        spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
-@@ -1292,7 +1293,7 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
+@@ -1278,7 +1279,7 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
                        smmu_domain->stage == ARM_SMMU_DOMAIN_S1) {
                ret = arm_smmu_iova_to_phys_hard(domain, iova);
        } else {
@@ -44378,7 +44434,7 @@ index a3adde6..988ee96 100644
        }
  
        spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
-@@ -1651,7 +1652,9 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
+@@ -1668,7 +1669,9 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
                        size |= SZ_64K | SZ_512M;
        }
  
@@ -44389,8 +44445,36 @@ index a3adde6..988ee96 100644
        dev_notice(smmu->dev, "\tSupported page sizes: 0x%08lx\n", size);
  
        if (smmu->features & ARM_SMMU_FEAT_TRANS_S1)
+diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
+index 5ecfaf2..c87c4b1 100644
+--- a/drivers/iommu/intel-iommu.c
++++ b/drivers/iommu/intel-iommu.c
+@@ -1756,8 +1756,9 @@ static int domain_init(struct dmar_domain *domain, int guest_width)
+ static void domain_exit(struct dmar_domain *domain)
+ {
++      struct dmar_drhd_unit *drhd;
++      struct intel_iommu *iommu;
+       struct page *freelist = NULL;
+-      int i;
+       /* Domain 0 is reserved, so dont process it */
+       if (!domain)
+@@ -1777,8 +1778,10 @@ static void domain_exit(struct dmar_domain *domain)
+       /* clear attached or cached domains */
+       rcu_read_lock();
+-      for_each_set_bit(i, domain->iommu_bmp, g_num_of_iommus)
+-              iommu_detach_domain(domain, g_iommus[i]);
++      for_each_active_iommu(iommu, drhd)
++              if (domain_type_is_vm(domain) ||
++                  test_bit(iommu->seq_id, domain->iommu_bmp))
++                      iommu_detach_domain(domain, iommu);
+       rcu_read_unlock();
+       dma_free_pagelist(freelist);
 diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
-index b610a8d..08eb879 100644
+index 4e46021..f0a24fef 100644
 --- a/drivers/iommu/io-pgtable-arm.c
 +++ b/drivers/iommu/io-pgtable-arm.c
 @@ -36,12 +36,6 @@
@@ -44406,7 +44490,7 @@ index b610a8d..08eb879 100644
  /*
   * For consistency with the architecture, we always consider
   * ARM_LPAE_MAX_LEVELS levels, with the walk starting at level n >=0
-@@ -302,10 +296,10 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
+@@ -304,10 +298,10 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
        return pte;
  }
  
@@ -44419,7 +44503,7 @@ index b610a8d..08eb879 100644
        arm_lpae_iopte *ptep = data->pgd;
        int lvl = ARM_LPAE_START_LVL(data);
        arm_lpae_iopte prot;
-@@ -445,12 +439,11 @@ static int __arm_lpae_unmap(struct arm_lpae_io_pgtable *data,
+@@ -447,12 +441,11 @@ static int __arm_lpae_unmap(struct arm_lpae_io_pgtable *data,
        return __arm_lpae_unmap(data, iova, size, lvl + 1, ptep);
  }
  
@@ -44434,7 +44518,7 @@ index b610a8d..08eb879 100644
        arm_lpae_iopte *ptep = data->pgd;
        int lvl = ARM_LPAE_START_LVL(data);
  
-@@ -461,10 +454,10 @@ static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
+@@ -463,10 +456,10 @@ static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
        return unmapped;
  }
  
@@ -44447,7 +44531,7 @@ index b610a8d..08eb879 100644
        arm_lpae_iopte pte, *ptep = data->pgd;
        int lvl = ARM_LPAE_START_LVL(data);
  
-@@ -531,6 +524,12 @@ static void arm_lpae_restrict_pgsizes(struct io_pgtable_cfg *cfg)
+@@ -533,6 +526,12 @@ static void arm_lpae_restrict_pgsizes(struct io_pgtable_cfg *cfg)
        }
  }
  
@@ -44460,7 +44544,7 @@ index b610a8d..08eb879 100644
  static struct arm_lpae_io_pgtable *
  arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
  {
-@@ -562,11 +561,7 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
+@@ -564,11 +563,7 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
        pgd_bits = va_bits - (data->bits_per_level * (data->levels - 1));
        data->pgd_size = 1UL << (pgd_bits + ilog2(sizeof(arm_lpae_iopte)));
  
@@ -44473,7 +44557,7 @@ index b610a8d..08eb879 100644
  
        return data;
  }
-@@ -825,9 +820,9 @@ static struct iommu_gather_ops dummy_tlb_ops __initdata = {
+@@ -830,9 +825,9 @@ static struct iommu_gather_ops dummy_tlb_ops __initdata = {
        .flush_pgtable  = dummy_flush_pgtable,
  };
  
@@ -44485,7 +44569,7 @@ index b610a8d..08eb879 100644
        struct io_pgtable_cfg *cfg = &data->iop.cfg;
  
        pr_err("cfg: pgsize_bitmap 0x%lx, ias %u-bit\n",
-@@ -837,9 +832,9 @@ static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
+@@ -842,9 +837,9 @@ static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
                data->bits_per_level, data->pgd);
  }
  
@@ -44497,7 +44581,7 @@ index b610a8d..08eb879 100644
                selftest_running = false;                               \
                -EFAULT;                                                \
  })
-@@ -854,30 +849,32 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
+@@ -859,30 +854,32 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
        int i, j;
        unsigned long iova;
        size_t size;
@@ -44539,7 +44623,7 @@ index b610a8d..08eb879 100644
  
                /*
                 * Distinct mappings of different granule sizes.
-@@ -887,19 +884,19 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
+@@ -892,19 +889,19 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
                while (j != BITS_PER_LONG) {
                        size = 1UL << j;
  
@@ -44565,7 +44649,7 @@ index b610a8d..08eb879 100644
  
                        iova += SZ_1G;
                        j++;
-@@ -908,15 +905,15 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
+@@ -913,15 +910,15 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
  
                /* Partial unmap */
                size = 1UL << __ffs(cfg->pgsize_bitmap);
@@ -44587,7 +44671,7 @@ index b610a8d..08eb879 100644
  
                /* Full unmap */
                iova = 0;
-@@ -924,25 +921,25 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
+@@ -929,25 +926,25 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
                while (j != BITS_PER_LONG) {
                        size = 1UL << j;
  
@@ -44719,7 +44803,7 @@ index 10e32f6..0b276c8 100644
  
  /**
 diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
-index 72e683d..c9db262 100644
+index d4f527e..8e4a4fd 100644
 --- a/drivers/iommu/iommu.c
 +++ b/drivers/iommu/iommu.c
 @@ -802,7 +802,7 @@ static int iommu_bus_notifier(struct notifier_block *nb,
@@ -44732,11 +44816,11 @@ index 72e683d..c9db262 100644
                .ops = ops,
        };
 diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
-index bc39bdf..e2de272 100644
+index 1a67c53..23181d8 100644
 --- a/drivers/iommu/ipmmu-vmsa.c
 +++ b/drivers/iommu/ipmmu-vmsa.c
 @@ -41,7 +41,7 @@ struct ipmmu_vmsa_domain {
-       struct iommu_domain *io_domain;
+       struct iommu_domain io_domain;
  
        struct io_pgtable_cfg cfg;
 -      struct io_pgtable_ops *iop;
@@ -44744,7 +44828,7 @@ index bc39bdf..e2de272 100644
  
        unsigned int context_id;
        spinlock_t lock;                        /* Protects mappings */
-@@ -323,8 +323,7 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
+@@ -328,8 +328,7 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
        domain->cfg.oas = 40;
        domain->cfg.tlb = &ipmmu_gather_ops;
  
@@ -44754,7 +44838,7 @@ index bc39bdf..e2de272 100644
        if (!domain->iop)
                return -EINVAL;
  
-@@ -482,7 +481,7 @@ static void ipmmu_domain_destroy(struct iommu_domain *io_domain)
+@@ -487,7 +486,7 @@ static void ipmmu_domain_free(struct iommu_domain *io_domain)
         * been detached.
         */
        ipmmu_domain_destroy_context(domain);
@@ -44763,7 +44847,7 @@ index bc39bdf..e2de272 100644
        kfree(domain);
  }
  
-@@ -551,7 +550,7 @@ static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova,
+@@ -556,7 +555,7 @@ static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova,
        if (!domain)
                return -ENODEV;
  
@@ -44772,16 +44856,16 @@ index bc39bdf..e2de272 100644
  }
  
  static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
-@@ -559,7 +558,7 @@ static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
+@@ -564,7 +563,7 @@ static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
  {
-       struct ipmmu_vmsa_domain *domain = io_domain->priv;
+       struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain);
  
 -      return domain->iop->unmap(domain->iop, iova, size);
 +      return domain->iop->ops->unmap(domain->iop, iova, size);
  }
  
  static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
-@@ -569,7 +568,7 @@ static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
+@@ -574,7 +573,7 @@ static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
  
        /* TODO: Is locking needed ? */
  
@@ -44821,19 +44905,10 @@ index 390079e..1da9d6c 100644
  
  bool setup_remapped_irq(int irq, struct irq_cfg *cfg, struct irq_chip *chip)
 diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
-index 471e1cd..b53b870 100644
+index 01999d7..4f14bb7 100644
 --- a/drivers/irqchip/irq-gic.c
 +++ b/drivers/irqchip/irq-gic.c
-@@ -84,7 +84,7 @@ static u8 gic_cpu_map[NR_GIC_CPU_IF] __read_mostly;
-  * Supported arch specific GIC irq extension.
-  * Default make them NULL.
-  */
--struct irq_chip gic_arch_extn = {
-+irq_chip_no_const gic_arch_extn = {
-       .irq_eoi        = NULL,
-       .irq_mask       = NULL,
-       .irq_unmask     = NULL,
-@@ -318,7 +318,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
+@@ -313,7 +313,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
        chained_irq_exit(chip, desc);
  }
  
@@ -44856,10 +44931,10 @@ index 9a0767b..5e5f86f 100644
        void (*disable_fn)(struct irq_data *d);
        const char *name = dev_name(dev);
 diff --git a/drivers/irqchip/irq-renesas-irqc.c b/drivers/irqchip/irq-renesas-irqc.c
-index 384e6ed..7a771b2 100644
+index cdf80b7..e5c3ade 100644
 --- a/drivers/irqchip/irq-renesas-irqc.c
 +++ b/drivers/irqchip/irq-renesas-irqc.c
-@@ -151,7 +151,7 @@ static int irqc_probe(struct platform_device *pdev)
+@@ -179,7 +179,7 @@ static int irqc_probe(struct platform_device *pdev)
        struct irqc_priv *p;
        struct resource *io;
        struct resource *irq;
@@ -45233,7 +45308,7 @@ index 358a574..b4987ea 100644
                } else
                        memcpy(msg, buf, count);
 diff --git a/drivers/isdn/mISDN/dsp_cmx.c b/drivers/isdn/mISDN/dsp_cmx.c
-index 87f7dff..7300125 100644
+index 52c4382..09e0c7c 100644
 --- a/drivers/isdn/mISDN/dsp_cmx.c
 +++ b/drivers/isdn/mISDN/dsp_cmx.c
 @@ -1625,7 +1625,7 @@ unsigned long    dsp_spl_jiffies; /* calculate the next time to fire */
@@ -45246,7 +45321,7 @@ index 87f7dff..7300125 100644
  {
        struct dsp_conf *conf;
 diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c
-index 7dc93aa..8272379 100644
+index 312ffd3..9263d05 100644
 --- a/drivers/lguest/core.c
 +++ b/drivers/lguest/core.c
 @@ -96,9 +96,17 @@ static __init int map_switcher(void)
@@ -45410,10 +45485,10 @@ index a08e3ee..df8ade2 100644
        cl->fn = fn;
        cl->wq = wq;
 diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
-index 3a57679..c58cdaf 100644
+index 135a090..f7872f6 100644
 --- a/drivers/md/bitmap.c
 +++ b/drivers/md/bitmap.c
-@@ -1786,7 +1786,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
+@@ -1927,7 +1927,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
                   chunk_kb ? "KB" : "B");
        if (bitmap->storage.file) {
                seq_printf(seq, ", file: ");
@@ -45423,10 +45498,10 @@ index 3a57679..c58cdaf 100644
  
        seq_printf(seq, "\n");
 diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
-index c8a18e4..0ab43e5 100644
+index 720ceeb..030f1d4 100644
 --- a/drivers/md/dm-ioctl.c
 +++ b/drivers/md/dm-ioctl.c
-@@ -1772,7 +1772,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
+@@ -1773,7 +1773,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
            cmd == DM_LIST_VERSIONS_CMD)
                return 0;
  
@@ -45578,10 +45653,10 @@ index f8b37d4..5c5cafd 100644
                                schedule_work(&sc->trigger_event);
                }
 diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
-index 6554d91..b0221c2 100644
+index 16ba55a..31af906 100644
 --- a/drivers/md/dm-table.c
 +++ b/drivers/md/dm-table.c
-@@ -303,7 +303,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
+@@ -305,7 +305,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
        if (!dev_size)
                return 0;
  
@@ -45613,10 +45688,10 @@ index 79f6941..b33b4e0 100644
        pmd->bl_info.value_type.inc = data_block_inc;
        pmd->bl_info.value_type.dec = data_block_dec;
 diff --git a/drivers/md/dm.c b/drivers/md/dm.c
-index 8001fe9..abdd0d0 100644
+index 2caf492..0c0dcac 100644
 --- a/drivers/md/dm.c
 +++ b/drivers/md/dm.c
-@@ -188,9 +188,9 @@ struct mapped_device {
+@@ -191,9 +191,9 @@ struct mapped_device {
        /*
         * Event handling.
         */
@@ -45628,7 +45703,7 @@ index 8001fe9..abdd0d0 100644
        struct list_head uevent_list;
        spinlock_t uevent_lock; /* Protect access to uevent_list */
  
-@@ -2163,8 +2163,8 @@ static struct mapped_device *alloc_dev(int minor)
+@@ -2298,8 +2298,8 @@ static struct mapped_device *alloc_dev(int minor)
        spin_lock_init(&md->deferred_lock);
        atomic_set(&md->holders, 1);
        atomic_set(&md->open_count, 0);
@@ -45639,7 +45714,7 @@ index 8001fe9..abdd0d0 100644
        INIT_LIST_HEAD(&md->uevent_list);
        INIT_LIST_HEAD(&md->table_devices);
        spin_lock_init(&md->uevent_lock);
-@@ -2329,7 +2329,7 @@ static void event_callback(void *context)
+@@ -2466,7 +2466,7 @@ static void event_callback(void *context)
  
        dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
  
@@ -45648,7 +45723,7 @@ index 8001fe9..abdd0d0 100644
        wake_up(&md->eventq);
  }
  
-@@ -3175,18 +3175,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
+@@ -3465,18 +3465,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
  
  uint32_t dm_next_uevent_seq(struct mapped_device *md)
  {
@@ -45671,10 +45746,10 @@ index 8001fe9..abdd0d0 100644
  
  void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
 diff --git a/drivers/md/md.c b/drivers/md/md.c
-index e47d1dd..ebc3480 100644
+index 4dbed4a..bed2a6a 100644
 --- a/drivers/md/md.c
 +++ b/drivers/md/md.c
-@@ -191,10 +191,10 @@ EXPORT_SYMBOL_GPL(bio_clone_mddev);
+@@ -197,10 +197,10 @@ EXPORT_SYMBOL_GPL(bio_clone_mddev);
   *  start build, activate spare
   */
  static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters);
@@ -45687,7 +45762,7 @@ index e47d1dd..ebc3480 100644
        wake_up(&md_event_waiters);
  }
  EXPORT_SYMBOL_GPL(md_new_event);
-@@ -204,7 +204,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
+@@ -210,7 +210,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
   */
  static void md_new_event_inintr(struct mddev *mddev)
  {
@@ -45696,7 +45771,7 @@ index e47d1dd..ebc3480 100644
        wake_up(&md_event_waiters);
  }
  
-@@ -1442,7 +1442,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
+@@ -1449,7 +1449,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
        if ((le32_to_cpu(sb->feature_map) & MD_FEATURE_RESHAPE_ACTIVE) &&
            (le32_to_cpu(sb->feature_map) & MD_FEATURE_NEW_OFFSET))
                rdev->new_data_offset += (s32)le32_to_cpu(sb->new_offset);
@@ -45705,7 +45780,7 @@ index e47d1dd..ebc3480 100644
  
        rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256;
        bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1;
-@@ -1693,7 +1693,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
+@@ -1700,7 +1700,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
        else
                sb->resync_offset = cpu_to_le64(0);
  
@@ -45714,7 +45789,7 @@ index e47d1dd..ebc3480 100644
  
        sb->raid_disks = cpu_to_le32(mddev->raid_disks);
        sb->size = cpu_to_le64(mddev->dev_sectors);
-@@ -2564,7 +2564,7 @@ __ATTR_PREALLOC(state, S_IRUGO|S_IWUSR, state_show, state_store);
+@@ -2624,7 +2624,7 @@ __ATTR_PREALLOC(state, S_IRUGO|S_IWUSR, state_show, state_store);
  static ssize_t
  errors_show(struct md_rdev *rdev, char *page)
  {
@@ -45723,7 +45798,7 @@ index e47d1dd..ebc3480 100644
  }
  
  static ssize_t
-@@ -2573,7 +2573,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
+@@ -2633,7 +2633,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
        char *e;
        unsigned long n = simple_strtoul(buf, &e, 10);
        if (*buf && (*e == 0 || *e == '\n')) {
@@ -45732,7 +45807,7 @@ index e47d1dd..ebc3480 100644
                return len;
        }
        return -EINVAL;
-@@ -3009,8 +3009,8 @@ int md_rdev_init(struct md_rdev *rdev)
+@@ -3069,8 +3069,8 @@ int md_rdev_init(struct md_rdev *rdev)
        rdev->sb_loaded = 0;
        rdev->bb_page = NULL;
        atomic_set(&rdev->nr_pending, 0);
@@ -45743,7 +45818,7 @@ index e47d1dd..ebc3480 100644
  
        INIT_LIST_HEAD(&rdev->same_set);
        init_waitqueue_head(&rdev->blocked_wait);
-@@ -7083,7 +7083,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
+@@ -7232,7 +7232,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
  
                spin_unlock(&pers_lock);
                seq_printf(seq, "\n");
@@ -45752,7 +45827,7 @@ index e47d1dd..ebc3480 100644
                return 0;
        }
        if (v == (void*)2) {
-@@ -7186,7 +7186,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
+@@ -7335,7 +7335,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
                return error;
  
        seq = file->private_data;
@@ -45761,7 +45836,7 @@ index e47d1dd..ebc3480 100644
        return error;
  }
  
-@@ -7203,7 +7203,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
+@@ -7352,7 +7352,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
        /* always allow read */
        mask = POLLIN | POLLRDNORM;
  
@@ -45770,7 +45845,7 @@ index e47d1dd..ebc3480 100644
                mask |= POLLERR | POLLPRI;
        return mask;
  }
-@@ -7250,7 +7250,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
+@@ -7448,7 +7448,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
                struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
                curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
                              (int)part_stat_read(&disk->part0, sectors[1]) -
@@ -45780,10 +45855,10 @@ index e47d1dd..ebc3480 100644
                 * as sync_io is counted when a request starts, and
                 * disk_stats is counted when it completes.
 diff --git a/drivers/md/md.h b/drivers/md/md.h
-index 318ca8f..31e4478 100644
+index 4046a6c..e2f2997 100644
 --- a/drivers/md/md.h
 +++ b/drivers/md/md.h
-@@ -94,13 +94,13 @@ struct md_rdev {
+@@ -95,13 +95,13 @@ struct md_rdev {
                                         * only maintained for arrays that
                                         * support hot removal
                                         */
@@ -45799,7 +45874,7 @@ index 318ca8f..31e4478 100644
                                           * for reporting to userspace and storing
                                           * in superblock.
                                           */
-@@ -476,7 +476,7 @@ extern void mddev_unlock(struct mddev *mddev);
+@@ -486,7 +486,7 @@ extern void mddev_unlock(struct mddev *mddev);
  
  static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
  {
@@ -45842,33 +45917,11 @@ index 3e6d115..ffecdeb 100644
  
  /*----------------------------------------------------------------*/
  
-diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
-index 3b5d7f7..903391c 100644
---- a/drivers/md/raid0.c
-+++ b/drivers/md/raid0.c
-@@ -517,6 +517,9 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio)
-                        ? (sector & (chunk_sects-1))
-                        : sector_div(sector, chunk_sects));
-+              /* Restore due to sector_div */
-+              sector = bio->bi_iter.bi_sector;
-+
-               if (sectors < bio_sectors(bio)) {
-                       split = bio_split(bio, sectors, GFP_NOIO, fs_bio_set);
-                       bio_chain(split, bio);
-@@ -524,7 +527,6 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio)
-                       split = bio;
-               }
--              sector = bio->bi_iter.bi_sector;
-               zone = find_zone(mddev->private, &sector);
-               tmp_dev = map_sector(mddev, zone, sector, &sector);
-               split->bi_bdev = tmp_dev->bdev;
 diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index d34e238..34f8d98 100644
+index 9157a29..0d462f0 100644
 --- a/drivers/md/raid1.c
 +++ b/drivers/md/raid1.c
-@@ -1922,7 +1922,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
+@@ -1934,7 +1934,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
                        if (r1_sync_page_io(rdev, sect, s,
                                            bio->bi_io_vec[idx].bv_page,
                                            READ) != 0)
@@ -45877,7 +45930,7 @@ index d34e238..34f8d98 100644
                }
                sectors -= s;
                sect += s;
-@@ -2155,7 +2155,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
+@@ -2167,7 +2167,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
                            !test_bit(Faulty, &rdev->flags)) {
                                if (r1_sync_page_io(rdev, sect, s,
                                                    conf->tmppage, READ)) {
@@ -45887,7 +45940,7 @@ index d34e238..34f8d98 100644
                                               "md/raid1:%s: read error corrected "
                                               "(%d sectors at %llu on %s)\n",
 diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
-index a7196c4..439f012 100644
+index f55c3f3..4cca8c8 100644
 --- a/drivers/md/raid10.c
 +++ b/drivers/md/raid10.c
 @@ -1934,7 +1934,7 @@ static void end_sync_read(struct bio *bio, int error)
@@ -45950,10 +46003,10 @@ index a7196c4..439f012 100644
  
                        rdev_dec_pending(rdev, mddev);
 diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index cd2f96b..3876e63 100644
+index b6793d2..92be2bc 100644
 --- a/drivers/md/raid5.c
 +++ b/drivers/md/raid5.c
-@@ -947,23 +947,23 @@ async_copy_data(int frombio, struct bio *bio, struct page **page,
+@@ -1108,23 +1108,23 @@ async_copy_data(int frombio, struct bio *bio, struct page **page,
        struct bio_vec bvl;
        struct bvec_iter iter;
        struct page *bio_page;
@@ -45983,7 +46036,7 @@ index cd2f96b..3876e63 100644
  
                if (page_offset < 0) {
                        b_offset = -page_offset;
-@@ -1727,6 +1727,10 @@ static int grow_one_stripe(struct r5conf *conf, int hash)
+@@ -2017,6 +2017,10 @@ static int grow_one_stripe(struct r5conf *conf, gfp_t gfp)
        return 1;
  }
  
@@ -45994,7 +46047,7 @@ index cd2f96b..3876e63 100644
  static int grow_stripes(struct r5conf *conf, int num)
  {
        struct kmem_cache *sc;
-@@ -1738,7 +1742,11 @@ static int grow_stripes(struct r5conf *conf, int num)
+@@ -2027,7 +2031,11 @@ static int grow_stripes(struct r5conf *conf, int num)
                        "raid%d-%s", conf->level, mdname(conf->mddev));
        else
                sprintf(conf->cache_name[0],
@@ -46006,7 +46059,7 @@ index cd2f96b..3876e63 100644
        sprintf(conf->cache_name[1], "%s-alt", conf->cache_name[0]);
  
        conf->active_name = 0;
-@@ -2014,21 +2022,21 @@ static void raid5_end_read_request(struct bio * bi, int error)
+@@ -2315,21 +2323,21 @@ static void raid5_end_read_request(struct bio * bi, int error)
                                mdname(conf->mddev), STRIPE_SECTORS,
                                (unsigned long long)s,
                                bdevname(rdev->bdev, b));
@@ -46032,7 +46085,7 @@ index cd2f96b..3876e63 100644
                if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
                        printk_ratelimited(
                                KERN_WARNING
-@@ -2056,7 +2064,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
+@@ -2357,7 +2365,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
                                mdname(conf->mddev),
                                (unsigned long long)s,
                                bdn);
@@ -46042,10 +46095,10 @@ index cd2f96b..3876e63 100644
                        printk(KERN_WARNING
                               "md/raid:%s: Too many read errors, failing device %s.\n",
 diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
-index 983db75..ef9248c 100644
+index 13bb57f..0ca21b2 100644
 --- a/drivers/media/dvb-core/dvbdev.c
 +++ b/drivers/media/dvb-core/dvbdev.c
-@@ -185,7 +185,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
+@@ -272,7 +272,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
                        const struct dvb_device *template, void *priv, int type)
  {
        struct dvb_device *dvbdev;
@@ -46067,7 +46120,7 @@ index 6ad22b6..6e90e2a 100644
  
  #endif /* AF9033_H */
 diff --git a/drivers/media/dvb-frontends/dib3000.h b/drivers/media/dvb-frontends/dib3000.h
-index 9b6c3bb..baeb5c7 100644
+index 6ae9899..07d8543 100644
 --- a/drivers/media/dvb-frontends/dib3000.h
 +++ b/drivers/media/dvb-frontends/dib3000.h
 @@ -39,7 +39,7 @@ struct dib_fe_xfer_ops
@@ -46077,10 +46130,10 @@ index 9b6c3bb..baeb5c7 100644
 -};
 +} __no_const;
  
- #if IS_ENABLED(CONFIG_DVB_DIB3000MB)
+ #if IS_REACHABLE(CONFIG_DVB_DIB3000MB)
  extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
 diff --git a/drivers/media/dvb-frontends/dib7000p.h b/drivers/media/dvb-frontends/dib7000p.h
-index 1fea0e9..321ce8f 100644
+index baa2789..c8de7fe 100644
 --- a/drivers/media/dvb-frontends/dib7000p.h
 +++ b/drivers/media/dvb-frontends/dib7000p.h
 @@ -64,7 +64,7 @@ struct dib7000p_ops {
@@ -46090,10 +46143,10 @@ index 1fea0e9..321ce8f 100644
 -};
 +} __no_const;
  
- #if IS_ENABLED(CONFIG_DVB_DIB7000P)
+ #if IS_REACHABLE(CONFIG_DVB_DIB7000P)
  void *dib7000p_attach(struct dib7000p_ops *ops);
 diff --git a/drivers/media/dvb-frontends/dib8000.h b/drivers/media/dvb-frontends/dib8000.h
-index 84cc103..5780c54 100644
+index 780c37b..50e2620 100644
 --- a/drivers/media/dvb-frontends/dib8000.h
 +++ b/drivers/media/dvb-frontends/dib8000.h
 @@ -61,7 +61,7 @@ struct dib8000_ops {
@@ -46103,10 +46156,10 @@ index 84cc103..5780c54 100644
 -};
 +} __no_const;
  
- #if IS_ENABLED(CONFIG_DVB_DIB8000)
+ #if IS_REACHABLE(CONFIG_DVB_DIB8000)
  void *dib8000_attach(struct dib8000_ops *ops);
 diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
-index 860c98fc..497fa25 100644
+index c9decd8..7849cec 100644
 --- a/drivers/media/pci/cx88/cx88-video.c
 +++ b/drivers/media/pci/cx88/cx88-video.c
 @@ -50,9 +50,9 @@ MODULE_VERSION(CX88_VERSION);
@@ -46123,7 +46176,7 @@ index 860c98fc..497fa25 100644
  module_param_array(video_nr, int, NULL, 0444);
  module_param_array(vbi_nr,   int, NULL, 0444);
 diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c
-index 802642d..5534900 100644
+index c2e60b4..5eeccc0 100644
 --- a/drivers/media/pci/ivtv/ivtv-driver.c
 +++ b/drivers/media/pci/ivtv/ivtv-driver.c
 @@ -83,7 +83,7 @@ static struct pci_device_id ivtv_pci_tbl[] = {
@@ -46201,7 +46254,7 @@ index c135165..dc69499 100644
  /* ------------------------------------------------------------------ */
  
 diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c
-index ba2d8f9..1566684 100644
+index 17b189a..b78aa6b 100644
 --- a/drivers/media/platform/omap/omap_vout.c
 +++ b/drivers/media/platform/omap/omap_vout.c
 @@ -63,7 +63,6 @@ enum omap_vout_channels {
@@ -46276,7 +46329,7 @@ index b713403..53cb5ad 100644
        if (done && done != layer->shadow_buf)
                vb2_buffer_done(&done->vb, VB2_BUF_STATE_DONE);
 diff --git a/drivers/media/platform/s5p-tv/mixer_video.c b/drivers/media/platform/s5p-tv/mixer_video.c
-index 72d4f2e..4b2ea0d 100644
+index 751f3b6..d829203 100644
 --- a/drivers/media/platform/s5p-tv/mixer_video.c
 +++ b/drivers/media/platform/s5p-tv/mixer_video.c
 @@ -210,7 +210,7 @@ static void mxr_layer_default_geo(struct mxr_layer *layer)
@@ -46978,19 +47031,6 @@ index 733a7ff..f8b52e3 100644
        return ret;
  }
  EXPORT_SYMBOL(usb_cypress_load_firmware);
-diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
-index 1a3df10..57997a5 100644
---- a/drivers/media/usb/dvb-usb/dw2102.c
-+++ b/drivers/media/usb/dvb-usb/dw2102.c
-@@ -118,7 +118,7 @@ struct su3000_state {
- struct s6x0_state {
-       int (*old_set_voltage)(struct dvb_frontend *f, fe_sec_voltage_t v);
--};
-+} __no_const;
- /* debug */
- static int dvb_usb_dw2102_debug;
 diff --git a/drivers/media/usb/dvb-usb/technisat-usb2.c b/drivers/media/usb/dvb-usb/technisat-usb2.c
 index 5801ae7..83f71fa 100644
 --- a/drivers/media/usb/dvb-usb/technisat-usb2.c
@@ -47256,10 +47296,10 @@ index af63543..0436f20 100644
  }
  
 diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
-index 015f92a..59e311e 100644
+index 5b0a30b..1974b38 100644
 --- a/drivers/media/v4l2-core/v4l2-device.c
 +++ b/drivers/media/v4l2-core/v4l2-device.c
-@@ -75,9 +75,9 @@ int v4l2_device_put(struct v4l2_device *v4l2_dev)
+@@ -74,9 +74,9 @@ int v4l2_device_put(struct v4l2_device *v4l2_dev)
  EXPORT_SYMBOL_GPL(v4l2_device_put);
  
  int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
@@ -47272,7 +47312,7 @@ index 015f92a..59e311e 100644
  
        if (basename[len - 1] >= '0' && basename[len - 1] <= '9')
 diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
-index b084072..36706d7 100644
+index aa407cb..ee847d4 100644
 --- a/drivers/media/v4l2-core/v4l2-ioctl.c
 +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
 @@ -2151,7 +2151,8 @@ struct v4l2_ioctl_info {
@@ -47331,10 +47371,10 @@ index b084072..36706d7 100644
                        err = -EFAULT;
                goto out_array_args;
 diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c
-index 24696f5..3637780 100644
+index c94ea0d..b8a9f88 100644
 --- a/drivers/memory/omap-gpmc.c
 +++ b/drivers/memory/omap-gpmc.c
-@@ -211,7 +211,6 @@ struct omap3_gpmc_regs {
+@@ -232,7 +232,6 @@ struct omap3_gpmc_regs {
  };
  
  static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ];
@@ -47342,7 +47382,7 @@ index 24696f5..3637780 100644
  static int gpmc_irq_start;
  
  static struct resource        gpmc_mem_root;
-@@ -939,6 +938,17 @@ static void gpmc_irq_noop(struct irq_data *data) { }
+@@ -1146,6 +1145,17 @@ static void gpmc_irq_noop(struct irq_data *data) { }
  
  static unsigned int gpmc_irq_noop_ret(struct irq_data *data) { return 0; }
  
@@ -47360,7 +47400,7 @@ index 24696f5..3637780 100644
  static int gpmc_setup_irq(void)
  {
        int i;
-@@ -953,15 +963,6 @@ static int gpmc_setup_irq(void)
+@@ -1160,15 +1170,6 @@ static int gpmc_setup_irq(void)
                return gpmc_irq_start;
        }
  
@@ -47459,7 +47499,7 @@ index 5bdaae1..eced16f 100644
  mptsas_get_port(struct mptsas_phyinfo *phy_info)
  {
 diff --git a/drivers/mfd/ab8500-debugfs.c b/drivers/mfd/ab8500-debugfs.c
-index 9a8e185..27ff17d 100644
+index cdd6f3d..1907a98 100644
 --- a/drivers/mfd/ab8500-debugfs.c
 +++ b/drivers/mfd/ab8500-debugfs.c
 @@ -100,7 +100,7 @@ static int irq_last;
@@ -47472,7 +47512,7 @@ index 9a8e185..27ff17d 100644
  
  static u8 avg_sample = SAMPLE_16;
 diff --git a/drivers/mfd/kempld-core.c b/drivers/mfd/kempld-core.c
-index 5615522..1eb6f3dc 100644
+index 8057849..0550fdf 100644
 --- a/drivers/mfd/kempld-core.c
 +++ b/drivers/mfd/kempld-core.c
 @@ -499,7 +499,7 @@ static struct platform_driver kempld_driver = {
@@ -47591,7 +47631,7 @@ index 36f5d52..32311c3 100644
        if (memcmp(before, after, BREAK_INSTR_SIZE)) {
                printk(KERN_CRIT "kgdbts: ERROR kgdb corrupted memory\n");
 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
-index 3ef4627..8d00486 100644
+index 4739689..8a52950 100644
 --- a/drivers/misc/lis3lv02d/lis3lv02d.c
 +++ b/drivers/misc/lis3lv02d/lis3lv02d.c
 @@ -497,7 +497,7 @@ static irqreturn_t lis302dl_interrupt(int irq, void *data)
@@ -47925,7 +47965,7 @@ index b94d5f7..7f494c5 100644
  extern int xpc_disengage_timedout;
  extern int xpc_activate_IRQ_rcvd;
 diff --git a/drivers/misc/sgi-xp/xpc_main.c b/drivers/misc/sgi-xp/xpc_main.c
-index 82dc574..8539ab2 100644
+index 7f32712..8539ab2 100644
 --- a/drivers/misc/sgi-xp/xpc_main.c
 +++ b/drivers/misc/sgi-xp/xpc_main.c
 @@ -166,7 +166,7 @@ static struct notifier_block xpc_die_notifier = {
@@ -47937,17 +47977,8 @@ index 82dc574..8539ab2 100644
  
  /*
   * Timer function to enforce the timelimit on the partition disengage.
-@@ -1210,7 +1210,7 @@ xpc_system_die(struct notifier_block *nb, unsigned long event, void *_die_args)
-               if (((die_args->trapnr == X86_TRAP_MF) ||
-                    (die_args->trapnr == X86_TRAP_XF)) &&
--                  !user_mode_vm(die_args->regs))
-+                  !user_mode(die_args->regs))
-                       xpc_die_deactivate();
-               break;
 diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
-index ed2e71a..54c498e 100644
+index 60f7141..ba97c1a 100644
 --- a/drivers/mmc/card/block.c
 +++ b/drivers/mmc/card/block.c
 @@ -577,7 +577,7 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
@@ -47960,21 +47991,21 @@ index ed2e71a..54c498e 100644
                goto cmd_rel_host;
        }
 diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
-index 18c4afe..43be71e 100644
+index f45ab91..9f50d8f 100644
 --- a/drivers/mmc/host/dw_mmc.h
 +++ b/drivers/mmc/host/dw_mmc.h
-@@ -271,5 +271,5 @@ struct dw_mci_drv_data {
-       void            (*set_ios)(struct dw_mci *host, struct mmc_ios *ios);
-       int             (*parse_dt)(struct dw_mci *host);
+@@ -287,5 +287,5 @@ struct dw_mci_drv_data {
        int             (*execute_tuning)(struct dw_mci_slot *slot);
+       int             (*prepare_hs400_tuning)(struct dw_mci *host,
+                                               struct mmc_ios *ios);
 -};
 +} __do_const;
  #endif /* _DW_MMC_H_ */
 diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
-index 7fe1619..ae0781b 100644
+index fb26674..3172c2b 100644
 --- a/drivers/mmc/host/mmci.c
 +++ b/drivers/mmc/host/mmci.c
-@@ -1630,7 +1630,9 @@ static int mmci_probe(struct amba_device *dev,
+@@ -1633,7 +1633,9 @@ static int mmci_probe(struct amba_device *dev,
        mmc->caps |= MMC_CAP_CMD23;
  
        if (variant->busy_detect) {
@@ -47986,10 +48017,10 @@ index 7fe1619..ae0781b 100644
                mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY;
                mmc->max_busy_timeout = 0;
 diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
-index f84cfb0..aebe5d6 100644
+index 9df2b68..6d5ed1a 100644
 --- a/drivers/mmc/host/omap_hsmmc.c
 +++ b/drivers/mmc/host/omap_hsmmc.c
-@@ -2054,7 +2054,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
+@@ -2004,7 +2004,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
  
        if (host->pdata->controller_flags & OMAP_HSMMC_BROKEN_MULTIBLOCK_READ) {
                dev_info(&pdev->dev, "multiblock reads disabled due to 35xx erratum 2.1.1.128; MMC read performance may suffer\n");
@@ -48001,10 +48032,10 @@ index f84cfb0..aebe5d6 100644
  
        pm_runtime_enable(host->dev);
 diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
-index 10ef824..88461a2 100644
+index 82f512d..5a228bb 100644
 --- a/drivers/mmc/host/sdhci-esdhc-imx.c
 +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
-@@ -989,9 +989,12 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
+@@ -993,9 +993,12 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
                host->mmc->caps |= MMC_CAP_1_8V_DDR;
        }
  
@@ -48039,7 +48070,7 @@ index c6d2dd7..81b1ca3 100644
  
        /* It supports additional host capabilities if needed */
 diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c
-index 423666b..81ff5eb 100644
+index 9a1a6ff..b8f1a57 100644
 --- a/drivers/mtd/chips/cfi_cmdset_0020.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0020.c
 @@ -666,7 +666,7 @@ cfi_staa_writev(struct mtd_info *mtd, const struct kvec *vecs,
@@ -48052,7 +48083,7 @@ index 423666b..81ff5eb 100644
        if (!ECCBUF_SIZE) {
                /* We should fall back to a general writev implementation.
 diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
-index f44c606..aa4e804 100644
+index 870c7fc..c7d6440 100644
 --- a/drivers/mtd/nand/denali.c
 +++ b/drivers/mtd/nand/denali.c
 @@ -24,6 +24,7 @@
@@ -48064,7 +48095,7 @@ index f44c606..aa4e804 100644
  #include "denali.h"
  
 diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
-index 33f3c3c..d6bbe6a 100644
+index 1b8f350..990f2e9 100644
 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
 +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
 @@ -386,7 +386,7 @@ void prepare_data_dma(struct gpmi_nand_data *this, enum dma_data_direction dr)
@@ -48128,7 +48159,7 @@ index b3b922a..80bba38 100644
        .priv_size      = sizeof(struct cfhsi),
        .setup          = cfhsi_setup,
 diff --git a/drivers/net/can/Kconfig b/drivers/net/can/Kconfig
-index 58808f65..0bdc7b3 100644
+index e8c96b8..516a96c 100644
 --- a/drivers/net/can/Kconfig
 +++ b/drivers/net/can/Kconfig
 @@ -98,7 +98,7 @@ config CAN_JANZ_ICAN3
@@ -48141,10 +48172,10 @@ index 58808f65..0bdc7b3 100644
          Say Y here if you want to support for Freescale FlexCAN.
  
 diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
-index b0f6924..59e9640 100644
+index e9b1810..5c2f3f9 100644
 --- a/drivers/net/can/dev.c
 +++ b/drivers/net/can/dev.c
-@@ -959,7 +959,7 @@ static int can_newlink(struct net *src_net, struct net_device *dev,
+@@ -964,7 +964,7 @@ static int can_newlink(struct net *src_net, struct net_device *dev,
        return -EOPNOTSUPP;
  }
  
@@ -48154,10 +48185,10 @@ index b0f6924..59e9640 100644
        .maxtype        = IFLA_CAN_MAX,
        .policy         = can_policy,
 diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c
-index 674f367..ec3a31f 100644
+index 0ce868d..e5dc8bd 100644
 --- a/drivers/net/can/vcan.c
 +++ b/drivers/net/can/vcan.c
-@@ -163,7 +163,7 @@ static void vcan_setup(struct net_device *dev)
+@@ -166,7 +166,7 @@ static void vcan_setup(struct net_device *dev)
        dev->destructor         = free_netdev;
  }
  
@@ -48197,10 +48228,10 @@ index 0443654..4f0aa18 100644
  
        if (!request_mem_region(mem->start, mem_size, pdev->name)) {
 diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c
-index 6725dc0..163549c 100644
+index da48e66..2dbec80 100644
 --- a/drivers/net/ethernet/altera/altera_tse_main.c
 +++ b/drivers/net/ethernet/altera/altera_tse_main.c
-@@ -1216,7 +1216,7 @@ static int tse_shutdown(struct net_device *dev)
+@@ -1256,7 +1256,7 @@ static int tse_shutdown(struct net_device *dev)
        return 0;
  }
  
@@ -48209,7 +48240,7 @@ index 6725dc0..163549c 100644
        .ndo_open               = tse_open,
        .ndo_stop               = tse_shutdown,
        .ndo_start_xmit         = tse_start_xmit,
-@@ -1453,11 +1453,13 @@ static int altera_tse_probe(struct platform_device *pdev)
+@@ -1493,11 +1493,13 @@ static int altera_tse_probe(struct platform_device *pdev)
        ndev->netdev_ops = &altera_tse_netdev_ops;
        altera_tse_set_ethtool_ops(ndev);
  
@@ -48224,10 +48255,10 @@ index 6725dc0..163549c 100644
        /* Scatter/gather IO is not supported,
         * so it is turned off
 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
-index 29a0927..5a348e24 100644
+index 34c28aa..5e06567 100644
 --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
-@@ -1122,14 +1122,14 @@ do {                                                                   \
+@@ -1124,14 +1124,14 @@ do {                                                                   \
   * operations, everything works on mask values.
   */
  #define XMDIO_READ(_pdata, _mmd, _reg)                                        \
@@ -48267,7 +48298,7 @@ index 8a50b01..39c1ad0 100644
        return 0;
  }
 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
-index d81fc6b..6f8ab25 100644
+index 5c92fb7..08be735 100644
 --- a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
 @@ -347,7 +347,7 @@ static int xgbe_map_rx_buffer(struct xgbe_prv_data *pdata,
@@ -48306,7 +48337,7 @@ index d81fc6b..6f8ab25 100644
 -
 -      DBGPR("<--xgbe_init_function_ptrs_desc\n");
 -}
-+const struct xgbe_desc_if default_xgbe_desc_if = {
++struct xgbe_desc_if default_xgbe_desc_if = {
 +      .alloc_ring_resources = xgbe_alloc_ring_resources,
 +      .free_ring_resources = xgbe_free_ring_resources,
 +      .map_tx_skb = xgbe_map_tx_skb,
@@ -48316,10 +48347,10 @@ index d81fc6b..6f8ab25 100644
 +      .wrapper_rx_desc_init = xgbe_wrapper_rx_descriptor_init,
 +};
 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
-index 400757b..d8c53f6 100644
+index 21d9497..c74b40f 100644
 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
-@@ -2748,7 +2748,7 @@ static void xgbe_powerdown_rx(struct xgbe_prv_data *pdata)
+@@ -2772,7 +2772,7 @@ static void xgbe_powerdown_rx(struct xgbe_prv_data *pdata)
  
  static int xgbe_init(struct xgbe_prv_data *pdata)
  {
@@ -48328,7 +48359,7 @@ index 400757b..d8c53f6 100644
        int ret;
  
        DBGPR("-->xgbe_init\n");
-@@ -2813,108 +2813,103 @@ static int xgbe_init(struct xgbe_prv_data *pdata)
+@@ -2838,106 +2838,101 @@ static int xgbe_init(struct xgbe_prv_data *pdata)
        return 0;
  }
  
@@ -48338,10 +48369,8 @@ index 400757b..d8c53f6 100644
 -
 -      hw_if->tx_complete = xgbe_tx_complete;
 -
--      hw_if->set_promiscuous_mode = xgbe_set_promiscuous_mode;
--      hw_if->set_all_multicast_mode = xgbe_set_all_multicast_mode;
--      hw_if->add_mac_addresses = xgbe_add_mac_addresses;
 -      hw_if->set_mac_address = xgbe_set_mac_address;
+-      hw_if->config_rx_mode = xgbe_config_rx_mode;
 -
 -      hw_if->enable_rx_csum = xgbe_enable_rx_csum;
 -      hw_if->disable_rx_csum = xgbe_disable_rx_csum;
@@ -48375,13 +48404,11 @@ index 400757b..d8c53f6 100644
 -      hw_if->disable_int = xgbe_disable_int;
 -      hw_if->init = xgbe_init;
 -      hw_if->exit = xgbe_exit;
-+const struct xgbe_hw_if default_xgbe_hw_if = {
++struct xgbe_hw_if default_xgbe_hw_if = {
 +      .tx_complete = xgbe_tx_complete,
 +
-+      .set_promiscuous_mode = xgbe_set_promiscuous_mode,
-+      .set_all_multicast_mode = xgbe_set_all_multicast_mode,
-+      .add_mac_addresses = xgbe_add_mac_addresses,
 +      .set_mac_address = xgbe_set_mac_address,
++      .config_rx_mode = xgbe_config_rx_mode,
 +
 +      .enable_rx_csum = xgbe_enable_rx_csum,
 +      .disable_rx_csum = xgbe_disable_rx_csum,
@@ -48516,10 +48543,10 @@ index 400757b..d8c53f6 100644
 +      .set_rss_lookup_table = xgbe_set_rss_lookup_table,
 +};
 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
-index 885b02b..4b31a4c 100644
+index 9fd6c69..588ff02 100644
 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
-@@ -244,7 +244,7 @@ static int xgbe_maybe_stop_tx_queue(struct xgbe_channel *channel,
+@@ -243,7 +243,7 @@ static int xgbe_maybe_stop_tx_queue(struct xgbe_channel *channel,
                 * support, tell it now
                 */
                if (ring->tx.xmit_more)
@@ -48528,7 +48555,7 @@ index 885b02b..4b31a4c 100644
  
                return NETDEV_TX_BUSY;
        }
-@@ -272,7 +272,7 @@ static int xgbe_calc_rx_buf_size(struct net_device *netdev, unsigned int mtu)
+@@ -271,7 +271,7 @@ static int xgbe_calc_rx_buf_size(struct net_device *netdev, unsigned int mtu)
  
  static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
  {
@@ -48537,7 +48564,7 @@ index 885b02b..4b31a4c 100644
        struct xgbe_channel *channel;
        enum xgbe_int int_id;
        unsigned int i;
-@@ -294,7 +294,7 @@ static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
+@@ -293,7 +293,7 @@ static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
  
  static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
  {
@@ -48546,7 +48573,7 @@ index 885b02b..4b31a4c 100644
        struct xgbe_channel *channel;
        enum xgbe_int int_id;
        unsigned int i;
-@@ -317,7 +317,7 @@ static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
+@@ -316,7 +316,7 @@ static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
  static irqreturn_t xgbe_isr(int irq, void *data)
  {
        struct xgbe_prv_data *pdata = data;
@@ -48555,7 +48582,7 @@ index 885b02b..4b31a4c 100644
        struct xgbe_channel *channel;
        unsigned int dma_isr, dma_ch_isr;
        unsigned int mac_isr, mac_tssr;
-@@ -673,7 +673,7 @@ static void xgbe_free_irqs(struct xgbe_prv_data *pdata)
+@@ -682,7 +682,7 @@ static void xgbe_free_irqs(struct xgbe_prv_data *pdata)
  
  void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
  {
@@ -48564,7 +48591,7 @@ index 885b02b..4b31a4c 100644
  
        DBGPR("-->xgbe_init_tx_coalesce\n");
  
-@@ -687,7 +687,7 @@ void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
+@@ -696,7 +696,7 @@ void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
  
  void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
  {
@@ -48573,7 +48600,7 @@ index 885b02b..4b31a4c 100644
  
        DBGPR("-->xgbe_init_rx_coalesce\n");
  
-@@ -701,7 +701,7 @@ void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
+@@ -711,7 +711,7 @@ void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
  
  static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
  {
@@ -48582,7 +48609,7 @@ index 885b02b..4b31a4c 100644
        struct xgbe_channel *channel;
        struct xgbe_ring *ring;
        struct xgbe_ring_data *rdata;
-@@ -726,7 +726,7 @@ static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
+@@ -736,7 +736,7 @@ static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
  
  static void xgbe_free_rx_data(struct xgbe_prv_data *pdata)
  {
@@ -48591,7 +48618,7 @@ index 885b02b..4b31a4c 100644
        struct xgbe_channel *channel;
        struct xgbe_ring *ring;
        struct xgbe_ring_data *rdata;
-@@ -752,7 +752,7 @@ static void xgbe_free_rx_data(struct xgbe_prv_data *pdata)
+@@ -762,7 +762,7 @@ static void xgbe_free_rx_data(struct xgbe_prv_data *pdata)
  static void xgbe_adjust_link(struct net_device *netdev)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48600,7 +48627,7 @@ index 885b02b..4b31a4c 100644
        struct phy_device *phydev = pdata->phydev;
        int new_state = 0;
  
-@@ -860,7 +860,7 @@ static void xgbe_phy_exit(struct xgbe_prv_data *pdata)
+@@ -870,7 +870,7 @@ static void xgbe_phy_exit(struct xgbe_prv_data *pdata)
  int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48609,7 +48636,7 @@ index 885b02b..4b31a4c 100644
        unsigned long flags;
  
        DBGPR("-->xgbe_powerdown\n");
-@@ -898,7 +898,7 @@ int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
+@@ -908,7 +908,7 @@ int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
  int xgbe_powerup(struct net_device *netdev, unsigned int caller)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48618,7 +48645,7 @@ index 885b02b..4b31a4c 100644
        unsigned long flags;
  
        DBGPR("-->xgbe_powerup\n");
-@@ -935,7 +935,7 @@ int xgbe_powerup(struct net_device *netdev, unsigned int caller)
+@@ -945,7 +945,7 @@ int xgbe_powerup(struct net_device *netdev, unsigned int caller)
  
  static int xgbe_start(struct xgbe_prv_data *pdata)
  {
@@ -48627,7 +48654,7 @@ index 885b02b..4b31a4c 100644
        struct net_device *netdev = pdata->netdev;
        int ret;
  
-@@ -976,7 +976,7 @@ err_napi:
+@@ -984,7 +984,7 @@ err_napi:
  
  static void xgbe_stop(struct xgbe_prv_data *pdata)
  {
@@ -48636,7 +48663,7 @@ index 885b02b..4b31a4c 100644
        struct xgbe_channel *channel;
        struct net_device *netdev = pdata->netdev;
        struct netdev_queue *txq;
-@@ -1203,7 +1203,7 @@ static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata,
+@@ -1211,7 +1211,7 @@ static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata,
                return -ERANGE;
        }
  
@@ -48645,7 +48672,7 @@ index 885b02b..4b31a4c 100644
  
        memcpy(&pdata->tstamp_config, &config, sizeof(config));
  
-@@ -1352,7 +1352,7 @@ static void xgbe_packet_info(struct xgbe_prv_data *pdata,
+@@ -1360,7 +1360,7 @@ static void xgbe_packet_info(struct xgbe_prv_data *pdata,
  static int xgbe_open(struct net_device *netdev)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48654,7 +48681,7 @@ index 885b02b..4b31a4c 100644
        int ret;
  
        DBGPR("-->xgbe_open\n");
-@@ -1424,7 +1424,7 @@ err_phy_init:
+@@ -1432,7 +1432,7 @@ err_phy_init:
  static int xgbe_close(struct net_device *netdev)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48663,7 +48690,7 @@ index 885b02b..4b31a4c 100644
  
        DBGPR("-->xgbe_close\n");
  
-@@ -1452,8 +1452,8 @@ static int xgbe_close(struct net_device *netdev)
+@@ -1460,8 +1460,8 @@ static int xgbe_close(struct net_device *netdev)
  static int xgbe_xmit(struct sk_buff *skb, struct net_device *netdev)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48674,16 +48701,16 @@ index 885b02b..4b31a4c 100644
        struct xgbe_channel *channel;
        struct xgbe_ring *ring;
        struct xgbe_packet_data *packet;
-@@ -1521,7 +1521,7 @@ tx_netdev_return:
+@@ -1529,7 +1529,7 @@ tx_netdev_return:
  static void xgbe_set_rx_mode(struct net_device *netdev)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
 -      struct xgbe_hw_if *hw_if = &pdata->hw_if;
 +      struct xgbe_hw_if *hw_if = pdata->hw_if;
-       unsigned int pr_mode, am_mode;
  
        DBGPR("-->xgbe_set_rx_mode\n");
-@@ -1540,7 +1540,7 @@ static void xgbe_set_rx_mode(struct net_device *netdev)
+@@ -1541,7 +1541,7 @@ static void xgbe_set_rx_mode(struct net_device *netdev)
  static int xgbe_set_mac_address(struct net_device *netdev, void *addr)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48692,7 +48719,7 @@ index 885b02b..4b31a4c 100644
        struct sockaddr *saddr = addr;
  
        DBGPR("-->xgbe_set_mac_address\n");
-@@ -1607,7 +1607,7 @@ static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev,
+@@ -1616,7 +1616,7 @@ static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev,
  
        DBGPR("-->%s\n", __func__);
  
@@ -48701,7 +48728,7 @@ index 885b02b..4b31a4c 100644
  
        s->rx_packets = pstats->rxframecount_gb;
        s->rx_bytes = pstats->rxoctetcount_gb;
-@@ -1634,7 +1634,7 @@ static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto,
+@@ -1643,7 +1643,7 @@ static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto,
                                u16 vid)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48710,7 +48737,7 @@ index 885b02b..4b31a4c 100644
  
        DBGPR("-->%s\n", __func__);
  
-@@ -1650,7 +1650,7 @@ static int xgbe_vlan_rx_kill_vid(struct net_device *netdev, __be16 proto,
+@@ -1659,7 +1659,7 @@ static int xgbe_vlan_rx_kill_vid(struct net_device *netdev, __be16 proto,
                                 u16 vid)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48719,7 +48746,7 @@ index 885b02b..4b31a4c 100644
  
        DBGPR("-->%s\n", __func__);
  
-@@ -1716,7 +1716,7 @@ static int xgbe_set_features(struct net_device *netdev,
+@@ -1725,7 +1725,7 @@ static int xgbe_set_features(struct net_device *netdev,
                             netdev_features_t features)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48728,7 +48755,7 @@ index 885b02b..4b31a4c 100644
        netdev_features_t rxhash, rxcsum, rxvlan, rxvlan_filter;
        int ret = 0;
  
-@@ -1781,8 +1781,8 @@ struct net_device_ops *xgbe_get_netdev_ops(void)
+@@ -1791,8 +1791,8 @@ struct net_device_ops *xgbe_get_netdev_ops(void)
  static void xgbe_rx_refresh(struct xgbe_channel *channel)
  {
        struct xgbe_prv_data *pdata = channel->pdata;
@@ -48739,7 +48766,7 @@ index 885b02b..4b31a4c 100644
        struct xgbe_ring *ring = channel->rx_ring;
        struct xgbe_ring_data *rdata;
  
-@@ -1835,8 +1835,8 @@ static struct sk_buff *xgbe_create_skb(struct xgbe_prv_data *pdata,
+@@ -1847,8 +1847,8 @@ static struct sk_buff *xgbe_create_skb(struct napi_struct *napi,
  static int xgbe_tx_poll(struct xgbe_channel *channel)
  {
        struct xgbe_prv_data *pdata = channel->pdata;
@@ -48750,7 +48777,7 @@ index 885b02b..4b31a4c 100644
        struct xgbe_ring *ring = channel->tx_ring;
        struct xgbe_ring_data *rdata;
        struct xgbe_ring_desc *rdesc;
-@@ -1901,7 +1901,7 @@ static int xgbe_tx_poll(struct xgbe_channel *channel)
+@@ -1913,7 +1913,7 @@ static int xgbe_tx_poll(struct xgbe_channel *channel)
  static int xgbe_rx_poll(struct xgbe_channel *channel, int budget)
  {
        struct xgbe_prv_data *pdata = channel->pdata;
@@ -48760,7 +48787,7 @@ index 885b02b..4b31a4c 100644
        struct xgbe_ring_data *rdata;
        struct xgbe_packet_data *packet;
 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
-index ebf4893..a8f51c6 100644
+index 5f149e8..6736bf4 100644
 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
 @@ -203,7 +203,7 @@ static void xgbe_get_ethtool_stats(struct net_device *netdev,
@@ -48772,25 +48799,16 @@ index ebf4893..a8f51c6 100644
        for (i = 0; i < XGBE_STATS_COUNT; i++) {
                stat = (u8 *)pdata + xgbe_gstring_stats[i].stat_offset;
                *data++ = *(u64 *)stat;
-@@ -378,7 +378,7 @@ static int xgbe_get_coalesce(struct net_device *netdev,
-                            struct ethtool_coalesce *ec)
- {
-       struct xgbe_prv_data *pdata = netdev_priv(netdev);
--      struct xgbe_hw_if *hw_if = &pdata->hw_if;
-+      struct xgbe_hw_if *hw_if = pdata->hw_if;
-       unsigned int riwt;
-       DBGPR("-->xgbe_get_coalesce\n");
-@@ -401,7 +401,7 @@ static int xgbe_set_coalesce(struct net_device *netdev,
+@@ -396,7 +396,7 @@ static int xgbe_set_coalesce(struct net_device *netdev,
                             struct ethtool_coalesce *ec)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
 -      struct xgbe_hw_if *hw_if = &pdata->hw_if;
 +      struct xgbe_hw_if *hw_if = pdata->hw_if;
        unsigned int rx_frames, rx_riwt, rx_usecs;
-       unsigned int tx_frames, tx_usecs;
+       unsigned int tx_frames;
  
-@@ -536,7 +536,7 @@ static int xgbe_set_rxfh(struct net_device *netdev, const u32 *indir,
+@@ -521,7 +521,7 @@ static int xgbe_set_rxfh(struct net_device *netdev, const u32 *indir,
                         const u8 *key, const u8 hfunc)
  {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
@@ -48800,7 +48818,7 @@ index ebf4893..a8f51c6 100644
  
        if (hfunc != ETH_RSS_HASH_NO_CHANGE && hfunc != ETH_RSS_HASH_TOP)
 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-main.c b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
-index 32dd651..225cca3 100644
+index 7149053..889c5492 100644
 --- a/drivers/net/ethernet/amd/xgbe/xgbe-main.c
 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
 @@ -159,12 +159,6 @@ static void xgbe_default_config(struct xgbe_prv_data *pdata)
@@ -48816,7 +48834,7 @@ index 32dd651..225cca3 100644
  #ifdef CONFIG_ACPI
  static int xgbe_acpi_support(struct xgbe_prv_data *pdata)
  {
-@@ -396,9 +390,8 @@ static int xgbe_probe(struct platform_device *pdev)
+@@ -387,9 +381,8 @@ static int xgbe_probe(struct platform_device *pdev)
        memcpy(netdev->dev_addr, pdata->mac_addr, netdev->addr_len);
  
        /* Set all the function pointers */
@@ -48851,7 +48869,7 @@ index 59e267f..0842a88 100644
  
        DBGPR_MDIO("-->xgbe_mdio_write: prtad=%#x mmd_reg=%#x mmd_data=%#x\n",
 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
-index f326178..8bd7daf 100644
+index b03e4f5..78e4cc4 100644
 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
 @@ -129,7 +129,7 @@ static cycle_t xgbe_cc_read(const struct cyclecounter *cc)
@@ -48873,10 +48891,10 @@ index f326178..8bd7daf 100644
        spin_unlock_irqrestore(&pdata->tstamp_lock, flags);
  
 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h
-index 13e8f95..1d8beef 100644
+index e62dfa2..7df28d5 100644
 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h
 +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h
-@@ -675,8 +675,8 @@ struct xgbe_prv_data {
+@@ -673,8 +673,8 @@ struct xgbe_prv_data {
        int dev_irq;
        unsigned int per_channel_irq;
  
@@ -48887,18 +48905,31 @@ index 13e8f95..1d8beef 100644
  
        /* AXI DMA settings */
        unsigned int coherent;
-@@ -798,6 +798,9 @@ struct xgbe_prv_data {
+@@ -797,6 +797,9 @@ struct xgbe_prv_data {
  #endif
  };
  
-+extern const struct xgbe_hw_if default_xgbe_hw_if;
-+extern const struct xgbe_desc_if default_xgbe_desc_if;
++extern struct xgbe_hw_if default_xgbe_hw_if;
++extern struct xgbe_desc_if default_xgbe_desc_if;
 +
  /* Function prototypes*/
  
  void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *);
+diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
+index 783543a..a472348 100644
+--- a/drivers/net/ethernet/broadcom/bcmsysport.c
++++ b/drivers/net/ethernet/broadcom/bcmsysport.c
+@@ -1721,7 +1721,7 @@ static int bcm_sysport_probe(struct platform_device *pdev)
+       macaddr = of_get_mac_address(dn);
+       if (!macaddr || !is_valid_ether_addr(macaddr)) {
+               dev_warn(&pdev->dev, "using random Ethernet MAC\n");
+-              random_ether_addr(dev->dev_addr);
++              eth_hw_addr_random(dev);
+       } else {
+               ether_addr_copy(dev->dev_addr, macaddr);
+       }
 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
-index adcacda..fa6e0ae 100644
+index d7a7175..7011194 100644
 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
 @@ -1065,7 +1065,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
@@ -48962,10 +48993,10 @@ index 31c9f82..e65e986 100644
  #define  CHIPREV_ID_5752_A0_HW                 0x5000
  #define  CHIPREV_ID_5752_A0            0x6000
 diff --git a/drivers/net/ethernet/brocade/bna/bna_enet.c b/drivers/net/ethernet/brocade/bna/bna_enet.c
-index 903466e..b285864 100644
+index deb8da6..45d473b 100644
 --- a/drivers/net/ethernet/brocade/bna/bna_enet.c
 +++ b/drivers/net/ethernet/brocade/bna/bna_enet.c
-@@ -1693,10 +1693,10 @@ bna_cb_ioceth_reset(void *arg)
+@@ -1694,10 +1694,10 @@ bna_cb_ioceth_reset(void *arg)
  }
  
  static struct bfa_ioc_cbfn bna_ioceth_cbfn = {
@@ -48993,19 +49024,6 @@ index 8cffcdf..aadf043 100644
  
  #define L2T_SKB_CB(skb) ((struct l2t_skb_cb *)(skb)->cb)
  
-diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
-index d929951..a2c23f5 100644
---- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
-+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
-@@ -2215,7 +2215,7 @@ static void get_regs(struct net_device *dev, struct ethtool_regs *regs,
-       int i;
-       struct adapter *ap = netdev2adap(dev);
--      static const unsigned int *reg_ranges;
-+      const unsigned int *reg_ranges;
-       int arr_size = 0, buf_size = 0;
-       if (is_t4(ap->params.chip)) {
 diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c
 index badff18..e15c4ec 100644
 --- a/drivers/net/ethernet/dec/tulip/de4x5.c
@@ -49029,10 +49047,10 @@ index badff18..e15c4ec 100644
        break;
      }
 diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
-index e6b790f..051ba2d 100644
+index e43cc8a..f1cf67c 100644
 --- a/drivers/net/ethernet/emulex/benet/be_main.c
 +++ b/drivers/net/ethernet/emulex/benet/be_main.c
-@@ -536,7 +536,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
+@@ -539,7 +539,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
  
        if (wrapped)
                newacc += 65536;
@@ -49068,7 +49086,7 @@ index dce5f7b..2433466 100644
  #include "ftmac100.h"
  
 diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
-index fabcfa1..188fd22 100644
+index a92b772..250fe69 100644
 --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c
 +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
 @@ -419,7 +419,7 @@ void i40e_ptp_set_increment(struct i40e_pf *pf)
@@ -49081,10 +49099,10 @@ index fabcfa1..188fd22 100644
  }
  
 diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
-index 79c00f5..8da39f6 100644
+index e5ba040..d47531c 100644
 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
 +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
-@@ -785,7 +785,7 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
+@@ -782,7 +782,7 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
        }
  
        /* update the base incval used to calculate frequency adjustment */
@@ -49093,11 +49111,79 @@ index 79c00f5..8da39f6 100644
        smp_mb();
  
        /* need lock to prevent incorrect read while modifying cyclecounter */
+diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
+index 74d0389..086ac03 100644
+--- a/drivers/net/ethernet/marvell/mvneta.c
++++ b/drivers/net/ethernet/marvell/mvneta.c
+@@ -1462,7 +1462,7 @@ static int mvneta_rx(struct mvneta_port *pp, int rx_todo,
+                    struct mvneta_rx_queue *rxq)
+ {
+       struct net_device *dev = pp->dev;
+-      int rx_done, rx_filled;
++      int rx_done;
+       u32 rcvd_pkts = 0;
+       u32 rcvd_bytes = 0;
+@@ -1473,7 +1473,6 @@ static int mvneta_rx(struct mvneta_port *pp, int rx_todo,
+               rx_todo = rx_done;
+       rx_done = 0;
+-      rx_filled = 0;
+       /* Fairness NAPI loop */
+       while (rx_done < rx_todo) {
+@@ -1484,7 +1483,6 @@ static int mvneta_rx(struct mvneta_port *pp, int rx_todo,
+               int rx_bytes, err;
+               rx_done++;
+-              rx_filled++;
+               rx_status = rx_desc->status;
+               rx_bytes = rx_desc->data_size - (ETH_FCS_LEN + MVNETA_MH_SIZE);
+               data = (unsigned char *)rx_desc->buf_cookie;
+@@ -1524,6 +1522,14 @@ static int mvneta_rx(struct mvneta_port *pp, int rx_todo,
+                       continue;
+               }
++              /* Refill processing */
++              err = mvneta_rx_refill(pp, rx_desc);
++              if (err) {
++                      netdev_err(dev, "Linux processing - Can't refill\n");
++                      rxq->missed++;
++                      goto err_drop_frame;
++              }
++
+               skb = build_skb(data, pp->frag_size > PAGE_SIZE ? 0 : pp->frag_size);
+               if (!skb)
+                       goto err_drop_frame;
+@@ -1543,14 +1549,6 @@ static int mvneta_rx(struct mvneta_port *pp, int rx_todo,
+               mvneta_rx_csum(pp, rx_status, skb);
+               napi_gro_receive(&pp->napi, skb);
+-
+-              /* Refill processing */
+-              err = mvneta_rx_refill(pp, rx_desc);
+-              if (err) {
+-                      netdev_err(dev, "Linux processing - Can't refill\n");
+-                      rxq->missed++;
+-                      rx_filled--;
+-              }
+       }
+       if (rcvd_pkts) {
+@@ -1563,7 +1561,7 @@ static int mvneta_rx(struct mvneta_port *pp, int rx_todo,
+       }
+       /* Update rxq management counters */
+-      mvneta_rxq_desc_num_update(pp, rxq, rx_done, rx_filled);
++      mvneta_rxq_desc_num_update(pp, rxq, rx_done, rx_done);
+       return rx_done;
+ }
 diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
-index 8c234ec..757331f 100644
+index c10d98f..72914c6 100644
 --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
 +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
-@@ -468,8 +468,8 @@ static bool mlx4_en_process_tx_cq(struct net_device *dev,
+@@ -475,8 +475,8 @@ static bool mlx4_en_process_tx_cq(struct net_device *dev,
        wmb();
  
        /* we want to dirty this cache line once */
@@ -49134,7 +49220,7 @@ index 6223930..975033d 100644
                __vxge_hw_mempool_create(vpath->hldev,
                        fifo->config->memblock_size,
 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
-index 2bb48d5..d1a865d 100644
+index 33669c2..a29c75e 100644
 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
 @@ -2324,7 +2324,9 @@ int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
@@ -49193,7 +49279,7 @@ index 332bb8a..e6adcd1 100644
        u32 entry_offset, dump, no_entries, buf_offset = 0;
        int i, k, ops_cnt, ops_index, dump_size = 0;
 diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index c70ab40..00b28e0 100644
+index 3df51fa..e9b517f 100644
 --- a/drivers/net/ethernet/realtek/r8169.c
 +++ b/drivers/net/ethernet/realtek/r8169.c
 @@ -788,22 +788,22 @@ struct rtl8169_private {
@@ -49224,7 +49310,7 @@ index c70ab40..00b28e0 100644
        int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
        int (*get_settings)(struct net_device *, struct ethtool_cmd *);
 diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c
-index 6b861e3..204ac86 100644
+index a2e9aee..af41a0e 100644
 --- a/drivers/net/ethernet/sfc/ptp.c
 +++ b/drivers/net/ethernet/sfc/ptp.c
 @@ -822,7 +822,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings)
@@ -49236,19 +49322,6 @@ index 6b861e3..204ac86 100644
        rc = efx_mcdi_rpc_start(efx, MC_CMD_PTP, synch_buf,
                                MC_CMD_PTP_IN_SYNCHRONIZE_LEN);
        EFX_BUG_ON_PARANOID(rc);
-diff --git a/drivers/net/ethernet/sfc/selftest.c b/drivers/net/ethernet/sfc/selftest.c
-index 10b6173..b605dfd5 100644
---- a/drivers/net/ethernet/sfc/selftest.c
-+++ b/drivers/net/ethernet/sfc/selftest.c
-@@ -46,7 +46,7 @@ struct efx_loopback_payload {
-       struct iphdr ip;
-       struct udphdr udp;
-       __be16 iteration;
--      const char msg[64];
-+      char msg[64];
- } __packed;
- /* Loopback test source MAC address */
 diff --git a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
 index 08c483b..2c4a553 100644
 --- a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
@@ -49265,10 +49338,10 @@ index 08c483b..2c4a553 100644
  
  /* To mask all all interrupts.*/
 diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
-index 17e2766..c332f1e 100644
+index de28504..7f1c1cd 100644
 --- a/drivers/net/ethernet/via/via-rhine.c
 +++ b/drivers/net/ethernet/via/via-rhine.c
-@@ -2514,7 +2514,7 @@ static struct platform_driver rhine_driver_platform = {
+@@ -2525,7 +2525,7 @@ static struct platform_driver rhine_driver_platform = {
        }
  };
  
@@ -49278,10 +49351,10 @@ index 17e2766..c332f1e 100644
                .ident = "EPIA-M",
                .matches = {
 diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
-index 384ca4f..dd7d4f9 100644
+index 41071d3..6e362e1 100644
 --- a/drivers/net/hyperv/hyperv_net.h
 +++ b/drivers/net/hyperv/hyperv_net.h
-@@ -171,7 +171,7 @@ struct rndis_device {
+@@ -176,7 +176,7 @@ struct rndis_device {
        enum rndis_device_state state;
        bool link_state;
        bool link_change;
@@ -49291,10 +49364,10 @@ index 384ca4f..dd7d4f9 100644
        spinlock_t request_lock;
        struct list_head req_list;
 diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
-index 7816d98..7890614 100644
+index 9118cea..1a8e06a 100644
 --- a/drivers/net/hyperv/rndis_filter.c
 +++ b/drivers/net/hyperv/rndis_filter.c
-@@ -102,7 +102,7 @@ static struct rndis_request *get_rndis_request(struct rndis_device *dev,
+@@ -100,7 +100,7 @@ static struct rndis_request *get_rndis_request(struct rndis_device *dev,
         * template
         */
        set = &rndis_msg->msg.set_req;
@@ -49303,7 +49376,7 @@ index 7816d98..7890614 100644
  
        /* Add to the request list */
        spin_lock_irqsave(&dev->request_lock, flags);
-@@ -918,7 +918,7 @@ static void rndis_filter_halt_device(struct rndis_device *dev)
+@@ -923,7 +923,7 @@ static void rndis_filter_halt_device(struct rndis_device *dev)
  
        /* Setup the rndis set */
        halt = &request->request_msg.msg.halt_req;
@@ -49313,7 +49386,7 @@ index 7816d98..7890614 100644
        /* Ignore return since this msg is optional. */
        rndis_filter_send_request(dev, request);
 diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
-index 34f846b..4a0d5b1 100644
+index 94570aa..1a798e1 100644
 --- a/drivers/net/ifb.c
 +++ b/drivers/net/ifb.c
 @@ -253,7 +253,7 @@ static int ifb_validate(struct nlattr *tb[], struct nlattr *data[])
@@ -49325,8 +49398,37 @@ index 34f846b..4a0d5b1 100644
        .kind           = "ifb",
        .priv_size      = sizeof(struct ifb_private),
        .setup          = ifb_setup,
+diff --git a/drivers/net/ipvlan/ipvlan.h b/drivers/net/ipvlan/ipvlan.h
+index 54549a6..0799442 100644
+--- a/drivers/net/ipvlan/ipvlan.h
++++ b/drivers/net/ipvlan/ipvlan.h
+@@ -102,6 +102,11 @@ static inline struct ipvl_port *ipvlan_port_get_rcu(const struct net_device *d)
+       return rcu_dereference(d->rx_handler_data);
+ }
++static inline struct ipvl_port *ipvlan_port_get_rcu_bh(const struct net_device *d)
++{
++      return rcu_dereference_bh(d->rx_handler_data);
++}
++
+ static inline struct ipvl_port *ipvlan_port_get_rtnl(const struct net_device *d)
+ {
+       return rtnl_dereference(d->rx_handler_data);
+diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c
+index c30b5c3..b349dad 100644
+--- a/drivers/net/ipvlan/ipvlan_core.c
++++ b/drivers/net/ipvlan/ipvlan_core.c
+@@ -507,7 +507,7 @@ static int ipvlan_xmit_mode_l2(struct sk_buff *skb, struct net_device *dev)
+ int ipvlan_queue_xmit(struct sk_buff *skb, struct net_device *dev)
+ {
+       struct ipvl_dev *ipvlan = netdev_priv(dev);
+-      struct ipvl_port *port = ipvlan_port_get_rcu(ipvlan->phy_dev);
++      struct ipvl_port *port = ipvlan_port_get_rcu_bh(ipvlan->phy_dev);
+       if (!port)
+               goto out;
 diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
-index 1df38bd..4bc20b0 100644
+index 9f59f17..52cb38f 100644
 --- a/drivers/net/macvlan.c
 +++ b/drivers/net/macvlan.c
 @@ -335,7 +335,7 @@ static void macvlan_broadcast_enqueue(struct macvlan_port *port,
@@ -49338,7 +49440,7 @@ index 1df38bd..4bc20b0 100644
  }
  
  static void macvlan_flush_sources(struct macvlan_port *port,
-@@ -1459,13 +1459,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
+@@ -1480,13 +1480,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
  int macvlan_link_register(struct rtnl_link_ops *ops)
  {
        /* common fields */
@@ -49361,7 +49463,7 @@ index 1df38bd..4bc20b0 100644
  
        return rtnl_link_register(ops);
  };
-@@ -1551,7 +1553,7 @@ static int macvlan_device_event(struct notifier_block *unused,
+@@ -1572,7 +1574,7 @@ static int macvlan_device_event(struct notifier_block *unused,
        return NOTIFY_DONE;
  }
  
@@ -49371,7 +49473,7 @@ index 1df38bd..4bc20b0 100644
  };
  
 diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
-index 27ecc5c..f636328 100644
+index 8c350c5..30fdc98 100644
 --- a/drivers/net/macvtap.c
 +++ b/drivers/net/macvtap.c
 @@ -436,7 +436,7 @@ static void macvtap_setup(struct net_device *dev)
@@ -49392,7 +49494,7 @@ index 27ecc5c..f636328 100644
                    put_user(u, &ifr->ifr_flags))
                        ret = -EFAULT;
                macvtap_put_vlan(vlan);
-@@ -1217,7 +1217,7 @@ static int macvtap_device_event(struct notifier_block *unused,
+@@ -1214,7 +1214,7 @@ static int macvtap_device_event(struct notifier_block *unused,
        return NOTIFY_DONE;
  }
  
@@ -49401,6 +49503,14 @@ index 27ecc5c..f636328 100644
        .notifier_call  = macvtap_device_event,
  };
  
+@@ -1268,6 +1268,7 @@ static void macvtap_exit(void)
+       class_unregister(macvtap_class);
+       cdev_del(&macvtap_cdev);
+       unregister_chrdev_region(macvtap_major, MACVTAP_NUM_DEVS);
++      idr_destroy(&minor_idr);
+ }
+ module_exit(macvtap_exit);
 diff --git a/drivers/net/nlmon.c b/drivers/net/nlmon.c
 index 34924df..a747360 100644
 --- a/drivers/net/nlmon.c
@@ -49415,7 +49525,7 @@ index 34924df..a747360 100644
        .priv_size              = sizeof(struct nlmon),
        .setup                  = nlmon_setup,
 diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
-index bdfe51f..e7845c7 100644
+index d551df6..fa4c2df 100644
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
 @@ -218,7 +218,7 @@ EXPORT_SYMBOL(phy_device_create);
@@ -49481,10 +49591,10 @@ index 079f7ad..b2a2bfa7 100644
  
        /* We've got a compressed packet; read the change byte */
 diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
-index 7d39484..d58499d 100644
+index 6928448..e30c57f 100644
 --- a/drivers/net/team/team.c
 +++ b/drivers/net/team/team.c
-@@ -2099,7 +2099,7 @@ static unsigned int team_get_num_rx_queues(void)
+@@ -2103,7 +2103,7 @@ static unsigned int team_get_num_rx_queues(void)
        return TEAM_DEFAULT_NUM_RX_QUEUES;
  }
  
@@ -49493,7 +49603,7 @@ index 7d39484..d58499d 100644
        .kind                   = DRV_NAME,
        .priv_size              = sizeof(struct team),
        .setup                  = team_setup,
-@@ -2889,7 +2889,7 @@ static int team_device_event(struct notifier_block *unused,
+@@ -2893,7 +2893,7 @@ static int team_device_event(struct notifier_block *unused,
        return NOTIFY_DONE;
  }
  
@@ -49503,7 +49613,7 @@ index 7d39484..d58499d 100644
  };
  
 diff --git a/drivers/net/tun.c b/drivers/net/tun.c
-index 857dca4..642f532 100644
+index e470ae5..e812f5e 100644
 --- a/drivers/net/tun.c
 +++ b/drivers/net/tun.c
 @@ -1421,7 +1421,7 @@ static int tun_validate(struct nlattr *tb[], struct nlattr *data[])
@@ -49515,7 +49625,7 @@ index 857dca4..642f532 100644
        .kind           = DRV_NAME,
        .priv_size      = sizeof(struct tun_struct),
        .setup          = tun_setup,
-@@ -1830,7 +1830,7 @@ unlock:
+@@ -1828,7 +1828,7 @@ unlock:
  }
  
  static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
@@ -49524,7 +49634,7 @@ index 857dca4..642f532 100644
  {
        struct tun_file *tfile = file->private_data;
        struct tun_struct *tun;
-@@ -1844,6 +1844,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
+@@ -1842,6 +1842,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
        int le;
        int ret;
  
@@ -49535,7 +49645,7 @@ index 857dca4..642f532 100644
                if (copy_from_user(&ifr, argp, ifreq_len))
                        return -EFAULT;
 diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
-index 778e915..58c4d95 100644
+index 111d907..1ee643e 100644
 --- a/drivers/net/usb/hso.c
 +++ b/drivers/net/usb/hso.c
 @@ -70,7 +70,7 @@
@@ -49607,7 +49717,7 @@ index 778e915..58c4d95 100644
                _hso_serial_set_termios(tty, old);
        else
                tty->termios = *old;
-@@ -1886,7 +1885,7 @@ static void intr_callback(struct urb *urb)
+@@ -1891,7 +1890,7 @@ static void intr_callback(struct urb *urb)
                                D1("Pending read interrupt on port %d\n", i);
                                spin_lock(&serial->serial_lock);
                                if (serial->rx_state == RX_IDLE &&
@@ -49616,7 +49726,7 @@ index 778e915..58c4d95 100644
                                        /* Setup and send a ctrl req read on
                                         * port i */
                                        if (!serial->rx_urb_filled[0]) {
-@@ -3053,7 +3052,7 @@ static int hso_resume(struct usb_interface *iface)
+@@ -3058,7 +3057,7 @@ static int hso_resume(struct usb_interface *iface)
        /* Start all serial ports */
        for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) {
                if (serial_table[i] && (serial_table[i]->interface == iface)) {
@@ -49626,10 +49736,10 @@ index 778e915..58c4d95 100644
                                    hso_start_serial_device(serial_table[i], GFP_NOIO);
                                hso_kick_transmit(dev2ser(serial_table[i]));
 diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
-index 9f7c0ab..1577b4a 100644
+index aafa1a1..f59c651 100644
 --- a/drivers/net/usb/r8152.c
 +++ b/drivers/net/usb/r8152.c
-@@ -601,7 +601,7 @@ struct r8152 {
+@@ -602,7 +602,7 @@ struct r8152 {
                void (*unload)(struct r8152 *);
                int (*eee_get)(struct r8152 *, struct ethtool_eee *);
                int (*eee_set)(struct r8152 *, struct ethtool_eee *);
@@ -49660,30 +49770,8 @@ index a2515887..6d13233 100644
        dev->net->dev_addr[ETH_ALEN-1] = ifacenum;
  
        /* we will have to manufacture ethernet headers, prepare template */
-diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
-index 777757a..395a767 100644
---- a/drivers/net/usb/usbnet.c
-+++ b/drivers/net/usb/usbnet.c
-@@ -1285,7 +1285,7 @@ netdev_tx_t usbnet_start_xmit (struct sk_buff *skb,
-                                    struct net_device *net)
- {
-       struct usbnet           *dev = netdev_priv(net);
--      int                     length;
-+      unsigned int                    length;
-       struct urb              *urb = NULL;
-       struct skb_data         *entry;
-       struct driver_info      *info = dev->driver_info;
-@@ -1413,7 +1413,7 @@ not_drop:
-               }
-       } else
-               netif_dbg(dev, tx_queued, dev->net,
--                        "> tx, len %d, type 0x%x\n", length, skb->protocol);
-+                        "> tx, len %u, type 0x%x\n", length, skb->protocol);
- #ifdef CONFIG_PM
- deferred:
- #endif
 diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
-index 59b0e97..a6ed579 100644
+index 63c7810..4ad33aa 100644
 --- a/drivers/net/virtio_net.c
 +++ b/drivers/net/virtio_net.c
 @@ -48,7 +48,7 @@ module_param(gso, bool, 0444);
@@ -49695,11 +49783,56 @@ index 59b0e97..a6ed579 100644
  
  #define VIRTNET_DRIVER_VERSION "1.0.0"
  
+diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
+index 61c0840..92e7f7e 100644
+--- a/drivers/net/vmxnet3/vmxnet3_drv.c
++++ b/drivers/net/vmxnet3/vmxnet3_drv.c
+@@ -1167,7 +1167,7 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
+       static const u32 rxprod_reg[2] = {
+               VMXNET3_REG_RXPROD, VMXNET3_REG_RXPROD2
+       };
+-      u32 num_rxd = 0;
++      u32 num_pkts = 0;
+       bool skip_page_frags = false;
+       struct Vmxnet3_RxCompDesc *rcd;
+       struct vmxnet3_rx_ctx *ctx = &rq->rx_ctx;
+@@ -1185,13 +1185,12 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
+               struct Vmxnet3_RxDesc *rxd;
+               u32 idx, ring_idx;
+               struct vmxnet3_cmd_ring *ring = NULL;
+-              if (num_rxd >= quota) {
++              if (num_pkts >= quota) {
+                       /* we may stop even before we see the EOP desc of
+                        * the current pkt
+                        */
+                       break;
+               }
+-              num_rxd++;
+               BUG_ON(rcd->rqID != rq->qid && rcd->rqID != rq->qid2);
+               idx = rcd->rxdIdx;
+               ring_idx = rcd->rqID < adapter->num_rx_queues ? 0 : 1;
+@@ -1323,6 +1322,7 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
+                               napi_gro_receive(&rq->napi, skb);
+                       ctx->skb = NULL;
++                      num_pkts++;
+               }
+ rcd_done:
+@@ -1353,7 +1353,7 @@ rcd_done:
+                                 &rq->comp_ring.base[rq->comp_ring.next2proc].rcd, &rxComp);
+       }
+-      return num_rxd;
++      return num_pkts;
+ }
 diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
-index fceb637..37c70fd 100644
+index 21a0fbf..055b54f 100644
 --- a/drivers/net/vxlan.c
 +++ b/drivers/net/vxlan.c
-@@ -2935,7 +2935,7 @@ static struct net *vxlan_get_link_net(const struct net_device *dev)
+@@ -2878,7 +2878,7 @@ static struct net *vxlan_get_link_net(const struct net_device *dev)
        return vxlan->net;
  }
  
@@ -49708,7 +49841,7 @@ index fceb637..37c70fd 100644
        .kind           = "vxlan",
        .maxtype        = IFLA_VXLAN_MAX,
        .policy         = vxlan_policy,
-@@ -2983,7 +2983,7 @@ static int vxlan_lowerdev_event(struct notifier_block *unused,
+@@ -2926,7 +2926,7 @@ static int vxlan_lowerdev_event(struct notifier_block *unused,
        return NOTIFY_DONE;
  }
  
@@ -49899,7 +50032,7 @@ index 0b60295..b8bfa5b 100644
                if (rd == NULL) {
                        result = -ENOMEM;
 diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
-index e71a2ce..2268d61 100644
+index d0c97c2..108f59b 100644
 --- a/drivers/net/wireless/airo.c
 +++ b/drivers/net/wireless/airo.c
 @@ -7846,7 +7846,7 @@ static int writerids(struct net_device *dev, aironet_ioctl *comp) {
@@ -49912,7 +50045,7 @@ index e71a2ce..2268d61 100644
  
        /* Only super-user can write RIDs */
 diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c
-index da92bfa..5a9001a 100644
+index 49219c5..3625441 100644
 --- a/drivers/net/wireless/at76c50x-usb.c
 +++ b/drivers/net/wireless/at76c50x-usb.c
 @@ -353,7 +353,7 @@ static int at76_dfu_get_state(struct usb_device *udev, u8 *state)
@@ -50193,19 +50326,19 @@ index da84b70..83e4978 100644
  
  static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
 diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
-index e82e570..8c3cf90 100644
+index c1d2d03..08352db 100644
 --- a/drivers/net/wireless/ath/ath9k/hw.h
 +++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -646,7 +646,7 @@ struct ath_hw_private_ops {
-       /* ANI */
-       void (*ani_cache_ini_regs)(struct ath_hw *ah);
+@@ -671,7 +671,7 @@ struct ath_hw_private_ops {
+ #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
+       bool (*is_aic_enabled)(struct ath_hw *ah);
+ #endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */
 -};
 +} __no_const;
  
  /**
   * struct ath_spec_scan - parameters for Atheros spectral scan
-@@ -722,7 +722,7 @@ struct ath_hw_ops {
+@@ -747,7 +747,7 @@ struct ath_hw_ops {
  #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
        void (*set_bt_ant_diversity)(struct ath_hw *hw, bool enable);
  #endif
@@ -50215,10 +50348,10 @@ index e82e570..8c3cf90 100644
  struct ath_nf_limits {
        s16 max;
 diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
-index 9ede991..a8f08fb 100644
+index b0badef..3e3464c 100644
 --- a/drivers/net/wireless/ath/ath9k/main.c
 +++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -2537,16 +2537,18 @@ void ath9k_fill_chanctx_ops(void)
+@@ -2573,16 +2573,18 @@ void ath9k_fill_chanctx_ops(void)
        if (!ath9k_is_chanctx_enabled())
                return;
  
@@ -50412,10 +50545,10 @@ index 0ffb6ff..c0b7f0e 100644
        memset(buf, 0, sizeof(buf));
        buf_size = min(count, sizeof(buf) - 1);
 diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
-index 69935aa..c1ca128 100644
+index dc17909..989c9fb 100644
 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c
 +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
-@@ -1836,7 +1836,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
+@@ -1919,7 +1919,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
        struct isr_statistics *isr_stats = &trans_pcie->isr_stats;
  
        char buf[8];
@@ -50424,7 +50557,7 @@ index 69935aa..c1ca128 100644
        u32 reset_flag;
  
        memset(buf, 0, sizeof(buf));
-@@ -1857,7 +1857,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
+@@ -1940,7 +1940,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
  {
        struct iwl_trans *trans = file->private_data;
        char buf[8];
@@ -50434,10 +50567,10 @@ index 69935aa..c1ca128 100644
  
        memset(buf, 0, sizeof(buf));
 diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
-index 8908be6..fe97ddd 100644
+index d5c0a1a..d056b20 100644
 --- a/drivers/net/wireless/mac80211_hwsim.c
 +++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -3070,20 +3070,20 @@ static int __init init_mac80211_hwsim(void)
+@@ -3149,20 +3149,20 @@ static int __init init_mac80211_hwsim(void)
        if (channels < 1)
                return -EINVAL;
  
@@ -50473,7 +50606,7 @@ index 8908be6..fe97ddd 100644
        spin_lock_init(&hwsim_radio_lock);
        INIT_LIST_HEAD(&hwsim_radios);
 diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
-index 60d44ce..884dd1c 100644
+index d72ff8e..c209a45 100644
 --- a/drivers/net/wireless/rndis_wlan.c
 +++ b/drivers/net/wireless/rndis_wlan.c
 @@ -1236,7 +1236,7 @@ static int set_rts_threshold(struct usbnet *usbdev, u32 rts_threshold)
@@ -50541,10 +50674,10 @@ index b661f896..ddf7d2b 100644
                wl1251_info("using SDIO interrupt");
        }
 diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
-index 144d1f8..7030936 100644
+index af0fe2e..d04986b 100644
 --- a/drivers/net/wireless/ti/wl12xx/main.c
 +++ b/drivers/net/wireless/ti/wl12xx/main.c
-@@ -657,7 +657,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
+@@ -655,7 +655,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
                       sizeof(wl->conf.mem));
  
                /* read data preparation is only needed by wl127x */
@@ -50555,7 +50688,7 @@ index 144d1f8..7030936 100644
  
                wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
                              WL127X_IFTYPE_SR_VER,  WL127X_MAJOR_SR_VER,
-@@ -682,7 +684,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
+@@ -680,7 +682,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
                       sizeof(wl->conf.mem));
  
                /* read data preparation is only needed by wl127x */
@@ -50596,6 +50729,27 @@ index a912dc0..a8225ba 100644
        u16 int_num;
  
        ZD_ASSERT(in_interrupt());
+diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
+index 0d25943..0866c5d 100644
+--- a/drivers/net/xen-netback/netback.c
++++ b/drivers/net/xen-netback/netback.c
+@@ -1571,13 +1571,13 @@ static inline void xenvif_tx_dealloc_action(struct xenvif_queue *queue)
+               smp_rmb();
+               while (dc != dp) {
+-                      BUG_ON(gop - queue->tx_unmap_ops > MAX_PENDING_REQS);
++                      BUG_ON(gop - queue->tx_unmap_ops >= MAX_PENDING_REQS);
+                       pending_idx =
+                               queue->dealloc_ring[pending_index(dc++)];
+-                      pending_idx_release[gop-queue->tx_unmap_ops] =
++                      pending_idx_release[gop - queue->tx_unmap_ops] =
+                               pending_idx;
+-                      queue->pages_to_unmap[gop-queue->tx_unmap_ops] =
++                      queue->pages_to_unmap[gop - queue->tx_unmap_ops] =
+                               queue->mmap_pages[pending_idx];
+                       gnttab_set_unmap_op(gop,
+                                           idx_to_kaddr(queue, pending_idx),
 diff --git a/drivers/nfc/nfcwilink.c b/drivers/nfc/nfcwilink.c
 index ce2e2cf..f81e500 100644
 --- a/drivers/nfc/nfcwilink.c
@@ -50610,23 +50764,63 @@ index ce2e2cf..f81e500 100644
        __u32 protocols;
  
 diff --git a/drivers/nfc/st21nfca/st21nfca.c b/drivers/nfc/st21nfca/st21nfca.c
-index 24d3d24..ff70d28 100644
+index d251f72..0512865 100644
 --- a/drivers/nfc/st21nfca/st21nfca.c
 +++ b/drivers/nfc/st21nfca/st21nfca.c
-@@ -588,7 +588,7 @@ static int st21nfca_get_iso14443_3_uid(struct nfc_hci_dev *hdev, u8 *gate,
-               goto exit;
+@@ -148,14 +148,14 @@ static int st21nfca_hci_load_session(struct nfc_hci_dev *hdev)
+                               ST21NFCA_DEVICE_MGNT_GATE,
+                               ST21NFCA_DEVICE_MGNT_PIPE);
+       if (r < 0)
+-              goto free_info;
++              return r;
+       /* Get pipe list */
+       r = nfc_hci_send_cmd(hdev, ST21NFCA_DEVICE_MGNT_GATE,
+                       ST21NFCA_DM_GETINFO, pipe_list, sizeof(pipe_list),
+                       &skb_pipe_list);
+       if (r < 0)
+-              goto free_info;
++              return r;
+       /* Complete the existing gate_pipe table */
+       for (i = 0; i < skb_pipe_list->len; i++) {
+@@ -181,6 +181,7 @@ static int st21nfca_hci_load_session(struct nfc_hci_dev *hdev)
+                       info->src_host_id != ST21NFCA_ESE_HOST_ID) {
+                       pr_err("Unexpected apdu_reader pipe on host %x\n",
+                               info->src_host_id);
++                      kfree_skb(skb_pipe_info);
+                       continue;
+               }
+@@ -200,6 +201,7 @@ static int st21nfca_hci_load_session(struct nfc_hci_dev *hdev)
+                       hdev->pipes[st21nfca_gates[j].pipe].dest_host =
+                                                       info->src_host_id;
+               }
++              kfree_skb(skb_pipe_info);
+       }
+       /*
+@@ -214,13 +216,12 @@ static int st21nfca_hci_load_session(struct nfc_hci_dev *hdev)
+                                       st21nfca_gates[i].gate,
+                                       st21nfca_gates[i].pipe);
+                       if (r < 0)
+-                              goto free_info;
++                              goto free_list;
+               }
        }
  
--      gate = uid_skb->data;
-+      memcpy(gate, uid_skb->data, uid_skb->len);
-       *len = uid_skb->len;
- exit:
-       kfree_skb(uid_skb);
+       memcpy(hdev->init_data.gates, st21nfca_gates, sizeof(st21nfca_gates));
+-free_info:
+-      kfree_skb(skb_pipe_info);
++free_list:
+       kfree_skb(skb_pipe_list);
+       return r;
+ }
 diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
-index 3a896c9..ac7b1c8 100644
+index cde35c5d01..2dbfdbbf 100644
 --- a/drivers/of/fdt.c
 +++ b/drivers/of/fdt.c
-@@ -1118,7 +1118,9 @@ static int __init of_fdt_raw_init(void)
+@@ -1136,7 +1136,9 @@ static int __init of_fdt_raw_init(void)
                pr_warn("fdt: not creating '/sys/firmware/fdt': CRC check failed\n");
                return 0;
        }
@@ -50638,10 +50832,10 @@ index 3a896c9..ac7b1c8 100644
  }
  late_initcall(of_fdt_raw_init);
 diff --git a/drivers/oprofile/buffer_sync.c b/drivers/oprofile/buffer_sync.c
-index d93b2b6..ae50401 100644
+index 82f7000..d6d0447 100644
 --- a/drivers/oprofile/buffer_sync.c
 +++ b/drivers/oprofile/buffer_sync.c
-@@ -332,7 +332,7 @@ static void add_data(struct op_entry *entry, struct mm_struct *mm)
+@@ -345,7 +345,7 @@ static void add_data(struct op_entry *entry, struct mm_struct *mm)
                if (cookie == NO_COOKIE)
                        offset = pc;
                if (cookie == INVALID_COOKIE) {
@@ -50650,7 +50844,7 @@ index d93b2b6..ae50401 100644
                        offset = pc;
                }
                if (cookie != last_cookie) {
-@@ -376,14 +376,14 @@ add_sample(struct mm_struct *mm, struct op_sample *s, int in_kernel)
+@@ -389,14 +389,14 @@ add_sample(struct mm_struct *mm, struct op_sample *s, int in_kernel)
        /* add userspace sample */
  
        if (!mm) {
@@ -50667,7 +50861,7 @@ index d93b2b6..ae50401 100644
                return 0;
        }
  
-@@ -552,7 +552,7 @@ void sync_buffer(int cpu)
+@@ -554,7 +554,7 @@ void sync_buffer(int cpu)
                /* ignore backtraces if failed to add a sample */
                if (state == sb_bt_start) {
                        state = sb_bt_ignore;
@@ -50758,7 +50952,7 @@ index 1fc622b..8c48fc3 100644
  
  extern struct oprofile_stat_struct oprofile_stats;
 diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
-index 3f49345..c750d0b 100644
+index dd92c5e..dfc04b5 100644
 --- a/drivers/oprofile/oprofilefs.c
 +++ b/drivers/oprofile/oprofilefs.c
 @@ -176,8 +176,8 @@ int oprofilefs_create_ro_ulong(struct dentry *root,
@@ -51074,7 +51268,7 @@ index 312f23a..d21181c 100644
        if (!sysfs_initialized)
                return -EACCES;
 diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
-index 4091f82..7d98eef 100644
+index 9bd762c2..6fb9504 100644
 --- a/drivers/pci/pci.h
 +++ b/drivers/pci/pci.h
 @@ -99,7 +99,7 @@ struct pci_vpd_ops {
@@ -51087,7 +51281,7 @@ index 4091f82..7d98eef 100644
  
  int pci_vpd_pci22_init(struct pci_dev *dev);
 diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
-index 820740a..8b1c673 100644
+index 7d4fcdc..2f6d8f8 100644
 --- a/drivers/pci/pcie/aspm.c
 +++ b/drivers/pci/pcie/aspm.c
 @@ -27,9 +27,9 @@
@@ -51117,10 +51311,10 @@ index be35da2..ec16cdb 100644
         * Boxes that should not use MSI for PCIe PME signaling.
         */
 diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
-index 8d2f400..c97cc91 100644
+index c911857..56f3f9d 100644
 --- a/drivers/pci/probe.c
 +++ b/drivers/pci/probe.c
-@@ -175,7 +175,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
+@@ -176,7 +176,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
        u16 orig_cmd;
        struct pci_bus_region region, inverted_region;
  
@@ -51223,10 +51417,10 @@ index 7543a56..367ca8ed 100644
                                     1, asus->debug.method_id,
                                     &input, &output);
 diff --git a/drivers/platform/x86/compal-laptop.c b/drivers/platform/x86/compal-laptop.c
-index bceb30b..bf063d4 100644
+index b4e9447..9dc6ec34 100644
 --- a/drivers/platform/x86/compal-laptop.c
 +++ b/drivers/platform/x86/compal-laptop.c
-@@ -766,7 +766,7 @@ static int dmi_check_cb_extra(const struct dmi_system_id *id)
+@@ -765,7 +765,7 @@ static int dmi_check_cb_extra(const struct dmi_system_id *id)
        return 1;
  }
  
@@ -51262,7 +51456,7 @@ index 97c2be1..2ee50ce 100644
                .matches = {                               \
                        DMI_MATCH(DMI_SYS_VENDOR, "IBM"),  \
 diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
-index a4a4258..a58a04c 100644
+index 8037c8b..f88445c 100644
 --- a/drivers/platform/x86/intel_oaktrail.c
 +++ b/drivers/platform/x86/intel_oaktrail.c
 @@ -298,7 +298,7 @@ static int dmi_check_cb(const struct dmi_system_id *id)
@@ -51415,19 +51609,10 @@ index e51c1e7..71bb385 100644
                .ident = "Sony Vaio",
                .matches = {
 diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
-index 3b8ceee..e18652c 100644
+index 28f3281..171d8c3 100644
 --- a/drivers/platform/x86/thinkpad_acpi.c
 +++ b/drivers/platform/x86/thinkpad_acpi.c
-@@ -2093,7 +2093,7 @@ static int hotkey_mask_get(void)
-       return 0;
- }
--void static hotkey_mask_warn_incomplete_mask(void)
-+static void hotkey_mask_warn_incomplete_mask(void)
- {
-       /* log only what the user can fix... */
-       const u32 wantedmask = hotkey_driver_mask &
-@@ -2437,10 +2437,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
+@@ -2459,10 +2459,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
                                && !tp_features.bright_unkfw)
                        TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_FNHOME);
        }
@@ -51513,10 +51698,10 @@ index facd43b..b291260 100644
         .callback = exploding_pnp_bios,
         .ident = "Higraded P14H",
 diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c
-index 0c52e2a..3421ab7 100644
+index dfe1ee8..67e820c 100644
 --- a/drivers/power/pda_power.c
 +++ b/drivers/power/pda_power.c
-@@ -37,7 +37,11 @@ static int polling;
+@@ -38,7 +38,11 @@ static struct power_supply *pda_psy_ac, *pda_psy_usb;
  
  #if IS_ENABLED(CONFIG_USB_PHY)
  static struct usb_phy *transceiver;
@@ -51529,7 +51714,7 @@ index 0c52e2a..3421ab7 100644
  #endif
  
  static struct regulator *ac_draw;
-@@ -369,7 +373,6 @@ static int pda_power_probe(struct platform_device *pdev)
+@@ -373,7 +377,6 @@ static int pda_power_probe(struct platform_device *pdev)
  
  #if IS_ENABLED(CONFIG_USB_PHY)
        if (!IS_ERR_OR_NULL(transceiver) && pdata->use_otg_notifier) {
@@ -51557,7 +51742,7 @@ index cc439fd..8fa30df 100644
  
  #endif /* CONFIG_SYSFS */
 diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
-index 694e8cd..9f03483 100644
+index 4bc0c7f..198c99d 100644
 --- a/drivers/power/power_supply_core.c
 +++ b/drivers/power/power_supply_core.c
 @@ -28,7 +28,10 @@ EXPORT_SYMBOL_GPL(power_supply_class);
@@ -51570,9 +51755,9 @@ index 694e8cd..9f03483 100644
 +      .groups = power_supply_attr_groups,
 +};
  
- static bool __power_supply_is_supplied_by(struct power_supply *supplier,
-                                        struct power_supply *supply)
-@@ -637,7 +640,7 @@ static int __init power_supply_class_init(void)
+ #define POWER_SUPPLY_DEFERRED_REGISTER_TIME   msecs_to_jiffies(10)
+@@ -921,7 +924,7 @@ static int __init power_supply_class_init(void)
                return PTR_ERR(power_supply_class);
  
        power_supply_class->dev_uevent = power_supply_uevent;
@@ -51582,7 +51767,7 @@ index 694e8cd..9f03483 100644
        return 0;
  }
 diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c
-index 62653f5..d0bb485 100644
+index 9134e3d..45eee1e 100644
 --- a/drivers/power/power_supply_sysfs.c
 +++ b/drivers/power/power_supply_sysfs.c
 @@ -238,17 +238,15 @@ static struct attribute_group power_supply_attr_group = {
@@ -51821,10 +52006,10 @@ index 302e626..12579af 100644
                da->attr.name = info->pin_config[i].name;
                da->attr.mode = 0644;
 diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
-index a4a8a6d..a3456f4 100644
+index 8a28116..05b0ad5 100644
 --- a/drivers/regulator/core.c
 +++ b/drivers/regulator/core.c
-@@ -3529,7 +3529,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
+@@ -3603,7 +3603,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
        const struct regulation_constraints *constraints = NULL;
        const struct regulator_init_data *init_data;
        struct regulator_config *config = NULL;
@@ -51833,7 +52018,7 @@ index a4a8a6d..a3456f4 100644
        struct regulator_dev *rdev;
        struct device *dev;
        int ret, i;
-@@ -3613,7 +3613,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
+@@ -3686,7 +3686,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
        rdev->dev.class = &regulator_class;
        rdev->dev.parent = dev;
        dev_set_name(&rdev->dev, "regulator.%lu",
@@ -51843,10 +52028,10 @@ index a4a8a6d..a3456f4 100644
        if (ret != 0) {
                put_device(&rdev->dev);
 diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
-index 7eee2ca..4024513 100644
+index 4071d74..260b15a 100644
 --- a/drivers/regulator/max8660.c
 +++ b/drivers/regulator/max8660.c
-@@ -424,8 +424,10 @@ static int max8660_probe(struct i2c_client *client,
+@@ -423,8 +423,10 @@ static int max8660_probe(struct i2c_client *client,
                max8660->shadow_regs[MAX8660_OVER1] = 5;
        } else {
                /* Otherwise devices can be toggled via software */
@@ -51899,10 +52084,10 @@ index 0d17c92..a29f627 100644
  
        mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators,
 diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
-index 5b2e761..c8c8a4a 100644
+index a82556a0..e842923 100644
 --- a/drivers/rtc/rtc-cmos.c
 +++ b/drivers/rtc/rtc-cmos.c
-@@ -789,7 +789,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
+@@ -793,7 +793,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
        hpet_rtc_timer_init();
  
        /* export at least the first block of NVRAM */
@@ -51962,6 +52147,36 @@ index 90abb5b..e0bf6dd 100644
  
        ret = sysfs_create_bin_file(&pdev->dev.kobj, &m48t59_nvram_attr);
        if (ret)
+diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c
+index 3a2da4c..e88493c 100644
+--- a/drivers/rtc/rtc-test.c
++++ b/drivers/rtc/rtc-test.c
+@@ -112,8 +112,10 @@ static int test_probe(struct platform_device *plat_dev)
+       struct rtc_device *rtc;
+       if (test_mmss64) {
+-              test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
+-              test_rtc_ops.set_mmss = NULL;
++              pax_open_kernel();
++              *(void **)&test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
++              *(void **)&test_rtc_ops.set_mmss = NULL;
++              pax_close_kernel();
+       }
+       rtc = devm_rtc_device_register(&plat_dev->dev, "test",
+diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
+index 1f74760..8e00a89 100644
+--- a/drivers/scsi/be2iscsi/be_main.c
++++ b/drivers/scsi/be2iscsi/be_main.c
+@@ -3165,7 +3165,7 @@ be_sgl_create_contiguous(void *virtual_address,
+ {
+       WARN_ON(!virtual_address);
+       WARN_ON(!physical_address);
+-      WARN_ON(!length > 0);
++      WARN_ON(!length);
+       WARN_ON(!sgl);
+       sgl->va = virtual_address;
 diff --git a/drivers/scsi/bfa/bfa_fcpim.h b/drivers/scsi/bfa/bfa_fcpim.h
 index e693af6..2e525b6 100644
 --- a/drivers/scsi/bfa/bfa_fcpim.h
@@ -52157,7 +52372,7 @@ index 8bb173e..20236b4 100644
  
        /* These three are default values which can be overridden */
 diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
-index a1cfbd3..d7f8ebc 100644
+index 8eab107..599cd79 100644
 --- a/drivers/scsi/hpsa.c
 +++ b/drivers/scsi/hpsa.c
 @@ -697,10 +697,10 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
@@ -52212,7 +52427,7 @@ index a1cfbd3..d7f8ebc 100644
  
        pci_disable_link_state(h->pdev, PCIE_LINK_STATE_L0S |
                               PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM);
-@@ -6649,7 +6649,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
+@@ -6647,7 +6647,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
        unsigned long flags;
        u32 lockup_detected;
  
@@ -52221,7 +52436,7 @@ index a1cfbd3..d7f8ebc 100644
        spin_lock_irqsave(&h->lock, flags);
        lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
        if (!lockup_detected) {
-@@ -6924,7 +6924,7 @@ reinit_after_soft_reset:
+@@ -6922,7 +6922,7 @@ reinit_after_soft_reset:
        }
  
        /* make sure the board interrupts are off */
@@ -52230,7 +52445,7 @@ index a1cfbd3..d7f8ebc 100644
  
        if (hpsa_request_irqs(h, do_hpsa_intr_msi, do_hpsa_intr_intx))
                goto clean2;
-@@ -6960,7 +6960,7 @@ reinit_after_soft_reset:
+@@ -6958,7 +6958,7 @@ reinit_after_soft_reset:
                 * fake ones to scoop up any residual completions.
                 */
                spin_lock_irqsave(&h->lock, flags);
@@ -52239,7 +52454,7 @@ index a1cfbd3..d7f8ebc 100644
                spin_unlock_irqrestore(&h->lock, flags);
                hpsa_free_irqs(h);
                rc = hpsa_request_irqs(h, hpsa_msix_discard_completions,
-@@ -6979,9 +6979,9 @@ reinit_after_soft_reset:
+@@ -6977,9 +6977,9 @@ reinit_after_soft_reset:
                dev_info(&h->pdev->dev, "Board READY.\n");
                dev_info(&h->pdev->dev,
                        "Waiting for stale completions to drain.\n");
@@ -52251,7 +52466,7 @@ index a1cfbd3..d7f8ebc 100644
  
                rc = controller_reset_failed(h->cfgtable);
                if (rc)
-@@ -7006,7 +7006,7 @@ reinit_after_soft_reset:
+@@ -7004,7 +7004,7 @@ reinit_after_soft_reset:
  
  
        /* Turn the interrupts on so we can service requests */
@@ -52260,7 +52475,7 @@ index a1cfbd3..d7f8ebc 100644
  
        hpsa_hba_inquiry(h);
        hpsa_register_scsi(h);  /* hook ourselves into SCSI subsystem */
-@@ -7079,7 +7079,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
+@@ -7077,7 +7077,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
         * To write all data in the battery backed cache to disks
         */
        hpsa_flush_cache(h);
@@ -52269,7 +52484,7 @@ index a1cfbd3..d7f8ebc 100644
        hpsa_free_irqs_and_disable_msix(h);
  }
  
-@@ -7200,7 +7200,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
+@@ -7198,7 +7198,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
                                CFGTBL_Trans_enable_directed_msix |
                        (trans_support & (CFGTBL_Trans_io_accel1 |
                                CFGTBL_Trans_io_accel2));
@@ -52278,7 +52493,7 @@ index a1cfbd3..d7f8ebc 100644
  
        /* This is a bit complicated.  There are 8 registers on
         * the controller which we write to to tell it 8 different
-@@ -7242,7 +7242,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
+@@ -7240,7 +7240,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
         * perform the superfluous readl() after each command submission.
         */
        if (trans_support & (CFGTBL_Trans_io_accel1 | CFGTBL_Trans_io_accel2))
@@ -52287,7 +52502,7 @@ index a1cfbd3..d7f8ebc 100644
  
        /* Controller spec: zero out this buffer. */
        for (i = 0; i < h->nreply_queues; i++)
-@@ -7272,12 +7272,12 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
+@@ -7270,12 +7270,12 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
         * enable outbound interrupt coalescing in accelerator mode;
         */
        if (trans_support & CFGTBL_Trans_io_accel1) {
@@ -52533,10 +52748,10 @@ index 9c706d8..d3e3ed2 100644
        .qc_issue               = sas_ata_qc_issue,
        .qc_fill_rtf            = sas_ata_qc_fill_rtf,
 diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
-index 434e903..5a4a79b 100644
+index 9b81a34..a9b7b8c 100644
 --- a/drivers/scsi/lpfc/lpfc.h
 +++ b/drivers/scsi/lpfc/lpfc.h
-@@ -430,7 +430,7 @@ struct lpfc_vport {
+@@ -433,7 +433,7 @@ struct lpfc_vport {
        struct dentry *debug_nodelist;
        struct dentry *vport_debugfs_root;
        struct lpfc_debugfs_trc *disc_trc;
@@ -52545,7 +52760,7 @@ index 434e903..5a4a79b 100644
  #endif
        uint8_t stat_data_enabled;
        uint8_t stat_data_blocked;
-@@ -880,8 +880,8 @@ struct lpfc_hba {
+@@ -883,8 +883,8 @@ struct lpfc_hba {
        struct timer_list fabric_block_timer;
        unsigned long bit_flags;
  #define       FABRIC_COMANDS_BLOCKED  0
@@ -52556,7 +52771,7 @@ index 434e903..5a4a79b 100644
        unsigned long last_rsrc_error_time;
        unsigned long last_ramp_down_time;
  #ifdef CONFIG_SCSI_LPFC_DEBUG_FS
-@@ -916,7 +916,7 @@ struct lpfc_hba {
+@@ -919,7 +919,7 @@ struct lpfc_hba {
  
        struct dentry *debug_slow_ring_trc;
        struct lpfc_debugfs_trc *slow_ring_trc;
@@ -52566,7 +52781,7 @@ index 434e903..5a4a79b 100644
        struct dentry *idiag_root;
        struct dentry *idiag_pci_cfg;
 diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
-index 5633e7d..8272114 100644
+index 513edcb..805c6a8 100644
 --- a/drivers/scsi/lpfc/lpfc_debugfs.c
 +++ b/drivers/scsi/lpfc/lpfc_debugfs.c
 @@ -106,7 +106,7 @@ MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc,
@@ -52649,10 +52864,10 @@ index 5633e7d..8272114 100644
        snprintf(name, sizeof(name), "discovery_trace");
        vport->debug_disc_trc =
 diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
-index 0b2c53a..aec2b45 100644
+index e8c8c1e..5f2e11c 100644
 --- a/drivers/scsi/lpfc/lpfc_init.c
 +++ b/drivers/scsi/lpfc/lpfc_init.c
-@@ -11290,8 +11290,10 @@ lpfc_init(void)
+@@ -11406,8 +11406,10 @@ lpfc_init(void)
                        "misc_register returned with status %d", error);
  
        if (lpfc_enable_npiv) {
@@ -52666,7 +52881,7 @@ index 0b2c53a..aec2b45 100644
        lpfc_transport_template =
                                fc_attach_transport(&lpfc_transport_functions);
 diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
-index 4f9222e..f1850e3 100644
+index c140f99..11b2505 100644
 --- a/drivers/scsi/lpfc/lpfc_scsi.c
 +++ b/drivers/scsi/lpfc/lpfc_scsi.c
 @@ -261,7 +261,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
@@ -52885,7 +53100,7 @@ index 7686bfe..4710893 100644
  extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *, bool);
  extern void qla2x00_init_host_attr(scsi_qla_host_t *);
 diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
-index cce1cbc..5b9f0fe 100644
+index 7462dd7..5b64c24 100644
 --- a/drivers/scsi/qla2xxx/qla_os.c
 +++ b/drivers/scsi/qla2xxx/qla_os.c
 @@ -1435,8 +1435,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
@@ -52942,6 +53157,19 @@ index 6d25879..3031a9f 100644
        def_timeout = le16_to_cpu(ddb_entry->fw_ddb_entry.def_timeout);
        ddb_entry->default_relogin_timeout =
                (def_timeout > LOGIN_TOV) && (def_timeout < LOGIN_TOV * 10) ?
+diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
+index 3833bf5..95feaf1 100644
+--- a/drivers/scsi/scsi.c
++++ b/drivers/scsi/scsi.c
+@@ -637,7 +637,7 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
+       good_bytes = scsi_bufflen(cmd);
+         if (cmd->request->cmd_type != REQ_TYPE_BLOCK_PC) {
+-              int old_good_bytes = good_bytes;
++              unsigned int old_good_bytes = good_bytes;
+               drv = scsi_cmd_to_driver(cmd);
+               if (drv->done)
+                       good_bytes = drv->done(cmd);
 diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
 index b1a2631..5bcd9c8 100644
 --- a/drivers/scsi/scsi_lib.c
@@ -52990,10 +53218,10 @@ index 1ac38e7..6acc656 100644
  }                                                                     \
  static DEVICE_ATTR(field, S_IRUGO, show_iostat_##field, NULL)
 diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
-index 5d6f348..18778a6b 100644
+index 24eaaf6..de30ec9 100644
 --- a/drivers/scsi/scsi_transport_fc.c
 +++ b/drivers/scsi/scsi_transport_fc.c
-@@ -501,7 +501,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class,
+@@ -502,7 +502,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class,
   * Netlink Infrastructure
   */
  
@@ -53002,7 +53230,7 @@ index 5d6f348..18778a6b 100644
  
  /**
   * fc_get_event_number - Obtain the next sequential FC event number
-@@ -514,7 +514,7 @@ static atomic_t fc_event_seq;
+@@ -515,7 +515,7 @@ static atomic_t fc_event_seq;
  u32
  fc_get_event_number(void)
  {
@@ -53011,7 +53239,7 @@ index 5d6f348..18778a6b 100644
  }
  EXPORT_SYMBOL(fc_get_event_number);
  
-@@ -658,7 +658,7 @@ static __init int fc_transport_init(void)
+@@ -659,7 +659,7 @@ static __init int fc_transport_init(void)
  {
        int error;
  
@@ -53020,7 +53248,7 @@ index 5d6f348..18778a6b 100644
  
        error = transport_class_register(&fc_host_class);
        if (error)
-@@ -848,7 +848,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val)
+@@ -849,7 +849,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val)
        char *cp;
  
        *val = simple_strtoul(buf, &cp, 0);
@@ -53061,7 +53289,7 @@ index 67d43e3..8cee73c 100644
        err = class_register(&iscsi_transport_class);
        if (err)
 diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
-index ae45bd9..c32a586 100644
+index f115f67..b80b2c1 100644
 --- a/drivers/scsi/scsi_transport_srp.c
 +++ b/drivers/scsi/scsi_transport_srp.c
 @@ -35,7 +35,7 @@
@@ -53082,7 +53310,7 @@ index ae45bd9..c32a586 100644
        return 0;
  }
  
-@@ -734,7 +734,7 @@ struct srp_rport *srp_rport_add(struct Scsi_Host *shost,
+@@ -744,7 +744,7 @@ struct srp_rport *srp_rport_add(struct Scsi_Host *shost,
                          rport_fast_io_fail_timedout);
        INIT_DELAYED_WORK(&rport->dev_loss_work, rport_dev_loss_timedout);
  
@@ -53092,10 +53320,28 @@ index ae45bd9..c32a586 100644
  
        transport_setup_device(&rport->dev);
 diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
-index 3290a3e..d65ac1c 100644
+index 7f9d65f..e856438 100644
 --- a/drivers/scsi/sd.c
 +++ b/drivers/scsi/sd.c
-@@ -3006,7 +3006,7 @@ static int sd_probe(struct device *dev)
+@@ -111,7 +111,7 @@ static int sd_resume(struct device *);
+ static void sd_rescan(struct device *);
+ static int sd_init_command(struct scsi_cmnd *SCpnt);
+ static void sd_uninit_command(struct scsi_cmnd *SCpnt);
+-static int sd_done(struct scsi_cmnd *);
++static unsigned int sd_done(struct scsi_cmnd *);
+ static int sd_eh_action(struct scsi_cmnd *, int);
+ static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer);
+ static void scsi_disk_release(struct device *cdev);
+@@ -1646,7 +1646,7 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd)
+  *
+  *    Note: potentially run from within an ISR. Must not block.
+  **/
+-static int sd_done(struct scsi_cmnd *SCpnt)
++static unsigned int sd_done(struct scsi_cmnd *SCpnt)
+ {
+       int result = SCpnt->result;
+       unsigned int good_bytes = result ? 0 : scsi_bufflen(SCpnt);
+@@ -2973,7 +2973,7 @@ static int sd_probe(struct device *dev)
        sdkp->disk = gd;
        sdkp->index = index;
        atomic_set(&sdkp->openers, 0);
@@ -53105,7 +53351,7 @@ index 3290a3e..d65ac1c 100644
        if (!sdp->request_queue->rq_timeout) {
                if (sdp->type != TYPE_MOD)
 diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
-index 2270bd5..98408a5 100644
+index 9d7b7db..33ecc51 100644
 --- a/drivers/scsi/sg.c
 +++ b/drivers/scsi/sg.c
 @@ -1083,7 +1083,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
@@ -53117,6 +53363,49 @@ index 2270bd5..98408a5 100644
        case BLKTRACESTART:
                return blk_trace_startstop(sdp->device->request_queue, 1);
        case BLKTRACESTOP:
+diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
+index 8bd54a6..dd037a5 100644
+--- a/drivers/scsi/sr.c
++++ b/drivers/scsi/sr.c
+@@ -80,7 +80,7 @@ static DEFINE_MUTEX(sr_mutex);
+ static int sr_probe(struct device *);
+ static int sr_remove(struct device *);
+ static int sr_init_command(struct scsi_cmnd *SCpnt);
+-static int sr_done(struct scsi_cmnd *);
++static unsigned int sr_done(struct scsi_cmnd *);
+ static int sr_runtime_suspend(struct device *dev);
+ static struct dev_pm_ops sr_pm_ops = {
+@@ -312,11 +312,11 @@ do_tur:
+  * It will be notified on the end of a SCSI read / write, and will take one
+  * of several actions based on success or failure.
+  */
+-static int sr_done(struct scsi_cmnd *SCpnt)
++static unsigned int sr_done(struct scsi_cmnd *SCpnt)
+ {
+       int result = SCpnt->result;
+-      int this_count = scsi_bufflen(SCpnt);
+-      int good_bytes = (result == 0 ? this_count : 0);
++      unsigned int this_count = scsi_bufflen(SCpnt);
++      unsigned int good_bytes = (result == 0 ? this_count : 0);
+       int block_sectors = 0;
+       long error_sector;
+       struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk);
+diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
+index 9a1c342..525ab4c 100644
+--- a/drivers/scsi/st.c
++++ b/drivers/scsi/st.c
+@@ -1274,9 +1274,9 @@ static int st_open(struct inode *inode, struct file *filp)
+       spin_lock(&st_use_lock);
+       STp->in_use = 0;
+       spin_unlock(&st_use_lock);
+-      scsi_tape_put(STp);
+       if (resumed)
+               scsi_autopm_put_device(STp->device);
++      scsi_tape_put(STp);
+       return retval;
+ }
 diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
 index c0d660f..24a5854 100644
 --- a/drivers/soc/tegra/fuse/fuse-tegra.c
@@ -53131,10 +53420,10 @@ index c0d660f..24a5854 100644
        .read = fuse_read,
  };
 diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
-index 57a1950..ae54e21 100644
+index d35c1a1..eda08dc 100644
 --- a/drivers/spi/spi.c
 +++ b/drivers/spi/spi.c
-@@ -2307,7 +2307,7 @@ int spi_bus_unlock(struct spi_master *master)
+@@ -2206,7 +2206,7 @@ int spi_bus_unlock(struct spi_master *master)
  EXPORT_SYMBOL_GPL(spi_bus_unlock);
  
  /* portable code must never pass more than 32 bytes */
@@ -53175,7 +53464,7 @@ index b41429f..2de5373 100644
                MKDEV(0, tdev->index), NULL, "%s", tdev->name);
        if (IS_ERR(tdev->dev))
 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
-index 727640e..55bf61c 100644
+index e78ddbe..ac437c0 100644
 --- a/drivers/staging/comedi/comedi_fops.c
 +++ b/drivers/staging/comedi/comedi_fops.c
 @@ -297,8 +297,8 @@ static void comedi_file_reset(struct file *file)
@@ -53189,7 +53478,7 @@ index 727640e..55bf61c 100644
  }
  
  static void comedi_file_check(struct file *file)
-@@ -1924,7 +1924,7 @@ static int do_setrsubd_ioctl(struct comedi_device *dev, unsigned long arg,
+@@ -1951,7 +1951,7 @@ static int do_setrsubd_ioctl(struct comedi_device *dev, unsigned long arg,
            !(s_old->async->cmd.flags & CMDF_WRITE))
                return -EBUSY;
  
@@ -53198,7 +53487,7 @@ index 727640e..55bf61c 100644
        return 0;
  }
  
-@@ -1966,7 +1966,7 @@ static int do_setwsubd_ioctl(struct comedi_device *dev, unsigned long arg,
+@@ -1993,7 +1993,7 @@ static int do_setwsubd_ioctl(struct comedi_device *dev, unsigned long arg,
            (s_old->async->cmd.flags & CMDF_WRITE))
                return -EBUSY;
  
@@ -53208,10 +53497,10 @@ index 727640e..55bf61c 100644
  }
  
 diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
-index 37dcf7e..f3c2016 100644
+index 53b748b..a5ae0b3 100644
 --- a/drivers/staging/fbtft/fbtft-core.c
 +++ b/drivers/staging/fbtft/fbtft-core.c
-@@ -689,7 +689,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
+@@ -680,7 +680,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
  {
        struct fb_info *info;
        struct fbtft_par *par;
@@ -53221,7 +53510,7 @@ index 37dcf7e..f3c2016 100644
        struct fbtft_platform_data *pdata = dev->platform_data;
        u8 *vmem = NULL;
 diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
-index 0dbf3f9..fed0063 100644
+index 9fd98cb..a9cf912 100644
 --- a/drivers/staging/fbtft/fbtft.h
 +++ b/drivers/staging/fbtft/fbtft.h
 @@ -106,7 +106,7 @@ struct fbtft_ops {
@@ -53260,10 +53549,10 @@ index d23c3c2..eb63c81 100644
                                           and pointers */
  #endif
 diff --git a/drivers/staging/i2o/i2o_proc.c b/drivers/staging/i2o/i2o_proc.c
-index ad84f33..c5bdf65 100644
+index 780fee3..ca9dcae 100644
 --- a/drivers/staging/i2o/i2o_proc.c
 +++ b/drivers/staging/i2o/i2o_proc.c
-@@ -255,12 +255,6 @@ static char *scsi_devices[] = {
+@@ -253,12 +253,6 @@ static char *scsi_devices[] = {
        "Array Controller Device"
  };
  
@@ -53276,7 +53565,7 @@ index ad84f33..c5bdf65 100644
  static int i2o_report_query_status(struct seq_file *seq, int block_status,
                                   char *group)
  {
-@@ -707,9 +701,9 @@ static int i2o_seq_show_status(struct seq_file *seq, void *v)
+@@ -711,9 +705,9 @@ static int i2o_seq_show_status(struct seq_file *seq, void *v)
  static int i2o_seq_show_hw(struct seq_file *seq, void *v)
  {
        struct i2o_controller *c = (struct i2o_controller *)seq->private;
@@ -53289,7 +53578,7 @@ index ad84f33..c5bdf65 100644
        int token;
        u32 hwcap;
  
-@@ -790,7 +784,6 @@ static int i2o_seq_show_ddm_table(struct seq_file *seq, void *v)
+@@ -794,7 +788,6 @@ static int i2o_seq_show_ddm_table(struct seq_file *seq, void *v)
        } *result;
  
        i2o_exec_execute_ddm_table ddm_table;
@@ -53297,7 +53586,7 @@ index ad84f33..c5bdf65 100644
  
        result = kmalloc(sizeof(*result), GFP_KERNEL);
        if (!result)
-@@ -825,8 +818,7 @@ static int i2o_seq_show_ddm_table(struct seq_file *seq, void *v)
+@@ -829,8 +822,7 @@ static int i2o_seq_show_ddm_table(struct seq_file *seq, void *v)
  
                seq_printf(seq, "%-#7x", ddm_table.i2o_vendor_id);
                seq_printf(seq, "%-#8x", ddm_table.module_id);
@@ -53307,7 +53596,7 @@ index ad84f33..c5bdf65 100644
                seq_printf(seq, "%9d  ", ddm_table.data_size);
                seq_printf(seq, "%8d", ddm_table.code_size);
  
-@@ -893,7 +885,6 @@ static int i2o_seq_show_drivers_stored(struct seq_file *seq, void *v)
+@@ -897,7 +889,6 @@ static int i2o_seq_show_drivers_stored(struct seq_file *seq, void *v)
  
        i2o_driver_result_table *result;
        i2o_driver_store_table *dst;
@@ -53315,7 +53604,7 @@ index ad84f33..c5bdf65 100644
  
        result = kmalloc(sizeof(i2o_driver_result_table), GFP_KERNEL);
        if (result == NULL)
-@@ -928,9 +919,8 @@ static int i2o_seq_show_drivers_stored(struct seq_file *seq, void *v)
+@@ -932,9 +923,8 @@ static int i2o_seq_show_drivers_stored(struct seq_file *seq, void *v)
  
                seq_printf(seq, "%-#7x", dst->i2o_vendor_id);
                seq_printf(seq, "%-#8x", dst->module_id);
@@ -53327,7 +53616,7 @@ index ad84f33..c5bdf65 100644
                seq_printf(seq, "%8d ", dst->module_size);
                seq_printf(seq, "%8d ", dst->mpb_size);
                seq_printf(seq, "0x%04x", dst->module_flags);
-@@ -1246,11 +1236,10 @@ static int i2o_seq_show_authorized_users(struct seq_file *seq, void *v)
+@@ -1250,11 +1240,10 @@ static int i2o_seq_show_authorized_users(struct seq_file *seq, void *v)
  static int i2o_seq_show_dev_identity(struct seq_file *seq, void *v)
  {
        struct i2o_device *d = (struct i2o_device *)seq->private;
@@ -53341,7 +53630,7 @@ index ad84f33..c5bdf65 100644
  
        token = i2o_parm_field_get(d, 0xF100, -1, &work32, sizeof(work32));
  
-@@ -1262,14 +1251,10 @@ static int i2o_seq_show_dev_identity(struct seq_file *seq, void *v)
+@@ -1266,14 +1255,10 @@ static int i2o_seq_show_dev_identity(struct seq_file *seq, void *v)
        seq_printf(seq, "Device Class  : %s\n", i2o_get_class_name(work16[0]));
        seq_printf(seq, "Owner TID     : %0#5x\n", work16[2]);
        seq_printf(seq, "Parent TID    : %0#5x\n", work16[3]);
@@ -53360,7 +53649,7 @@ index ad84f33..c5bdf65 100644
  
        seq_printf(seq, "Serial number : ");
        print_serial_number(seq, (u8 *) (work32 + 16),
-@@ -1306,8 +1291,6 @@ static int i2o_seq_show_ddm_identity(struct seq_file *seq, void *v)
+@@ -1310,8 +1295,6 @@ static int i2o_seq_show_ddm_identity(struct seq_file *seq, void *v)
                u8 pad[256];    // allow up to 256 byte (max) serial number
        } result;
  
@@ -53369,7 +53658,7 @@ index ad84f33..c5bdf65 100644
        token = i2o_parm_field_get(d, 0xF101, -1, &result, sizeof(result));
  
        if (token < 0) {
-@@ -1316,10 +1299,8 @@ static int i2o_seq_show_ddm_identity(struct seq_file *seq, void *v)
+@@ -1320,10 +1303,8 @@ static int i2o_seq_show_ddm_identity(struct seq_file *seq, void *v)
        }
  
        seq_printf(seq, "Registering DDM TID : 0x%03x\n", result.ddm_tid);
@@ -53382,7 +53671,7 @@ index ad84f33..c5bdf65 100644
  
        seq_printf(seq, "Serial number       : ");
        print_serial_number(seq, result.serial_number, sizeof(result) - 36);
-@@ -1343,8 +1324,6 @@ static int i2o_seq_show_uinfo(struct seq_file *seq, void *v)
+@@ -1347,8 +1328,6 @@ static int i2o_seq_show_uinfo(struct seq_file *seq, void *v)
                u8 instance_number[4];
        } result;
  
@@ -53391,7 +53680,7 @@ index ad84f33..c5bdf65 100644
        token = i2o_parm_field_get(d, 0xF102, -1, &result, sizeof(result));
  
        if (token < 0) {
-@@ -1352,14 +1331,10 @@ static int i2o_seq_show_uinfo(struct seq_file *seq, void *v)
+@@ -1356,14 +1335,10 @@ static int i2o_seq_show_uinfo(struct seq_file *seq, void *v)
                return 0;
        }
  
@@ -53410,7 +53699,7 @@ index ad84f33..c5bdf65 100644
  
        return 0;
  }
-@@ -1368,9 +1343,9 @@ static int i2o_seq_show_uinfo(struct seq_file *seq, void *v)
+@@ -1372,9 +1347,9 @@ static int i2o_seq_show_uinfo(struct seq_file *seq, void *v)
  static int i2o_seq_show_sgl_limits(struct seq_file *seq, void *v)
  {
        struct i2o_device *d = (struct i2o_device *)seq->private;
@@ -53424,7 +53713,7 @@ index ad84f33..c5bdf65 100644
  
        token = i2o_parm_field_get(d, 0xF103, -1, &work32, sizeof(work32));
 diff --git a/drivers/staging/i2o/iop.c b/drivers/staging/i2o/iop.c
-index 52334fc..d7f40b3 100644
+index 23bdbe4..4e1f340 100644
 --- a/drivers/staging/i2o/iop.c
 +++ b/drivers/staging/i2o/iop.c
 @@ -111,10 +111,10 @@ u32 i2o_cntxt_list_add(struct i2o_controller * c, void *ptr)
@@ -53450,11 +53739,39 @@ index 52334fc..d7f40b3 100644
        INIT_LIST_HEAD(&c->context_list);
  #endif
  
+diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c
+index b892f2c..9b4898a 100644
+--- a/drivers/staging/iio/accel/lis3l02dq_ring.c
++++ b/drivers/staging/iio/accel/lis3l02dq_ring.c
+@@ -118,7 +118,7 @@ static int lis3l02dq_get_buffer_element(struct iio_dev *indio_dev,
+       int scan_count = bitmap_weight(indio_dev->active_scan_mask,
+                                      indio_dev->masklength);
+-      rx_array = kcalloc(4, scan_count, GFP_KERNEL);
++      rx_array = kcalloc(scan_count, 4, GFP_KERNEL);
+       if (!rx_array)
+               return -ENOMEM;
+       ret = lis3l02dq_read_all(indio_dev, rx_array);
+diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
+index d98e229..9c59bc2 100644
+--- a/drivers/staging/iio/adc/ad7280a.c
++++ b/drivers/staging/iio/adc/ad7280a.c
+@@ -547,8 +547,8 @@ static int ad7280_attr_init(struct ad7280_state *st)
+ {
+       int dev, ch, cnt;
+-      st->iio_attr = kcalloc(2, sizeof(*st->iio_attr) *
+-                             (st->slave_num + 1) * AD7280A_CELLS_PER_DEV,
++      st->iio_attr = kcalloc(sizeof(*st->iio_attr) *
++                             (st->slave_num + 1) * AD7280A_CELLS_PER_DEV, 2,
+                              GFP_KERNEL);
+       if (st->iio_attr == NULL)
+               return -ENOMEM;
 diff --git a/drivers/staging/lustre/lnet/selftest/brw_test.c b/drivers/staging/lustre/lnet/selftest/brw_test.c
-index 463da07..e791ce9 100644
+index 658f458..0564216 100644
 --- a/drivers/staging/lustre/lnet/selftest/brw_test.c
 +++ b/drivers/staging/lustre/lnet/selftest/brw_test.c
-@@ -488,13 +488,11 @@ brw_server_handle(struct srpc_server_rpc *rpc)
+@@ -487,13 +487,11 @@ brw_server_handle(struct srpc_server_rpc *rpc)
        return 0;
  }
  
@@ -53474,7 +53791,7 @@ index 463da07..e791ce9 100644
  
  srpc_service_t brw_test_service;
 diff --git a/drivers/staging/lustre/lnet/selftest/framework.c b/drivers/staging/lustre/lnet/selftest/framework.c
-index 5709148..ccd9e0d 100644
+index a93a90d..c51dde6 100644
 --- a/drivers/staging/lustre/lnet/selftest/framework.c
 +++ b/drivers/staging/lustre/lnet/selftest/framework.c
 @@ -1628,12 +1628,10 @@ static srpc_service_t sfw_services[] = {
@@ -53490,21 +53807,21 @@ index 5709148..ccd9e0d 100644
  extern void brw_init_test_service(void);
  
  
-@@ -1675,12 +1673,10 @@ sfw_startup (void)
+@@ -1675,12 +1673,10 @@ sfw_startup(void)
        INIT_LIST_HEAD(&sfw_data.fw_zombie_rpcs);
        INIT_LIST_HEAD(&sfw_data.fw_zombie_sessions);
  
 -      brw_init_test_client();
        brw_init_test_service();
        rc = sfw_register_test(&brw_test_service, &brw_test_client);
-       LASSERT (rc == 0);
+       LASSERT(rc == 0);
  
 -      ping_init_test_client();
        ping_init_test_service();
        rc = sfw_register_test(&ping_test_service, &ping_test_client);
-       LASSERT (rc == 0);
+       LASSERT(rc == 0);
 diff --git a/drivers/staging/lustre/lnet/selftest/ping_test.c b/drivers/staging/lustre/lnet/selftest/ping_test.c
-index d8c0df6..5041cbb 100644
+index 644069a..83cbd26 100644
 --- a/drivers/staging/lustre/lnet/selftest/ping_test.c
 +++ b/drivers/staging/lustre/lnet/selftest/ping_test.c
 @@ -211,14 +211,12 @@ ping_server_handle(struct srpc_server_rpc *rpc)
@@ -53529,7 +53846,7 @@ index d8c0df6..5041cbb 100644
  srpc_service_t ping_test_service;
  void ping_init_test_service(void)
 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h
-index 83bc0a9..12ba00a 100644
+index bac9902..0225fe1 100644
 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h
 +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h
 @@ -1139,7 +1139,7 @@ struct ldlm_callback_suite {
@@ -53567,11 +53884,28 @@ index a4c252f..b21acac 100644
  
        CDEBUG(D_DLMTRACE,
               "flags %#llx owner %llu pid %u mode %u start %llu end %llu\n",
-diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c
-index c539e37..743b213 100644
---- a/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c
-+++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c
-@@ -237,7 +237,7 @@ static int proc_console_max_delay_cs(struct ctl_table *table, int write,
+diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c
+index f0ee76a..1d01af9 100644
+--- a/drivers/staging/lustre/lustre/libcfs/module.c
++++ b/drivers/staging/lustre/lustre/libcfs/module.c
+@@ -380,11 +380,11 @@ out:
+ struct cfs_psdev_ops libcfs_psdev_ops = {
+-      libcfs_psdev_open,
+-      libcfs_psdev_release,
+-      NULL,
+-      NULL,
+-      libcfs_ioctl
++      .p_open = libcfs_psdev_open,
++      .p_close = libcfs_psdev_release,
++      .p_read = NULL,
++      .p_write = NULL,
++      .p_ioctl = libcfs_ioctl
+ };
+ static int init_libcfs_module(void)
+@@ -631,7 +631,7 @@ static int proc_console_max_delay_cs(struct ctl_table *table, int write,
                                     loff_t *ppos)
  {
        int rc, max_delay_cs;
@@ -53580,7 +53914,7 @@ index c539e37..743b213 100644
        long d;
  
        dummy.data = &max_delay_cs;
-@@ -270,7 +270,7 @@ static int proc_console_min_delay_cs(struct ctl_table *table, int write,
+@@ -664,7 +664,7 @@ static int proc_console_min_delay_cs(struct ctl_table *table, int write,
                                     loff_t *ppos)
  {
        int rc, min_delay_cs;
@@ -53589,7 +53923,7 @@ index c539e37..743b213 100644
        long d;
  
        dummy.data = &min_delay_cs;
-@@ -302,7 +302,7 @@ static int proc_console_backoff(struct ctl_table *table, int write,
+@@ -696,7 +696,7 @@ static int proc_console_backoff(struct ctl_table *table, int write,
                                void __user *buffer, size_t *lenp, loff_t *ppos)
  {
        int rc, backoff;
@@ -53598,27 +53932,6 @@ index c539e37..743b213 100644
  
        dummy.data = &backoff;
        dummy.proc_handler = &proc_dointvec;
-diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c
-index 7dc77dd..289d03e 100644
---- a/drivers/staging/lustre/lustre/libcfs/module.c
-+++ b/drivers/staging/lustre/lustre/libcfs/module.c
-@@ -313,11 +313,11 @@ out:
- struct cfs_psdev_ops libcfs_psdev_ops = {
--      libcfs_psdev_open,
--      libcfs_psdev_release,
--      NULL,
--      NULL,
--      libcfs_ioctl
-+      .p_open = libcfs_psdev_open,
-+      .p_close = libcfs_psdev_release,
-+      .p_read = NULL,
-+      .p_write = NULL,
-+      .p_ioctl = libcfs_ioctl
- };
- extern int insert_proc(void);
 diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
 index 22667db..8b703b6 100644
 --- a/drivers/staging/octeon/ethernet-rx.c
@@ -53656,10 +53969,10 @@ index 22667db..8b703b6 100644
  #endif
                                dev_kfree_skb_irq(skb);
 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
-index 460e854..f926452 100644
+index fbbe866..2943243 100644
 --- a/drivers/staging/octeon/ethernet.c
 +++ b/drivers/staging/octeon/ethernet.c
-@@ -241,11 +241,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
+@@ -251,11 +251,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
                 * since the RX tasklet also increments it.
                 */
  #ifdef CONFIG_64BIT
@@ -53701,11 +54014,61 @@ index 070cc03..6806e37 100644
  
  struct io_req {
        struct list_head list;
+diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
+index dbbb2f8..5232114 100644
+--- a/drivers/staging/sm750fb/sm750.c
++++ b/drivers/staging/sm750fb/sm750.c
+@@ -780,6 +780,7 @@ static struct fb_ops lynxfb_ops = {
+       .fb_set_par = lynxfb_ops_set_par,
+       .fb_setcolreg = lynxfb_ops_setcolreg,
+       .fb_blank = lynxfb_ops_blank,
++      .fb_pan_display = lynxfb_ops_pan_display,
+       .fb_fillrect = cfb_fillrect,
+       .fb_imageblit = cfb_imageblit,
+       .fb_copyarea = cfb_copyarea,
+@@ -827,8 +828,10 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
+       par->index = index;
+       output->channel = &crtc->channel;
+       sm750fb_set_drv(par);
+-      lynxfb_ops.fb_pan_display = lynxfb_ops_pan_display;
++      pax_open_kernel();
++      *(void **)&lynxfb_ops.fb_pan_display = lynxfb_ops_pan_display;
++      pax_close_kernel();
+       /* set current cursor variable and proc pointer,
+        * must be set after crtc member initialized */
+@@ -850,7 +853,9 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
+       crtc->cursor.share = share;
+               memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
+       if (!g_hwcursor) {
+-              lynxfb_ops.fb_cursor = NULL;
++              pax_open_kernel();
++              *(void **)&lynxfb_ops.fb_cursor = NULL;
++              pax_close_kernel();
+               crtc->cursor.disable(&crtc->cursor);
+       }
+@@ -858,9 +863,11 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
+       /* set info->fbops, must be set before fb_find_mode */
+       if (!share->accel_off) {
+               /* use 2d acceleration */
+-              lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
+-              lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
+-              lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
++              pax_open_kernel();
++              *(void **)&lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
++              *(void **)&lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
++              *(void **)&lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
++              pax_close_kernel();
+       }
+       info->fbops = &lynxfb_ops;
 diff --git a/drivers/staging/unisys/visorchipset/visorchipset.h b/drivers/staging/unisys/visorchipset/visorchipset.h
-index 98f3ba4..c6a7fce 100644
+index bd46df9..a0a5274 100644
 --- a/drivers/staging/unisys/visorchipset/visorchipset.h
 +++ b/drivers/staging/unisys/visorchipset/visorchipset.h
-@@ -171,7 +171,7 @@ struct visorchipset_busdev_notifiers {
+@@ -170,7 +170,7 @@ struct visorchipset_busdev_notifiers {
        void (*device_resume)(ulong bus_no, ulong dev_no);
        int (*get_channel_info)(uuid_le type_uuid, ulong *min_size,
                                ulong *max_size);
@@ -53714,7 +54077,7 @@ index 98f3ba4..c6a7fce 100644
  
  /*  These functions live inside visorchipset, and will be called to indicate
   *  responses to specific events (by code outside of visorchipset).
-@@ -186,7 +186,7 @@ struct visorchipset_busdev_responders {
+@@ -185,7 +185,7 @@ struct visorchipset_busdev_responders {
        void (*device_destroy)(ulong bus_no, ulong dev_no, int response);
        void (*device_pause)(ulong bus_no, ulong dev_no, int response);
        void (*device_resume)(ulong bus_no, ulong dev_no, int response);
@@ -53724,10 +54087,10 @@ index 98f3ba4..c6a7fce 100644
  /** Register functions (in the bus driver) to get called by visorchipset
   *  whenever a bus or device appears for which this service partition is
 diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c
-index 9512af6..045bf5a 100644
+index 18b0f97..9c7716e 100644
 --- a/drivers/target/sbp/sbp_target.c
 +++ b/drivers/target/sbp/sbp_target.c
-@@ -62,7 +62,7 @@ static const u32 sbp_unit_directory_template[] = {
+@@ -61,7 +61,7 @@ static const u32 sbp_unit_directory_template[] = {
  
  #define SESSION_MAINTENANCE_INTERVAL HZ
  
@@ -53736,7 +54099,7 @@ index 9512af6..045bf5a 100644
  
  static void session_maintenance_work(struct work_struct *);
  static int sbp_run_transaction(struct fw_card *, int, int, int, int,
-@@ -444,7 +444,7 @@ static void sbp_management_request_login(
+@@ -443,7 +443,7 @@ static void sbp_management_request_login(
        login->lun = se_lun;
        login->status_fifo_addr = sbp2_pointer_to_addr(&req->orb.status_fifo);
        login->exclusive = LOGIN_ORB_EXCLUSIVE(be32_to_cpu(req->orb.misc));
@@ -53746,10 +54109,10 @@ index 9512af6..045bf5a 100644
        login->tgt_agt = sbp_target_agent_register(login);
        if (IS_ERR(login->tgt_agt)) {
 diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
-index 7faa6ae..ae6c410 100644
+index ce5f768..a4f884a 100644
 --- a/drivers/target/target_core_device.c
 +++ b/drivers/target/target_core_device.c
-@@ -1495,7 +1495,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
+@@ -1496,7 +1496,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
        spin_lock_init(&dev->se_tmr_lock);
        spin_lock_init(&dev->qf_cmd_lock);
        sema_init(&dev->caw_sem, 1);
@@ -53759,10 +54122,10 @@ index 7faa6ae..ae6c410 100644
        spin_lock_init(&dev->t10_wwn.t10_vpd_lock);
        INIT_LIST_HEAD(&dev->t10_pr.registration_list);
 diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index f786de0..04b643e 100644
+index 675f2d9..1389429 100644
 --- a/drivers/target/target_core_transport.c
 +++ b/drivers/target/target_core_transport.c
-@@ -1168,7 +1168,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
+@@ -1208,7 +1208,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
         * Used to determine when ORDERED commands should go from
         * Dormant to Active status.
         */
@@ -54274,7 +54637,7 @@ index 14c54e0..1efd4f2 100644
        tty_port_tty_set(&ch->port, tty);
        mutex_lock(&ch->port.mutex);
 diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
-index c434376..114ce13 100644
+index 2c34c32..81d10e1 100644
 --- a/drivers/tty/n_gsm.c
 +++ b/drivers/tty/n_gsm.c
 @@ -1644,7 +1644,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
@@ -54296,7 +54659,7 @@ index c434376..114ce13 100644
  
        dlci->modem_rx = 0;
 diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
-index cf6e0f2..4283167 100644
+index 396344c..875c1d6 100644
 --- a/drivers/tty/n_tty.c
 +++ b/drivers/tty/n_tty.c
 @@ -116,7 +116,7 @@ struct n_tty_data {
@@ -54308,7 +54671,7 @@ index cf6e0f2..4283167 100644
        size_t line_start;
  
        /* protected by output lock */
-@@ -2547,6 +2547,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
+@@ -2572,6 +2572,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
  {
        *ops = tty_ldisc_N_TTY;
        ops->owner = NULL;
@@ -54318,10 +54681,10 @@ index cf6e0f2..4283167 100644
  }
  EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
 diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
-index e72ee62..d977ad9 100644
+index 4d5e840..a2340a6 100644
 --- a/drivers/tty/pty.c
 +++ b/drivers/tty/pty.c
-@@ -848,8 +848,10 @@ static void __init unix98_pty_init(void)
+@@ -849,8 +849,10 @@ static void __init unix98_pty_init(void)
                panic("Couldn't register Unix98 pts driver");
  
        /* Now create the /dev/ptmx special device */
@@ -54364,6 +54727,35 @@ index c8dd8dc..dca6cfd 100644
                atomic_dec(&rp_num_ports_open);
        clear_bit((info->aiop * 8) + info->chan, (void *) &xmit_flags[info->board]);
        spin_unlock_irqrestore(&info->port.lock, flags);
+diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
+index 4506e40..ac0b470 100644
+--- a/drivers/tty/serial/8250/8250_core.c
++++ b/drivers/tty/serial/8250/8250_core.c
+@@ -3241,9 +3241,9 @@ static void univ8250_release_port(struct uart_port *port)
+ static void univ8250_rsa_support(struct uart_ops *ops)
+ {
+-      ops->config_port  = univ8250_config_port;
+-      ops->request_port = univ8250_request_port;
+-      ops->release_port = univ8250_release_port;
++      *(void **)&ops->config_port  = univ8250_config_port;
++      *(void **)&ops->request_port = univ8250_request_port;
++      *(void **)&ops->release_port = univ8250_release_port;
+ }
+ #else
+@@ -3286,8 +3286,10 @@ static void __init serial8250_isa_init_ports(void)
+       }
+       /* chain base port ops to support Remote Supervisor Adapter */
+-      univ8250_port_ops = *base_ops;
++      pax_open_kernel();
++      memcpy((void *)&univ8250_port_ops, base_ops, sizeof univ8250_port_ops);
+       univ8250_rsa_support(&univ8250_port_ops);
++      pax_close_kernel();
+       if (share_irqs)
+               irqflag = IRQF_SHARED;
 diff --git a/drivers/tty/serial/ioc4_serial.c b/drivers/tty/serial/ioc4_serial.c
 index aa28209..e08fb85 100644
 --- a/drivers/tty/serial/ioc4_serial.c
@@ -54539,7 +54931,7 @@ index b73889c..9f74f0a 100644
        if (unlikely(line < 0 || line >= UART_NR))
                return -ENXIO;
 diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
-index cf08876..711e0bf 100644
+index a0ae942..befa48d 100644
 --- a/drivers/tty/serial/samsung.c
 +++ b/drivers/tty/serial/samsung.c
 @@ -987,11 +987,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
@@ -54559,7 +54951,7 @@ index cf08876..711e0bf 100644
        dbg("s3c24xx_serial_startup: port=%p (%08llx,%p)\n",
            port, (unsigned long long)port->mapbase, port->membase);
  
-@@ -1697,10 +1702,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
+@@ -1698,10 +1703,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
        /* setup info for port */
        port->dev       = &platdev->dev;
  
@@ -54571,10 +54963,10 @@ index cf08876..711e0bf 100644
  
        if (cfg->uart_flags & UPF_CONS_FLOW) {
 diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
-index 6a1055a..5ca9ad9 100644
+index 0b7bb12..ebe191a 100644
 --- a/drivers/tty/serial/serial_core.c
 +++ b/drivers/tty/serial/serial_core.c
-@@ -1377,7 +1377,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
+@@ -1376,7 +1376,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
                state = drv->state + tty->index;
                port = &state->port;
                spin_lock_irq(&port->lock);
@@ -54583,7 +54975,7 @@ index 6a1055a..5ca9ad9 100644
                spin_unlock_irq(&port->lock);
                return;
        }
-@@ -1387,7 +1387,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
+@@ -1386,7 +1386,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
  
        pr_debug("uart_close(%d) called\n", uport ? uport->line : -1);
  
@@ -54592,7 +54984,7 @@ index 6a1055a..5ca9ad9 100644
                return;
  
        /*
-@@ -1511,7 +1511,7 @@ static void uart_hangup(struct tty_struct *tty)
+@@ -1510,7 +1510,7 @@ static void uart_hangup(struct tty_struct *tty)
                uart_flush_buffer(tty);
                uart_shutdown(tty, state);
                spin_lock_irqsave(&port->lock, flags);
@@ -54601,7 +54993,7 @@ index 6a1055a..5ca9ad9 100644
                clear_bit(ASYNCB_NORMAL_ACTIVE, &port->flags);
                spin_unlock_irqrestore(&port->lock, flags);
                tty_port_tty_set(port, NULL);
-@@ -1598,7 +1598,7 @@ static int uart_open(struct tty_struct *tty, struct file *filp)
+@@ -1597,7 +1597,7 @@ static int uart_open(struct tty_struct *tty, struct file *filp)
        pr_debug("uart_open(%d) called\n", line);
  
        spin_lock_irq(&port->lock);
@@ -54610,6 +55002,26 @@ index 6a1055a..5ca9ad9 100644
        spin_unlock_irq(&port->lock);
  
        /*
+diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
+index b1c6bd3..5f038e2 100644
+--- a/drivers/tty/serial/uartlite.c
++++ b/drivers/tty/serial/uartlite.c
+@@ -341,13 +341,13 @@ static int ulite_request_port(struct uart_port *port)
+               return -EBUSY;
+       }
+-      port->private_data = &uartlite_be;
++      port->private_data = (void *)&uartlite_be;
+       ret = uart_in32(ULITE_CONTROL, port);
+       uart_out32(ULITE_CONTROL_RST_TX, ULITE_CONTROL, port);
+       ret = uart_in32(ULITE_STATUS, port);
+       /* Endianess detection */
+       if ((ret & ULITE_STATUS_TXEMPTY) != ULITE_STATUS_TXEMPTY)
+-              port->private_data = &uartlite_le;
++              port->private_data = (void *)&uartlite_le;
+       return 0;
+ }
 diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
 index b799170..87dafd5 100644
 --- a/drivers/tty/synclink.c
@@ -54996,10 +55408,10 @@ index c3f9091..abe4601 100644
        if (!retval)
                port->flags |= ASYNC_NORMAL_ACTIVE;
 diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
-index 259a4d5..9b0c9e7 100644
+index 843f2cd..7d530a6 100644
 --- a/drivers/tty/sysrq.c
 +++ b/drivers/tty/sysrq.c
-@@ -1085,7 +1085,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
+@@ -1086,7 +1086,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
  static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
                                   size_t count, loff_t *ppos)
  {
@@ -55009,10 +55421,10 @@ index 259a4d5..9b0c9e7 100644
  
                if (get_user(c, buf))
 diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
-index 2bb4dfc..a7f6e86 100644
+index e569546..fbce20c 100644
 --- a/drivers/tty/tty_io.c
 +++ b/drivers/tty/tty_io.c
-@@ -3503,7 +3503,7 @@ EXPORT_SYMBOL(tty_devnum);
+@@ -3509,7 +3509,7 @@ EXPORT_SYMBOL(tty_devnum);
  
  void tty_default_fops(struct file_operations *fops)
  {
@@ -55190,7 +55602,7 @@ index 8a89f6e..50b32af 100644
                        ret = -EPERM;
                        goto reterr;
 diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
-index 6276f13..84f2449 100644
+index 65bf067..b3b2e13 100644
 --- a/drivers/uio/uio.c
 +++ b/drivers/uio/uio.c
 @@ -25,6 +25,7 @@
@@ -55398,7 +55810,7 @@ index 2a3bbdf..91d72cf 100644
                file->f_version = event_count;
                return POLLIN | POLLRDNORM;
 diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
-index 1163553..f292679 100644
+index 4b0448c..fc84bec 100644
 --- a/drivers/usb/core/devio.c
 +++ b/drivers/usb/core/devio.c
 @@ -187,7 +187,7 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
@@ -55527,10 +55939,10 @@ index d269738..7340cd7 100644
  static DEVICE_ATTR_RO(urbnum);
  
 diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
-index b1fb9ae..4224885 100644
+index 8d5b2f4..3896940 100644
 --- a/drivers/usb/core/usb.c
 +++ b/drivers/usb/core/usb.c
-@@ -431,7 +431,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
+@@ -447,7 +447,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
        set_dev_node(&dev->dev, dev_to_node(bus->controller));
        dev->state = USB_STATE_ATTACHED;
        dev->lpm_disable_count = 1;
@@ -55580,8 +55992,21 @@ index 8cfc319..4868255 100644
  
        return 0;
  }
+diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
+index 0495c94..289e201 100644
+--- a/drivers/usb/gadget/configfs.c
++++ b/drivers/usb/gadget/configfs.c
+@@ -571,7 +571,7 @@ static struct config_group *function_make(
+       if (IS_ERR(fi))
+               return ERR_CAST(fi);
+-      ret = config_item_set_name(&fi->group.cg_item, name);
++      ret = config_item_set_name(&fi->group.cg_item, "%s", name);
+       if (ret) {
+               usb_put_function_instance(fi);
+               return ERR_PTR(ret);
 diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c
-index 9719abf..789d5d9 100644
+index 7856b33..8b7fe09 100644
 --- a/drivers/usb/gadget/function/f_uac1.c
 +++ b/drivers/usb/gadget/function/f_uac1.c
 @@ -14,6 +14,7 @@
@@ -55593,10 +56018,10 @@ index 9719abf..789d5d9 100644
  #include "u_uac1.h"
  
 diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c
-index 491082a..dfd7d17 100644
+index 7ee05793..2e31e99 100644
 --- a/drivers/usb/gadget/function/u_serial.c
 +++ b/drivers/usb/gadget/function/u_serial.c
-@@ -729,9 +729,9 @@ static int gs_open(struct tty_struct *tty, struct file *file)
+@@ -732,9 +732,9 @@ static int gs_open(struct tty_struct *tty, struct file *file)
                        spin_lock_irq(&port->port_lock);
  
                        /* already open?  Great. */
@@ -55608,7 +56033,7 @@ index 491082a..dfd7d17 100644
  
                        /* currently opening/closing? wait ... */
                        } else if (port->openclose) {
-@@ -790,7 +790,7 @@ static int gs_open(struct tty_struct *tty, struct file *file)
+@@ -793,7 +793,7 @@ static int gs_open(struct tty_struct *tty, struct file *file)
        tty->driver_data = port;
        port->port.tty = tty;
  
@@ -55617,7 +56042,7 @@ index 491082a..dfd7d17 100644
        port->openclose = false;
  
        /* if connected, start the I/O stream */
-@@ -832,11 +832,11 @@ static void gs_close(struct tty_struct *tty, struct file *file)
+@@ -835,11 +835,11 @@ static void gs_close(struct tty_struct *tty, struct file *file)
  
        spin_lock_irq(&port->port_lock);
  
@@ -55632,7 +56057,7 @@ index 491082a..dfd7d17 100644
                goto exit;
        }
  
-@@ -846,7 +846,7 @@ static void gs_close(struct tty_struct *tty, struct file *file)
+@@ -849,7 +849,7 @@ static void gs_close(struct tty_struct *tty, struct file *file)
         * and sleep if necessary
         */
        port->openclose = true;
@@ -55641,7 +56066,7 @@ index 491082a..dfd7d17 100644
  
        gser = port->port_usb;
        if (gser && gser->disconnect)
-@@ -1062,7 +1062,7 @@ static int gs_closed(struct gs_port *port)
+@@ -1065,7 +1065,7 @@ static int gs_closed(struct gs_port *port)
        int cond;
  
        spin_lock_irq(&port->port_lock);
@@ -55650,7 +56075,7 @@ index 491082a..dfd7d17 100644
        spin_unlock_irq(&port->port_lock);
        return cond;
  }
-@@ -1205,7 +1205,7 @@ int gserial_connect(struct gserial *gser, u8 port_num)
+@@ -1208,7 +1208,7 @@ int gserial_connect(struct gserial *gser, u8 port_num)
        /* if it's already open, start I/O ... and notify the serial
         * protocol about open/close status (connect/disconnect).
         */
@@ -55659,7 +56084,7 @@ index 491082a..dfd7d17 100644
                pr_debug("gserial_connect: start ttyGS%d\n", port->port_num);
                gs_start_io(port);
                if (gser->connect)
-@@ -1252,7 +1252,7 @@ void gserial_disconnect(struct gserial *gser)
+@@ -1255,7 +1255,7 @@ void gserial_disconnect(struct gserial *gser)
  
        port->port_usb = NULL;
        gser->ioport = NULL;
@@ -55668,7 +56093,7 @@ index 491082a..dfd7d17 100644
                wake_up_interruptible(&port->drain_wait);
                if (port->port.tty)
                        tty_hangup(port->port.tty);
-@@ -1268,7 +1268,7 @@ void gserial_disconnect(struct gserial *gser)
+@@ -1271,7 +1271,7 @@ void gserial_disconnect(struct gserial *gser)
  
        /* finally, free any unused/unusable I/O buffers */
        spin_lock_irqsave(&port->port_lock, flags);
@@ -55690,7 +56115,7 @@ index c78c841..48fd281 100644
  #include "u_uac1.h"
  
 diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
-index 7354d01..299478e 100644
+index 6920844..480bb7e 100644
 --- a/drivers/usb/host/ehci-hub.c
 +++ b/drivers/usb/host/ehci-hub.c
 @@ -772,7 +772,7 @@ static struct urb *request_single_step_set_feature_urb(
@@ -55742,7 +56167,7 @@ index 1db0626..4948782 100644
  }
  
 diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c
-index b3d245e..99549ed 100644
+index a0a3827..d7ec10b 100644
 --- a/drivers/usb/misc/appledisplay.c
 +++ b/drivers/usb/misc/appledisplay.c
 @@ -84,7 +84,7 @@ struct appledisplay {
@@ -55830,7 +56255,7 @@ index a863a98..d272795 100644
        /*
         * NOTE:
 diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
-index 11f6f61..1087910 100644
+index e9ef1ec..c3a0b04 100644
 --- a/drivers/usb/usbip/vhci_hcd.c
 +++ b/drivers/usb/usbip/vhci_hcd.c
 @@ -440,7 +440,7 @@ static void vhci_tx_urb(struct urb *urb)
@@ -55909,10 +56334,10 @@ index 69af4fd..da390d7 100644
  
  /* Return the xfer's ID. */
 diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
-index 837d177..170724af 100644
+index e1278fe..7fdeac4 100644
 --- a/drivers/vfio/vfio.c
 +++ b/drivers/vfio/vfio.c
-@@ -518,7 +518,7 @@ static int vfio_group_nb_add_dev(struct vfio_group *group, struct device *dev)
+@@ -517,7 +517,7 @@ static int vfio_group_nb_add_dev(struct vfio_group *group, struct device *dev)
                return 0;
  
        /* TODO Prevent device auto probing */
@@ -56021,7 +56446,7 @@ index 1b0b233..6f34c2c 100644
                err = -ENOSPC;
        }
 diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
-index aedf2fb..47c9aca 100644
+index 0156954..c07d4e0 100644
 --- a/drivers/video/fbdev/aty/aty128fb.c
 +++ b/drivers/video/fbdev/aty/aty128fb.c
 @@ -149,7 +149,7 @@ enum {
@@ -56115,7 +56540,7 @@ index 0705d88..d9429bf 100644
        data = (__u32) (unsigned long) fix->smem_start;
        err |= put_user(data, &fix32->smem_start);
 diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
-index 4254336..282567e 100644
+index 807ee22..7814cd6 100644
 --- a/drivers/video/fbdev/hyperv_fb.c
 +++ b/drivers/video/fbdev/hyperv_fb.c
 @@ -240,7 +240,7 @@ static uint screen_fb_size;
@@ -56221,10 +56646,10 @@ index fe92eed..106e085 100644
        outreg(draw, GDC_REG_DRAW_BASE, 0);
        outreg(draw, GDC_REG_MODE_MISC, 0x8000);
 diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
-index def0412..fed6529 100644
+index 4273c6e..b413013 100644
 --- a/drivers/video/fbdev/nvidia/nvidia.c
 +++ b/drivers/video/fbdev/nvidia/nvidia.c
-@@ -669,19 +669,23 @@ static int nvidiafb_set_par(struct fb_info *info)
+@@ -665,19 +665,23 @@ static int nvidiafb_set_par(struct fb_info *info)
        info->fix.line_length = (info->var.xres_virtual *
                                 info->var.bits_per_pixel) >> 3;
        if (info->var.accel_flags) {
@@ -56256,7 +56681,7 @@ index def0412..fed6529 100644
                info->pixmap.scan_align = 1;
                info->flags |= FBINFO_HWACCEL_DISABLED;
                info->flags &= ~FBINFO_READS_FAST;
-@@ -1173,8 +1177,11 @@ static int nvidia_set_fbinfo(struct fb_info *info)
+@@ -1169,8 +1173,11 @@ static int nvidia_set_fbinfo(struct fb_info *info)
        info->pixmap.size = 8 * 1024;
        info->pixmap.flags = FB_PIXMAP_SYSTEM;
  
@@ -56271,7 +56696,7 @@ index def0412..fed6529 100644
        info->var.accel_flags = (!noaccel);
  
 diff --git a/drivers/video/fbdev/omap2/dss/display.c b/drivers/video/fbdev/omap2/dss/display.c
-index 2412a0d..294215b 100644
+index ef5b902..47cf7f5 100644
 --- a/drivers/video/fbdev/omap2/dss/display.c
 +++ b/drivers/video/fbdev/omap2/dss/display.c
 @@ -161,12 +161,14 @@ int omapdss_register_display(struct omap_dss_device *dssdev)
@@ -56310,7 +56735,7 @@ index 83433cb..71e9b98 100644
                        FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA;
                break;
 diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
-index d3013cd..95b8285 100644
+index 82c0a8c..42499a1 100644
 --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
 +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
 @@ -439,9 +439,9 @@ static unsigned long lcdc_sys_read_data(void *handle)
@@ -59415,10 +59840,10 @@ index 3c14e43..2630570 100644
 +4 4 4  4 4 4  4 4 4  4 4 4  4 4 4  4 4 4
 +4 4 4  4 4 4
 diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
-index 2b8553b..e1a482b 100644
+index 3838795..0d48d61 100644
 --- a/drivers/xen/events/events_base.c
 +++ b/drivers/xen/events/events_base.c
-@@ -1564,7 +1564,7 @@ void xen_irq_resume(void)
+@@ -1568,7 +1568,7 @@ void xen_irq_resume(void)
        restore_pirqs();
  }
  
@@ -59427,7 +59852,7 @@ index 2b8553b..e1a482b 100644
        .name                   = "xen-dyn",
  
        .irq_disable            = disable_dynirq,
-@@ -1578,7 +1578,7 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
+@@ -1582,7 +1582,7 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
        .irq_retrigger          = retrigger_dynirq,
  };
  
@@ -59436,7 +59861,7 @@ index 2b8553b..e1a482b 100644
        .name                   = "xen-pirq",
  
        .irq_startup            = startup_pirq,
-@@ -1598,7 +1598,7 @@ static struct irq_chip xen_pirq_chip __read_mostly = {
+@@ -1602,7 +1602,7 @@ static struct irq_chip xen_pirq_chip __read_mostly = {
        .irq_retrigger          = retrigger_dynirq,
  };
  
@@ -59445,6 +59870,21 @@ index 2b8553b..e1a482b 100644
        .name                   = "xen-percpu",
  
        .irq_disable            = disable_dynirq,
+diff --git a/drivers/xen/evtchn.c b/drivers/xen/evtchn.c
+index 00f40f0..e3c0b15 100644
+--- a/drivers/xen/evtchn.c
++++ b/drivers/xen/evtchn.c
+@@ -201,8 +201,8 @@ static ssize_t evtchn_read(struct file *file, char __user *buf,
+       /* Byte lengths of two chunks. Chunk split (if any) is at ring wrap. */
+       if (((c ^ p) & EVTCHN_RING_SIZE) != 0) {
+-              bytes1 = (EVTCHN_RING_SIZE - EVTCHN_RING_MASK(c)) *
+-                      sizeof(evtchn_port_t);
++              bytes1 = EVTCHN_RING_SIZE - EVTCHN_RING_MASK(c);
++              bytes1 *= sizeof(evtchn_port_t);
+               bytes2 = EVTCHN_RING_MASK(p) * sizeof(evtchn_port_t);
+       } else {
+               bytes1 = (p - c) * sizeof(evtchn_port_t);
 diff --git a/drivers/xen/xenfs/xenstored.c b/drivers/xen/xenfs/xenstored.c
 index fef20db..d28b1ab 100644
 --- a/drivers/xen/xenfs/xenstored.c
@@ -59463,10 +59903,10 @@ index fef20db..d28b1ab 100644
                return -ENOMEM;
        return 0;
 diff --git a/firmware/Makefile b/firmware/Makefile
-index e297e1b..6900c31 100644
+index e297e1b..aeb0982 100644
 --- a/firmware/Makefile
 +++ b/firmware/Makefile
-@@ -35,6 +35,7 @@ fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.2.9.0.fw \
+@@ -35,9 +35,11 @@ fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.2.9.0.fw \
                              bnx2x/bnx2x-e1h-6.2.9.0.fw \
                              bnx2x/bnx2x-e2-6.2.9.0.fw
  fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \
@@ -59474,12 +59914,19 @@ index e297e1b..6900c31 100644
                             bnx2/bnx2-rv2p-09-6.0.17.fw \
                             bnx2/bnx2-rv2p-09ax-6.0.17.fw \
                             bnx2/bnx2-mips-06-6.2.1.fw \
++                           bnx2/bnx2-mips-06-6.2.3.fw \
+                            bnx2/bnx2-rv2p-06-6.0.15.fw
+ fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin
+ fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
 diff --git a/firmware/WHENCE b/firmware/WHENCE
-index 0c4d96d..7563083 100644
+index 0c4d96d..b17700f 100644
 --- a/firmware/WHENCE
 +++ b/firmware/WHENCE
-@@ -655,19 +655,20 @@ Driver: BNX2 - Broadcom NetXtremeII
+@@ -653,21 +653,23 @@ Found in hex form in kernel source.
+ Driver: BNX2 - Broadcom NetXtremeII
  File: bnx2/bnx2-mips-06-6.2.1.fw
++File: bnx2/bnx2-mips-06-6.2.3.fw
  File: bnx2/bnx2-rv2p-06-6.0.15.fw
  File: bnx2/bnx2-mips-09-6.2.1a.fw
 +File: bnx2/bnx2-mips-09-6.2.1b.fw
@@ -59508,6 +59955,5816 @@ index 0c4d96d..7563083 100644
  
  --------------------------------------------------------------------------
  
+diff --git a/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
+new file mode 100644
+index 0000000..da72bf1
+--- /dev/null
++++ b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
+@@ -0,0 +1,5804 @@
++:10000000080001180800000000004A68000000C84D
++:1000100000000000000000000000000008004A6826
++:100020000000001400004B30080000A00800000091
++:100030000000569400004B44080058200000008443
++:100040000000A1D808005694000001580000A25CEE
++:100050000800321008000000000072F00000A3B495
++:10006000000000000000000000000000080072F026
++:1000700000000024000116A40800049008000400F9
++:10008000000017D4000116C80000000000000000A6
++:100090000000000000000000000000000000000060
++:1000A000080000A80800000000003BFC00012E9C96
++:1000B0000000000000000000000000000000000040
++:1000C00000000000000000000A00004600000000E0
++:1000D000000000000000000D636F6D362E322E33DD
++:1000E0000000000006020302000000000000000300
++:1000F000000000C800000032000000030000000003
++:1001000000000000000000000000000000000000EF
++:1001100000000010000001360000EA600000000549
++:1001200000000000000000000000000000000008C7
++:1001300000000000000000000000000000000000BF
++:1001400000000000000000000000000000000000AF
++:10015000000000000000000000000000000000009F
++:10016000000000020000000000000000000000008D
++:10017000000000000000000000000000000000007F
++:10018000000000000000000000000010000000005F
++:10019000000000000000000000000000000000005F
++:1001A000000000000000000000000000000000004F
++:1001B000000000000000000000000000000000003F
++:1001C000000000000000000000000000000000002F
++:1001D000000000000000000000000000000000001F
++:1001E0000000000010000003000000000000000DEF
++:1001F0000000000D3C02080024424AA03C03080015
++:1002000024634B9CAC4000000043202B1480FFFD76
++:10021000244200043C1D080037BD7FFC03A0F021F0
++:100220003C100800261001183C1C0800279C4AA01E
++:100230000E000168000000000000000D27470100CB
++:1002400090E3000B2402001A94E5000814620028D1
++:10025000000020218CE200003C0308008C63004475
++:1002600094E60014000211C20002104030A4000203
++:10027000005A10212463000130A50004A446008028
++:100280003C010800AC23004410A000190004202BFE
++:100290008F4202B804410008240400013C02080017
++:1002A0008C420060244200013C010800AC22006046
++:1002B00003E00008008010218CE2002094E3001687
++:1002C00000002021AF4202808CE20004A743028498
++:1002D000AF4202883C021000AF4202B83C02080064
++:1002E0008C42005C244200013C010800AC22005C0E
++:1002F00003E00008008010212747010090E3000B75
++:100300002402000394E50008146200280000202164
++:100310008CE200003C0308008C63004494E6001467
++:10032000000211C20002104030A40002005A102145
++:100330002463000130A50004A44600803C010800AD
++:10034000AC23004410A000190004202B8F4202B8F7
++:1003500004410008240400013C0208008C420060B3
++:10036000244200013C010800AC22006003E00008C8
++:10037000008010218CE2002094E300160000202170
++:10038000AF4202808CE20004A7430284AF4202889D
++:100390003C021000AF4202B83C0208008C42005CF4
++:1003A000244200013C010800AC22005C03E000088C
++:1003B000008010218F4301002402010050620003DD
++:1003C000000311C20000000D000311C20002104022
++:1003D000005A1021A440008003E000080000102112
++:1003E0009362000003E00008AF80000003E0000813
++:1003F0000000102103E00008000010212402010089
++:1004000014820008000000003C0208008C4200FC3E
++:10041000244200013C010800AC2200FC0A0000DD7F
++:1004200030A200203C0208008C42008424420001DB
++:100430003C010800AC22008430A2002010400008DB
++:1004400030A300103C0208008C4201082442000145
++:100450003C010800AC22010803E000080000000095
++:1004600010600008000000003C0208008C420104FB
++:10047000244200013C010800AC22010403E0000812
++:10048000000000003C0208008C42010024420001F0
++:100490003C010800AC22010003E00008000000005D
++:1004A00027BDFFE8AFBF0010274401009483000878
++:1004B000306200041040001B306600028F4202B818
++:1004C00004410008240500013C0208008C42006041
++:1004D000244200013C010800AC2200600A0001290E
++:1004E0008FBF00108C82002094830016000028210A
++:1004F000AF4202808C820004A7430284AF4202888C
++:100500003C021000AF4202B83C0208008C42005C82
++:10051000244200013C010800AC22005C0A000129D1
++:100520008FBF001010C00006006028218F4401001A
++:100530000E0000CD000000000A0001282405000183
++:100540008F8200088F4301045043000700002821D8
++:100550008F4401000E0000CD000000008F42010416
++:10056000AF820008000028218FBF001000A01021DA
++:1005700003E0000827BD001827BDFFE8AFBF001447
++:10058000AFB00010974201083043700024022000F1
++:100590001062000B286220011440002F000010217F
++:1005A00024024000106200250000000024026000C8
++:1005B00010620026000010210A0001658FBF0014A0
++:1005C00027500100920200091040001A2403000184
++:1005D0003C0208008C420020104000160000182148
++:1005E0000E00049300000000960300083C0608007B
++:1005F00094C64B5E8E0400188F8200209605000C76
++:1006000000031C0000661825AC440000AC45000443
++:1006100024040001AC400008AC40000CAC400010C9
++:10062000AC400014AC4000180E0004B8AC43001CF1
++:10063000000018210A000164006010210E0003254B
++:10064000000000000A000164000010210E000EE905
++:1006500000000000000010218FBF00148FB00010B8
++:1006600003E0000827BD001827BDFFE0AFB2001867
++:100670003C036010AFBF001CAFB10014AFB000105E
++:100680008C6450002402FF7F3C1A800000822024EA
++:100690003484380C24020037AC6450003C1208004B
++:1006A00026524AD8AF42000824020C80AF420024F0
++:1006B0003C1B80083C06080024C60324024010218D
++:1006C0002404001D2484FFFFAC4600000481FFFDCC
++:1006D000244200043C020800244204B03C0108000B
++:1006E000AC224AE03C020800244202303C010800EF
++:1006F000AC224AE43C020800244201743C03080096
++:100700002463032C3C040800248403D83C0508001F
++:1007100024A538F03C010800AC224B403C02080004
++:10072000244202EC3C010800AC264B243C010800AA
++:10073000AC254B343C010800AC234B3C3C01080089
++:10074000AC244B443C010800AC224B483C0108005F
++:10075000AC234ADC3C010800AC204AE83C0108001C
++:10076000AC204AEC3C010800AC204AF03C010800F7
++:10077000AC204AF43C010800AC204AF83C010800D7
++:10078000AC204AFC3C010800AC204B003C010800B6
++:10079000AC244B043C010800AC204B083C01080091
++:1007A000AC204B0C3C010800AC204B103C01080075
++:1007B000AC204B143C010800AC204B183C01080055
++:1007C000AC264B1C3C010800AC264B203C01080029
++:1007D000AC254B303C010800AC234B380E000623FF
++:1007E000000000003C028000344200708C42000097
++:1007F000AF8200143C0308008C6300208F82000449
++:10080000104300043C0280000E00045BAF83000430
++:100810003C028000344600703C0308008C6300A05A
++:100820003C0208008C4200A4104300048F84001492
++:100830003C010800AC2300A4A743009E8CCA000022
++:100840003C0308008C6300BC3C0208008C4200B8EA
++:100850000144202300641821000040210064202B63
++:1008600000481021004410213C010800AC2300BCCA
++:100870003C010800AC2200B88F5100003222000772
++:100880001040FFDCAF8A00148CC600003C05080055
++:100890008CA500BC3C0408008C8400B800CA30233E
++:1008A00000A628210000102100A6302B0082202164
++:1008B00000862021322700013C010800AC2500BC45
++:1008C0003C010800AC2400B810E0001F32220002F6
++:1008D0008F420100AF4200208F420104AF4200A8C6
++:1008E0009342010B0E0000C6305000FF2E02001E86
++:1008F00054400004001010800E0000C90A000213CA
++:1009000000000000005210218C4200000040F80955
++:1009100000000000104000053C0240008F4301042D
++:100920003C026020AC4300143C024000AF4201385E
++:100930003C0208008C420034244200013C010800C3
++:10094000AC220034322200021040000E3222000499
++:100950008F4201400E0000C6AF4200200E000295FB
++:10096000000000003C024000AF4201783C02080059
++:100970008C420038244200013C010800AC220038BF
++:10098000322200041040FF983C0280008F42018018
++:100990000E0000C6AF4200208F43018024020F00EA
++:1009A00014620005000000008F420188A742009CED
++:1009B0000A0002483C0240009362000024030050F9
++:1009C000304200FF144300083C0240000E00027B4E
++:1009D00000000000544000043C0240000E000D7571
++:1009E000000000003C024000AF4201B83C02080099
++:1009F0008C42003C244200013C010800AC22003C37
++:100A00000A0001C83C0280003C0290003442000110
++:100A100000822025AF4400208F4200200440FFFECA
++:100A20000000000003E00008000000003C0280001D
++:100A3000344200010082202503E00008AF4400207A
++:100A400027BDFFE0AFB10014AFB0001000808821D7
++:100A5000AFBF00180E00025030B000FF9362007D5F
++:100A60000220202102028025A370007D8F70007477
++:100A70003C0280000E000259020280241600000988
++:100A80008FBF00188F4201F80440FFFE24020002CD
++:100A9000AF5101C0A34201C43C021000AF4201F8B3
++:100AA0008FBF00188FB100148FB0001003E0000852
++:100AB00027BD002027BDFFE8AFBF0010974201848B
++:100AC0008F440188304202001040000500002821B8
++:100AD0000E000FAA000000000A00028D240500018C
++:100AE0003C02FF0004800005008218243C02040040
++:100AF000506200019362003E240500018FBF001088
++:100B000000A0102103E0000827BD0018A360002208
++:100B10008F4401400A00025E2405000127BDFFE862
++:100B2000AFBF0014AFB0001093620000304400FF6C
++:100B300038830020388200300003182B0002102B6D
++:100B40000062182410600003240200501482008008
++:100B50008FBF001493620005304200011040007CFA
++:100B60008FBF0014934201482443FFFF2C6200050D
++:100B7000104000788FB00010000310803C03080084
++:100B800024634A68004310218C42000000400008A2
++:100B9000000000000E0002508F4401408F70000CD6
++:100BA0008F4201441602000224020001AF62000CD1
++:100BB0000E0002598F4401408F420144145000043A
++:100BC0008FBF00148FB000100A000F2027BD00183F
++:100BD0008F62000C0A0003040000000097620010FE
++:100BE0008F4301443042FFFF1462001A00000000EE
++:100BF00024020001A76200108F4202380443001053
++:100C00008F4201403C02003F3446F0003C0560004A
++:100C10003C04FFC08CA22BBC0044182400461024C6
++:100C20000002130200031D82106200390000000060
++:100C30008F4202380440FFF7000000008F4201405D
++:100C4000AF4202003C021000AF4202380A00032209
++:100C50008FBF0014976200100A0003040000000018
++:100C60000E0002508F440140976200128F430144EE
++:100C70003050FFFF1603000224020001A762001299
++:100C80000E0002598F4401408F42014416020004B5
++:100C90008FBF00148FB000100A00029127BD00180A
++:100CA000976200120A00030400000000976200141B
++:100CB0008F4301443042FFFF14620006240200010A
++:100CC0008FBF00148FB00010A76200140A00124AF0
++:100CD00027BD0018976200141440001D8FBF001438
++:100CE0000A00031C00000000976200168F430144B5
++:100CF0003042FFFF1462000B240200018FBF00147A
++:100D00008FB00010A76200160A000B1227BD001852
++:100D10009742007824420004A76200100A000322D0
++:100D20008FBF001497620016240300013042FFFFBA
++:100D3000144300078FBF00143C0208008C4200706F
++:100D4000244200013C010800AC2200708FBF001457
++:100D50008FB0001003E0000827BD001827BDFFE892
++:100D6000AFBF0014AFB000108F50010093620000BD
++:100D700093430109304400FF2402001F106200A5C4
++:100D80002862002010400018240200382862000A5F
++:100D90001040000C2402000B286200081040002CB8
++:100DA00000000000046000E52862000214400028F2
++:100DB00024020006106200268FBF00140A00041FE0
++:100DC0008FB000101062005E2862000B144000DC3F
++:100DD0008FBF00142402000E106200738FB0001049
++:100DE0000A00041F00000000106200C028620039E1
++:100DF0001040000A2402008024020036106200CA5B
++:100E000028620037104000B424020035106200C18F
++:100E10008FBF00140A00041F8FB000101062002B57
++:100E20002862008110400006240200C82402003914
++:100E3000106200B48FBF00140A00041F8FB00010AE
++:100E4000106200998FBF00140A00041F8FB00010B9
++:100E50003C0208008C420020104000B98FBF0014F3
++:100E60000E000493000000008F4201008F830020D9
++:100E70009745010C97460108AC6200008F420104BF
++:100E80003C04080094844B5E00052C00AC62000416
++:100E90008F4201180006340000C43025AC620008FF
++:100EA0008F42011C24040001AC62000C9342010A31
++:100EB00000A22825AC650010AC600014AC600018DE
++:100EC000AC66001C0A0003F58FBF00143C0208004A
++:100ED0008C4200201040009A8FBF00140E00049333
++:100EE00000000000974401083C03080094634B5E37
++:100EF0009745010C000422029746010E8F820020C4
++:100F0000000426000083202500052C003C030080FF
++:100F100000A6282500832025AC400000AC4000043A
++:100F2000AC400008AC40000CAC450010AC400014D4
++:100F3000AC400018AC44001C0A0003F42404000177
++:100F40009742010C14400015000000009362000558
++:100F50003042001014400011000000000E0002504A
++:100F6000020020219362000502002021344200107B
++:100F70000E000259A36200059362000024030020C2
++:100F8000304200FF1043006D020020218FBF00148B
++:100F90008FB000100A000FC027BD00180000000D20
++:100FA0000A00041E8FBF00143C0208008C4200207F
++:100FB000104000638FBF00140E0004930000000077
++:100FC0008F4201048F8300209744010C3C050800E8
++:100FD00094A54B5EAC6200009762002C00042400D4
++:100FE0003042FFFF008220253C02400E00A228254F
++:100FF000AC640004AC600008AC60000CAC60001095
++:10100000AC600014AC600018AC65001C0A0003F46E
++:10101000240400010E00025002002021A7600008F5
++:101020000E00025902002021020020210E00025E63
++:10103000240500013C0208008C42002010400040C2
++:101040008FBF00140E000493000000009742010CB3
++:101050008F8300203C05080094A54B5E000214001D
++:10106000AC700000AC620004AC6000088F64004CFF
++:101070003C02401F00A22825AC64000C8F62005087
++:1010800024040001AC6200108F620054AC620014B2
++:10109000AC600018AC65001C8FBF00148FB000104E
++:1010A0000A0004B827BD0018240200205082002541
++:1010B0008FB000100E000F0A020020211040002007
++:1010C0008FBF0014020020218FB0001000002821E3
++:1010D0000A00025E27BD0018020020218FBF001405
++:1010E0008FB000100A00058027BD00189745010C3D
++:1010F000020020218FBF00148FB000100A0005A04D
++:1011000027BD0018020020218FB000100A0005C57D
++:1011100027BD00189345010D020020218FB000105B
++:101120000A00060F27BD0018020020218FBF0014FF
++:101130008FB000100A0005EB27BD00188FBF001408
++:101140008FB0001003E0000827BD00188F4202781E
++:101150000440FFFE2402000234840080AF440240B9
++:10116000A34202443C02100003E00008AF420278B0
++:101170003C04080094844B6A3C0208008C424B7487
++:101180003083FFFF000318C000431021AF42003C32
++:101190003C0208008C424B70AF4200383C020050C9
++:1011A00034420008AF4200300000000000000000A0
++:1011B000000000008F420000304200201040FFFD80
++:1011C000000000008F4204003C010800AC224B608C
++:1011D0008F4204043C010800AC224B643C02002016
++:1011E000AF420030000000003C02080094424B680F
++:1011F0003C03080094634B6C3C05080094A54B6EBF
++:1012000024840001004310213083FFFF3C010800CB
++:10121000A4224B683C010800A4244B6A1465000317
++:10122000000000003C010800A4204B6A03E0000815
++:10123000000000003C05000A27BDFFE80345282107
++:101240003C04080024844B50AFBF00100E00051D65
++:101250002406000A3C02080094424B523C0308005A
++:1012600094634B6E3042000F244200030043180485
++:1012700024027FFF0043102B10400002AF83001CAC
++:101280000000000D0E00042A000000003C020800CF
++:1012900094424B5A8FBF001027BD001803E000088E
++:1012A000A74200A23C02000A034210219443000618
++:1012B0003C02080094424B5A3C010800A4234B56C0
++:1012C000004310238F83001C00021400000214034B
++:1012D0000043102B03E000083842000127BDFFE85F
++:1012E000AFBF00103C02000A0342102194420006E6
++:1012F0003C010800A4224B560E00047700000000B9
++:101300005440FFF93C02000A8FBF001003E00008C0
++:1013100027BD001827BDFFE8AFBF00100E000477FF
++:101320000000000010400003000000000E000485D3
++:10133000000000003C0208008C424B608FBF001090
++:1013400027430400AF4200383C0208008C424B6443
++:1013500027BD0018AF830020AF42003C3C020005CF
++:10136000AF42003003E00008AF8000188F82001801
++:101370003C0300060002114000431025AF4200303C
++:101380000000000000000000000000008F4200008C
++:10139000304200101040FFFD27420400AF820020C1
++:1013A00003E00008AF8000183C0608008CC64B64C0
++:1013B0008F8500188F8300203C02080094424B5A0E
++:1013C00027BDFFE024A50001246300202442000182
++:1013D00024C70020AFB10014AFB00010AFBF001899
++:1013E000AF850018AF8300203C010800A4224B5AAF
++:1013F000309000FF3C010800AC274B6404C100089A
++:101400000000882104E00006000000003C02080003
++:101410008C424B60244200013C010800AC224B602E
++:101420003C02080094424B5A3C03080094634B680A
++:101430000010202B004310262C42000100441025F0
++:10144000144000048F830018240200101462000F5F
++:10145000000000000E0004A9241100013C03080054
++:1014600094634B5A3C02080094424B681462000398
++:10147000000000000E00042A000000001600000317
++:10148000000000000E000493000000003C03080070
++:1014900094634B5E3C02080094424B5C2463000161
++:1014A0003064FFFF3C010800A4234B5E148200035C
++:1014B000000000003C010800A4204B5E1200000662
++:1014C000000000003C02080094424B5AA74200A2D0
++:1014D0000A00050B022010210E0004770000000016
++:1014E00010400004022010210E00048500000000BE
++:1014F000022010218FBF00188FB100148FB0001090
++:1015000003E0000827BD00203084FFFF30A5FFFF67
++:101510000000182110800007000000003082000148
++:101520001040000200042042006518210A00051343
++:101530000005284003E000080060102110C00006EC
++:1015400024C6FFFF8CA2000024A50004AC8200008A
++:101550000A00051D2484000403E0000800000000C8
++:1015600010A0000824A3FFFFAC86000000000000CC
++:10157000000000002402FFFF2463FFFF1462FFFA53
++:101580002484000403E0000800000000240200019D
++:10159000AF62000CA7620010A7620012A7620014DD
++:1015A00003E00008A76200163082007F034210218A
++:1015B0003C08000E004818213C0208008C42002024
++:1015C00027BDFFD82407FF80AFB3001CAFB20018BF
++:1015D000AFB10014AFB00010AFBF00200080802179
++:1015E00030B100FF0087202430D200FF1040002FD0
++:1015F00000009821AF44002C9062000024030050AA
++:10160000304200FF1443000E000000003C020800BE
++:101610008C4200E00202102100471024AF42002C4F
++:101620003C0208008C4200E0020210213042007FA0
++:101630000342102100481021944200D43053FFFF90
++:101640000E000493000000003C02080094424B5E30
++:101650008F8300200011340000C2302500122C00BE
++:101660003C02400000C2302534A50001AC700000EF
++:101670008FBF0020AC6000048FB20018AC7300086C
++:101680008FB10014AC60000C8FB3001CAC6500106F
++:101690008FB00010AC60001424040001AC6000188E
++:1016A00027BD00280A0004B8AC66001C8FBF0020CC
++:1016B0008FB3001C8FB200188FB100148FB00010D0
++:1016C00003E0000827BD00289343010F2402001007
++:1016D0001062000E2865001110A0000724020012FD
++:1016E000240200082405003A1062000600003021A0
++:1016F00003E0000800000000240500351462FFFC30
++:10170000000030210A000538000000008F420074FC
++:1017100024420FA003E00008AF62000C27BDFFE8E1
++:10172000AFBF00100E00025E240500018FBF001045
++:1017300024020001A762001227BD00182402000144
++:1017400003E00008A360002227BDFFE0AFB1001452
++:10175000AFB00010AFBF001830B1FFFF0E00025055
++:10176000008080219362003F24030004304200FF88
++:101770001443000C02002021122000082402000A59
++:101780000E00053100000000936200052403FFFEF7
++:1017900000431024A362000524020012A362003F4C
++:1017A000020020210E000259A360008116200003D0
++:1017B000020020210E0005950000000002002021FB
++:1017C000322600FF8FBF00188FB100148FB00010B9
++:1017D000240500380A00053827BD002027BDFFE09A
++:1017E000AFBF001CAFB20018AFB10014AFB0001013
++:1017F0000E000250008080210E0005310000000024
++:101800009362003F24120018305100FF123200038F
++:101810000200202124020012A362003F936200050F
++:101820002403FFFE004310240E000259A3620005AA
++:10183000020020212405002016320007000030217C
++:101840008FBF001C8FB200188FB100148FB0001032
++:101850000A00025E27BD00208FBF001C8FB2001857
++:101860008FB100148FB00010240500390A0005382C
++:1018700027BD002027BDFFE8AFB00010AFBF0014A8
++:101880009742010C2405003600808021144000108E
++:10189000304600FF0E00025000000000240200123B
++:1018A000A362003F93620005344200100E00053130
++:1018B000A36200050E00025902002021020020212F
++:1018C0000E00025E240500200A000604000000004D
++:1018D0000E000538000000000E000250020020211A
++:1018E000936200232403FF9F020020210043102461
++:1018F0008FBF00148FB00010A36200230A000259AA
++:1019000027BD001827BDFFE0AFBF0018AFB100141E
++:10191000AFB0001030B100FF0E00025000808021F7
++:10192000240200120E000531A362003F0E0002598E
++:101930000200202102002021022030218FBF001848
++:101940008FB100148FB00010240500350A0005384F
++:1019500027BD0020A380002C03E00008A380002DF9
++:101960008F4202780440FFFE8F820034AF42024073
++:1019700024020002A34202443C02100003E00008DB
++:10198000AF4202783C0360008C6254003042000891
++:101990001440FFFD000000008C625408AF82000C70
++:1019A00024020052AC605408AC645430AC6254342D
++:1019B0002402000803E00008AC6254003C0260000E
++:1019C0008C42540030420008104000053C03600087
++:1019D0008C625400304200081440FFFD00000000FB
++:1019E0008F83000C3C02600003E00008AC43540805
++:1019F00090A3000024020005008040213063003FD6
++:101A000000004821146200050000502190A2001C33
++:101A100094A3001E304900FF306AFFFFAD00000CA8
++:101A2000AD000010AD000024950200148D05001CCF
++:101A30008D0400183042FFFF0049102300021100FE
++:101A4000000237C3004038210086202300A2102B5B
++:101A50000082202300A72823AD05001CAD04001838
++:101A6000A5090014A5090020A50A001603E0000836
++:101A7000A50A00228F4201F80440FFFE2402000262
++:101A8000AF4401C0A34201C43C02100003E00008BF
++:101A9000AF4201F83C0208008C4200B427BDFFE8C9
++:101AA000AFBF001424420001AFB000103C01080099
++:101AB000AC2200B48F4300243C02001F30AA00FF78
++:101AC0003442FF8030D800FF006280240080F8217B
++:101AD00030EF00FF1158003B01405821240CFF80DB
++:101AE0003C19000A3163007F000310C00003194055
++:101AF000006218213C0208008C4200DC25680001CD
++:101B0000310D007F03E21021004310213043007F9C
++:101B100003431821004C102400794821AF420024CF
++:101B20008D220024016C1824006C7026AD22000C5C
++:101B30008D220024310800FFAD22001095220014F0
++:101B4000952300208D27001C3042FFFF3063FFFFEC
++:101B50008D2600180043102300021100000227C345
++:101B60000040282100C4302300E2102B00C23023A3
++:101B700000E53823AD27001CAD2600189522002073
++:101B8000A522001495220022154B000AA52200165A
++:101B90008D2300248D220008254600013145008058
++:101BA0001462000430C4007F108F000238AA008045
++:101BB00000C0502151AF000131C800FF1518FFC906
++:101BC000010058218F8400343082007F03421821A5
++:101BD0003C02000A006218212402FF8000822024B7
++:101BE000AF440024A06A0079A06A00838C62005090
++:101BF0008F840034AC6200708C6500743C027FFFFF
++:101C00003442FFFF00A228240E00066BAC6500746E
++:101C1000AF5000248FBF00148FB0001003E0000805
++:101C200027BD001827BDFFC0AFBE0038AFB70034D6
++:101C3000AFB5002CAFB20020AFB1001CAFB00018A0
++:101C4000AFBF003CAFB60030AFB40028AFB3002444
++:101C50008F4500248F4600288F43002C3C02001F34
++:101C60003442FF800062182400C230240080A82182
++:101C7000AFA3001400A2F0240E00062FAFA60010A0
++:101C80003C0208008C4200E02410FF8003608821A1
++:101C900002A2102100501024AF4200243C02080090
++:101CA0008C4200E002A210213042007F0342182142
++:101CB0003C02000A00629021924200D293630084A9
++:101CC000305700FF306300FF24020001106200342F
++:101CD000036020212402000214620036000000008C
++:101CE0000E001216024028219223008392220083C4
++:101CF0003063007F3042007F000210C000031940B3
++:101D0000006218213C0208008C4200DC02A2102173
++:101D10000043382100F01024AF42002892250078BB
++:101D20009224008330E2007F034218213C02000C21
++:101D300014850007006280212402FFFFA24200F107
++:101D40002402FFFFA64200F20A0007272402FFFF39
++:101D500096020020A24200F196020022A64200F262
++:101D60008E020024AE4200F492220083A24200F0D0
++:101D70008E4200C8AE4200FC8E4200C4AE4200F863
++:101D80008E220050AE4201008E4200CCAE420104D1
++:101D9000922200853042003F0A0007823442004010
++:101DA0000E00123902402821922200850A00078283
++:101DB0003042003F936200852403FFDF3042003F42
++:101DC000A36200859362008500431024A36200850E
++:101DD0009363008393620078307400FF304200FF09
++:101DE00010540036240AFF803C0C000C3283007F24
++:101DF000000310C000031940006218213C020800D3
++:101E00008C4200DC268800013109007F02A21021EB
++:101E10000043382130E2007F0342182100EA1024F9
++:101E2000AF420028006C80218E020024028A182410
++:101E3000006A5826AE02000C8E020024310800FF12
++:101E4000AE02001096020014960300208E07001CBC
++:101E50003042FFFF3063FFFF8E060018004310235F
++:101E600000021100000227C30040282100C43023D3
++:101E700000E2102B00C2302300E53823AE07001C1F
++:101E8000AE06001896020020A60200149602002258
++:101E9000A602001692220079304200FF105400077B
++:101EA0000000000051370001316800FF92220078E5
++:101EB000304200FF1448FFCD0100A0219222008390
++:101EC000A22200798E2200500A0007E2AE220070A2
++:101ED000A22200858E22004C2405FF80AE42010C18
++:101EE0009222008534420020A2220085924200D135
++:101EF0003C0308008C6300DC305400FF3C02080007
++:101F00008C4200E400143140001420C002A31821C8
++:101F100000C4202102A210210064382100461021B3
++:101F20000045182400E52824AF450028AF43002CC5
++:101F30003042007F924400D030E3007F03422821EA
++:101F4000034318213C02000C006280213C02000E79
++:101F5000309600FF00A298211296002A000000008F
++:101F60008E02000C02002021026028211040002572
++:101F7000261000280E00064A000000009262000DA4
++:101F800026830001307400FF3042007FA262000D02
++:101F90002404FF801697FFF0267300203C020800FF
++:101FA0008C4200DC0000A02102A210210044102479
++:101FB000AF4200283C0208008C4200E43C030800C9
++:101FC0008C6300DC02A2102100441024AF42002CDC
++:101FD0003C0208008C4200E402A318213063007F19
++:101FE00002A210213042007F034220210343182126
++:101FF0003C02000C006280213C02000E0A0007A493
++:10200000008298218E4200D8AE2200508E4200D825
++:10201000AE22007092250083924600D19223008365
++:10202000924400D12402FF8000A228243063007F64
++:10203000308400FF00A628250064182A10600002E2
++:1020400030A500FF38A50080A2250083A2250079D5
++:102050000E00063D000000009222007E02A020211A
++:10206000A222007A8E2300743C027FFF3442FFFFDD
++:10207000006218240E00066BAE2300748FA20010BD
++:10208000AF5E00248FBF003CAF4200288FBE0038F7
++:102090008FA200148FB700348FB600308FB5002C9C
++:1020A0008FB400288FB300248FB200208FB1001CA2
++:1020B0008FB0001827BD004003E00008AF42002C9D
++:1020C00090A2000024420001A0A200003C030800EE
++:1020D0008C6300F4304200FF1443000F0080302175
++:1020E000A0A000003C0208008C4200E48F84003471
++:1020F000008220213082007F034218213C02000C24
++:10210000006218212402FF8000822024ACC300005A
++:1021100003E00008AF4400288C8200002442002025
++:1021200003E00008AC82000094C200003C080800F4
++:10213000950800CA30E7FFFF008048210102102106
++:10214000A4C2000094C200003042FFFF00E2102B46
++:1021500054400001A4C7000094A200003C03080002
++:102160008C6300CC24420001A4A2000094A20000D1
++:102170003042FFFF544300078F8600280107102BD1
++:10218000A4A000005440000101003821A4C70000B1
++:102190008F8600288CC4001CAF44003C94A2000031
++:1021A0008F43003C3042FFFF000210C00062182144
++:1021B000AF43003C8F42003C008220231880000483
++:1021C000000000008CC200180A00084324420001ED
++:1021D0008CC20018AF4200383C020050344200105C
++:1021E000AF420030000000000000000000000000CE
++:1021F0008F420000304200201040FFFD0000000030
++:102200008F420404AD2200048F420400AD2200007E
++:102210003C020020AF42003003E000080000000054
++:1022200027BDFFE0AFB20018AFB10014AFB000108F
++:10223000AFBF001C94C2000000C080213C12080007
++:10224000965200C624420001A60200009603000038
++:1022500094E2000000E03021144300058FB100300B
++:102260000E000818024038210A000875000000001E
++:102270008C8300048C820004244200400461000727
++:10228000AC8200048C8200040440000400000000C2
++:102290008C82000024420001AC8200009602000003
++:1022A0003042FFFF50520001A600000096220000BD
++:1022B00024420001A62200008F82002896230000FD
++:1022C00094420016144300048FBF001C2402000136
++:1022D000A62200008FBF001C8FB200188FB100141F
++:1022E0008FB0001003E0000827BD00208F89002870
++:1022F00027BDFFE0AFBF00188D220028274804004B
++:1023000030E700FFAF4200388D22002CAF8800304C
++:10231000AF42003C3C020005AF420030000000002C
++:1023200000000000000000000000000000000000AD
++:10233000000000008C82000C8C82000CAD020000BA
++:102340008C820010AD0200048C820018AD020008DF
++:102350008C82001CAD02000C8CA20014AD02001097
++:102360008C820020AD02001490820005304200FFF4
++:1023700000021200AD0200188CA20018AD02001C71
++:102380008CA2000CAD0200208CA20010AD02002433
++:102390008CA2001CAD0200288CA20020AD02002CF3
++:1023A000AD060030AD000034978300263402FFFFF5
++:1023B00014620002006020213404FFFF10E00011CD
++:1023C000AD04003895230036952400362402000120
++:1023D0003063FFFF000318C20069182190650040B8
++:1023E000308400070082100400451025A0620040E0
++:1023F0008F820028944200563042FFFF0A0008DC1A
++:10240000AD02003C952300369524003624020001DD
++:102410003063FFFF000318C2006918219065004077
++:1024200030840007008210040002102700451024A9
++:10243000A0620040AD00003C000000000000000071
++:10244000000000003C02000634420040AF42003071
++:102450000000000000000000000000008F420000AB
++:10246000304200101040FFFD8F860028AF880030FA
++:1024700024C2005624C7003C24C4002824C50032CE
++:1024800024C600360E000856AFA200108FBF0018F9
++:1024900003E0000827BD00208F8300243C060800CD
++:1024A0008CC600E88F82003430633FFF0003198040
++:1024B00000461021004310212403FF803046007F96
++:1024C00000431024AF420028034618213C02000CB0
++:1024D0000062302190C2000D30A500FF00003821BD
++:1024E00034420010A0C2000D8F8900288F8A00247A
++:1024F00095230036000A13823048000324020001AD
++:10250000A4C3000E1102000B2902000210400005B6
++:10251000240200021100000C240300010A0009201B
++:102520000000182111020006000000000A00092026
++:10253000000018218CC2002C0A000920244300014D
++:102540008CC20014244300018CC200180043102BDD
++:1025500050400009240700012402002714A20003B0
++:10256000000000000A00092C240700019522003E0B
++:1025700024420001A522003E000A138230430003DA
++:102580002C62000210400009008028211460000421
++:102590000000000094C200360A00093C3046FFFFEC
++:1025A0008CC600380A00093C008028210000302138
++:1025B0003C04080024844B780A00088900000000CD
++:1025C000274901008D22000C9523000601202021BF
++:1025D000000216023046003F3063FFFF240200274E
++:1025E00000C0282128C7002810C2000EAF83002495
++:1025F00010E00008240200312402002110C200096A
++:102600002402002510C200079382002D0A00095BF6
++:102610000000000010C200059382002D0A00095B33
++:10262000000000000A0008F4000000000A0006266E
++:102630000000000095230006912400058D25000C64
++:102640008D2600108D2700188D28001C8D29002054
++:10265000244200013C010800A4234B7E3C010800F9
++:10266000A0244B7D3C010800AC254B843C010800B4
++:10267000AC264B883C010800AC274B903C0108007D
++:10268000AC284B943C010800AC294B9803E00008AF
++:10269000A382002D8F87002827BDFFC0AFB3003471
++:1026A000AFB20030AFB1002CAFB00028AFBF0038E0
++:1026B0003C0208008C4200D094E3003030B0FFFFB1
++:1026C000005010073045FFFF3063FFFF00C0982126
++:1026D000A7A200103C110800963100C614A3000602
++:1026E0003092FFFF8CE2002424420030AF42003CD5
++:1026F0000A0009948CE2002094E200323042FFFF8D
++:1027000054A2000827A400188CE2002C24420030B8
++:10271000AF42003C8CE20028AF4200380A0009A218
++:102720008F84002827A5001027A60020022038212A
++:102730000E000818A7A000208FA200182442003025
++:10274000AF4200388FA2001CAF42003C8F840028AB
++:102750003C020005AF42003094820034274304005D
++:102760003042FFFF0202102B14400007AF830030FD
++:1027700094820054948300340202102100431023F9
++:102780000A0009B63043FFFF94830054948200345A
++:102790000223182100501023006218233063FFFF2A
++:1027A000948200163042FFFF144300030000000033
++:1027B0000A0009C424030001948200163042FFFF7E
++:1027C0000043102B104000058F82003094820016C9
++:1027D000006210233043FFFF8F820030AC530000B3
++:1027E000AC400004AC520008AC43000C3C020006B4
++:1027F00034420010AF420030000000000000000032
++:10280000000000008F420000304200101040FFFD29
++:10281000001018C2006418219065004032040007BF
++:10282000240200018FBF00388FB300348FB2003014
++:102830008FB1002C8FB000280082100400451025B5
++:1028400027BD004003E00008A062004027BDFFA8AC
++:10285000AFB60050AFB5004CAFB40048AFB30044C2
++:10286000AFB1003CAFBF0054AFB20040AFB00038D2
++:102870008C9000003C0208008C4200E88F860034F7
++:10288000960300022413FF8000C2302130633FFF13
++:102890000003198000C3382100F3102490B2000017
++:1028A000AF42002C9203000230E2007F034230214D
++:1028B0003C02000E00C28821306300C024020040A8
++:1028C0000080A82100A0B021146200260000A021F1
++:1028D0008E3400388E2200181440000224020001B9
++:1028E000AE2200189202000D304200201440001564
++:1028F0008F8200343C0308008C6300DC001238C077
++:10290000001231400043102100C730210046382119
++:1029100030E300073C02008030E6007800C230253A
++:102920000343182100F31024AF4208002463090078
++:10293000AF4608108E2200188C6300080043102157
++:10294000AE2200188E22002C8E2300182442000193
++:102950000062182B1060003D000000000A000A7899
++:1029600000000000920300022402FFC00043102474
++:10297000304200FF1440000524020001AE2200187E
++:10298000962200360A000A613054FFFF8E2200149E
++:1029900024420001AE22001892020000000216003C
++:1029A0000002160304410029000000009602000204
++:1029B00027A4001000802821A7A20016960200027A
++:1029C00024070001000030213042FFFFAF820024C5
++:1029D0000E000889AFA0001C960300023C0408000A
++:1029E0008C8400E88F82003430633FFF000319803D
++:1029F00000441021004310213043007F3C05000CAF
++:102A00000053102403431821AF4200280065182109
++:102A10009062000D001221403042007FA062000D44
++:102A20003C0308008C6300E48F82003400431021D3
++:102A30000044382130E2007F03421021004510217C
++:102A400000F31824AF430028AEA200009222000D2C
++:102A5000304200101040001302A020218F83002874
++:102A60008EA40000028030219462003E2442FFFFC9
++:102A7000A462003E948400029625000E3084FFFF7D
++:102A80000E00097330A5FFFF8F82002894430034A5
++:102A90009622000E1443000302A02021240200010C
++:102AA000A382002C02C028210E0007FE00000000B7
++:102AB0008FBF00548FB600508FB5004C8FB40048C4
++:102AC0008FB300448FB200408FB1003C8FB000380C
++:102AD00003E0000827BD00588F82002827BDFFD0E3
++:102AE000AFB40028AFB20020AFBF002CAFB30024BA
++:102AF000AFB1001CAFB00018904400D0904300D19B
++:102B00000000A021309200FFA3A30010306300FF5B
++:102B10008C5100D88C5300DC1072002B2402000171
++:102B20003C0308008C6300E493A400108F820034FF
++:102B30002406FF800004214000431021004410219E
++:102B40003043007F00461024AF4200280343182181
++:102B50003C02000C006218218C62000427A40014BF
++:102B600027A50010022280210270102304400015C6
++:102B7000AFA300149062000D00C21024304200FF89
++:102B800014400007020088219062000D344200408A
++:102B90000E0007FEA062000D0A000ABD93A20010FD
++:102BA0000E0009E1241400018F830028AC7000D8C6
++:102BB00093A20010A06200D193A200101452FFD87B
++:102BC0000000000024020001168200048FBF002CC8
++:102BD0000E000626000000008FBF002C8FB40028D6
++:102BE0008FB300248FB200208FB1001C8FB000186B
++:102BF00003E0000827BD003027BDFFD8AFB3001C9D
++:102C0000AFB20018AFB10014AFB00010AFBF0020DA
++:102C10000080982100E0802130B1FFFF0E00049376
++:102C200030D200FF000000000000000000000000A3
++:102C30008F820020AC510000AC520004AC5300085D
++:102C4000AC40000CAC400010AC400014AC4000188C
++:102C50003C03080094634B5E02038025AC50001CCB
++:102C6000000000000000000000000000240400013B
++:102C70008FBF00208FB3001C8FB200188FB10014DB
++:102C80008FB000100A0004B827BD002827BDFFE858
++:102C9000AFB00010AFBF001430A5FFFF30C600FF7B
++:102CA0000080802124020C80AF420024000000003C
++:102CB0000000000000000000000000000000000014
++:102CC0000E000ACC000000003C040800248400E050
++:102CD0008C8200002403FF808FBF001402021021A9
++:102CE00000431024AF4200248C8200003C03000A01
++:102CF000020280213210007F035010218FB000109B
++:102D00000043102127BD001803E00008AF8200280F
++:102D100027BDFFE8AFBF00108F4401403C0308000F
++:102D20008C6300E02402FF80AF840034008318210C
++:102D300000621024AF4200243C02000803424021FC
++:102D4000950500023063007F3C02000A034318210E
++:102D50000062182130A5FFFF3402FFFF0000302180
++:102D60003C07602010A20006AF8300282402FFFF6A
++:102D7000A5020002946500D40E000AF130A5FFFF01
++:102D80008FBF001024020C8027BD001803E000084C
++:102D9000AF4200243C020008034240219502000299
++:102DA0003C0A0800954A00C63046FFFF14C00007E1
++:102DB0003402FFFF8F8200288F8400343C0760209C
++:102DC000944500D40A000B5A30A5FFFF10C200241E
++:102DD0008F87002894E2005494E400163045FFFFEA
++:102DE00000A6102300A6182B3089FFFF10600004F6
++:102DF0003044FFFF00C51023012210233044FFFFA1
++:102E0000008A102B1040000C012A1023240200011C
++:102E1000A50200162402FFFFA502000294E500D4DB
++:102E20008F8400340000302130A5FFFF3C07602074
++:102E30000A000AF1000000000044102A10400008B7
++:102E4000000000009502001630420001104000040E
++:102E5000000000009742007E24420014A5020016E4
++:102E600003E00008000000008F84002827BDFFE079
++:102E7000AFBF0018948200349483003E1060001AA3
++:102E80003048FFFF9383002C2402000114620027C6
++:102E90008FBF00188F820028000818C23108000771
++:102EA000006218212447003A244900542444002099
++:102EB000244500302446003490620040304200FF38
++:102EC0000102100730420001104000168FBF0018A9
++:102ED0000E000856AFA900108F82002894420034DB
++:102EE0000A000B733048FFFF94830036948200344D
++:102EF0001043000E8FBF001894820036A482003465
++:102F000094820056A48200548C82002CAC8200244F
++:102F100094820032A48200309482003CA482003A61
++:102F20008FBF00180A000B3327BD002003E0000804
++:102F300027BD002027BDFFE8AFBF00108F4A01006A
++:102F40003C0508008CA500E03C02080090424B8440
++:102F50003C0C0800958C4B7E01452821304B003FEE
++:102F600030A2007F03424021396900323C02000A4E
++:102F70003963003F2C630001010240212D2900012B
++:102F80002402FF8000A2282401234825AF8A0034B0
++:102F900000801821AF450024000030210080282146
++:102FA00024070001AF8800283C04080024844B78E3
++:102FB000AF8C002415200007A380002D24020020E0
++:102FC0005562000F006020213402FFFF5582000C83
++:102FD000006020212402002015620005000000008E
++:102FE0008C6300142402FFFF106200070000000041
++:102FF0000E000889000000000A000BD0000000004D
++:103000000E0008F4016028210E000B68000000008B
++:103010008FBF001024020C8027BD001803E00008B9
++:10302000AF4200243C0208008C4200E027BDFFA014
++:10303000AFB1003C008210212411FF80AFBE0058C8
++:10304000AFB70054AFB20040AFB00038AFBF005CC4
++:10305000AFB60050AFB5004CAFB40048AFB30044BA
++:10306000005110248F4800248F4900288F470028E2
++:10307000AF4200243C0208008C4200E00080902116
++:1030800024060006008210213042007F03421821EE
++:103090003C02000A006280213C02001F3442FF8093
++:1030A00000E2382427A40010260500F00122F024B5
++:1030B0000102B8240E00051DAFA700308FA2001832
++:1030C000AE0200C48FA2001CAE0200C88FA2002472
++:1030D000AE0200CC93A40010920300D12402FF8022
++:1030E0000082102400431025304900FF3083007F08
++:1030F0003122007F0062102A10400004000310C03B
++:1031000001311026304900FF000310C000031940B0
++:10311000006218213C0208008C4200DC920400D2BC
++:10312000024210210043102100511024AF42002818
++:1031300093A300103063007F000310C00003194008
++:10314000006218213C0208008C4200DC024210217F
++:10315000004310213042007F034218213C02000C42
++:10316000006240218FA300142402FFFF1062003090
++:10317000309500FF93A2001195030014304400FF26
++:103180003063FFFF0064182B1060000D000000008A
++:10319000950400148D07001C8D0600183084FFFF75
++:1031A00000442023000421000000102100E4382105
++:1031B00000E4202B00C230210A000C4A00C4302158
++:1031C000950400148D07001C8D0600183084FFFF45
++:1031D000008220230004210000001021008018211B
++:1031E00000C2302300E4202B00C4302300E3382346
++:1031F000AD07001CAD06001893A20011A502001433
++:1032000097A20012A50200168FA20014AD020010B2
++:103210008FA20014AD02000C93A20011A5020020A1
++:1032200097A20012A50200228FA20014AD02002472
++:103230002406FF80024610243256007FAF4200244D
++:10324000035618213C02000A006280218E02004CC5
++:103250008FA200203124007F000428C0AE0200505D
++:103260008FA200200004214000852821AE020070BA
++:1032700093A2001001208821A202008393A20010D3
++:10328000A2020079920200853042003FA20200852E
++:103290003C0208008C4200DC024210210045102153
++:1032A00000461024AF42002C3C0208008C4200E48F
++:1032B0003C0308008C6300DC024210210044102112
++:1032C00000461024AF4200283C0208008C4200E473
++:1032D00002431821006518210242102100441021E8
++:1032E0003042007F3063007F93A50010034220210D
++:1032F000034318213C02000E006240213C02000CF6
++:1033000010B1008C008248213233007F1660001912
++:103310002404FF803C0208008C4200DC02421021A1
++:1033200000441024AF42002C3C0208008C4200E410
++:103330003C0308008C6300DC02421021004410248E
++:10334000AF4200283C0208008C4200E402431821EE
++:103350003063007F024210213042007F034220216F
++:10336000034318213C02000E006240213C02000C85
++:10337000008248219124000D2414FF8000001021B8
++:1033800000942025A124000D950400029505001449
++:103390008D07001C3084FFFF30A5FFFF8D0600184D
++:1033A000008520230004210000E4382100C23021E0
++:1033B00000E4202B00C43021AD07001CAD0600182E
++:1033C00095020002A5020014A50000168D02000857
++:1033D000AD0200108D020008AD02000C9502000243
++:1033E000A5020020A50000228D020008AD020024E5
++:1033F0009122000D30420040104000422622000180
++:103400003C0208008C4200E0A3B300283C10000AF4
++:103410000242102100541024AF4200243C02080054
++:103420008C4200E0A380002C27A4002C0242102133
++:103430003042007F03421821007018218C6200D8AE
++:103440008D26000427A50028AFA9002C00461021D6
++:10345000AC6200D80E0009E1AF83002893A30028D6
++:103460008F8200280E000626A04300D10E000B68B4
++:103470000000000002541024AF4200243C02080067
++:103480008C4200DC00132940001320C000A420213E
++:10349000024210210044102100541024AF42002C9D
++:1034A0003C0208008C4200E43C0308008C6300DC12
++:1034B00003563021024210210045102100541024EF
++:1034C000AF4200283C0208008C4200E4024318216D
++:1034D0000064182102421021004510213042007F73
++:1034E0003063007F03422021034318213C02000E79
++:1034F000006240213C02000C00D080210082482163
++:10350000262200013043007F14750005304400FF7F
++:103510002403FF800223102400431026304400FFC0
++:1035200093A2001000808821250800281444FF760B
++:103530002529002093A400108FA300142402FFFF6C
++:103540001062000A308900FF2482000124830001F8
++:103550003042007F14550005306900FF2403FF80CE
++:103560000083102400431026304900FF92020078A7
++:10357000305300FF11330032012088213C02080043
++:103580008C4200DC3225007F000520C00005294068
++:1035900000A42021024210212406FF8000441021B3
++:1035A00000461024AF42002C3C0308008C6300DC72
++:1035B0003C0208008C4200E4024318210242102120
++:1035C0000045102100641821004610243063007F5C
++:1035D000AF420028034318213C02000E0062402144
++:1035E0003C0208008C4200E48D06000C0100202102
++:1035F00002421021004510213042007F0342182171
++:103600003C02000C0062482110C0000D012028215E
++:103610000E00064A000000002402FF800222182447
++:1036200026240001006228263082007F1455000203
++:10363000308300FF30A300FF1473FFD000608821A7
++:103640008E0300743C027FFF3442FFFF00621824A7
++:10365000AE0300740E00066B02402021AF57002419
++:103660008FA20030AF5E00288FBF005C8FBE005875
++:103670008FB700548FB600508FB5004C8FB4004800
++:103680008FB300448FB200408FB1003C8FB0003840
++:1036900027BD006003E00008AF42002C27BDFFD823
++:1036A000AFB1001CAFBF0020AFB000182751018898
++:1036B000922200032408FF803C03000A3047007F69
++:1036C000A3A700108F4601803C0208008C4200E056
++:1036D000AF86003400C2282100A81024AF42002485
++:1036E0009224000030A2007F0342102100431021E9
++:1036F000AF8200283084007F24020002148200255B
++:10370000000719403C0208008C4200E400C210216E
++:103710000043282130A2007F0342182100A8102472
++:10372000AF4200283C02000C006218219062000D9C
++:10373000AFA3001400481025A062000D8FA3001451
++:103740009062000D304200405040006A8FBF002060
++:103750008F860028A380002C27A400148CC200D8D8
++:103760008C63000427A50010004310210E0009E11E
++:10377000ACC200D893A300108F8200280E0006264A
++:10378000A04300D10E000B68000000000A000E0BE1
++:103790008FBF00200E00062F00C020210E00063D26
++:1037A000000000003C020008034280219223000137
++:1037B0009202007B1443004F8FBF00209222000032
++:1037C0003044007F24020004108200172882000584
++:1037D00010400006240200052402000310820007A6
++:1037E0008FB1001C0A000E0C0000000010820012B5
++:1037F0008FBF00200A000E0C8FB1001C92050083C1
++:10380000920600788E0700748F84003430A500FF84
++:1038100000073E0230C600FF0E00067330E7007F4F
++:103820000A000E0B8FBF00200E000BD78F840034D0
++:103830000A000E0B8FBF002024020C80AF42002430
++:103840009202003E30420040104000200000000084
++:103850009202003E00021600000216030441000618
++:10386000000000008F8400340E0005A024050093A2
++:103870000A000E0B8FBF00209202003F24030018A5
++:10388000304200FF1443000C8F84003424050039BB
++:103890000E000538000030210E0002508F840034E5
++:1038A00024020012A202003F0E0002598F8400344D
++:1038B0000A000E0B8FBF0020240500360E000538CD
++:1038C000000030210A000E0B8FBF00200E000250B6
++:1038D0008F8400349202000534420020A2020005C9
++:1038E0000E0002598F8400340E000FC08F84003404
++:1038F0008FBF00208FB1001C8FB0001824020C80F5
++:1039000027BD002803E00008AF42002427BDFFE8E0
++:10391000AFB00010AFBF001427430100946200084D
++:103920000002140000021403044100020000802180
++:103930002410000194620008304200801040001AF8
++:10394000020010219462000830422000104000164E
++:10395000020010218C6300183C021C2D344219ED2A
++:10396000240600061062000F3C0760213C0208009C
++:103970008C4200D4104000078F8200288F830028DB
++:10398000906200623042000F34420040A062006248
++:103990008F8200288F840034944500D40E000AF1F1
++:1039A00030A5FFFF020010218FBF00148FB0001060
++:1039B00003E0000827BD001827BDFFE0AFB10014E9
++:1039C000AFB00010A380002CAFBF00188F450100DE
++:1039D0003C0308008C6300E02402FF80AF850034C4
++:1039E00000A318213064007F0344202100621824C2
++:1039F0003C02000A00822021AF430024275001002E
++:103A00008E0200148C8300DCAF8400280043102356
++:103A100018400004000088218E0200140E000A8461
++:103A2000AC8200DC9202000B24030002304200FF53
++:103A30001443002F0000000096020008304300FFEE
++:103A40002402008214620005240200840E00093E54
++:103A5000000000000A000E97000000001462000938
++:103A6000240200818F8200288F8400343C0760216B
++:103A7000944500D49206000530A5FFFF0A000E868B
++:103A800030C600FF14620027000000009202000A06
++:103A9000304300FF306200201040000430620040DC
++:103AA0008F8400340A000E82240600401040000477
++:103AB000000316008F8400340A000E8224060041A1
++:103AC00000021603044100178F84003424060042CC
++:103AD0008F8200283C076019944500D430A5FFFF71
++:103AE0000E000AF1000000000A000E97000000001E
++:103AF0009202000B24030016304200FF1043000620
++:103B0000000000009202000B24030017304200FF67
++:103B100014430004000000000E000E11000000001D
++:103B2000004088210E000B68000000009202000A8D
++:103B3000304200081040000624020C808F850028C7
++:103B40003C0400080E0011EE0344202124020C80E6
++:103B5000AF4200248FBF0018022010218FB0001048
++:103B60008FB1001403E0000827BD002027BDFFE847
++:103B7000AFBF0014AFB000108F5000243C0308000A
++:103B80008C6300E08F4501002402FF8000A3182110
++:103B90003064007F03442021006218243C02000AA4
++:103BA00000822021AF850034AF4300249082006260
++:103BB000AF8400283042000F34420050A0820062DF
++:103BC0003C02001F3442FF800E00062602028024C1
++:103BD000AF5000248FBF00148FB0001003E0000826
++:103BE00027BD00183C0208008C4200201040001D38
++:103BF0002745010090A300093C0200080342202150
++:103C000024020018546200033C0200080A000ED887
++:103C10002402000803422021240200161462000539
++:103C20002402001724020012A082003F0A000EE2C4
++:103C300094A700085462000694A700089362000548
++:103C40002403FFFE00431024A362000594A700088C
++:103C500090A6001B8CA4000094A500060A000ACCC4
++:103C600000073C0003E000080000000027440100BA
++:103C700094820008304500FF38A3008238A20084F7
++:103C80002C6300012C420001006218251060000620
++:103C9000240200839382002D1040000D00000000DC
++:103CA0000A000B9B0000000014A2000524A2FF8064
++:103CB0008F4301043C02602003E00008AC43001481
++:103CC000304200FF2C420002104000032402002278
++:103CD0000A000E3C0000000014A2000300000000D7
++:103CE0000A000EA9000000000A000EC70000000034
++:103CF0009363007E9362007A144300090000202140
++:103D00009362000024030050304200FF144300047B
++:103D1000240400019362007E24420001A362007E1D
++:103D200003E00008008010218F4201F80440FFFEEC
++:103D300024020002AF4401C0A34201C43C021000AF
++:103D400003E00008AF4201F827BDFFE8AFBF001055
++:103D50009362003F2403000A304200FF14430046F0
++:103D6000000000008F6300548F62004C1062007DE1
++:103D7000036030219362000024030050304200FFB2
++:103D80001443002F000000008F4401403C02080053
++:103D90008C4200E02403FF800082102100431024A5
++:103DA000AF4200243C0208008C4200E08F650054C2
++:103DB0003C03000A008220213084007F034410214C
++:103DC00000431021AC4501089762003C8F63004C12
++:103DD0003042FFFF0002104000621821AF63005C18
++:103DE0008F6300548F64004C9762003C006418237A
++:103DF0003042FFFF00031843000210400043102A26
++:103E000010400006000000008F6200548F63004CD9
++:103E1000004310230A000F58000210439762003C31
++:103E20003042FFFF00021040ACC2006424020001D7
++:103E3000A0C0007CA0C2008424020C80AF420024F9
++:103E40000E000F0A8F440140104000478FBF001042
++:103E50008F4301408F4201F80440FFFE240200021C
++:103E6000AF4301C0A34201C43C021000AF4201F8BD
++:103E70000A000FA88FBF00109362003F24030010B8
++:103E8000304200FF14430004000000008F44014052
++:103E90000A000F94000028219362003F24030016BB
++:103EA000304200FF1443000424020014A362003FC8
++:103EB0000A000FA2000000008F62004C8F630050C8
++:103EC00000431023044100288FBF0010936200813B
++:103ED00024420001A3620081936200812C4200040D
++:103EE00014400010000000009362003F240300040F
++:103EF000304200FF14430006000000008F440140E0
++:103F00008FBF0010240500930A0005A027BD0018EC
++:103F10008F440140240500938FBF00100A00060F54
++:103F200027BD00188F4401400E0002500000000021
++:103F30008F6200542442FFFFAF6200548F62005032
++:103F40002442FFFFAF6200500E0002598F4401402F
++:103F50008F4401408FBF0010240500040A00025E58
++:103F600027BD00188FBF001003E0000827BD001810
++:103F70008F4201889363007E00021402304400FFE8
++:103F8000306300FF1464000D0000000093620080A5
++:103F9000304200FF1044000900000000A3640080CC
++:103FA0009362000024030050304200FF14430004D9
++:103FB000000000000A0006D78F440180A36400803F
++:103FC00003E000080000000027BDFFE8AFB00010CC
++:103FD000AFBF00149362000524030030304200306C
++:103FE00014430089008080213C0208008C4200209C
++:103FF00010400080020020210E0004930000000009
++:104000008F850020ACB000009362003E9363003FB8
++:10401000304200FF00021200306300FF0043102511
++:10402000ACA2000493620082000216000002160394
++:1040300004410005000000003C0308008C630048B8
++:104040000A000FE6000000009362003E304200408C
++:10405000144000030000182193620081304300FFE8
++:104060009362008200031E00304200FF0002140031
++:1040700000621825ACA300088F620040ACA2000CBF
++:104080008F620048ACA200108F62004CACA20014FA
++:104090008F6200508F63004C0043102304410003E3
++:1040A000000000000A000FFA8F62004C8F6200507F
++:1040B000ACA200183C02080094424B5E3C03C00BCB
++:1040C00000002021004310250E0004B8ACA2001C03
++:1040D0008F6200548F840020AC8200008F620058F1
++:1040E000AC8200048F62005CAC8200088F620060CA
++:1040F0008F43007400431021AC82000C8F62006477
++:10410000AC820010976300689762006A00031C008D
++:104110003042FFFF00621825AC83001493620082D6
++:1041200024030080304200FF14430003000000001D
++:104130000A00102EAC8000188F63000C24020001CE
++:104140001062000E2402FFFF9362003E30420040E6
++:104150001440000A2402FFFF8F63000C8F4200749A
++:10416000006218233C020800006210241440000280
++:10417000000028210060282100051043AC820018AF
++:104180003C02080094424B5E3C03C00C000020211E
++:10419000004310258F8300200E0004B8AC62001C81
++:1041A0008F6200188F8300203C05080094A54B5EA9
++:1041B00024040001AC620000AC6000048F66006C57
++:1041C0003C02400D00A22825AC6600088F6200DC8E
++:1041D000AC62000CAC600010936200050002160097
++:1041E000AC620014AC6000180E0004B8AC65001C92
++:1041F000020020218FBF00148FB00010A3600005C3
++:104200000A00042127BD00188FBF00148FB00010D2
++:1042100003E0000827BD00189742007C30C600FF6D
++:10422000A08600843047FFFF2402000514C2000B63
++:1042300024E3465090A201122C42000710400007D0
++:1042400024E30A0090A30112240200140062100467
++:1042500000E210210A0010663047FFFF3067FFFFC1
++:1042600003E00008A4870014AC87004C8CA201086E
++:104270000080402100A0482100E2102330C600FF4A
++:104280001840000393AA001324E2FFFCACA201082B
++:1042900030C2000110400008000000008D020050F4
++:1042A00000E2102304410013240600058D0200548F
++:1042B00010E20010000000008D02005414E2001A09
++:1042C000000000003C0208008C4200D83042002070
++:1042D0001040000A2402000191030078910200833B
++:1042E000144300062402000101002021012028219E
++:1042F000240600040A00105400000000A1000084FD
++:1043000011400009A50200148F4301008F4201F8FB
++:104310000440FFFE24020002AF4301C0A34201C4D7
++:104320003C021000AF4201F803E00008000000006A
++:1043300027BDFFE88FA90028AFBF001000804021F3
++:1043400000E918231860007330C600FFA080007CCD
++:10435000A08000818CA2010800E210230440004DDF
++:10436000000000008C8200509483003C8C84006428
++:10437000004748233063FFFF012318210083202BCF
++:1043800010800004000000008D0200640A0010B7D5
++:1043900000E210219502003C3042FFFF0122102173
++:1043A00000E21021AD02005C9502003C8D03005C30
++:1043B0003042FFFF0002104000E210210043102BAA
++:1043C00010400003000000000A0010C68D02005CCF
++:1043D0009502003C3042FFFF0002104000E2102135
++:1043E000AD02005CA1000084AD07004C8CA2010866
++:1043F00000E210231840000224E2FFFCACA20108F6
++:1044000030C200011040000A000000008D02005080
++:1044100000E2102304410004010020218D02005419
++:1044200014E20003000000000A0010E82406000562
++:104430008D02005414E200478FBF00103C020800B8
++:104440008C4200D8304200201040000A24020001B3
++:1044500091030078910200831443000624020001B6
++:1044600001002021240600048FBF00100A00105410
++:1044700027BD0018A1000084A50200148F4301008D
++:104480008F4201F80440FFFE240200020A00110DD1
++:10449000000000008C82005C004910230043102BB8
++:1044A00054400001AC87005C9502003C3042FFFFA5
++:1044B0000062102B14400007240200029502003C09
++:1044C0008D03005C3042FFFF00621821AD03005CE9
++:1044D00024020002AD07004CA10200840E000F0A66
++:1044E0008F4401001040001B8FBF00108F4301005C
++:1044F0008F4201F80440FFFE24020002AF4301C0D6
++:10450000A34201C43C021000AF4201F80A0011238B
++:104510008FBF001030C200101040000E8FBF00107F
++:104520008C83005C9482003C006918233042FFFFBA
++:10453000006218213C023FFF3444FFFF0083102B30
++:10454000544000010080182101231021AD02005CBD
++:104550008FBF001003E0000827BD001827BDFFE84B
++:104560008FAA0028AFBF00100080402100EA482336
++:104570001920002130C600FF8C83005C8C8200640F
++:10458000006A18230043102B5040001000691821C6
++:1045900094A2011001221021A4A2011094A20110E2
++:1045A0003042FFFF0043102B1440000A3C023FFF43
++:1045B00094A2011000431023A4A201109482003C95
++:1045C0003042FFFF0A00114200621821A4A001102E
++:1045D0003C023FFF3444FFFF0083102B5440000196
++:1045E0000080182100671021AD02005CA100007C52
++:1045F0000A00118AA100008130C200101040003C66
++:10460000000000008C820050004A1023184000383F
++:10461000000000009082007C24420001A082007C07
++:104620009082007C3C0308008C630024304200FF31
++:104630000043102B1440005C8FBF00108CA20108B7
++:1046400000E2102318400058000000008C83005442
++:104650009482003C006A18233042FFFF0003184395
++:10466000000210400043102A104000050000000026
++:104670008C820054004A10230A001171000210437A
++:104680009482003C3042FFFF00021040AD02006403
++:104690009502003C8D0400649503003C3042FFFF0E
++:1046A00000021040008220213063FFFF00831821A8
++:1046B00001431021AD02005C8D020054ACA2010840
++:1046C00024020002A10200840E000F0A8F440100A0
++:1046D000104000358FBF00108F4301008F4201F85A
++:1046E0000440FFFE240200020A0011B30000000093
++:1046F000AD07004C8CA2010800E210231840000214
++:1047000024E2FFFCACA2010830C200011040000A04
++:10471000000000008D02005000E21023044100045C
++:10472000010020218D02005414E20003000000006B
++:104730000A0011AA240600058D02005414E2001A92
++:104740008FBF00103C0208008C4200D8304200208D
++:104750001040000A240200019103007891020083B6
++:104760001443000624020001010020212406000455
++:104770008FBF00100A00105427BD0018A10000844C
++:10478000A50200148F4301008F4201F80440FFFE90
++:1047900024020002AF4301C0A34201C43C02100046
++:1047A000AF4201F88FBF001003E0000827BD0018DA
++:1047B0008FAA00108C8200500080402130C600FF7C
++:1047C000004A102300A048211840000700E01821EB
++:1047D00024020001A0800084A0A00112A482001481
++:1047E0000A001125AFAA0010A0800081AD07004C7F
++:1047F0008CA2010800E210231840000224E2FFFC12
++:10480000ACA2010830C20001104000080000000006
++:104810008D0200500062102304410013240600059D
++:104820008D02005410620010000000008D02005440
++:1048300014620011000000003C0208008C4200D805
++:10484000304200201040000A240200019103007849
++:10485000910200831443000624020001010020217C
++:1048600001202821240600040A0010540000000042
++:10487000A1000084A502001403E00008000000006D
++:1048800027BDFFE0AFBF0018274201009046000A95
++:104890008C4800148C8B004C9082008430C900FF3F
++:1048A00001681823304A00FF1C60001A2D460006DC
++:1048B000240200010142100410C00016304300031E
++:1048C000012030210100382114600007304C000C19
++:1048D00015800009304200301440000B8FBF0018D3
++:1048E0000A001214000000000E001125AFAB0010EA
++:1048F0000A0012148FBF00180E00109AAFAB001000
++:104900000A0012148FBF0018AFAB00100E0011BACE
++:10491000AFAA00148FBF001803E0000827BD0020D5
++:1049200024020003A08200848C82005403E000086B
++:10493000ACA201083C0200080342182190620081E9
++:10494000240600433C07601924420001A062008154
++:10495000906300813C0208008C4200C0306300FF7D
++:10496000146200102403FF803C0208008C4200E027
++:104970000082102100431024AF4200243C020800B2
++:104980008C4200E03C03000A008210213042007F8C
++:104990000342102100431021944500D40A000AF17B
++:1049A00030A5FFFF03E000080000000027BDFFE086
++:1049B000AFBF0018AFB10014AFB000108F4201803C
++:1049C0000080802100A088210E00121B00402021C1
++:1049D000A20000848E0200548FBF00188FB0001018
++:1049E000AE2201088FB1001403E0000827BD0020AB
++:1049F00027BDFFE03C020008AFB00010AFBF0018B9
++:104A0000AFB10014034280218F5101409203008412
++:104A10008E0400508E02004C14820040306600FF6D
++:104A20003C0208008C4200E02403FF800222102197
++:104A300000431024AF4200243C0208008C4200E0F6
++:104A40009744007C92050081022210213042007FB1
++:104A5000034218213C02000A0062182114A0000B36
++:104A60003084FFFF2402000554C20014248205DCB8
++:104A70009062011224420001A062011224020C8003
++:104A8000AF4200240A00127324020005A060011244
++:104A90002402000514C20009248205DC9202008170
++:104AA0002C4200075040000524820A009203008136
++:104AB0002402001400621004008210213044FFFF21
++:104AC000A60400140E00121B022020219602003CB6
++:104AD0008E03004C022020213042FFFF00021040D4
++:104AE000006218210E000250AE03005C9202007DAD
++:104AF00002202021344200400E000259A202007D13
++:104B00008F4201F80440FFFE24020002AF5101C0B1
++:104B1000A34201C43C021000AF4201F88FBF00184D
++:104B20008FB100148FB0001003E0000827BD0020F3
++:104B300008000ACC08000B1408000B9808000BE4CE
++:104B400008000C200A0000280000000000000000FF
++:104B50000000000D6370362E322E3300000000007E
++:104B60000602030400000000000000000000000036
++:104B70000000000000000000000000000000000035
++:104B80000000000000000000000000000000002005
++:104B90000000000000000000000000000000000015
++:104BA0000000000000000000000000000000000005
++:104BB00000000000000000000000000000000001F4
++:104BC0000000002B000000000000000400030D4066
++:104BD00000000000000000000000000000000000D5
++:104BE00000000000000000001000000300000000B2
++:104BF0000000000D0000000D3C020800244258A4F3
++:104C00003C03080024635F70AC4000000043202B8D
++:104C10001480FFFD244200043C1D080037BD7FFCCA
++:104C200003A0F0213C100800261000A03C1C080046
++:104C3000279C58A40E0001AC000000000000000DED
++:104C400027BDFFE83C096018AFBF00108D2C500055
++:104C5000240DFF7F24080031018D5824356A380C5B
++:104C600024070C003C1A8000AD2A50003C04800A46
++:104C7000AF4800083C1B8008AF4700240E00091510
++:104C8000AF8400100E0008D8000000000E000825B8
++:104C9000000000000E001252000000003C046016EC
++:104CA0008C8500003C06FFFF3C02535300A61824ED
++:104CB0001062004734867C0094C201F2A780002C69
++:104CC00010400003A78000CC38581E1EA798002C67
++:104CD00094C201F810400004978300CC38591E1E7E
++:104CE000A79900CC978300CC2C7F006753E000018C
++:104CF000240300669784002C2C82040114400002D7
++:104D000000602821240404003C0760008CE904387A
++:104D10002403103C3128FFFF1103001F30B9FFFFAF
++:104D200057200010A38000CE24020050A38200CEA2
++:104D3000939F00CE53E0000FA78500CCA78000CC46
++:104D4000978500CC8FBF0010A780002CA78000346F
++:104D5000A78000E63C010800AC25008003E00008C5
++:104D600027BD0018939F00CE57E0FFF5A78000CC29
++:104D7000A78500CC978500CC8FBF0010A784002C9E
++:104D8000A7800034A78000E63C010800AC25008025
++:104D900003E0000827BD0018A38000CE8CCB003CA8
++:104DA000316A00011140000E0000000030A7FFFF33
++:104DB00010E0FFDE240200508CCC00C831860001D8
++:104DC00014C0FFDC939F00CE0A00007A2402005139
++:104DD0008C8F00043C0E60000A00005D01EE302163
++:104DE0008CEF0808240D5708000F740211CD000441
++:104DF00030B8FFFF240500660A00007B240404008D
++:104E00001700FFCC939F00CE0A00007A24020050C6
++:104E10008F8600103089FFFF000939408CC30010D5
++:104E20003C08005000E82025AF4300388CC5001432
++:104E300027420400AF82001CAF45003CAF44003065
++:104E40000000000000000000000000000000000062
++:104E50000000000000000000000000000000000052
++:104E60008F4B0000316A00201140FFFD0000000060
++:104E700003E00008000000008F840010948A001AEC
++:104E80008C8700243149FFFF000940C000E8302131
++:104E9000AF46003C8C8500248F43003C00A31023C8
++:104EA00018400029000000008C8B002025620001C2
++:104EB0003C0D005035AC0008AF420038AF4C00301C
++:104EC00000000000000000000000000000000000E2
++:104ED00000000000000000000000000000000000D2
++:104EE0008F4F000031EE002011C0FFFD00000000D8
++:104EF0008F4A04003C080020AC8A00108F4904044B
++:104F0000AC890014AF4800300000000094860018FF
++:104F10009487001C00C71821A48300189485001AE8
++:104F200024A20001A482001A9498001A9499001EE9
++:104F3000133800030000000003E000080000000038
++:104F400003E00008A480001A8C8200200A0000DC24
++:104F50003C0D00500A0000CD000000003C0308009A
++:104F60008C6300208F82001827BDFFE810620008C4
++:104F7000AFBF00100E000104AF8300183C0308000F
++:104F80008C63002024040001106400048F89001049
++:104F90008FBF001003E0000827BD00188FBF00106E
++:104FA0003C076012A520000A9528000A34E500108D
++:104FB00027BD00183106FFFF03E00008ACA60090F3
++:104FC0003C0208008C42002027BDFFC8AFBF003460
++:104FD000AFBE0030AFB7002CAFB60028AFB500248D
++:104FE000AFB40020AFB3001CAFB20018AFB10014D3
++:104FF00010400050AFB000108F840010948600065F
++:105000009483000A00C3282330B6FFFF12C0004A71
++:105010008FBF003494890018948A000A012A402323
++:105020003102FFFF02C2382B14E0000202C020212F
++:10503000004020212C8C0005158000020080A0215A
++:10504000241400040E0000B3028020218F8700107A
++:1050500002809821AF80001494ED000A028088211C
++:105060001280004E31B2FFFF3C1770003C1540002B
++:105070003C1E60008F8F001C8DEE000001D71824AD
++:10508000507500500220202102A3802B160000350D
++:105090003C182000507800470220202124100001F5
++:1050A0008F83001414600039029158230230F823D2
++:1050B0000250C82133F1FFFF1620FFEE3332FFFF0D
++:1050C0008F8700103C110020AF510030000000001D
++:1050D00094E6000A3C1E601237D5001002662821B3
++:1050E000A4E5000A94E2000A94F2000A94F400187D
++:1050F0003057FFFF1292003BAEB700908CED0014CA
++:105100008CE400100013714001AE4021000E5FC31B
++:10511000010E502B008B4821012A1821ACE8001405
++:10512000ACE3001002D3382330F6FFFF16C0FFB9FE
++:105130008F8400108FBF00348FBE00308FB7002CDB
++:105140008FB600288FB500248FB400208FB3001CC9
++:105150008FB200188FB100148FB0001003E0000868
++:1051600027BD0038107E001B000000001477FFCC24
++:10517000241000010E00159B000000008F83001416
++:105180001060FFCB0230F823029158238F87001064
++:10519000017020210A0001973093FFFF8F830014D4
++:1051A0001460FFCB3C110020AF5100300A000163B6
++:1051B000000000000E00077D024028210A00015770
++:1051C000004080210E00033A024028210A000157C6
++:1051D000004080210E001463022020210A000157A4
++:1051E000004080210E0000CD000000000A0001797F
++:1051F00002D3382327BDFFE8AFB00010AFBF0014C3
++:105200000E00003F000000003C028000345000709F
++:105210000A0001BA8E0600008F4F000039EE00012F
++:1052200031C20001104000248F8600A88E070000C4
++:105230003C0C08008D8C003C3C0908008D2900388E
++:1052400000E66823018D28210000502100AD302B9D
++:10525000012A4021010620213C010800AC25003C28
++:10526000AF8700A83C010800AC2400380E000106FE
++:10527000000000003C0308008C6300701060FFE633
++:10528000006020213C0508008CA500683C06080051
++:105290008CC6006C0E00152A000000003C010800BE
++:1052A000AC2000708F4F000039EE000131C20001C8
++:1052B0001440FFDE8F8600A88E0A00008F8B00A8A6
++:1052C0003C0508008CA5003C3C0408008C84003898
++:1052D000014B482300A938210082182100E9402B06
++:1052E000006810213C010800AC27003C3C0108008C
++:1052F000AC2200388F5F01002419FF0024180C0035
++:1053000003F9202410980012AF840000AF4400205D
++:10531000936D0000240C002031A600FF10CC001279
++:10532000240E005010CE00043C194000AF59013843
++:105330000A0001B3000000000E0011C800000000C8
++:105340003C194000AF5901380A0001B300000000C9
++:105350000E00011F000000003C194000AF59013849
++:105360000A0001B3000000008F58010000802821CE
++:10537000330F00FF01E020210E0002F1AF8F000487
++:105380003C194000AF5901380A0001B30000000089
++:1053900000A4102B2403000110400009000030215C
++:1053A0000005284000A4102B04A0000300031840AF
++:1053B0005440FFFC000528405060000A0004182BF0
++:1053C0000085382B54E000040003184200C3302548
++:1053D00000852023000318421460FFF900052842CD
++:1053E0000004182B03E0000800C310218F4201B80D
++:1053F0000440FFFE00000000AF4401803C031000A9
++:1054000024040040AF450184A3440188A3460189D8
++:10541000A747018A03E00008AF4301B83084FFFFCB
++:105420000080382130A5FFFF000020210A00022A59
++:10543000240600803087FFFF8CA40000240600387B
++:105440000A00022A000028218F8300388F8600304E
++:105450001066000B008040213C07080024E75A1822
++:10546000000328C000A710218C4400002463000121
++:10547000108800053063000F5466FFFA000328C04F
++:1054800003E00008000010213C07080024E75A1C34
++:1054900000A7302103E000088CC200003C0390000C
++:1054A0003462000100822025AF4400208F45002097
++:1054B00004A0FFFE0000000003E000080000000060
++:1054C0003C038000346200010082202503E00008D4
++:1054D000AF44002027BDFFE0AFB100143091FFFFC3
++:1054E000AFB00010AFBF00181220001300A0802141
++:1054F0008CA2000024040002240601401040000F8A
++:10550000004028210E000C5C00000000000010216B
++:10551000AE000000022038218FBF00188FB10014A8
++:105520008FB0001000402021000028210000302111
++:105530000A00022A27BD00208CA200000220382188
++:105540008FBF00188FB100148FB0001000402021D1
++:1055500000002821000030210A00022A27BD002077
++:1055600000A010213087FFFF8CA500048C440000B0
++:105570000A00022A2406000627BDFFE0AFB0001093
++:10558000AFBF0018AFB100149363003E00808021CC
++:105590000080282130620040000020211040000FD0
++:1055A0008E1100000E000851022020219367000098
++:1055B0002404005030E500FF50A400128E0F0000BC
++:1055C000022020218FBF00188FB100148FB000106F
++:1055D000A762013C0A00091127BD00200E000287C6
++:1055E000000000000E0008510220202193670000F7
++:1055F0002404005030E500FF14A4FFF20220202113
++:105600008E0F00003C1008008E1000503C0D000C66
++:10561000240BFF8001F05021314E007F01DA602120
++:10562000018D4021014B4824AF4900280220202150
++:105630008FBF00188FB100148FB00010A50200D6E4
++:1056400027BD00200A000911AF8800D027BDFFE068
++:10565000AFBF0018AFB10014AFB0001093660001E7
++:10566000008080210E00025630D1000493640005B2
++:10567000001029C2A765000034830040A363000521
++:105680000E00025F020020210E00091302002021FB
++:1056900024020001AF62000C02002821A762001062
++:1056A00024040002A762001224060140A76200142D
++:1056B0000E000C5CA76200161620000F8FBF0018AA
++:1056C000978C00343C0B08008D6B00782588FFFF19
++:1056D0003109FFFF256A0001012A382B10E000067E
++:1056E000A78800343C0F6006240E001635ED00102C
++:1056F000ADAE00508FBF00188FB100148FB00010F6
++:1057000003E0000827BD002027BDFFE0AFB1001473
++:10571000AFBF0018AFB0001000A088211080000AB1
++:105720003C03600024020080108200120000000090
++:105730000000000D8FBF00188FB100148FB0001053
++:1057400003E0000827BD00208C682BF80500FFFE51
++:1057500000000000AC712BC08FBF00188FB1001487
++:105760008FB000103C09100027BD002003E00008A6
++:10577000AC692BF80E00025600A0202193650005AD
++:10578000022020210E00025F30B000FF2403003E03
++:105790001603FFE7000000008F4401780480FFFE3D
++:1057A000240700073C061000AF51014002202021D1
++:1057B000A34701448FBF00188FB100148FB00010B1
++:1057C000AF4601780A0002C227BD002027BDFFE8CE
++:1057D000AFBF0014AFB000108F50002000000000D9
++:1057E0000E000913AF440020AF5000208FBF0014FB
++:1057F0008FB0001003E0000827BD00183084FFFFC1
++:10580000008038212406003500A020210A00022A49
++:10581000000028213084FFFF008038212406003654
++:1058200000A020210A00022A0000282127BDFFD065
++:10583000AFB3001C3093FFFFAFB50024AFB2001828
++:10584000AFBF0028AFB40020AFB10014AFB000105C
++:1058500030B5FFFF12600027000090218F90001CE0
++:105860008E0300003C0680002402004000033E023C
++:1058700000032C0230E4007F006688241482001D9F
++:1058800030A500FF8F8300282C68000A510000100B
++:105890008F910014000358803C0C0800258C56940E
++:1058A000016C50218D49000001200008000000001B
++:1058B00002B210213045FFFF0E000236240400849E
++:1058C000162000028F90001CAF8000288F910014DA
++:1058D000260C002026430001018080213072FFFF4A
++:1058E00016200004AF8C001C0253502B1540FFDC27
++:1058F00000000000024010218FBF00288FB5002457
++:105900008FB400208FB3001C8FB200188FB1001429
++:105910008FB0001003E0000827BD0030240E0034D3
++:1059200014AE00F9000000009203000E241F168040
++:105930003C07000CA36300219202000D0347C8211D
++:105940003C066000A3620020961100123C0A7FFF13
++:10595000354CFFFFA771003C960B00102403000597
++:105960003168FFFFAF6800848E05001CAF5F002820
++:105970008F3800008CC4444803057826008F3021FE
++:10598000AF66004C8F69004C24CE00013C057F00BF
++:10599000AF6900508F740050AF740054AF66007050
++:1059A000AF6E00588F6D005824140050AF6D005C2E
++:1059B000A3600023AF6C0064A36300378E02001461
++:1059C000AF6200488F710048AF7100248E0B001841
++:1059D000AF6B006C9208000CA3680036937F003E0A
++:1059E00037F90020A379003E8F78007403058024E6
++:1059F000360F4000AF6F007493640000308900FFE1
++:105A0000513402452404FF803C04080024845A9841
++:105A10000E00028D000000003C1008008E105A9805
++:105A20000E00025602002021240600042407000173
++:105A3000A366007D020020210E00025FA36700051F
++:105A40008F5F017807E0FFFE240B0002AF5001409A
++:105A5000A34B01448F90001C3C081000AF48017814
++:105A60000A000362AF8000282CAD003751A0FF98D8
++:105A70008F9100140005A0803C180800271856BC20
++:105A8000029878218DEE000001C00008000000009F
++:105A90002418000614B80011000000003C0808009B
++:105AA0008D085A9824040005AF4800208E1F001866
++:105AB000AF7F00188F79004CAF79001C8F650050C4
++:105AC000122000C0AF6500700A000362AF84002896
++:105AD0002406000710A60083240300063C050800E6
++:105AE00024A55A980E000264240400818F90001CA3
++:105AF0000011102B0A000362AF8200282407000463
++:105B000014A7FFF6240500503C1808008F185A9877
++:105B1000AF5800208E0F0008AF6F00408E090008BC
++:105B2000AF6900448E14000CAF7400488E0E001054
++:105B3000AF6E004C8E0D0010AF6D00848E0A001405
++:105B4000AF6A00508E0C0018AF6C00548E04001C1D
++:105B5000AF64005893630000306B00FF116501D8FB
++:105B6000000000008F7400488F6900400289702394
++:105B700005C000042404008C1620FFDE240200036C
++:105B8000240400823C05080024A55A980E000287D0
++:105B9000000000008F90001C000010210A0003622A
++:105BA000AF820028240F000514AFFFCC240520008D
++:105BB0003C0708008CE75A98AF4700208E06000487
++:105BC000AF66005C9208000824100008A36800215A
++:105BD0008F9F001C93F90009A37900208F86001C79
++:105BE00090D8000A330400FF10900011000000005C
++:105BF0002885000914A0006924020002240A00205C
++:105C0000108A000B34058000288D002115A00008A3
++:105C100024054000240E0040108E00053C050001C4
++:105C200024140080109400023C050002240540006A
++:105C30008F7800743C19FF00031980240205782531
++:105C4000AF6F007490C4000BA36400818F84001CAC
++:105C50009489000C11200192000000009490000C27
++:105C60002406FFBF24050004A770003C908F000E9F
++:105C7000A36F003E8F84001C9089000FA369003F32
++:105C80008F8B001C8D6E00108F54007401D468231C
++:105C9000AF6D00608D6A0014AF6A0064956C0018E7
++:105CA000A76C00689563001AA763006A8D62001CE8
++:105CB000AF62006C9167000EA367003E9368003EE0
++:105CC0000106F8241220014BA37F003E8F90001C98
++:105CD0000A000362AF8500282407002214A7FF7F73
++:105CE000240300073C0B08008D6B5A981220000C0F
++:105CF000AF4B00200A000362AF830028240C00335E
++:105D000010AC0014240A00283C05080024A55A9869
++:105D10000E00023C240400810A0003EB8F90001C5B
++:105D20003C04080024845A980E00028D00000000F4
++:105D30009363000024110050306200FF10510135C0
++:105D4000000000008F90001C000018210A00036270
++:105D5000AF8300283C0D08008DAD5A9824040081C3
++:105D6000AF4D00203C05080024A55A980E00023CC7
++:105D7000A36A00348F90001C240200090A00036209
++:105D8000AF82002802B288213225FFFF0E000236C2
++:105D9000240400840A0003628F90001C1082FFA478
++:105DA00024050400288B000311600170240C0004FA
++:105DB000240300015483FF9E240540000A00043B95
++:105DC000240501003C04080024845A988F62004C8A
++:105DD0000E00028D8F6300508F90001C0000202168
++:105DE0000A000362AF8400288E1000042404008A95
++:105DF000AF50002093790005333800021700015F8F
++:105E0000020028219368002302002821311F00206E
++:105E100017E0015A2404008D9367003F2406001206
++:105E200030E200FF10460155240400810E000256A6
++:105E30000200202193630023240500040200202196
++:105E4000346B0042A36B00230E00025FA365007D4C
++:105E50008F4401780480FFFE240A0002AF50014005
++:105E6000A34A01448F90001C3C0C1000AF4C0178F9
++:105E70000A0003EC0011102B8E1000042404008A89
++:105E8000AF500020936E000531CD000215A0001622
++:105E900002002821936F003F2414000402002821EF
++:105EA00031E900FF11340010240400810E00025675
++:105EB000020020219362002324080012241FFFFE09
++:105EC00034460020A3660023A368003F93790005B1
++:105ED00002002021033FC0240E00025FA3780005CA
++:105EE00002002821000020210E00033400000000E1
++:105EF0000A0003EB8F90001C8E1000043C03000886
++:105F00000343A021AF500020928B000024050050D5
++:105F1000316400FF10850161240700880200202100
++:105F2000000028210E00022A2406000E928D000097
++:105F3000240EFF800200282101AE8025A2900000DF
++:105F4000240400040E000C5C240600300A0003EB5D
++:105F50008F90001C8E0800043C14080026945A9868
++:105F60003C010800AC285A98AF480020921F00035B
++:105F700033F9000413200002240200122402000658
++:105F8000A362003F920B001B2404FFC03165003F59
++:105F900000A43825A367003E9206000330C200012A
++:105FA00014400132000000008E020008AE8200089A
++:105FB0003C0208008C425AA010400131000249C244
++:105FC000A76900088E14000C240C0001240300149F
++:105FD000AF74002C8E0E0010AF6E0030960D0016C0
++:105FE000A76D0038960A0014A76A003AAF6C000C3F
++:105FF000A76C0010A76C0012A76C0014A76C001609
++:1060000012200136A3630034920F000331F0000226
++:106010002E1100018F90001C262200080A00036246
++:10602000AF8200288E0400043C0E0008034E30218D
++:10603000AF4400208E05000890CD0000240C0050D5
++:1060400031AA00FF114C00862407008824060009AD
++:106050000E00022A000000000A0003EB8F90001CD3
++:106060008E04001C0E00024100000000104000F4ED
++:10607000004050218F89001C240700890140202105
++:106080008D25001C240600010E00022A00000000DD
++:106090000A0003EB8F90001C960D00023C140800D0
++:1060A00026945A9831AA0004514000B83C10600070
++:1060B0008E0E001C3C010800AC2E5A98AF4E0020FA
++:1060C000920700102408001430E200FF144800D6A4
++:1060D00000000000960B00023163000114600165AE
++:1060E000000000008E020004AE8200083C1408008C
++:1060F0008E945AA01280015B000000008F7400741F
++:106100003C0380002404000102835825AF6B007417
++:10611000A3600005AF64000C3C0708008CE75AA0A0
++:106120008F86001CA7640010000711C2A76400122C
++:10613000A7640014A7640016A76200088CC80008B2
++:1061400024040002AF68002C8CC5000CAF65003041
++:1061500090DF0010A37F00348F99001C9330001152
++:10616000A37000358F98001C930F0012A36F0036A8
++:106170008F89001C912E0013A36E00378F90001C96
++:10618000960D0014A76D0038960A0016A76A003A0B
++:106190008E0C0018AF6C00245620FDCCAF84002874
++:1061A0003C05080024A55A980E0002640000202136
++:1061B0008F90001C0A0004A7000020218E1000040C
++:1061C00024070081AF500020936900233134001070
++:1061D000128000170000000002002021000028218A
++:1061E0002406001F0E00022A000000000A0003EB34
++:1061F0008F90001C3C05080024A55A980E000287C9
++:10620000240400828F90001C000028210A000362F1
++:10621000AF8500283C0408008C845A980E0014E8CE
++:10622000000000008F90001C0A000482000018216A
++:106230000E00025602002021937800230200202144
++:10624000370F00100E00025FA36F002300003821FB
++:1062500002002021000028210A0005A82406001FB2
++:10626000920F000C31E90001112000030000000032
++:106270009618000EA4D8002C921F000C33F90002CF
++:1062800013200005000038218E0200149608001229
++:10629000ACC2001CA4C8001A0A0005432406000969
++:1062A0003C05080024A55A980E0002872404008BA0
++:1062B0008F90001C0011282B0A000362AF85002874
++:1062C000AF6000843C0A08008D4A5A983C0D0800D3
++:1062D0008DAD0050240CFF803C02000C014D1821B4
++:1062E000006C2024AF4400288E070014306B007F20
++:1062F000017A282100A2C821AF2700D88E060014F9
++:10630000AF9900D0AF2600DC8E080010251FFFFEDD
++:106310000A000408AF3F01083C0508008CA55A9804
++:106320003C1908008F39005024CCFFFE00B9C02171
++:1063300003047824AF4F00283C1408008E945A9828
++:106340003C0908008D2900500289702131CD007F61
++:1063500001BA502101478021AE0600D8AF9000D08D
++:10636000AE0000DC0A0003B1AE0C0108548CFE3014
++:10637000240540000A00043B240510000E00032EF3
++:10638000000000000A0003EB8F90001C8E0F442CCD
++:106390003C186C62370979703C010800AC205A98AF
++:1063A00015E9000824050140979F00349786002CCA
++:1063B0000280282103E6C82B132000112404009238
++:1063C000240501400E000C7A240400023C01080060
++:1063D000AC225A98AF4200203C0508008CA55A9880
++:1063E00010A00005240400830E00084500000000F2
++:1063F00010400009240400833C05080024A55A9895
++:106400000E000264000000008F90001C0011202B81
++:106410000A000362AF8400280E0008490000000053
++:106420000A00055F8F90001C0E00084D0000000060
++:106430003C05080024A55A980A00062F2404008B66
++:10644000240400040E000C7A240500301440002AB5
++:10645000004050218F89001C240700830140202127
++:106460008D25001C0A000551240600018E04000839
++:106470000E000241000000000A00051BAE82000869
++:106480003C05080024A55A980E00023C240400870D
++:106490008F90001C0A0005360011102B8F830038E6
++:1064A0008F8600301066FE9D000038213C070800F2
++:1064B00024E75A1C000320C0008728218CAC000070
++:1064C00011900061246A00013143000F5466FFFA05
++:1064D000000320C00A0004F6000038213C05080033
++:1064E00024A55A980E000287240400828F90001C75
++:1064F0000A000536000010213C0B0008034B202148
++:106500002403005024070001AF420020A0830000B4
++:10651000A08700018F82001C90480004A08800180A
++:106520008F85001C90A60005A08600198F9F001C77
++:1065300093F90006A099001A8F90001C921800078A
++:10654000A098001B8F94001C928F0008A08F001C45
++:106550008F89001C912E0009A08E001D8F8D001CBC
++:1065600091AC000AA08C001E8F8B001C3C0C080014
++:10657000258C5A1C9163000B3C0B0800256B5A18A4
++:10658000A083001F8F87001C90E8000CA0880020CB
++:106590008F82001C9045000D24024646A0850021F4
++:1065A0008F86001C90DF000EA09F00228F99001C98
++:1065B0009330000FA09000238F98001C93140010BC
++:1065C000A09400248F8F001C91E90011A089002560
++:1065D0008F89001C8F8E00308F900038952D00140D
++:1065E000000E18C025C80001A48D002895270016AC
++:1065F000006C3021006BC821A487002A9525001863
++:106600003108000FA485002CA482002E8D3F001CB1
++:10661000ACCA0000AF88003011100006AF3F000088
++:10662000000038218D25001C014020210A00055161
++:1066300024060001250C00013184000F00003821E0
++:106640000A0006B8AF8400383C07080024E75A184F
++:106650000087302100003821ACA000000A0004F6B9
++:10666000ACC000003C05080024A55A980A00062F7B
++:10667000240400878E0400040E0002410000000084
++:106680000A00056AAE8200083084FFFF30C600FFB2
++:106690008F4201B80440FFFE00064400010430258B
++:1066A0003C07200000C720253C031000AF400180BC
++:1066B000AF450184AF44018803E00008AF4301B84F
++:1066C00027BDFFE8AFB00010AFBF00143C0760006B
++:1066D000240600021080000600A080210010102B6C
++:1066E0008FBF00148FB0001003E0000827BD001812
++:1066F0003C09600EAD2000348CE5201C8F82001C0C
++:106700002408FFFC00A81824ACE3201C0E0006D1CE
++:106710008C45000C0010102B8FBF00148FB00010A0
++:1067200003E0000827BD00183C02600E344701005A
++:1067300024090018274A040000000000000000009F
++:10674000000000003C06005034C30200AF44003893
++:10675000AF45003CAF430030014018218F4B000093
++:10676000316800201100FFFD2406007F2408FFFF90
++:106770008C6C000024C6FFFF24630004ACEC000016
++:1067800014C8FFFB24E70004000000000000000024
++:10679000000000003C0F0020AF4F00300000000060
++:1067A00024AD020001A5702B2529FFFF008E2021BA
++:1067B0001520FFE101A0282103E0000800000000EF
++:1067C00027BDFFE0AFB10014AFBF0018AFB000109D
++:1067D0003C05600E8CA20034008088211440000625
++:1067E0003C0460008C87201C2408FFFC00E8302457
++:1067F00034C30001AC83201C8F8B001C24090001D2
++:10680000ACA90034956900028D6500148D70000CF0
++:106810002D2400818D6700048D660008108000071C
++:106820008D6A00102D2C00041580000E30CE00075C
++:10683000312D000311A0000B000000002404008B88
++:10684000020028210E0006D1240600030011102B9F
++:106850008FBF00188FB100148FB0001003E0000844
++:1068600027BD002015C0FFF62404008B3C03002048
++:10687000AF4300300000000024020001AF8200148A
++:106880000000000000000000000000003C1F01505C
++:10689000013FC825253800033C0F600EAF47003884
++:1068A00000181882AF46003C35E8003CAF59003074
++:1068B000274704008F4400003086002010C0FFFDF1
++:1068C00000000000106000082466FFFF2403FFFFA3
++:1068D0008CEB000024C6FFFF24E70004AD0B000092
++:1068E00014C3FFFB250800043C08600EAD09003806
++:1068F0000000000000000000000000003C07002035
++:10690000AF470030000000000E0006F901402021D2
++:1069100002002821000020210E0006D124060003D9
++:106920000011102B8FBF00188FB100148FB0001012
++:1069300003E0000827BD002027BDFFE0AFB200182C
++:106940003092FFFFAFB10014AFBF001CAFB000101A
++:106950001640000D000088210A0007AA022010211D
++:1069600024050001508500278CE5000C0000000D77
++:10697000262300013071FFFF24E200200232382B71
++:1069800010E00019AF82001C8F8200141440001622
++:106990008F87001C3C0670003C0320008CE5000043
++:1069A00000A62024148300108F84003C00054402BC
++:1069B0003C09800000A980241480FFE9310600FF13
++:1069C0002CCA00095140FFEB262300010006688015
++:1069D0003C0E080025CE579801AE60218D8B00003B
++:1069E0000160000800000000022010218FBF001C81
++:1069F0008FB200188FB100148FB0001003E00008B0
++:106A000027BD00200E0006D1240400841600FFD804
++:106A10008F87001C0A00078BAF80003C90EF0002BC
++:106A200000002021240600090E0006D1000F2E00D0
++:106A30008F87001C0010102B0A00078BAF82003CD0
++:106A4000020028210E0006DF240400018F87001CAD
++:106A50000A00078BAF82003C020028210E0006DFEF
++:106A6000000020210A0007C38F87001C0E00071FAB
++:106A7000020020210A0007C38F87001C30B0FFFFEF
++:106A8000001019C08F5801B80700FFFE3C1F2004FA
++:106A90003C191000AF430180AF400184AF5F018813
++:106AA000AF5901B80A00078C262300013082FFFF8E
++:106AB00014400003000018210004240224030010E5
++:106AC000308500FF14A000053087000F2466000801
++:106AD0000004220230C300FF3087000F14E00005DD
++:106AE000308900032468000400042102310300FF00
++:106AF0003089000315200005388B0001246A00024C
++:106B000000042082314300FF388B00013164000112
++:106B100010800002246C0001318300FF03E00008B4
++:106B200000601021308BFFFF000B394230E600FF80
++:106B30003C09080025295998000640800109602178
++:106B40008D8700003164001F240A0001008A1804A8
++:106B500030A500FF00E3202514A000020003102749
++:106B600000E22024240F000100CF700401096821F5
++:106B7000000E282714800005ADA400008F86000CAD
++:106B800000A6102403E00008AF82000C8F88000CE0
++:106B900001C8102503E00008AF82000C3C06001F6E
++:106BA0003C0360003084FFFF34C5FF8024020020D6
++:106BB000AC602008AC60200CAC602010AC652014E8
++:106BC000AC642018AC62200000000000000000004F
++:106BD00003E000080000000027BDFFE82402FFFFDB
++:106BE000AFBF0010AF82000C000020213C0608005F
++:106BF00024C659982405FFFF248900010004408021
++:106C00003124FFFF010618212C87002014E0FFFA31
++:106C1000AC6500000E0008160000202124020001CF
++:106C20003C04600024050020AC822018AC852000C4
++:106C3000000000000000000000000000244A0001E5
++:106C40003142FFFF2C46040014C0FFF78FBF001035
++:106C500003E0000827BD00188F8300082C620400A1
++:106C600003E00008384200018F830008246200011D
++:106C700003E00008AF8200088F8300082462FFFF52
++:106C800003E00008AF82000827BDFFE0AFB10014A9
++:106C9000AFBF0018AFB000108F6B00303C06600033
++:106CA00000808821ACCB20088F6A002C3C02800039
++:106CB00024030008ACCA200C9769003A9768003892
++:106CC00000092C003107FFFF00A72025ACC42010CD
++:106CD000ACC22014ACC32000000000000000000083
++:106CE000000000003C0360008C6D200031AC000807
++:106CF0001580FFF9000000008C6E201405C00020F4
++:106D0000000000000E0007DA8F84000C00024080B3
++:106D10003C09080025295998010938218CE4000014
++:106D20000E0007DA00028140020220213090FFFFAE
++:106D3000020020210E0007F8000028213C0C8000F2
++:106D4000022C58253210FFFF3C116000240A00205D
++:106D5000AE2B2014AE302018AE2A20000000000018
++:106D60000000000000000000020010218FBF00188A
++:106D70008FB100148FB0001003E0000827BD002081
++:106D80008C6620143C02001F3443FF803C1FFFE848
++:106D900000C3C02437F9080003198021001079C20C
++:106DA0003C0C8000022C582531F0FFFF3C116000A4
++:106DB000240A0020AE2B2014AE302018AE2A20006A
++:106DC0000000000000000000000000000200102190
++:106DD0008FBF00188FB100148FB0001003E00008BF
++:106DE00027BD002027BDFFE8AFB000103402FFFF31
++:106DF0003090FFFFAFBF00141202000602002021F6
++:106E00000E00081600000000020020210E0007F806
++:106E1000240500018F8400088FBF00148FB000107C
++:106E20002483FFFF27BD001803E00008AF8300089C
++:106E3000000439C230E6003F00043B42000718401E
++:106E4000240210002CC4002024C8FFE0AF42002C14
++:106E5000246300011480000330A900FF00071840DC
++:106E6000310600FF0003608024080001019A5821C8
++:106E70003C0A000E00C82804016A382111200005D0
++:106E8000000530278CE900000125302503E00008CB
++:106E9000ACE600008CEE000001C6682403E00008A8
++:106EA000ACED000027BDFFE8AFBF0014AFB000108D
++:106EB0003C0460008C8508083403F00030A2F00028
++:106EC00050430006240200018C8708083404E000C7
++:106ED00030E6F00010C4001E24020002AF82004021
++:106EE0003C1060003C0A0200AE0A0814240910009D
++:106EF0003C08000E8E03440003482021AF49002CBB
++:106F0000240501200E000CC0000030218F830040BA
++:106F1000106000043C021691240B0001106B000E5F
++:106F20003C023D2C344F0090AE0F44088FBF00143C
++:106F30008FB000103C0C6000240E10003C0D0200CD
++:106F400027BD0018AD8E442003E00008AD8D081069
++:106F50000A0008E7AF8000403C0218DA344F009086
++:106F6000AE0F44088FBF00148FB000103C0C6000BF
++:106F7000240E10003C0D020027BD0018AD8E4420E9
++:106F800003E00008AD8D08100A0008BB24050001CD
++:106F90000A0008BB000028213C08080025085DA461
++:106FA0002404FFFF010018212402001E2442FFFFD9
++:106FB000AC6400000441FFFD246300043C070800AA
++:106FC00024E75E208CE5FFFC2404001C240600015D
++:106FD000308A001F0146480424840001000910275C
++:106FE0002C8300201460FFFA00A22824ACE5FFFCEB
++:106FF0003C05666634A4616E3C06080024C65EE06B
++:10700000AF840058AF88009C2404FFFF00C0182103
++:107010002402001F2442FFFFAC6400000441FFFD76
++:10702000246300043C0766663C05080024A55EA0B6
++:10703000AF86004834E6616EAF8600982404FFFFF7
++:1070400000A018212402000F2442FFFFAC640000BE
++:107050000441FFFD246300043C0B66663C06080007
++:1070600024C65E203568616EAF8500A4AF880070CD
++:107070002404FFFF00C018212402001F2442FFFF48
++:10708000AC6400000441FFFD246300043C0D66660F
++:107090003C0A0800254A5F6035AC616EAF860090FF
++:1070A000AF8C005C2404FFFF014018212402000380
++:1070B0002442FFFFAC6400000441FFFD2463000490
++:1070C0003C09080025295F708D27FFFC2404000679
++:1070D000240500013099001F0325C0042484000109
++:1070E000001878272C8E002015C0FFFA00EF3824F6
++:1070F000AD27FFFC3C09666624030400240403DC7E
++:1071000024050200240600663522616E3C08080052
++:1071100025085AA4AF820074AF830044AF83006C8B
++:10712000AF830050AF830084AF8A008CAF840064CB
++:10713000AF85004CAF860054AF840078AF85006007
++:10714000AF86008001001821240200022442FFFFC4
++:10715000AC6000000441FFFD24630004240400032C
++:107160002403000C3C0A0800254A5AB0AF8A006884
++:107170000A00098E2405FFFF000418802484000102
++:10718000006858212C8700C014E0FFFBAD650000AB
++:107190003C0E666635CD616E240C17A024081800DD
++:1071A000AF8D0088AF8C009403E00008AF88007CAE
++:1071B0002484007F000421C200004021000030210F
++:1071C00000003821000028210A0009A5AF8400A092
++:1071D0001060000624E7000100C4302124A500014E
++:1071E0002CC20BF51440FFFA2CA300663C090800E2
++:1071F00025295F6001201821240200032442FFFF9B
++:10720000AC6000000441FFFD2463000410E0001A9C
++:1072100024E3FFFF0003294210A0000A0000202100
++:107220002406FFFF3C03080024635F602484000100
++:107230000085502BAC660000250800011540FFFBBF
++:107240002463000430E2001F10400008000868803A
++:10725000240C0001004C38040008588001692821E2
++:1072600024E6FFFF03E00008ACA6000001A94021CE
++:107270002409FFFFAD09000003E000080000000042
++:10728000AF4400283C04000C034420210005288260
++:107290000A000CC000003021000421803C03600083
++:1072A000AC6410080000000000052980AC65100CDB
++:1072B0000000000003E000088C62100C27BDFFE80E
++:1072C0000080282124040038AFBF00140E0009D527
++:1072D000AFB0001024040E00AF4400283C10000C96
++:1072E00003502021240500100E000CC000003021A6
++:1072F00003501021AC400000AC40000424040038CE
++:107300008FBF00148FB0001024053FFF27BD001869
++:107310000A0009D58C430000000421803C03600072
++:10732000AC641008000000008C62100C03E0000840
++:107330000002118227BDFFC8AFB400208F940068FF
++:10734000AFBE0030AFB7002CAFB600280000B821A8
++:107350000080B021241E00C0AFBF0034AFB50024B0
++:10736000AFB3001CAFB20018AFB10014AFB0001043
++:107370000A000A12AFA5003C504000018F9400683B
++:1073800027DEFFFF13C00028269400048E92000021
++:107390003C03080024635DA01240FFF70283102B1A
++:1073A0003C04080024845AA4028410230002A8C0CC
++:1073B000000098210A000A212411000100118840D0
++:1073C000122000260000000002B380210251282470
++:1073D0000200202110A0FFF9267300010E0009DE33
++:1073E000000000000016684032EC000101AC2021D2
++:1073F0000E0009D5020028218F89009426F700018C
++:107400008FA6003C3AEB0001316A00012528FFFFFE
++:107410000011382702CAB021AF88009416E6FFE7B2
++:1074200002479024AE92000002E010218FBF00348A
++:107430008FBE00308FB7002C8FB600288FB5002488
++:107440008FB400208FB3001C8FB200188FB10014CE
++:107450008FB0001003E0000827BD00383C0E080084
++:1074600025CE5DA0028E102B0A000A0DAE92000000
++:1074700027BDFFD8AFB10014AFB00010AFBF0020E0
++:10748000AFB3001CAFB2001800A0882110A0001FED
++:10749000000480403C13080026735AA40A000A5ACC
++:1074A0002412000112200019261000010E0009F517
++:1074B00002002021000231422444FFA0000618806F
++:1074C0003045001F2C8217A1007318212631FFFFC1
++:1074D0001040FFF400B230048C690000020020214B
++:1074E00024053FFF012640241500FFEE0126382524
++:1074F0000E0009D5AC6700008F8A009426100001A9
++:10750000254700011620FFE9AF8700948FBF0020B8
++:107510008FB3001C8FB200188FB100148FB0001011
++:1075200003E0000827BD00288F85009C00805821BB
++:107530000000402100004821240A001F3C0C0800E4
++:10754000258C5E1C3C0D080025AD5DA48CA60000BA
++:1075500050C000140000402100AD1023000238C0CC
++:10756000240300010A000A930000202115000003F3
++:1075700000E410212448202400004821252900018E
++:10758000512B00132506DFDC106000062484000167
++:1075900000C3702415C0FFF5000318400A000A91CB
++:1075A0000000402110AC002624A300040060282124
++:1075B000254AFFFF1540FFE5AF85009C512B0004D5
++:1075C0002506DFDC0000402103E000080100102157
++:1075D0000006614230C5001F000C50803C070800C7
++:1075E00024E75DA424040001014730211120000F8D
++:1075F00000A420043C05080024A55E20148000059A
++:107600002529FFFF24C6000410C50011000000005A
++:10761000240400018CCF00000004C0270004204097
++:1076200001F868241520FFF5ACCD00008F99007893
++:1076300001001021032B482303E00008AF890078E4
++:107640003C05080024A55DA40A000A9B0000402117
++:107650003C06080024C65DA40A000AB42404000104
++:10766000308800FF240200021102000A24030003F4
++:107670001103005C8F8900A4240400041104005F3E
++:1076800024050005110500670000182103E000082B
++:10769000006010218F8900483C0C0800258C5EE0BA
++:1076A0003C04080024845F60240300201060000F65
++:1076B00000005821240D0002240E00033C0F080096
++:1076C00025EF5EE08D27000014E0000B30F9FFFF8E
++:1076D000252900040124C02B53000001018048210A
++:1076E0002463FFFF5460FFF88D270000016018211C
++:1076F00003E0000800601021132000323C0500FF69
++:1077000030E200FF004030211040004200005021D4
++:1077100024050001000020210005C84000A6C02467
++:1077200017000003332500FF14A0FFFB2484000191
++:10773000012CC023001828C000AA6021008C502111
++:107740003144001F240C0001008C18040003102792
++:1077500000E23024110D0041AD260000110E004C56
++:10776000000A1840110D00368F87006C510E00562C
++:107770008F8C0060240D0004110D005A8F8E008440
++:10778000240E0005150EFFDA01601821240B1430B9
++:1077900011400006000018218F8400A0246300011E
++:1077A000006A402B1500FFFD016458218F8A00807C
++:1077B000AF89008C016018212549FFFF0A000AEB00
++:1077C000AF89008000E52024000736021080FFD03A
++:1077D000240A001800075402314600FF0A000AF389
++:1077E000240A00103C0C0800258C5EA03C04080014
++:1077F00024845EE00A000ADA240300103C0C08002E
++:10780000258C5E203C04080024845EA00A000AD96E
++:107810008F89009000071A02306600FF0A000AF301
++:10782000240A00088F89008C3C0C0800258C5F60BE
++:107830003C04080024845F700A000ADA2403000470
++:10784000000A4080250B003024E6FFFF016018216C
++:10785000AF8900480A000AEBAF86006C000AC982B3
++:10786000001978803C07080024E75EA001E720218A
++:10787000000A18428C8F00003079001F032C380456
++:107880000007C02701F860240A000B08AC8C000038
++:10789000000331420006288000AF28213062001F1B
++:1078A0008CB8000024630001004CC804000321428E
++:1078B000001938270004108003073024004F2021CE
++:1078C0000A000B4CACA60000000A68C025AB0032D1
++:1078D000258AFFFF01601821AF8900A40A000AEB86
++:1078E000AF8A0060254B1030AF89009001601821ED
++:1078F00025C9FFFF0A000AEBAF8900843086000724
++:107900002CC2000610400014000000000006408059
++:107910003C030800246357BC010338218CE40000B9
++:1079200000800008000000002409000310A9000ED8
++:1079300000000000240A000510AA000B000000004F
++:10794000240B000110AB0008000000008F8C00A089
++:1079500010AC00050000000003E00008000010214A
++:107960000A000A7900A020210A000AC700C02021CD
++:1079700027BDFFE8308400FF240300021083000BC2
++:10798000AFBF0010240600031086003A240800044C
++:1079900010880068240E0005108E007F2CAF143074
++:1079A0008FBF001003E0000827BD00182CA2003094
++:1079B0001440FFFC8FBF001024A5FFD0000531C28A
++:1079C000000668803C07080024E75EE001A730213C
++:1079D0008CC900000005288230AC001F240B000178
++:1079E000018B50048F840048012A4025ACC8000058
++:1079F0008C83000050600001AF8600488F98006CB7
++:107A000030AE000124A6FFFF270F000115C00002C1
++:107A1000AF8F006C24A600010006414200082080C0
++:107A2000008718218C79000030C2001F2406000155
++:107A30000046F804033F382410E0FFDA8FBF00103F
++:107A40000005C182001870803C0F080025EF5EA081
++:107A500001CF48218D2B00000005684231A5001F91
++:107A600000A66004016C502527BD001803E0000843
++:107A7000AD2A00002CA7003014E0FFCA8FBF001011
++:107A800030B900071723FFC724A8FFCE00086A02F9
++:107A9000000D60803C0B0800256B5EA0018B30213F
++:107AA0008CC40000000828C230AA001F240800016E
++:107AB000014848048F8200A400891825ACC3000047
++:107AC0008C5F000053E00001AF8600A40005704009
++:107AD000000E7942000F28803C04080024845EE0F8
++:107AE00000A418218C6B000025DF000131CD001FA0
++:107AF000001F514201A86004016C4825000A108053
++:107B0000AC690000004428218CA600008F9800601A
++:107B100033F9001F8FBF00100328380400C77825F1
++:107B2000270E000127BD0018ACAF000003E00008DD
++:107B3000AF8E006024A5EFD02CB804001300FF998D
++:107B40008FBF001000053142000658803C0A080033
++:107B5000254A5E20016A30218CC4000030A3001F3A
++:107B600024090001006910048F9900900082F82513
++:107B7000ACDF00008F27000050E00001AF860090CE
++:107B80008F8D00848FBF001027BD001825AC000129
++:107B900003E00008AF8C008415E0FF828FBF001067
++:107BA0008F8600A0000610400046F821001F21002B
++:107BB00003E4C8210019384024F8143000B8402BE1
++:107BC0001100FF788FBF001024A4EBD00E00021329
++:107BD00000C0282100027942000F70803C0D08008F
++:107BE00025AD5F6001CD20218C8B0000304C001F43
++:107BF00024060001018618048F89008C016350253A
++:107C0000AC8A00008D25000050A00001AF84008CDC
++:107C10008F9800808FBF001027BD00182708000133
++:107C200003E00008AF88008030A5000724030003AC
++:107C300010A3001028A2000414400008240700022A
++:107C40002403000410A300152408000510A8000F49
++:107C50008F8500A003E000080000000014A7FFFDCE
++:107C60000080282114C3FFFB240400020A000B8BB0
++:107C700000000000240900050080282110C9FFFB36
++:107C80002404000303E000080000000014C5FFF115
++:107C9000008028210A000B8B24040005240A00011F
++:107CA0000080282110CAFFF12404000403E000082A
++:107CB0000000000027BDFFE0AFB00010000581C24A
++:107CC0002603FFD024C5003F2C6223D024C6007FAA
++:107CD000AFB20018AFB10014AFBF001C309100FF6D
++:107CE000000691C2000529820200202110400008F0
++:107CF0002403FFFF0E000A4B0000000002002021B9
++:107D0000022028210E000C390240302100001821E9
++:107D10008FBF001C8FB200188FB100148FB00010FD
++:107D20000060102103E0000827BD002027BDFFD818
++:107D300024A2007FAFB3001CAFB20018000299C2AA
++:107D4000309200FF24A3003F02402021026028213E
++:107D5000AFB10014AFB00010AFBF00200E000B6E2B
++:107D60000003898200408021004020210220282138
++:107D700014400009000018218FBF00208FB3001CA1
++:107D80008FB200188FB100148FB000100060102166
++:107D900003E0000827BD00280E0009FC00000000D9
++:107DA00000402821020020211051FFF3001019C0CB
++:107DB0000E000A4B00000000020020210240282192
++:107DC0000E000C39026030218FBF00208FB3001CE1
++:107DD0008FB200188FB100148FB00010000018216E
++:107DE0000060102103E0000827BD00283084FFFF59
++:107DF00030A5FFFF1080000700001821308200012D
++:107E00001040000200042042006518211480FFFB8E
++:107E10000005284003E000080060102110C00007A2
++:107E2000000000008CA2000024C6FFFF24A500046F
++:107E3000AC82000014C0FFFB2484000403E00008AF
++:107E40000000000010A0000824A3FFFFAC86000083
++:107E500000000000000000002402FFFF2463FFFF79
++:107E60001462FFFA2484000403E00008000000000C
++:107E700030A5FFFF8F4201B80440FFFE3C076015AC
++:107E800000A730253C031000AF440180AF400184BF
++:107E9000AF46018803E00008AF4301B88F8500D0EA
++:107EA0002C864000008018218CA700840087102BAE
++:107EB00014400010000000008CA800842D06400033
++:107EC00050C0000F240340008CAA0084008A482B75
++:107ED000512000018CA3008400035A42000B208033
++:107EE0003C05080024A558200085182103E000085F
++:107EF0008C62000014C0FFF4000000002403400066
++:107F000000035A42000B20803C05080024A558209D
++:107F10000085182103E000088C6200008F8300D0E8
++:107F2000906600D024C50001A06500D08F8500D0E8
++:107F3000906400D090A200D210440017000000000E
++:107F4000936C00788F8B00BC318A00FFA16A000C13
++:107F500025490001938700C4312200FF3048007F8B
++:107F60001107000B00026827A36200788F4E01788A
++:107F700005C0FFFE8F9900B0241800023C0F1000CE
++:107F8000AF590140A358014403E00008AF4F017806
++:107F90000A000D0931A20080A0A000D00A000CFF49
++:107FA000000000008F8700D027BDFFC8AFBF0030A2
++:107FB000AFB7002CAFB60028AFB50024AFB4002097
++:107FC000AFB3001CAFB20018AFB10014AFB00010D7
++:107FD00094E300E094E200E2104300D72405FFFFA1
++:107FE0003C047FFF3497FFFF2415FF800A000DF04B
++:107FF0003C16000E108A00D18FBF00308F9100B068
++:108000003C1808008F18005C001230C0001291402C
++:108010000311702101D57824AF4F002C94EC00E2BD
++:1080200031CD007F01BA5821318A7FFF0176482186
++:10803000000A804002091021945300003C08080007
++:108040008D0800580246C02132733FFF001319808B
++:10805000010320210224282130BF007F03FAC82118
++:1080600000B5A024AF54002C0336A0218E87001049
++:108070008E8F003003785821256D008800EF702323
++:10808000240C0002AE8E0010AF8D00ACA16C0088F5
++:10809000976A003C8E8400308F9100AC0E000CD6A5
++:1080A0003150FFFF00024B80020940253C02420094
++:1080B00001022025AE2400048E8300048F8D00ACC5
++:1080C0008E860000240E0008ADA3001CADA600188B
++:1080D000ADA0000CADA00010929F000A33F900FF84
++:1080E000A5B90014968500083C1F000CA5A5001634
++:1080F0009298000A331100FFA5B100209690000865
++:1081000024180005A5B00022ADA00024928F000B1A
++:108110002410C00031E700FFA5A70002A1AE0001B6
++:108120008E8C00308F8B00AC8F8400B0AD6C00085B
++:108130003C0A08008D4A005401444821013540247E
++:10814000AF4800283C0208008C4200540044302113
++:1081500030C3007F007AC821033F282102458821CF
++:10816000AF9100BCAF8500C0A23800008F8A00BC70
++:108170002403FFBF2418FFDF954F000201F03824CD
++:1081800000F37025A54E0002914D000231AC003F76
++:10819000358B0040A14B00028F8600BC8F8900D038
++:1081A000ACC000048D28007C3C098000ACC80008ED
++:1081B00090C4000D3082007FA0C2000D8F8500BCEE
++:1081C00090BF000D03E3C824A0B9000D8F9100BC3F
++:1081D0009233000D02789024A232000D8E9000346C
++:1081E0008F8B00BCAD7000108E87002C8E8F0030FE
++:1081F00000EF7023AD6E0014916D001831AC007F5C
++:10820000A16C00188F9F00BC8E8A00308FE8001888
++:10821000015720240109302400C41025AFE20018C2
++:108220009283000AA3E3001C969900088F8500BC86
++:108230008F9800D0A4B9001E8E9000308E8400303C
++:108240000E0002138F0500848F8500D0000291403C
++:108250000002990090AF00BC0253882100403021F9
++:1082600031E7000210E0000302118021000290803B
++:108270000212802190B900BC3327000410E00002F4
++:108280000006F880021F80218E9800308F8B00BC82
++:1082900024068000330F0003000F702331CD00034C
++:1082A000020D6021AD6C000494A400E294AA00E2E7
++:1082B00094B000E231497FFF2522000130537FFF57
++:1082C0000206182400734025A4A800E294A400E24A
++:1082D0003C1408008E94006030917FFF123400221D
++:1082E000000000000E000CF6000000008F8700D098
++:1082F0000000282194F300E094F000E21213000F34
++:108300008FBF003090E900D090E800D1313200FFFB
++:10831000310400FF0244302B14C0FF36264A00010E
++:1083200090EE00D2264B000131CD00FF008D602180
++:10833000158BFF338F9100B08FBF00308FB7002CAB
++:108340008FB600288FB500248FB400208FB3001C97
++:108350008FB200188FB100148FB0001000A0102150
++:1083600003E0000827BD003894A300E20066402423
++:10837000A4A800E290A400E290B900E2309100FFCE
++:108380000011A1C20014F827001F39C03332007F4A
++:10839000024730250A000DE8A0A600E23084FFFF66
++:1083A00030A5FFFFAF440018AF45001C03E00008F4
++:1083B0008F42001427BDFFB8AFB000208F9000D0CF
++:1083C0003084FFFFAFA40010AFBF0044AFBE004039
++:1083D000AFB7003CAFB60038AFB50034AFB4003033
++:1083E000AFB3002CAFB20028AFB10024A7A0001893
++:1083F000920600D1920500D030C400FF30A300FFE8
++:108400000064102B10400122AFA00014920900D08C
++:108410008FB50010312800FF0088382324F4FFFFB7
++:108420000014882B0015982B02339024524001260B
++:108430008FB40014961E0012961F00108FB7001004
++:1084400003DFC823001714000019C400000224032E
++:108450000018140302E2B02A52C00001004020219B
++:108460000284282B10A0000200801821028018210D
++:1084700000033C0000071C033064FFFF2C8600094A
++:1084800014C000020060B821241700088E0A0008FA
++:10849000001769808E09000C31ABFFFF3C0C001007
++:1084A000016C402527520400AF4A0038AF9200B853
++:1084B000AF49003CAF480030000000000000000061
++:1084C00000000000000000000000000000000000AC
++:1084D00000000000000000008F4F000031EE00207F
++:1084E00011C0FFFD0017982A027110240A000E83A4
++:1084F0000000B02155E001019258000131130080C5
++:10850000126001CF012020219655001232A5FFFFF5
++:108510000E000CCBA7B500188F9000D00291A023BD
++:1085200026CD00018F9100B8000DB4000016B403F1
++:108530002638004002D7582A0014882B2405000151
++:108540000300902101711024AF9800B8AFA500146A
++:10855000104001BC8F8900B03C0C08008D8C005489
++:10856000240BFF80921E00D001895021014B28244A
++:10857000921900D0AF4500288E4700103C08080033
++:108580008D0800583C1808008F18005430E33FFF56
++:108590000003218001043021012658212402FF809C
++:1085A0000162F824920C00D0AF5F002C92480000CA
++:1085B00033D100FF333500FF0309982100117140CA
++:1085C000001578C0326D007F01CF382101BA282113
++:1085D000318300FF3164007F3C0A000C00AA88212F
++:1085E0000367F02100033140009A10213108003F59
++:1085F0003C1F000E00D1C021005F982127D90088C0
++:108600002D150008AF9100C0AF9900ACAF9800BC29
++:10861000AF9300B412A0018A00008821240E00014B
++:10862000010E4004310D005D11A0FFB2310F0002B8
++:108630008E4A00283C0300803C04FFEFAE6A000035
++:108640008E450024A260000A3488FFFFAE65000456
++:108650009247002C3C1FFF9F37FEFFFFA267000CD4
++:108660008E62000C3C180040A267000B00433025CE
++:1086700000C8C824033E88240238A825AE75000C23
++:108680008E490004AE6000183C0F00FFAE69001474
++:108690008E4D002C35EEFFFF8F8B00B001AE6024B5
++:1086A000AE6C00108E470008A660000896450012C8
++:1086B000AE6700208E42000C30B03FFF00105180AA
++:1086C000AE6200248E5E0014014B182130A400011C
++:1086D000AE7E00288E590018000331C2000443808A
++:1086E000AE79002C8E51001C00C8F821A67F001C1A
++:1086F000AE710030965800028E550020A678001EFC
++:10870000AE75003492490033313000045600000544
++:10871000925000008F8C00D08D8B007CAE6B0030AF
++:10872000925000008F8F00BCA1F00000924E0033E9
++:1087300031CD000251A00007925E00018F8900BC7C
++:108740002418FF80913100000311A825A1350000F5
++:10875000925E00018F9900BC2409FFBF240BFFDF4C
++:10876000A33E00018F9500BC92B8000D3311007F2D
++:10877000A2B1000D8F8E00BC91D0000D02097824AB
++:10878000A1CF000D8F8800BC8E6D0014910A000DE2
++:108790002DAC0001000C2940014B382400E51825C0
++:1087A000A103000D964200128F8800BC8F8700D075
++:1087B000A50200028E45000490FF00BC30A4000317
++:1087C0000004302330DE000300BE102133F9000224
++:1087D00017200002244400342444003090E200BCFE
++:1087E00000A2302430DF000417E0000224830004DC
++:1087F000008018218F8F00AC24090002AD03000413
++:10880000A1E90000924E003F8F8D00ACA1AE0001A7
++:108810008F9500AC924C003F8E440004A6AC000241
++:10882000976B003C0E000CD63170FFFF00025380A6
++:10883000020A38253C05420000E51825AEA30004D5
++:108840008F8600AC8E480038ACC800188E440034C7
++:10885000ACC4001CACC0000CACC00010A4C0001420
++:10886000A4C00016A4C00020A4C00022ACC00024F4
++:108870008E6400145080000124040001ACC4000880
++:108880000E000CF6241100010A000E768F9000D025
++:10889000920F00D2920E00D08FB5001031EB00FF86
++:1088A00031CD00FF008D6023016C50212554FFFF66
++:1088B0000014882B0015982B023390241640FEDDFF
++:1088C000000000008FB400148FBF00448FBE004032
++:1088D0003A8200018FB7003C8FB600388FB5003464
++:1088E0008FB400308FB3002C8FB200288FB10024DA
++:1088F0008FB0002003E0000827BD0048331100209E
++:10890000122000EF24150001921E00BC241F00015C
++:108910000000A82133D900011320000DAFBF001CB7
++:108920008E4400148E0800840088102B144000022E
++:10893000008030218E0600848E03006400C3A82BC3
++:1089400016A0000200C020218E0400640080A8212F
++:108950008E4700148E05006400E5302B14C0000221
++:1089600000E020218E0400640095F02313C0000471
++:108970008FAC001C240A0002AFAA001C8FAC001CA4
++:10898000028C582B156000A8000018218E4F00386B
++:108990008E6D000C3C0E0080AE6F00008E4A0034DD
++:1089A0003C10FF9F01AE5825AE6A00049246003F7E
++:1089B000360CFFFF016C38243C0500203C03FFEF20
++:1089C000A266000B00E510253468FFFF8F8700B812
++:1089D0000048F8243C04000803E4C825AE79000CE4
++:1089E0008CF80014AE60001802BE7821AE78001436
++:1089F0008CF10018AE71001C8CE90008AE690024EF
++:108A00008CEE000CAE6F002CAE600028AE6E002025
++:108A1000A6600038A660003A8CED001401B58023F2
++:108A2000021E902312400011AE72001090EA003D29
++:108A30008E6500048E640000000A310000A6C82183
++:108A4000000010210326402B0082F82103E8C021FA
++:108A5000AE790004AE78000090F1003DA271000AEA
++:108A60008F8900B895320006A67200088F9800AC76
++:108A70002419000202A02021A31900009769003CDC
++:108A80008F9200AC0E000CD63131FFFF00027B80CC
++:108A90008F8500B8022F68253C0E420001AE80256C
++:108AA000AE5000048F8400AC8CAC0038AC8C001845
++:108AB0008CAB0034AC8B001CAC80000CAC80001084
++:108AC000A4800014A4800016A4800020A4800022AA
++:108AD000AC80002490A7003FA487000212A00135BB
++:108AE0002403000153C0000290A2003D90A2003E6A
++:108AF00024480001A08800018F9F00ACAFF500085A
++:108B00008F8300D024070034906600BC30C500027B
++:108B100050A00001240700308F9200B88F8A00BC5B
++:108B2000906D00BC924B00002412C00032A50003DF
++:108B3000A14B00008F8600B88F8800BC240200047F
++:108B400090C400010045182330790003A1040001FE
++:108B50008F8A00BC8F9F00B800F53821955800021D
++:108B600097E9001200F9382103128824312F3FFFC2
++:108B7000022F7025A54E00029150000231A800047A
++:108B8000320C003F358B0040A14B000212A00002C6
++:108B90008F8500BC00E838218F8E00D0ACA7000480
++:108BA000240BFFBF8DCD007C2EA400012403FFDF2A
++:108BB000ACAD000890B0000D00044140320C007FC5
++:108BC000A0AC000D8F8600BC90CA000D014B102494
++:108BD000A0C2000D8F8700BC90E5000D00A3F82413
++:108BE00003E8C825A0F9000D8F9100B88F8D00BC57
++:108BF0008E380020ADB800108E290024ADA90014D5
++:108C00008E2F0028ADAF00188E2E002C0E000CF613
++:108C1000ADAE001C8FB0001C240C0002120C00EE44
++:108C20008F9000D08FA3001C006088211460000288
++:108C30000060A8210000A02156A0FE390291A023C7
++:108C40000014882B8FA90010960700103C1E0020EE
++:108C50000136402302C750213112FFFFA60A00103F
++:108C6000AFB20010AF5E0030000000009617001099
++:108C7000961300121277008F000000008E05000C82
++:108C80008E0B00080016698000AD7021000DC7C36F
++:108C900001CDA82B0178782101F56021AE0E000CE2
++:108CA000AE0C00088FB300100013B82B02378024DD
++:108CB0001200FF048F9000D00A000E3C000000005C
++:108CC0008E4D0038A6600008240B0003AE6D000036
++:108CD0008E500034A260000A8F9800B8AE70000475
++:108CE0003C0500809311003FA26B000C8E6F000CBE
++:108CF0003C0EFF9FA271000B01E5102535CCFFFF54
++:108D00003C03FFEF8F9200B8004C30243464FFFF27
++:108D100000C4F824AE7F000C8E590014964800124F
++:108D20008F8A00B0AE7900108E490014AE60001832
++:108D3000AE600020AE690014AE6000248E470018BB
++:108D400031093FFF0009F180AE6700288E4D000811
++:108D500003CA802131180001AE6D00308E4F000C27
++:108D60008F8C00AC001089C200185B80022B282178
++:108D7000240E0002A665001CA6600036AE6F002C13
++:108D8000A18E00009763003C8F8A00AC3C04420037
++:108D90003062FFFF00443025AD4600048F9F00B8CD
++:108DA000240700012411C0008FF30038240600348A
++:108DB000AD5300188FF90034AD59001CAD40000CC4
++:108DC000AD400010A5400014A5400016A5400020AD
++:108DD000A5400022AD400024A5550002A147000196
++:108DE0008F9E00AC8F8800B88F9200BCAFD5000872
++:108DF000910D0000A24D00008F9000B88F8B00BC39
++:108E000092180001A17800018F8400BC94850002B3
++:108E100000B1782401E97025A48E0002908C000234
++:108E20003183003FA08300028F8300D08F8400BC79
++:108E3000906200BC305300025260000124060030F2
++:108E4000AC8600048C6F007C2403FFBF02A0882145
++:108E5000AC8F0008908E000D31CC007FA08C000DEF
++:108E60008F8600BC90C2000D00432024A0C4000DDA
++:108E70008F8900BC913F000D37F90020A139000D0A
++:108E80008F8800B88F9300BC8D070020AE6700105C
++:108E90008D0A0024AE6A00148D1E0028AE7E0018D4
++:108EA0008D12002C0E000CF6AE72001C0A00103D54
++:108EB0008F9000D0960E00148E03000431CCFFFF7B
++:108EC000000C10C000622021AF44003C8E1F000443
++:108ED0008F46003C03E6C8231B20003C0000000036
++:108EE0008E0F000025E200013C05001034B500089B
++:108EF000AF420038AF550030000000000000000015
++:108F00000000000000000000000000000000000061
++:108F100000000000000000008F580000330B00200C
++:108F20001160FFFD000000008F5304003C0D002085
++:108F3000AE1300088F570404AE17000CAF4D00307D
++:108F4000000000003C0608008CC600442416000106
++:108F500010D600BD00000000961F00123C0508005E
++:108F60008CA5004000BFC821A61900129609001464
++:108F700025270001A6070014960A00143144FFFFBC
++:108F80005486FF498FB30010A60000140E000E1681
++:108F900030A5FFFF3C0408008C84002496030012D7
++:108FA0000044102300623023A60600120A00105964
++:108FB0008FB30010A08300018F8200AC2404000155
++:108FC000AC4400080A000FF08F8300D08E0200002E
++:108FD0000A0010EA3C0500108F8200C08FA7001C19
++:108FE000921800D0920B00D0920E00D0331100FFE7
++:108FF000316900FF00117940000928C001E56021B6
++:1090000031C300FF036C50210003314000C2C8216E
++:10901000255F0088AF9F00ACAF9900BCA1470088D6
++:109020009768003C03C020218F9100AC0E000CD645
++:109030003110FFFF00026B80020DC0253C0442008E
++:109040008F8D00B803045825AE2B00048DA900387D
++:109050008F8B00AC0000882100118100AD690018E1
++:109060008DAF00343C087FFF3504FFFFAD6F001C5F
++:1090700091AC003E8D65001C8D660018000C190037
++:10908000000C770200A33821020E102500E3F82B14
++:1090900000C2C821033F5021AD67001CAD6A001813
++:1090A000AD60000CAD60001091B8003E24050005D5
++:1090B00003C45024A578001495A9000403C02021FE
++:1090C000A569001691AF003EA56F002095B1000480
++:1090D000A5710022AD60002491AE003FA56E000294
++:1090E00091B0003E91AC003D01901023244300015B
++:1090F000A16300018F8600AC8F9F00BCACDE00082E
++:10910000A3E500008F9000BC8F9900B82405FFBF35
++:1091100096070002973800120247782433093FFF70
++:1091200001E98825A6110002921200022418FFDF2F
++:10913000324E003F35CD0040A20D00028F8600BCAC
++:109140008F8C00D02412FFFFACC000048D8B007CFC
++:109150003C0C8000ACCB000890C2000D3043007F77
++:10916000A0C3000D8F8700BC90FF000D03E5C8244D
++:10917000A0F9000D8F9100BC9229000D01387824D0
++:10918000A22F000D8F9000BCAE120010AE1500147F
++:10919000920E00182415FF8002AE6825A20D00185B
++:1091A0008F8500BC8F8300B88CAB0018016C102435
++:1091B000004A3025ACA600189068003EA0A8001C0C
++:1091C0008F9F00B88F8700BC8F9800D097F900045C
++:1091D000A4F9001E0E0002138F0500848F8600D0B4
++:1091E000000279400002490090D200BC01E98821C8
++:1091F000004028213255000212A0000303D1202193
++:109200000002A8800095202190CD00BC31B200045E
++:109210001240000333DF0003000540800088202156
++:10922000240600048F9E00BC00DFC8233327000300
++:1092300000875021AFCA00040E000CF6A665003866
++:109240000A0010388F9000D0961E00123C080800CB
++:109250008D080024011E9021A61200120A00105948
++:109260008FB3001027BDFFE03C1808008F18005096
++:10927000AFB00010AFBF0018AFB10014AF8400B0A2
++:1092800093710074030478212410FF8031EE007F75
++:109290003225007F01F0582401DA68213C0C000AD5
++:1092A000A38500C401AC2821AF4B002494A9001071
++:1092B0009768000690A600620080382124020030E2
++:1092C0000109202330C300F0AF8500D010620019DF
++:1092D0003090FFFF90AE0062240DFFF0240A005092
++:1092E00001AE6024318B00FF116A002F00000000E6
++:1092F00016000007241F0C00AF5F00248FB100147C
++:109300008FBF00188FB0001003E0000827BD0020B9
++:109310000E000E1C02002021241F0C00AF5F002451
++:109320008FB100148FBF00188FB0001003E0000849
++:1093300027BD002094A200E094A400E290BF011396
++:10934000008218263079FFFF33E700C014E00009DF
++:109350002F31000116000038000000005620FFE603
++:10936000241F0C000E000D18000000000A0011ED73
++:10937000241F0C001620FFDE000000000E000D1858
++:10938000000000001440FFDC241F0C001600002227
++:109390008F8300D0906901133122003FA062011336
++:1093A0000A0011ED241F0C0094AF00D48F8600D466
++:1093B00000E02821240400050E000C5C31F0FFFFC2
++:1093C0001440000524030003979100E600001821D3
++:1093D0002625FFFFA78500E68F5801B80700FFFE8E
++:1093E0003C196013AF400180241F0C00AF50018472
++:1093F000007938253C101000AF4701888FB1001468
++:10940000AF5001B8AF5F00248FB000108FBF0018BD
++:1094100003E0000827BD00200E000E1C02002021E2
++:109420005040FFB5241F0C008F8300D090690113BA
++:109430000A0012163122003F0E000E1C02002021ED
++:109440001440FFAD241F0C00122000078F8300D0B2
++:10945000906801133106003F34C20040A06201133E
++:109460000A0011ED241F0C000E000D180000000072
++:109470005040FFA1241F0C008F8300D0906801137F
++:109480003106003F0A00124634C20040AF9B00C8BC
++:1094900003E00008AF8000EC3089FFFF0009404284
++:1094A0002D020041000921801440000200095040B3
++:1094B00024080040000830C0000811400046582130
++:1094C000256701A800E2C821272F007F2418FF800C
++:1094D00001F818240064302100CA702125CC00FF57
++:1094E000240DFF00018D202425650088240A0088B2
++:1094F0003C010800AC2A004C3C010800AC2500509F
++:10950000AF8400D43C010800AC2900603C01080095
++:10951000AC2800643C010800AC2700543C01080062
++:10952000AC2300583C010800AC26005C03E00008B6
++:1095300000000000308300FF30C6FFFF30E400FF72
++:109540008F4201B80440FFFE00034C00012438257F
++:109550003C08600000E820253C031000AF45018076
++:10956000AF460184AF44018803E00008AF4301B86F
++:109570008F86001C3C096012352700108CCB00043C
++:109580003C0C600E35850010316A00062D48000144
++:10959000ACE800C48CC40004ACA431808CC20008C8
++:1095A00094C30002ACA2318403E00008A78300E466
++:1095B0003C0308008C6300508F8400E88F86001CF9
++:1095C0002402FF800064C0210302C824AF59002890
++:1095D0008CCD00043305007F00BA78213C0E000CCE
++:1095E00001EE2821ACAD00588CC80008AF8500D032
++:1095F0003C076012ACA8005C8CCC001034E8001072
++:10960000ACAC000C8CCB000CACAB000894AA0014E2
++:109610003C0208008C42004425490001A4A9001422
++:1096200094A400143083FFFF106200178F8400D0D1
++:109630003C0A08008D4A0040A4AA00128CCE0018F3
++:10964000AC8E00248CCD0014AC8D00208CC700188B
++:10965000AC87002C8CCC001424060001AC8C0028B4
++:109660008D0B00BC5166001A8D0200B48D0200B84B
++:10967000A482003A948F003AA48F003C948800D4CE
++:1096800003E000083102FFFF3C0908008D29002497
++:10969000A4A000148F8400D0A4A900128CCE0018BE
++:1096A000AC8E00248CCD0014AC8D00208CC700182B
++:1096B000AC87002C8CCC001424060001AC8C002854
++:1096C0008D0B00BC5566FFEA8D0200B88D0200B418
++:1096D000A482003A948F003AA48F003C948800D46E
++:1096E00003E000083102FFFF8F86001C3C0C0800DD
++:1096F0008D8C0050240BFF808CCD00083C03000CA7
++:10970000000D51C0018A4021010B4824AF8A00E8B6
++:10971000AF49002890C700073105007F00BA10212B
++:109720000043282130E4000410800039AF8500D0C8
++:1097300090CF000731EE000811C000380000000093
++:109740008CD9000C8CC400140324C02B13000030EF
++:10975000000000008CC2000CACA200648CCD00188C
++:109760002402FFF8ACAD00688CCC0010ACAC0080DB
++:109770008CCB000CACAB00848CCA001CACAA007C67
++:1097800090A900BC01224024A0A800BC90C30007FF
++:109790003067000810E000048F8500D090AF00BC57
++:1097A00035EE0001A0AE00BC90D9000733380001AF
++:1097B000130000088F8300D08F8700D0240400346A
++:1097C00090E800BC35030002A0E300BC8F8300D00A
++:1097D000AC6400C090C900073126000210C000052B
++:1097E00000000000906A00BC35420004A06200BC8A
++:1097F0008F8300D09065011330AD003FA06D011341
++:109800008F8C00D0958B00D403E000083162FFFFFD
++:109810008CC200140A001305000000000A001306A1
++:10982000ACA0006427BDFFD8AFB000108F90001C23
++:10983000AFBF0024AFB40020AFB20018AFB1001426
++:10984000AFB3001C9613000E3C07600A3C14600680
++:109850003264FFFF369300100E00125534F40410EA
++:109860008F8400D43C11600E0E00099B363100102D
++:10987000920E00153C0708008CE700603C12601255
++:1098800031CD000FA38D00F08E0E00048E0D000868
++:1098900096080012961F00109619001A9618001EBE
++:1098A000960F001C310CFFFF33EBFFFF332AFFFF45
++:1098B0003309FFFF31E6FFFF3C010800AC2B0040FD
++:1098C0003C010800AC2C00243C010800AC2A0044F8
++:1098D000AE293178AE26317C92020015960300162F
++:1098E00036520010304400FF3065FFFF3C06080090
++:1098F0008CC60064AE243188AE4500B492080014D2
++:1099000096190018241F0001011FC004332FFFFF08
++:109910003C0508008CA50058AE5800B8AE4F00BCFE
++:10992000920C0014AF8E00D8AF8D00DC318B00FF9D
++:10993000AE4B00C0920A0015AE670048AE66004C00
++:10994000314900FFAE4900C8AE65007C3C03080009
++:109950008C6300503C0408008C84004C3C080800D8
++:109960008D0800543C0208008C42005C8FBF00242C
++:10997000AE6300808FB00010AE8300748FB3001C04
++:10998000AE22319CAE4200DCAE2731A0AE2631A41F
++:10999000AE24318CAE233190AE283194AE2531986F
++:1099A000AE870050AE860054AE8500708FB10014B3
++:1099B000AE4700E0AE4600E4AE4400CCAE4300D07B
++:1099C000AE4800D4AE4500D88FB400208FB2001846
++:1099D00003E0000827BD002827BDFFE0AFB1001459
++:1099E000AFBF0018241100010E000845AFB00010F1
++:1099F00010510005978400E6978300CC0083102B5C
++:109A0000144000088F8500D4240700028FBF00187F
++:109A10008FB100148FB0001000E0102103E00008A7
++:109A200027BD00200E000C7A24040005AF8200E858
++:109A30001040FFF6240700020E0008498F90001C1A
++:109A4000979F00E68F9900E88F8D00C827EF0001EF
++:109A5000240E0050AF590020A78F00E6A1AE0000F1
++:109A60003C0C08008D8C00648F8600C8240A80009E
++:109A7000000C5E00ACCB0074A4C0000694C9000AC0
++:109A8000241FFF803C0D000C012AC024A4D8000A2A
++:109A900090C8000A24182000011F1825A0C3000A3E
++:109AA0008F8700C8A0E000788F8500C800003821AB
++:109AB000A0A000833C0208008C4200508F8400E884
++:109AC0000044782101FFC824AF590028960B0002FA
++:109AD00031EE007F01DA6021018D3021A4CB00D46A
++:109AE000960A0002AF8600D03C0E000425492401EE
++:109AF000A4C900E68E080004ACC800048E03000868
++:109B0000ACC30000A4C00010A4C00014A0C000D0CA
++:109B10008F8500D02403FFBFA0A000D13C04080023
++:109B20008C8400648F8200D0A04400D28E1F000C71
++:109B30008F8A00D0978F00E4AD5F001C8E19001053
++:109B400024100030AD590018A5400030A551005434
++:109B5000A5510056A54F0016AD4E0068AD580080C7
++:109B6000AD580084914D006231AC000F358B001070
++:109B7000A14B00628F8600D090C900633128007F1E
++:109B8000A0C800638F8400D02406FFFF9085006387
++:109B900000A31024A08200638F9100D000E0102168
++:109BA000923F00BC37F90001A23900BC8F8A00D077
++:109BB000938F00F0AD580064AD5000C0914E00D3BB
++:109BC000000F690031CC000F018D5825A14B00D347
++:109BD0008F8500D08F8900DCACA900E88F8800D881
++:109BE0008FBF00188FB100148FB0001027BD002068
++:109BF000ACA800ECA4A600D6A4A000E0A4A000E2BB
++:109C000003E000080000000027BDFFE0AFB0001037
++:109C10008F90001CAFB10014AFBF00188E19000464
++:109C20003C1808008F180050240FFF80001989C0CD
++:109C30000238702131CD007F01CF602401BA50215C
++:109C40003C0B000CAF4C0028014B4021950900D47F
++:109C5000950400D68E0700043131FFFFAF8800D095
++:109C60000E000913000721C08E0600048F8300C870
++:109C7000000629C0AF4500209064003E30820040BD
++:109C8000144000068F8400D0341FFFFF948300D659
++:109C90003062FFFF145F000400000000948400D6CF
++:109CA0000E0008A83084FFFF8E050004022030213A
++:109CB0008FBF00188FB100148FB000102404002251
++:109CC00000003821000529C00A00127C27BD0020B1
++:109CD00027BDFFE0AFB100143091FFFFAFB000101F
++:109CE000AFBF00181220001D000080218F86001CCD
++:109CF0008CC500002403000600053F020005140285
++:109D000030E4000714830015304500FF2CA800063E
++:109D10001100004D000558803C0C0800258C57D4DC
++:109D2000016C50218D490000012000080000000056
++:109D30008F8E00EC240D000111CD005900000000B1
++:109D4000260B00013170FFFF24CA00200211202BD6
++:109D5000014030211480FFE6AF8A001C0200102170
++:109D60008FBF00188FB100148FB0001003E00008FF
++:109D700027BD0020938700CE14E00038240400148F
++:109D80000E001338000000008F86001C2402000122
++:109D90000A00147FAF8200EC8F8900EC24080002D7
++:109DA0001128003B2404001300002821000030216A
++:109DB000240700010E00127C000000000A00147F3E
++:109DC0008F86001C8F8700EC2405000214E5FFF647
++:109DD000240400120E0012E9000000008F8500E844
++:109DE00000403021240400120E00127C00003821B3
++:109DF0000A00147F8F86001C8F8300EC241F000351
++:109E0000147FFFD0260B00010E00129B0000000003
++:109E10008F8500E800403021240200022404001055
++:109E200000003821AF8200EC0E00127C0000000020
++:109E30000A00147F8F86001C8F8F00EC240600021E
++:109E400011E6000B0000000024040010000028218F
++:109E5000000030210A00149C240700010000282182
++:109E60000E00127C000030210A00147F8F86001C37
++:109E70000E0013A500000000144000128F99001C72
++:109E80008F86001C240200030A00147FAF8200ECBE
++:109E90000E001431000000000A00147F8F86001CA1
++:109EA0000E00128B000000002402000224040014A3
++:109EB0000000282100003021000038210A0014B9D8
++:109EC000AF8200EC004038212404001097380002D3
++:109ED000000028210E00127C3306FFFF0A00147FC9
++:109EE0008F86001C8F8400C83C077FFF34E6FFFF8D
++:109EF0008C8500742402000100A61824AC83007431
++:109F000003E00008A082000510A000362CA200800B
++:109F1000274A04003C0B000524090080104000077C
++:109F20002408008030A6000F00C540212D030081C9
++:109F30001460000200A0482124080080AF4B0030CC
++:109F400000000000000000000000000011000009F7
++:109F500000003821014030218C8D000024E70004EE
++:109F600000E8602BACCD0000248400041580FFFACB
++:109F700024C60004000000000000000000000000F3
++:109F80003C0E0006010E3825AF47003000000000EF
++:109F900000000000000000008F4F000031E80010BA
++:109FA0001100FFFD000000008F42003C8F43003C89
++:109FB0000049C8210323C02B130000040000000047
++:109FC0008F4C003825860001AF4600388F47003C93
++:109FD00000A9282300E96821AF4D003C14A0FFCE62
++:109FE0002CA2008003E000080000000027BDFFD085
++:109FF0003C020002AFB100143C11000CAF45003828
++:10A00000AFB3001CAF46003C00809821AF42003047
++:10A0100024050088AF44002803512021AFBF002849
++:10A02000AFB50024AFB40020AFB200180E0014F199
++:10A03000AFB000103C1F08008FFF004C3C18080018
++:10A040008F1800642410FF8003F3A82132B9007F29
++:10A0500002B078240018A0C0033A70210018914083
++:10A0600001D12021AF4F00280E0014F10254282105
++:10A070003C0D08008DAD00502405012001B358218E
++:10A08000316C007F01705024019A48210131202158
++:10A090000E0014F1AF4A00283C0808008D08005457
++:10A0A0003C0508008CA500640113382130E6007FD0
++:10A0B00000F0182400DA202100912021AF4300286D
++:10A0C0000E0014F1000529403C0208008C420058A3
++:10A0D0003C1008008E1000601200001C0053882104
++:10A0E0002415FF800A0015743C14000C3226007FF2
++:10A0F0000235182400DA202102402821AF4300282D
++:10A10000009420210E0014F12610FFC01200000F51
++:10A11000023288212E05004110A0FFF42412100005
++:10A120003226007F001091800235182400DA2021A9
++:10A1300002402821AF430028009420210E0014F192
++:10A14000000080211600FFF3023288213C0B08003A
++:10A150008D6B005C240AFF802405000201734021FE
++:10A16000010A4824AF4900283C0408009484006296
++:10A170003110007F021A88213C07000C0E000CAA47
++:10A180000227982100402821026020218FBF00284B
++:10A190008FB500248FB400208FB3001C8FB200183D
++:10A1A0008FB100148FB000100A0014F127BD0030E9
++:10A1B0008F83001C8C62000410400003000000002C
++:10A1C00003E00008000000008C6400108C650008AB
++:10A1D0000A00152A8C66000C000000000000001B1D
++:10A1E0000000000F0000000A000000080000000648
++:10A1F000000000050000000500000004000000044D
++:10A200000000000300000003000000030000000342
++:10A210000000000300000002000000020000000235
++:10A220000000000200000002000000020000000226
++:10A230000000000200000002000000020000000216
++:10A240000000000200000002000000020000000206
++:10A2500000000001000000010000000108000F24C0
++:10A2600008000D6C08000FB80800106008000F4CC3
++:10A2700008000F8C0800119408000D88080011B820
++:10A2800008000DD8080015540800151C08000D889A
++:10A2900008000D8808000D880800124008001240D0
++:10A2A00008000D8808000D88080014E008000D88DB
++:10A2B00008000D8808000D8808000D88080013B4F8
++:10A2C00008000D8808000D8808000D8808000D881A
++:10A2D00008000D8808000D8808000D8808000D880A
++:10A2E00008000D8808000D8808000D8808000D88FA
++:10A2F00008000D8808000D8808000FAC08000D88C4
++:10A3000008000D880800167808000D8808000D88E0
++:10A3100008000D8808000D8808000D8808000D88C9
++:10A3200008000D8808000D8808000D8808000D88B9
++:10A3300008000D8808000D8808000D8808000D88A9
++:10A3400008000D8808000D8808000D88080014100A
++:10A3500008000D8808000D8808001334080012A4B6
++:10A3600008001E2C08001EFC08001F1408001F28EF
++:10A3700008001F3808001E2C08001E2C08001E2C88
++:10A3800008001ED808002E1408002E1C08002DE41A
++:10A3900008002DF008002DFC08002E08080052F4DB
++:10A3A000080052B40800528008005254080052308D
++:10A3B000080051EC0A000C840000000000000000BE
++:10A3C0000000000D727870362E322E33000000002F
++:10A3D000060203030000000000000001000000006E
++:10A3E000000000000000000000000000000000006D
++:10A3F000000000000000000000000000000000005D
++:10A40000000000000000000000000000000000004C
++:10A41000000000000000000000000000000000003C
++:10A42000000000000000000000000000000000002C
++:10A43000000000000000000000000000000000001C
++:10A44000000000000000000000000000000000000C
++:10A4500000000000000000000000000000000000FC
++:10A4600000000000000000000000000000000000EC
++:10A4700000000000000000000000000000000000DC
++:10A4800000000000000000000000000000000000CC
++:10A4900000000000000000000000000000000000BC
++:10A4A00000000000000000000000000000000000AC
++:10A4B000000000000000000000000000000000009C
++:10A4C000000000000000000000000000000000008C
++:10A4D000000000000000000000000000000000007C
++:10A4E000000000000000000000000000000000006C
++:10A4F000000000000000000000000000000000005C
++:10A50000000000000000000000000000000000004B
++:10A51000000000000000000000000000000000003B
++:10A52000000000000000000000000000000000002B
++:10A53000000000000000000000000000000000001B
++:10A54000000000000000000000000000000000000B
++:10A5500000000000000000000000000000000000FB
++:10A5600000000000000000000000000000000000EB
++:10A5700000000000000000000000000000000000DB
++:10A5800000000000000000000000000000000000CB
++:10A5900000000000000000000000000000000000BB
++:10A5A00000000000000000000000000000000000AB
++:10A5B000000000000000000000000000000000009B
++:10A5C000000000000000000000000000000000008B
++:10A5D000000000000000000000000000000000007B
++:10A5E000000000000000000000000000000000006B
++:10A5F000000000000000000000000000000000005B
++:10A60000000000000000000000000000000000004A
++:10A61000000000000000000000000000000000003A
++:10A62000000000000000000000000000000000002A
++:10A63000000000000000000000000000000000001A
++:10A64000000000000000000000000000000000000A
++:10A6500000000000000000000000000000000000FA
++:10A6600000000000000000000000000000000000EA
++:10A6700000000000000000000000000000000000DA
++:10A6800000000000000000000000000000000000CA
++:10A6900000000000000000000000000000000000BA
++:10A6A00000000000000000000000000000000000AA
++:10A6B000000000000000000000000000000000009A
++:10A6C000000000000000000000000000000000008A
++:10A6D000000000000000000000000000000000007A
++:10A6E000000000000000000000000000000000006A
++:10A6F000000000000000000000000000000000005A
++:10A700000000000000000000000000000000000049
++:10A710000000000000000000000000000000000039
++:10A720000000000000000000000000000000000029
++:10A730000000000000000000000000000000000019
++:10A740000000000000000000000000000000000009
++:10A7500000000000000000000000000000000000F9
++:10A7600000000000000000000000000000000000E9
++:10A7700000000000000000000000000000000000D9
++:10A7800000000000000000000000000000000000C9
++:10A7900000000000000000000000000000000000B9
++:10A7A00000000000000000000000000000000000A9
++:10A7B0000000000000000000000000000000000099
++:10A7C0000000000000000000000000000000000089
++:10A7D0000000000000000000000000000000000079
++:10A7E0000000000000000000000000000000000069
++:10A7F0000000000000000000000000000000000059
++:10A800000000000000000000000000000000000048
++:10A810000000000000000000000000000000000038
++:10A820000000000000000000000000000000000028
++:10A830000000000000000000000000000000000018
++:10A840000000000000000000000000000000000008
++:10A8500000000000000000000000000000000000F8
++:10A8600000000000000000000000000000000000E8
++:10A8700000000000000000000000000000000000D8
++:10A8800000000000000000000000000000000000C8
++:10A8900000000000000000000000000000000000B8
++:10A8A00000000000000000000000000000000000A8
++:10A8B0000000000000000000000000000000000098
++:10A8C0000000000000000000000000000000000088
++:10A8D0000000000000000000000000000000000078
++:10A8E0000000000000000000000000000000000068
++:10A8F0000000000000000000000000000000000058
++:10A900000000000000000000000000000000000047
++:10A910000000000000000000000000000000000037
++:10A920000000000000000000000000000000000027
++:10A930000000000000000000000000000000000017
++:10A940000000000000000000000000000000000007
++:10A9500000000000000000000000000000000000F7
++:10A9600000000000000000000000000000000000E7
++:10A9700000000000000000000000000000000000D7
++:10A9800000000000000000000000000000000000C7
++:10A9900000000000000000000000000000000000B7
++:10A9A00000000000000000000000000000000000A7
++:10A9B0000000000000000000000000000000000097
++:10A9C0000000000000000000000000000000000087
++:10A9D0000000000000000000000000000000000077
++:10A9E0000000000000000000000000000000000067
++:10A9F0000000000000000000000000000000000057
++:10AA00000000000000000000000000000000000046
++:10AA10000000000000000000000000000000000036
++:10AA20000000000000000000000000000000000026
++:10AA30000000000000000000000000000000000016
++:10AA40000000000000000000000000000000000006
++:10AA500000000000000000000000000000000000F6
++:10AA600000000000000000000000000000000000E6
++:10AA700000000000000000000000000000000000D6
++:10AA800000000000000000000000000000000000C6
++:10AA900000000000000000000000000000000000B6
++:10AAA00000000000000000000000000000000000A6
++:10AAB0000000000000000000000000000000000096
++:10AAC0000000000000000000000000000000000086
++:10AAD0000000000000000000000000000000000076
++:10AAE0000000000000000000000000000000000066
++:10AAF0000000000000000000000000000000000056
++:10AB00000000000000000000000000000000000045
++:10AB10000000000000000000000000000000000035
++:10AB20000000000000000000000000000000000025
++:10AB30000000000000000000000000000000000015
++:10AB40000000000000000000000000000000000005
++:10AB500000000000000000000000000000000000F5
++:10AB600000000000000000000000000000000000E5
++:10AB700000000000000000000000000000000000D5
++:10AB800000000000000000000000000000000000C5
++:10AB900000000000000000000000000000000000B5
++:10ABA00000000000000000000000000000000000A5
++:10ABB0000000000000000000000000000000000095
++:10ABC0000000000000000000000000000000000085
++:10ABD0000000000000000000000000000000000075
++:10ABE0000000000000000000000000000000000065
++:10ABF0000000000000000000000000000000000055
++:10AC00000000000000000000000000000000000044
++:10AC10000000000000000000000000000000000034
++:10AC20000000000000000000000000000000000024
++:10AC30000000000000000000000000000000000014
++:10AC40000000000000000000000000000000000004
++:10AC500000000000000000000000000000000000F4
++:10AC600000000000000000000000000000000000E4
++:10AC700000000000000000000000000000000000D4
++:10AC800000000000000000000000000000000000C4
++:10AC900000000000000000000000000000000000B4
++:10ACA00000000000000000000000000000000000A4
++:10ACB0000000000000000000000000000000000094
++:10ACC0000000000000000000000000000000000084
++:10ACD0000000000000000000000000000000000074
++:10ACE0000000000000000000000000000000000064
++:10ACF0000000000000000000000000000000000054
++:10AD00000000000000000000000000000000000043
++:10AD10000000000000000000000000000000000033
++:10AD20000000000000000000000000000000000023
++:10AD30000000000000000000000000000000000013
++:10AD40000000000000000000000000000000000003
++:10AD500000000000000000000000000000000000F3
++:10AD600000000000000000000000000000000000E3
++:10AD700000000000000000000000000000000000D3
++:10AD800000000000000000000000000000000000C3
++:10AD900000000000000000000000000000000000B3
++:10ADA00000000000000000000000000000000000A3
++:10ADB0000000000000000000000000000000000093
++:10ADC0000000000000000000000000000000000083
++:10ADD0000000000000000000000000000000000073
++:10ADE0000000000000000000000000000000000063
++:10ADF0000000000000000000000000000000000053
++:10AE00000000000000000000000000000000000042
++:10AE10000000000000000000000000000000000032
++:10AE20000000000000000000000000000000000022
++:10AE30000000000000000000000000000000000012
++:10AE40000000000000000000000000000000000002
++:10AE500000000000000000000000000000000000F2
++:10AE600000000000000000000000000000000000E2
++:10AE700000000000000000000000000000000000D2
++:10AE800000000000000000000000000000000000C2
++:10AE900000000000000000000000000000000000B2
++:10AEA00000000000000000000000000000000000A2
++:10AEB0000000000000000000000000000000000092
++:10AEC0000000000000000000000000000000000082
++:10AED0000000000000000000000000000000000072
++:10AEE0000000000000000000000000000000000062
++:10AEF0000000000000000000000000000000000052
++:10AF00000000000000000000000000000000000041
++:10AF10000000000000000000000000000000000031
++:10AF20000000000000000000000000000000000021
++:10AF30000000000000000000000000000000000011
++:10AF40000000000000000000000000000000000001
++:10AF500000000000000000000000000000000000F1
++:10AF600000000000000000000000000000000000E1
++:10AF700000000000000000000000000000000000D1
++:10AF800000000000000000000000000000000000C1
++:10AF900000000000000000000000000000000000B1
++:10AFA00000000000000000000000000000000000A1
++:10AFB0000000000000000000000000000000000091
++:10AFC0000000000000000000000000000000000081
++:10AFD0000000000000000000000000000000000071
++:10AFE0000000000000000000000000000000000061
++:10AFF0000000000000000000000000000000000051
++:10B000000000000000000000000000000000000040
++:10B010000000000000000000000000000000000030
++:10B020000000000000000000000000000000000020
++:10B030000000000000000000000000000000000010
++:10B040000000000000000000000000000000000000
++:10B0500000000000000000000000000000000000F0
++:10B0600000000000000000000000000000000000E0
++:10B0700000000000000000000000000000000000D0
++:10B0800000000000000000000000000000000000C0
++:10B0900000000000000000000000000000000000B0
++:10B0A00000000000000000000000000000000000A0
++:10B0B0000000000000000000000000000000000090
++:10B0C0000000000000000000000000000000000080
++:10B0D0000000000000000000000000000000000070
++:10B0E0000000000000000000000000000000000060
++:10B0F0000000000000000000000000000000000050
++:10B10000000000000000000000000000000000003F
++:10B11000000000000000000000000000000000002F
++:10B12000000000000000000000000000000000001F
++:10B13000000000000000000000000000000000000F
++:10B1400000000000000000000000000000000000FF
++:10B1500000000000000000000000000000000000EF
++:10B1600000000000000000000000000000000000DF
++:10B1700000000000000000000000000000000000CF
++:10B1800000000000000000000000000000000000BF
++:10B1900000000000000000000000000000000000AF
++:10B1A000000000000000000000000000000000009F
++:10B1B000000000000000000000000000000000008F
++:10B1C000000000000000000000000000000000007F
++:10B1D000000000000000000000000000000000006F
++:10B1E000000000000000000000000000000000005F
++:10B1F000000000000000000000000000000000004F
++:10B20000000000000000000000000000000000003E
++:10B21000000000000000000000000000000000002E
++:10B22000000000000000000000000000000000001E
++:10B23000000000000000000000000000000000000E
++:10B2400000000000000000000000000000000000FE
++:10B2500000000000000000000000000000000000EE
++:10B2600000000000000000000000000000000000DE
++:10B2700000000000000000000000000000000000CE
++:10B2800000000000000000000000000000000000BE
++:10B2900000000000000000000000000000000000AE
++:10B2A000000000000000000000000000000000009E
++:10B2B000000000000000000000000000000000008E
++:10B2C000000000000000000000000000000000007E
++:10B2D000000000000000000000000000000000006E
++:10B2E000000000000000000000000000000000005E
++:10B2F000000000000000000000000000000000004E
++:10B30000000000000000000000000000000000003D
++:10B31000000000000000000000000000000000002D
++:10B32000000000000000000000000000000000001D
++:10B33000000000000000000000000000000000000D
++:10B3400000000000000000000000000000000000FD
++:10B3500000000000000000000000000000000000ED
++:10B3600000000000000000000000000000000000DD
++:10B3700000000000000000000000000000000000CD
++:10B3800000000000000000000000000000000000BD
++:10B3900000000000000000000000000000000000AD
++:10B3A000000000000000000000000000000000009D
++:10B3B000000000000000000000000000000000008D
++:10B3C000000000000000000000000000000000007D
++:10B3D000000000000000000000000000000000006D
++:10B3E000000000000000000000000000000000005D
++:10B3F000000000000000000000000000000000004D
++:10B40000000000000000000000000000000000003C
++:10B41000000000000000000000000000000000002C
++:10B42000000000000000000000000000000000001C
++:10B43000000000000000000000000000000000000C
++:10B4400000000000000000000000000000000000FC
++:10B4500000000000000000000000000000000000EC
++:10B4600000000000000000000000000000000000DC
++:10B4700000000000000000000000000000000000CC
++:10B4800000000000000000000000000000000000BC
++:10B4900000000000000000000000000000000000AC
++:10B4A000000000000000000000000000000000009C
++:10B4B000000000000000000000000000000000008C
++:10B4C000000000000000000000000000000000007C
++:10B4D000000000000000000000000000000000006C
++:10B4E000000000000000000000000000000000005C
++:10B4F000000000000000000000000000000000004C
++:10B50000000000000000000000000000000000003B
++:10B51000000000000000000000000000000000002B
++:10B52000000000000000000000000000000000001B
++:10B53000000000000000000000000000000000000B
++:10B5400000000000000000000000000000000000FB
++:10B5500000000000000000000000000000000000EB
++:10B5600000000000000000000000000000000000DB
++:10B5700000000000000000000000000000000000CB
++:10B5800000000000000000000000000000000000BB
++:10B5900000000000000000000000000000000000AB
++:10B5A000000000000000000000000000000000009B
++:10B5B000000000000000000000000000000000008B
++:10B5C000000000000000000000000000000000007B
++:10B5D000000000000000000000000000000000006B
++:10B5E000000000000000000000000000000000005B
++:10B5F000000000000000000000000000000000004B
++:10B60000000000000000000000000000000000003A
++:10B61000000000000000000000000000000000002A
++:10B62000000000000000000000000000000000001A
++:10B63000000000000000000000000000000000000A
++:10B6400000000000000000000000000000000000FA
++:10B6500000000000000000000000000000000000EA
++:10B6600000000000000000000000000000000000DA
++:10B6700000000000000000000000000000000000CA
++:10B6800000000000000000000000000000000000BA
++:10B6900000000000000000000000000000000000AA
++:10B6A000000000000000000000000000000000009A
++:10B6B000000000000000000000000000000000008A
++:10B6C000000000000000000000000000000000007A
++:10B6D000000000000000000000000000000000006A
++:10B6E000000000000000000000000000000000005A
++:10B6F000000000000000000000000000000000004A
++:10B700000000000000000000000000000000000039
++:10B710000000000000000000000000000000000029
++:10B720000000000000000000000000000000000019
++:10B730000000000000000000000000000000000009
++:10B7400000000000000000000000000000000000F9
++:10B7500000000000000000000000000000000000E9
++:10B7600000000000000000000000000000000000D9
++:10B7700000000000000000000000000000000000C9
++:10B7800000000000000000000000000000000000B9
++:10B7900000000000000000000000000000000000A9
++:10B7A0000000000000000000000000000000000099
++:10B7B0000000000000000000000000000000000089
++:10B7C0000000000000000000000000000000000079
++:10B7D0000000000000000000000000000000000069
++:10B7E0000000000000000000000000000000000059
++:10B7F0000000000000000000000000000000000049
++:10B800000000000000000000000000000000000038
++:10B810000000000000000000000000000000000028
++:10B820000000000000000000000000000000000018
++:10B830000000000000000000000000000000000008
++:10B8400000000000000000000000000000000000F8
++:10B8500000000000000000000000000000000000E8
++:10B8600000000000000000000000000000000000D8
++:10B8700000000000000000000000000000000000C8
++:10B8800000000000000000000000000000000000B8
++:10B8900000000000000000000000000000000000A8
++:10B8A0000000000000000000000000000000000098
++:10B8B0000000000000000000000000000000000088
++:10B8C0000000000000000000000000000000000078
++:10B8D0000000000000000000000000000000000068
++:10B8E0000000000000000000000000000000000058
++:10B8F0000000000000000000000000000000000048
++:10B900000000000000000000000000000000000037
++:10B910000000000000000000000000000000000027
++:10B920000000000000000000000000000000000017
++:10B930000000000000000000000000000000000007
++:10B9400000000000000000000000000000000000F7
++:10B9500000000000000000000000000000000000E7
++:10B9600000000000000000000000000000000000D7
++:10B9700000000000000000000000000000000000C7
++:10B9800000000000000000000000000000000000B7
++:10B9900000000000000000000000000000000000A7
++:10B9A0000000000000000000000000000000000097
++:10B9B0000000000000000000000000000000000087
++:10B9C0000000000000000000000000000000000077
++:10B9D0000000000000000000000000000000000067
++:10B9E0000000000000000000000000000000000057
++:10B9F0000000000000000000000000000000000047
++:10BA00000000000000000000000000000000000036
++:10BA10000000000000000000000000000000000026
++:10BA20000000000000000000000000000000000016
++:10BA30000000000000000000000000000000000006
++:10BA400000000000000000000000000000000000F6
++:10BA500000000000000000000000000000000000E6
++:10BA600000000000000000000000000000000000D6
++:10BA700000000000000000000000000000000000C6
++:10BA800000000000000000000000000000000000B6
++:10BA900000000000000000000000000000000000A6
++:10BAA0000000000000000000000000000000000096
++:10BAB0000000000000000000000000000000000086
++:10BAC0000000000000000000000000000000000076
++:10BAD0000000000000000000000000000000000066
++:10BAE0000000000000000000000000000000000056
++:10BAF0000000000000000000000000000000000046
++:10BB00000000000000000000000000000000000035
++:10BB10000000000000000000000000000000000025
++:10BB20000000000000000000000000000000000015
++:10BB30000000000000000000000000000000000005
++:10BB400000000000000000000000000000000000F5
++:10BB500000000000000000000000000000000000E5
++:10BB600000000000000000000000000000000000D5
++:10BB700000000000000000000000000000000000C5
++:10BB800000000000000000000000000000000000B5
++:10BB900000000000000000000000000000000000A5
++:10BBA0000000000000000000000000000000000095
++:10BBB0000000000000000000000000000000000085
++:10BBC0000000000000000000000000000000000075
++:10BBD0000000000000000000000000000000000065
++:10BBE0000000000000000000000000000000000055
++:10BBF0000000000000000000000000000000000045
++:10BC00000000000000000000000000000000000034
++:10BC10000000000000000000000000000000000024
++:10BC20000000000000000000000000000000000014
++:10BC30000000000000000000000000000000000004
++:10BC400000000000000000000000000000000000F4
++:10BC500000000000000000000000000000000000E4
++:10BC600000000000000000000000000000000000D4
++:10BC700000000000000000000000000000000000C4
++:10BC800000000000000000000000000000000000B4
++:10BC900000000000000000000000000000000000A4
++:10BCA0000000000000000000000000000000000094
++:10BCB0000000000000000000000000000000000084
++:10BCC0000000000000000000000000000000000074
++:10BCD0000000000000000000000000000000000064
++:10BCE0000000000000000000000000000000000054
++:10BCF0000000000000000000000000000000000044
++:10BD00000000000000000000000000000000000033
++:10BD10000000000000000000000000000000000023
++:10BD20000000000000000000000000000000000013
++:10BD30000000000000000000000000000000000003
++:10BD400000000000000000000000000000000000F3
++:10BD500000000000000000000000000000000000E3
++:10BD600000000000000000000000000000000000D3
++:10BD700000000000000000000000000000000000C3
++:10BD800000000000000000000000000000000000B3
++:10BD900000000000000000000000000000000000A3
++:10BDA0000000000000000000000000000000000093
++:10BDB0000000000000000000000000000000000083
++:10BDC0000000000000000000000000000000000073
++:10BDD0000000000000000000000000000000000063
++:10BDE0000000000000000000000000000000000053
++:10BDF0000000000000000000000000000000000043
++:10BE00000000000000000000000000000000000032
++:10BE10000000000000000000000000000000000022
++:10BE20000000000000000000000000000000000012
++:10BE30000000000000000000000000000000000002
++:10BE400000000000000000000000000000000000F2
++:10BE500000000000000000000000000000000000E2
++:10BE600000000000000000000000000000000000D2
++:10BE700000000000000000000000000000000000C2
++:10BE800000000000000000000000000000000000B2
++:10BE900000000000000000000000000000000000A2
++:10BEA0000000000000000000000000000000000092
++:10BEB0000000000000000000000000000000000082
++:10BEC0000000000000000000000000000000000072
++:10BED0000000000000000000000000000000000062
++:10BEE0000000000000000000000000000000000052
++:10BEF0000000000000000000000000000000000042
++:10BF00000000000000000000000000000000000031
++:10BF10000000000000000000000000000000000021
++:10BF20000000000000000000000000000000000011
++:10BF30000000000000000000000000000000000001
++:10BF400000000000000000000000000000000000F1
++:10BF500000000000000000000000000000000000E1
++:10BF600000000000000000000000000000000000D1
++:10BF700000000000000000000000000000000000C1
++:10BF800000000000000000000000000000000000B1
++:10BF900000000000000000000000000000000000A1
++:10BFA0000000000000000000000000000000000091
++:10BFB0000000000000000000000000000000000081
++:10BFC0000000000000000000000000000000000071
++:10BFD0000000000000000000000000000000000061
++:10BFE0000000000000000000000000000000000051
++:10BFF0000000000000000000000000000000000041
++:10C000000000000000000000000000000000000030
++:10C010000000000000000000000000000000000020
++:10C020000000000000000000000000000000000010
++:10C030000000000000000000000000000000000000
++:10C0400000000000000000000000000000000000F0
++:10C0500000000000000000000000000000000000E0
++:10C0600000000000000000000000000000000000D0
++:10C0700000000000000000000000000000000000C0
++:10C0800000000000000000000000000000000000B0
++:10C0900000000000000000000000000000000000A0
++:10C0A0000000000000000000000000000000000090
++:10C0B0000000000000000000000000000000000080
++:10C0C0000000000000000000000000000000000070
++:10C0D0000000000000000000000000000000000060
++:10C0E0000000000000000000000000000000000050
++:10C0F0000000000000000000000000000000000040
++:10C10000000000000000000000000000000000002F
++:10C11000000000000000000000000000000000001F
++:10C12000000000000000000000000000000000000F
++:10C1300000000000000000000000000000000000FF
++:10C1400000000000000000000000000000000000EF
++:10C1500000000000000000000000000000000000DF
++:10C1600000000000000000000000000000000000CF
++:10C1700000000000000000000000000000000000BF
++:10C1800000000000000000000000000000000000AF
++:10C19000000000000000000000000000000000009F
++:10C1A000000000000000000000000000000000008F
++:10C1B000000000000000000000000000000000007F
++:10C1C000000000000000000000000000000000006F
++:10C1D000000000000000000000000000000000005F
++:10C1E000000000000000000000000000000000004F
++:10C1F000000000000000000000000000000000003F
++:10C20000000000000000000000000000000000002E
++:10C21000000000000000000000000000000000001E
++:10C22000000000000000000000000000000000000E
++:10C2300000000000000000000000000000000000FE
++:10C2400000000000000000000000000000000000EE
++:10C2500000000000000000000000000000000000DE
++:10C2600000000000000000000000000000000000CE
++:10C2700000000000000000000000000000000000BE
++:10C2800000000000000000000000000000000000AE
++:10C29000000000000000000000000000000000009E
++:10C2A000000000000000000000000000000000008E
++:10C2B000000000000000000000000000000000007E
++:10C2C000000000000000000000000000000000006E
++:10C2D000000000000000000000000000000000005E
++:10C2E000000000000000000000000000000000004E
++:10C2F000000000000000000000000000000000003E
++:10C30000000000000000000000000000000000002D
++:10C31000000000000000000000000000000000001D
++:10C32000000000000000000000000000000000000D
++:10C3300000000000000000000000000000000000FD
++:10C3400000000000000000000000000000000000ED
++:10C3500000000000000000000000000000000000DD
++:10C3600000000000000000000000000000000000CD
++:10C3700000000000000000000000000000000000BD
++:10C3800000000000000000000000000000000000AD
++:10C39000000000000000000000000000000000009D
++:10C3A000000000000000000000000000000000008D
++:10C3B000000000000000000000000000000000007D
++:10C3C000000000000000000000000000000000006D
++:10C3D000000000000000000000000000000000005D
++:10C3E000000000000000000000000000000000004D
++:10C3F000000000000000000000000000000000003D
++:10C40000000000000000000000000000000000002C
++:10C41000000000000000000000000000000000001C
++:10C42000000000000000000000000000000000000C
++:10C4300000000000000000000000000000000000FC
++:10C4400000000000000000000000000000000000EC
++:10C4500000000000000000000000000000000000DC
++:10C4600000000000000000000000000000000000CC
++:10C4700000000000000000000000000000000000BC
++:10C4800000000000000000000000000000000000AC
++:10C49000000000000000000000000000000000009C
++:10C4A000000000000000000000000000000000008C
++:10C4B000000000000000000000000000000000007C
++:10C4C000000000000000000000000000000000006C
++:10C4D000000000000000000000000000000000005C
++:10C4E000000000000000000000000000000000004C
++:10C4F000000000000000000000000000000000003C
++:10C50000000000000000000000000000000000002B
++:10C51000000000000000000000000000000000001B
++:10C52000000000000000000000000000000000000B
++:10C5300000000000000000000000000000000000FB
++:10C5400000000000000000000000000000000000EB
++:10C5500000000000000000000000000000000000DB
++:10C5600000000000000000000000000000000000CB
++:10C5700000000000000000000000000000000000BB
++:10C5800000000000000000000000000000000000AB
++:10C59000000000000000000000000000000000009B
++:10C5A000000000000000000000000000000000008B
++:10C5B000000000000000000000000000000000007B
++:10C5C000000000000000000000000000000000006B
++:10C5D000000000000000000000000000000000005B
++:10C5E000000000000000000000000000000000004B
++:10C5F000000000000000000000000000000000003B
++:10C60000000000000000000000000000000000002A
++:10C61000000000000000000000000000000000001A
++:10C62000000000000000000000000000000000000A
++:10C6300000000000000000000000000000000000FA
++:10C6400000000000000000000000000000000000EA
++:10C6500000000000000000000000000000000000DA
++:10C6600000000000000000000000000000000000CA
++:10C6700000000000000000000000000000000000BA
++:10C6800000000000000000000000000000000000AA
++:10C69000000000000000000000000000000000009A
++:10C6A000000000000000000000000000000000008A
++:10C6B000000000000000000000000000000000007A
++:10C6C000000000000000000000000000000000006A
++:10C6D000000000000000000000000000000000005A
++:10C6E000000000000000000000000000000000004A
++:10C6F000000000000000000000000000000000003A
++:10C700000000000000000000000000000000000029
++:10C710000000000000000000000000000000000019
++:10C720000000000000000000000000000000000009
++:10C7300000000000000000000000000000000000F9
++:10C7400000000000000000000000000000000000E9
++:10C7500000000000000000000000000000000000D9
++:10C7600000000000000000000000000000000000C9
++:10C7700000000000000000000000000000000000B9
++:10C7800000000000000000000000000000000000A9
++:10C790000000000000000000000000000000000099
++:10C7A0000000000000000000000000000000000089
++:10C7B0000000000000000000000000000000000079
++:10C7C0000000000000000000000000000000000069
++:10C7D0000000000000000000000000000000000059
++:10C7E0000000000000000000000000000000000049
++:10C7F0000000000000000000000000000000000039
++:10C800000000000000000000000000000000000028
++:10C810000000000000000000000000000000000018
++:10C820000000000000000000000000000000000008
++:10C8300000000000000000000000000000000000F8
++:10C8400000000000000000000000000000000000E8
++:10C8500000000000000000000000000000000000D8
++:10C8600000000000000000000000000000000000C8
++:10C8700000000000000000000000000000000000B8
++:10C8800000000000000000000000000000000000A8
++:10C890000000000000000000000000000000000098
++:10C8A0000000000000000000000000000000000088
++:10C8B0000000000000000000000000000000000078
++:10C8C0000000000000000000000000000000000068
++:10C8D0000000000000000000000000000000000058
++:10C8E0000000000000000000000000000000000048
++:10C8F0000000000000000000000000000000000038
++:10C900000000000000000000000000000000000027
++:10C910000000000000000000000000000000000017
++:10C920000000000000000000000000000000000007
++:10C9300000000000000000000000000000000000F7
++:10C9400000000000000000000000000000000000E7
++:10C9500000000000000000000000000000000000D7
++:10C9600000000000000000000000000000000000C7
++:10C9700000000000000000000000000000000000B7
++:10C9800000000000000000000000000000000000A7
++:10C990000000000000000000000000000000000097
++:10C9A0000000000000000000000000000000000087
++:10C9B0000000000000000000000000000000000077
++:10C9C0000000000000000000000000000000000067
++:10C9D0000000000000000000000000000000000057
++:10C9E0000000000000000000000000000000000047
++:10C9F0000000000000000000000000000000000037
++:10CA00000000000000000000000000000000000026
++:10CA10000000000000000000000000000000000016
++:10CA20000000000000000000000000000000000006
++:10CA300000000000000000000000000000000000F6
++:10CA400000000000000000000000000000000000E6
++:10CA500000000000000000000000000000000000D6
++:10CA600000000000000000000000000000000000C6
++:10CA700000000000000000000000000000000000B6
++:10CA800000000000000000000000000000000000A6
++:10CA90000000000000000000000000000000000096
++:10CAA0000000000000000000000000000000000086
++:10CAB0000000000000000000000000000000000076
++:10CAC0000000000000000000000000000000000066
++:10CAD0000000000000000000000000000000000056
++:10CAE0000000000000000000000000000000000046
++:10CAF0000000000000000000000000000000000036
++:10CB00000000000000000000000000000000000025
++:10CB10000000000000000000000000000000000015
++:10CB20000000000000000000000000000000000005
++:10CB300000000000000000000000000000000000F5
++:10CB400000000000000000000000000000000000E5
++:10CB500000000000000000000000000000000000D5
++:10CB600000000000000000000000000000000000C5
++:10CB700000000000000000000000000000000000B5
++:10CB800000000000000000000000000000000000A5
++:10CB90000000000000000000000000000000000095
++:10CBA0000000000000000000000000000000000085
++:10CBB0000000000000000000000000000000000075
++:10CBC0000000000000000000000000000000000065
++:10CBD0000000000000000000000000000000000055
++:10CBE0000000000000000000000000000000000045
++:10CBF0000000000000000000000000000000000035
++:10CC00000000000000000000000000000000000024
++:10CC10000000000000000000000000000000000014
++:10CC20000000000000000000000000000000000004
++:10CC300000000000000000000000000000000000F4
++:10CC400000000000000000000000000000000000E4
++:10CC500000000000000000000000000000000000D4
++:10CC600000000000000000000000000000000000C4
++:10CC700000000000000000000000000000000000B4
++:10CC800000000000000000000000000000000000A4
++:10CC90000000000000000000000000000000000094
++:10CCA0000000000000000000000000000000000084
++:10CCB0000000000000000000000000000000000074
++:10CCC0000000000000000000000000000000000064
++:10CCD0000000000000000000000000000000000054
++:10CCE0000000000000000000000000000000000044
++:10CCF0000000000000000000000000000000000034
++:10CD00000000000000000000000000000000000023
++:10CD10000000000000000000000000000000000013
++:10CD20000000000000000000000000000000000003
++:10CD300000000000000000000000000000000000F3
++:10CD400000000000000000000000000000000000E3
++:10CD500000000000000000000000000000000000D3
++:10CD600000000000000000000000000000000000C3
++:10CD700000000000000000000000000000000000B3
++:10CD800000000000000000000000000000000000A3
++:10CD90000000000000000000000000000000000093
++:10CDA0000000000000000000000000000000000083
++:10CDB0000000000000000000000000000000000073
++:10CDC0000000000000000000000000000000000063
++:10CDD0000000000000000000000000000000000053
++:10CDE0000000000000000000000000000000000043
++:10CDF0000000000000000000000000000000000033
++:10CE00000000000000000000000000000000000022
++:10CE10000000000000000000000000000000000012
++:10CE20000000000000000000000000000000000002
++:10CE300000000000000000000000000000000000F2
++:10CE400000000000000000000000000000000000E2
++:10CE500000000000000000000000000000000000D2
++:10CE600000000000000000000000000000000000C2
++:10CE700000000000000000000000000000000000B2
++:10CE800000000000000000000000000000000000A2
++:10CE90000000000000000000000000000000000092
++:10CEA0000000000000000000000000000000000082
++:10CEB0000000000000000000000000000000000072
++:10CEC0000000000000000000000000000000000062
++:10CED0000000000000000000000000000000000052
++:10CEE0000000000000000000000000000000000042
++:10CEF0000000000000000000000000000000000032
++:10CF00000000000000000000000000000000000021
++:10CF10000000000000000000000000000000000011
++:10CF20000000000000000000000000000000000001
++:10CF300000000000000000000000000000000000F1
++:10CF400000000000000000000000000000000000E1
++:10CF500000000000000000000000000000000000D1
++:10CF600000000000000000000000000000000000C1
++:10CF700000000000000000000000000000000000B1
++:10CF800000000000000000000000000000000000A1
++:10CF90000000000000000000000000000000000091
++:10CFA0000000000000000000000000000000000081
++:10CFB0000000000000000000000000000000000071
++:10CFC0000000000000000000000000000000000061
++:10CFD0000000000000000000000000000000000051
++:10CFE0000000000000000000000000000000000041
++:10CFF0000000000000000000000000000000000031
++:10D000000000000000000000000000000000000020
++:10D010000000000000000000000000000000000010
++:10D020000000000000000000000000000000000000
++:10D0300000000000000000000000000000000000F0
++:10D0400000000000000000000000000000000000E0
++:10D0500000000000000000000000000000000000D0
++:10D0600000000000000000000000000000000000C0
++:10D0700000000000000000000000000000000000B0
++:10D0800000000000000000000000000000000000A0
++:10D090000000000000000000000000000000000090
++:10D0A0000000000000000000000000000000000080
++:10D0B0000000000000000000000000000000000070
++:10D0C0000000000000000000000000000000000060
++:10D0D0000000000000000000000000000000000050
++:10D0E0000000000000000000000000000000000040
++:10D0F0000000000000000000000000000000000030
++:10D10000000000000000000000000000000000001F
++:10D11000000000000000000000000000000000000F
++:10D1200000000000000000000000000000000000FF
++:10D1300000000000000000000000000000000000EF
++:10D1400000000000000000000000000000000000DF
++:10D1500000000000000000000000000000000000CF
++:10D1600000000000000000000000000000000000BF
++:10D1700000000000000000000000000000000000AF
++:10D18000000000000000000000000000000000009F
++:10D19000000000000000000000000000000000008F
++:10D1A000000000000000000000000000000000007F
++:10D1B000000000000000000000000000000000006F
++:10D1C000000000000000000000000000000000005F
++:10D1D000000000000000000000000000000000004F
++:10D1E000000000000000000000000000000000003F
++:10D1F000000000000000000000000000000000002F
++:10D20000000000000000000000000000000000001E
++:10D21000000000000000000000000000000000000E
++:10D2200000000000000000000000000000000000FE
++:10D2300000000000000000000000000000000000EE
++:10D2400000000000000000000000000000000000DE
++:10D2500000000000000000000000000000000000CE
++:10D2600000000000000000000000000000000000BE
++:10D2700000000000000000000000000000000000AE
++:10D28000000000000000000000000000000000009E
++:10D29000000000000000000000000000000000008E
++:10D2A000000000000000000000000000000000007E
++:10D2B000000000000000000000000000000000006E
++:10D2C000000000000000000000000000000000005E
++:10D2D000000000000000000000000000000000004E
++:10D2E000000000000000000000000000000000003E
++:10D2F000000000000000000000000000000000002E
++:10D30000000000000000000000000000000000001D
++:10D31000000000000000000000000000000000000D
++:10D3200000000000000000000000000000000000FD
++:10D3300000000000000000000000000000000000ED
++:10D3400000000000000000000000000000000000DD
++:10D3500000000000000000000000000000000000CD
++:10D3600000000000000000000000000000000000BD
++:10D3700000000000000000000000000000000000AD
++:10D38000000000000000000000000000000000009D
++:10D39000000000000000000000000000000000008D
++:10D3A000000000000000000000000000000000007D
++:10D3B000000000000000000000000000000000006D
++:10D3C000000000000000000000000000000000005D
++:10D3D000000000000000000000000000000000004D
++:10D3E000000000000000000000000000000000003D
++:10D3F000000000000000000000000000000000002D
++:10D40000000000000000000000000000000000001C
++:10D41000000000000000000000000000000000000C
++:10D4200000000000000000000000000000000000FC
++:10D4300000000000000000000000000000000000EC
++:10D4400000000000000000000000000000000000DC
++:10D4500000000000000000000000000000000000CC
++:10D4600000000000000000000000000000000000BC
++:10D4700000000000000000000000000000000000AC
++:10D48000000000000000000000000000000000009C
++:10D49000000000000000000000000000000000008C
++:10D4A000000000000000000000000000000000007C
++:10D4B000000000000000000000000000000000006C
++:10D4C000000000000000000000000000000000005C
++:10D4D000000000000000000000000000000000004C
++:10D4E000000000000000000000000000000000003C
++:10D4F000000000000000000000000000000000002C
++:10D50000000000000000000000000000000000001B
++:10D51000000000000000000000000000000000000B
++:10D5200000000000000000000000000000000000FB
++:10D5300000000000000000000000000000000000EB
++:10D5400000000000000000000000000000000000DB
++:10D5500000000000000000000000000000000000CB
++:10D5600000000000000000000000000000000000BB
++:10D5700000000000000000000000000000000000AB
++:10D58000000000000000000000000000000000009B
++:10D59000000000000000008000000000000000000B
++:10D5A000000000000000000000000000000000007B
++:10D5B00000000000000000000000000A0000000061
++:10D5C0000000000000000000100000030000000048
++:10D5D0000000000D0000000D3C02080024427340D2
++:10D5E0003C030800246377CCAC4000000043202BB0
++:10D5F0001480FFFD244200043C1D080037BD7FFC61
++:10D6000003A0F0213C100800261032103C1C08003A
++:10D61000279C73400E0010FE000000000000000D6B
++:10D6200030A5FFFF30C600FF274301808F4201B8BD
++:10D630000440FFFE24020002AC640000A465000860
++:10D64000A066000AA062000B3C021000AC67001844
++:10D6500003E00008AF4201B83C0360008C624FF861
++:10D660000440FFFE3C020200AC644FC0AC624FC4F9
++:10D670003C02100003E00008AC624FF89482000CFA
++:10D680002486001400A0382100021302000210803A
++:10D690000082402100C8102B1040005700000000FD
++:10D6A00090C300002C6200095040005190C200015C
++:10D6B000000310803C030800246372F00043102133
++:10D6C0008C420000004000080000000090C30001F0
++:10D6D0002402000A1462003A000000000106102330
++:10D6E0002C42000A1440003624C600028CE20000DE
++:10D6F00034420100ACE2000090C2000090C300017F
++:10D7000090C4000290C5000300031C000002160034
++:10D710000043102500042200004410250045102578
++:10D7200024C60004ACE2000490C2000090C30001D3
++:10D7300090C4000290C500030002160000031C0004
++:10D740000043102500042200004410250045102548
++:10D7500024C600040A000CB8ACE2000890C3000123
++:10D76000240200041462001624C6000290C20000C5
++:10D7700090C400018CE30000000212000044102558
++:10D780003463000424C60002ACE2000C0A000CB8AA
++:10D79000ACE3000090C300012402000314620008FF
++:10D7A00024C600028CE2000090C3000024C60001E1
++:10D7B00034420008A0E300100A000CB8ACE20000FC
++:10D7C00003E000082402000190C3000124020002CB
++:10D7D0001062000224C40002010020210A000CB8DB
++:10D7E000008030210A000CB824C6000190C200015C
++:10D7F0000A000CB800C2302103E00008000010212C
++:10D8000027BDFFE8AFBF0014AFB000100E00130239
++:10D8100000808021936200052403FFFE0200202186
++:10D82000004310248FBF00148FB00010A3620005C6
++:10D830000A00130B27BD001827BDFFE8AFB000108A
++:10D84000AFBF00140E000F3C0080802193620000E7
++:10D8500024030050304200FF14430004240201005E
++:10D86000AF4201800A000D3002002021AF4001804C
++:10D87000020020218FBF00148FB000100A000FE7B4
++:10D8800027BD001827BDFF80AFBE0078AFB700747A
++:10D89000AFB20060AFBF007CAFB60070AFB5006C38
++:10D8A000AFB40068AFB30064AFB1005CAFB0005874
++:10D8B0008F5001283C0208008C4231A02403FF80D5
++:10D8C0009365003F0202102100431024AF42002460
++:10D8D0003C0208008C4231A09364000530B200FF86
++:10D8E000020210213042007F034218210004202749
++:10D8F0003C02000A0062182130840001AF8300144A
++:10D900000000F0210000B82114800053AFA00050A7
++:10D9100093430116934401128F450104306300FFC5
++:10D920003C020001308400FF00A2282403431021A0
++:10D9300003441821245640002467400014A001CD60
++:10D940002402000193620000304300FF2402002003
++:10D950001062000524020050106200060000000062
++:10D960000A000D74000000000000000D0A000D7D8B
++:10D97000AFA000303C1E080027DE738C0A000D7D2E
++:10D98000AFA000303C0208008C4200DC24420001C1
++:10D990003C010800AC2200DC0E00139F00000000D8
++:10D9A0000A000F318FBF007C8F4201043C0300202E
++:10D9B00092D3000D004310240002202B00042140CC
++:10D9C000AFA400308F4301043C02004000621824E1
++:10D9D000146000023485004000802821326200205B
++:10D9E000AFA500301440000234A6008000A0302112
++:10D9F00010C0000BAFA6003093C500088F67004C25
++:10DA00000200202100052B0034A5008130A5F08103
++:10DA10000E000C9B30C600FF0A000F2E0000000015
++:10DA20009362003E304200401040000F2402000488
++:10DA300056420007240200120200202100E02821A3
++:10DA40000E0013F702C030210A000F318FBF007C97
++:10DA500016420005000000000E000D2100002021EC
++:10DA60000A000F318FBF007C9743011A96C4000E45
++:10DA700093620035326500043075FFFF00442004D6
++:10DA8000AFA400548ED1000410A000158ED400085D
++:10DA90009362003E3042004010400007000000004A
++:10DAA0000E0013E0022020211040000D00000000B5
++:10DAB0000A000F2E000000008F6200440222102393
++:10DAC0000440016A000000008F6200480222102317
++:10DAD00004410166240400160A000E218FC20004CE
++:10DAE0008F6200480222102304400008000000005A
++:10DAF0003C0208008C423100244200013C01080035
++:10DB0000AC2231000A000F23000000008F620040A9
++:10DB100002221023184000128F8400143C020800D7
++:10DB20008C423100327300FC0000A8212442000125
++:10DB30003C010800AC2231008F6300409482011C3C
++:10DB4000022318233042FFFF0043102A50400010E8
++:10DB50002402000C8F6200400A000DF20222102302
++:10DB60009483011C9762003C0043102B1040000678
++:10DB7000000000009482011C00551023A482011CA7
++:10DB80000A000DF72402000CA480011C2402000CE2
++:10DB9000AFA200308F620040005120231880000D9A
++:10DBA00002A4102A1440012600000000149500066B
++:10DBB00002A410233A620001304200011440012007
++:10DBC0000000000002A41023022488210A000E098C
++:10DBD0003055FFFF00002021326200021040001A81
++:10DBE000326200109362003E30420040504000110B
++:10DBF0008FC200040E00130202002021240200182C
++:10DC0000A362003F936200052403FFFE020020216F
++:10DC1000004310240E00130BA362000524040039F6
++:10DC2000000028210E0013C9240600180A000F3036
++:10DC300024020001240400170040F809000000003D
++:10DC40000A000F302402000110400108000000000B
++:10DC50008F63004C8F620054028210231C4001032A
++:10DC600002831023044200010060A021AFA4001829
++:10DC7000AFB10010AFB50014934201208F65004092
++:10DC80009763003C304200FF034210210044102102
++:10DC90008FA400543063FFFF244240000083182B00
++:10DCA0008FA40030AFA20020AFA50028008320255C
++:10DCB000AFA40030AFA50024AFA0002CAFB4003457
++:10DCC0009362003E30420008504000118FC20000B5
++:10DCD00002C0202127A500380E000CB2AFA00038EA
++:10DCE0005440000B8FC200008FA200383042010068
++:10DCF000504000078FC200008FA3003C8F6200607D
++:10DD00000062102304430001AF6300608FC2000073
++:10DD10000040F80927A400108FA200303042000212
++:10DD200054400001327300FE9362003E30420040D6
++:10DD3000104000378FA200248F6200541682001A10
++:10DD40003262000124020014124200102A4200151F
++:10DD500010400006240200162402000C12420007A4
++:10DD6000326200010A000E7D000000001242000530
++:10DD7000326200010A000E7D000000000A000E78E9
++:10DD80002417000E0A000E78241700100A000E7CDB
++:10DD900024170012936200232403FFBD00431024C4
++:10DDA000A362002332620001104000198FA20024F8
++:10DDB0002402000C1242000E2A42000D1040000600
++:10DDC0002402000E2402000A124200078FA200243F
++:10DDD0000A000E9524420001124200088FA200247E
++:10DDE0000A000E95244200010A000E932417000831
++:10DDF0002402000E16E20002241700162417001059
++:10DE00008FA2002424420001AFA200248FA200248C
++:10DE10008FA300148F76004000431021AF620040B2
++:10DE20008F8200149442011C104000090000000081
++:10DE30008F6200488F6400409763003C00441023C9
++:10DE40003063FFFF0043102A104000088FA20054E7
++:10DE5000936400368F6300403402FFFC008210049C
++:10DE600000621821AF6300488FA200548FA60030D3
++:10DE70000282902130C200081040000E0000000015
++:10DE80008F6200581642000430C600FF9742011A04
++:10DE90005040000134C6001093C500088FA700341D
++:10DEA0000200202100052B0034A500800E000C9BF1
++:10DEB00030A5F0808F620040005610231840001BF0
++:10DEC0008FA200183C0208008C42319830420010AA
++:10DED0001040000D24020001976200681440000AFF
++:10DEE000240200018F8200149442011C1440000699
++:10DEF00024020001A76200689742007A244200646D
++:10DF00000A000EE9A7620012A76200120E001302B7
++:10DF1000020020219362007D2403000102002021E1
++:10DF2000344200010A000EE7AFA300501840000A77
++:10DF3000000000000E001302020020219362007D09
++:10DF40002403000102002021AFA30050344200044A
++:10DF50000E00130BA362007D9362003E304200402E
++:10DF60001440000C326200011040000A0000000062
++:10DF70008F6300408FC20004240400182463000152
++:10DF80000040F809AF6300408FA200300A000F3054
++:10DF9000304200048F620058105200100000000050
++:10DFA0008F620018022210231C4000082404000184
++:10DFB0008F62001816220009000000008F62001C0A
++:10DFC000028210230440000500000000AF720058D8
++:10DFD000AFA40050AF710018AF74001C12E0000B2A
++:10DFE0008FA200500E00130202002021A377003FF1
++:10DFF0000E00130B0200202102E030212404003720
++:10E000000E0013C9000028218FA200501040000309
++:10E01000000000000E000CA90200202112A0000543
++:10E02000000018218FA2003030420004504000113F
++:10E0300000601021240300010A000F30006010214D
++:10E040000E001302020020219362007D02002021B5
++:10E05000344200040E00130BA362007D0E000CA9D5
++:10E06000020020210A000F3024020001AF400044CA
++:10E07000240200018FBF007C8FBE00788FB7007430
++:10E080008FB600708FB5006C8FB400688FB30064DA
++:10E090008FB200608FB1005C8FB0005803E00008C1
++:10E0A00027BD00808F4201B80440FFFE2402080013
++:10E0B000AF4201B803E00008000000003C02000885
++:10E0C00003421021944200483084FFFF2484001250
++:10E0D0003045FFFF10A0001700A4102B10400016C1
++:10E0E00024020003934201202403001AA343018B5E
++:10E0F000304200FF2446FFFE8F82000000A6182B4E
++:10E100003863000100021382004310241040000510
++:10E110008F84000434820001A746019403E00008C4
++:10E12000AF8200042402FFFE0082102403E00008F6
++:10E13000AF8200042402000303E00008A342018B25
++:10E1400027BDFFE0AFB10014AFB00010AFBF0018A3
++:10E1500030B0FFFF30D1FFFF8F4201B80440FFFE17
++:10E1600000000000AF440180AF4400200E000F42C9
++:10E17000020020218F8300008F840004A750019AA1
++:10E18000A750018EA74301908F8300083082800042
++:10E19000AF4301A8A75101881040000E8F820004F0
++:10E1A00093420116304200FC24420004005A102120
++:10E1B0008C4240003042FFFF144000068F82000472
++:10E1C0003C02FFFF34427FFF00821024AF82000434
++:10E1D0008F8200042403BFFF00431024A74201A63E
++:10E1E0009743010C8F42010400031C003042FFFFE3
++:10E1F00000621825AF4301AC3C021000AF4201B8E9
++:10E200008FBF00188FB100148FB0001003E000081A
++:10E2100027BD00208F470070934201128F830000BA
++:10E2200027BDFFF0304200FF00022882306201006B
++:10E23000000030211040004324A40003306240005D
++:10E24000104000103062200000041080005A10219D
++:10E250008C43400024A4000400041080AFA30000FD
++:10E26000005A10218C424000AFA2000493420116D4
++:10E27000304200FC005A10218C4240000A000FC0BE
++:10E28000AFA200081040002F0000302100041080D1
++:10E29000005A10218C43400024A400040004108084
++:10E2A000AFA30000005A10218C424000AFA000082C
++:10E2B000AFA200048FA80008000030210000202138
++:10E2C000240A00083C0908002529010003A41021A4
++:10E2D000148A000300042A001100000A0000000054
++:10E2E00090420000248400012C83000C00A2102125
++:10E2F00000021080004910218C4200001460FFF3DE
++:10E3000000C230263C0408008C8431048F42007027
++:10E310002C83002010600009004738233C030800CC
++:10E32000246331080004108000431021248300017D
++:10E33000AC4700003C010800AC233104AF86000864
++:10E340002406000100C0102103E0000827BD0010D2
++:10E350003C0208008C42003827BDFFD0AFB5002436
++:10E36000AFB40020AFB10014AFBF0028AFB3001CA2
++:10E37000AFB20018AFB00010000088213C150800B3
++:10E3800026B50038144000022454FFFF0000A021ED
++:10E390009742010E8F8400003042FFFF308340001F
++:10E3A0001060000A245200043C0200200082102465
++:10E3B00050400007308280008F8200042403BFFF9A
++:10E3C000008318240A0010103442100030828000AC
++:10E3D0001040000A3C020020008210241040000778
++:10E3E0008F8200043C03FFFF34637FFF0083182407
++:10E3F00034428000AF820004AF8300000E000F980B
++:10E400000000000014400007000000009743011EB8
++:10E410009742011C3063FFFF0002140000621825C0
++:10E42000AF8300089742010C8F4340003045FFFF47
++:10E430003402FFFF14620003000000000A001028ED
++:10E44000241100208F42400030420100544000015E
++:10E45000241100108F8400003082100050400014FE
++:10E4600036310001308200201440000B3C021000C5
++:10E47000008210245040000E363100013C030E0093
++:10E480003C020DFF008318243442FFFF0043102B91
++:10E4900050400007363100013C0208008C42002C3D
++:10E4A000244200013C010800AC22002C363100055A
++:10E4B0003C0608008CC6003454C000238F85000041
++:10E4C0008F820004304240005440001F8F850000BE
++:10E4D0003C021F01008210243C0310005443001A28
++:10E4E0008F85000030A20200144000178F850000C5
++:10E4F0003250FFFF363100028F4201B80440FFFE68
++:10E5000000000000AF400180020020210E000F42F9
++:10E51000AF4000208F8300042402BFFFA750019A60
++:10E52000006218248F820000A750018EA751018835
++:10E53000A74301A6A74201903C021000AF4201B8D8
++:10E540000A0010F5000010213C02100000A2102467
++:10E550001040003A0000000010C0000F0000000052
++:10E5600030A201001040000C3C0302003C020F00EE
++:10E5700000A2102410430008000000008F82000851
++:10E58000005410240055102190420004244200043D
++:10E590000A00109F000221C00000000000051602C2
++:10E5A0003050000F3A0300022E4203EF38420001C0
++:10E5B0002C6300010062182414600073240200011F
++:10E5C0003C0308008C6300D02E06000C386200016A
++:10E5D0002C4200010046102414400015001021C0F8
++:10E5E0002602FFFC2C4200045440001100002021B0
++:10E5F000386200022C420001004610241040000343
++:10E60000000512420A00109F000020210010182B64
++:10E610000043102450400006001021C000002021BB
++:10E620003245FFFF0E000F633226FFFB001021C0B2
++:10E630003245FFFF0A0010F2362600028F424000EA
++:10E640003C0308008C630024304201001040004667
++:10E6500030620001322200043070000D14400002CC
++:10E660002413000424130002000512C238420001E2
++:10E670002E4303EF304200013863000100431025B0
++:10E68000104000033231FFFB2402FFFB0202802412
++:10E6900010C000183202000130A201001040001525
++:10E6A000320200013C020F0000A210243C030200D1
++:10E6B0001043000F8F8200082403FFFE0203802412
++:10E6C00000541024005510219042000402333025DC
++:10E6D0002442000412000002000221C03226FFFF83
++:10E6E0000E000F633245FFFF1200002700001021CB
++:10E6F000320200011040000D320200042402000129
++:10E7000012020002023330253226FFFF00002021D2
++:10E710000E000F633245FFFF2402FFFE0202802439
++:10E7200012000019000010213202000410400016EF
++:10E7300024020001240200041202000202333025E8
++:10E740003226FFFF3245FFFF0E000F632404010055
++:10E750002402FFFB020280241200000B00001021A3
++:10E760000A0010F5240200011040000700001021EB
++:10E770003245FFFF36260002000020210E000F6305
++:10E7800000000000000010218FBF00288FB500247A
++:10E790008FB400208FB3001C8FB200188FB100140B
++:10E7A0008FB0001003E0000827BD003027BDFFD068
++:10E7B000AFB000103C04600CAFBF002CAFB6002817
++:10E7C000AFB50024AFB40020AFB3001CAFB2001847
++:10E7D000AFB100148C8250002403FF7F3C1A8000EC
++:10E7E000004310243442380CAC8250002402000351
++:10E7F0003C106000AF4200088E0208083C1B8008F5
++:10E800003C010800AC2000203042FFF038420010EC
++:10E810002C4200010E001B8DAF8200183C04FFFF4C
++:10E820003C020400348308063442000CAE0219484E
++:10E83000AE03194C3C0560168E0219808CA30000B3
++:10E840003442020000641824AE0219803C02535383
++:10E850001462000334A47C008CA200040050202128
++:10E860008C82007C8C830078AF820010AF83000C18
++:10E870008F55000032A200031040FFFD32A20001BC
++:10E880001040013D32A200028F420128AF42002019
++:10E890008F4201048F430100AF8200000E000F3C45
++:10E8A000AF8300043C0208008C4200C01040000806
++:10E8B0008F8400003C0208008C4200C42442000106
++:10E8C0003C010800AC2200C40A00126900000000EC
++:10E8D0003C020010008210241440010C8F830004BD
++:10E8E0003C0208008C4200203C0308008C63003886
++:10E8F00000008821244200013C010800AC220020D5
++:10E900003C16080026D60038146000022474FFFF6D
++:10E910000000A0219742010E308340003042FFFFEB
++:10E920001060000A245200043C02002000821024DF
++:10E9300050400007308280008F8200042403BFFF14
++:10E94000008318240A0011703442100030828000C5
++:10E950001040000A3C0200200082102410400007F2
++:10E960008F8200043C03FFFF34637FFF0083182481
++:10E9700034428000AF820004AF8300000E000F9885
++:10E980000000000014400007000000009743011E33
++:10E990009742011C3063FFFF00021400006218253B
++:10E9A000AF8300089742010C8F4340003045FFFFC2
++:10E9B0003402FFFF14620003000000000A00118807
++:10E9C000241100208F4240003042010054400001D9
++:10E9D000241100108F840000308210005040001479
++:10E9E00036310001308200201440000B3C02100040
++:10E9F000008210245040000E363100013C030E000E
++:10EA00003C020DFF008318243442FFFF0043102B0B
++:10EA100050400007363100013C0208008C42002CB7
++:10EA2000244200013C010800AC22002C36310005D4
++:10EA30003C0608008CC6003454C000238F850000BB
++:10EA40008F820004304240005440001F8F85000038
++:10EA50003C021F01008210243C0310005443001AA2
++:10EA60008F85000030A20200144000178F8500003F
++:10EA70003250FFFF363100028F4201B80440FFFEE2
++:10EA800000000000AF400180020020210E000F4274
++:10EA9000AF4000208F8300042402BFFFA750019ADB
++:10EAA000006218248F820000A750018EA7510188B0
++:10EAB000A74301A6A74201903C021000AF4201B853
++:10EAC0000A001267000010213C02100000A210246E
++:10EAD0001040003A0000000010C0000F00000000CD
++:10EAE00030A201001040000C3C0302003C020F0069
++:10EAF00000A2102410430008000000008F820008CC
++:10EB000000541024005610219042000424420004B6
++:10EB10000A0011FF000221C00000000000051602DB
++:10EB20003050000F3A0300022E4203EF384200013A
++:10EB30002C63000100621824146000852402000187
++:10EB40003C0308008C6300D02E06000C38620001E4
++:10EB50002C4200010046102414400015001021C072
++:10EB60002602FFFC2C42000454400011000020212A
++:10EB7000386200022C42000100461024504000037D
++:10EB8000000512420A0011FF000020210010182B7E
++:10EB90000043102450400006001021C00000202136
++:10EBA0003245FFFF0E000F633226FFFB001021C02D
++:10EBB0003245FFFF0A001252362600028F42400003
++:10EBC0003C0308008C6300243042010010400046E2
++:10EBD00030620001322200043070000D1440000247
++:10EBE0002413000424130002000512C2384200015D
++:10EBF0002E4303EF3042000138630001004310252B
++:10EC0000104000033231FFFB2402FFFB020280248C
++:10EC100010C000183202000130A20100104000159F
++:10EC2000320200013C020F0000A210243C0302004B
++:10EC30001043000F8F8200082403FFFE020380248C
++:10EC40000054102400561021904200040233302555
++:10EC50002442000412000002000221C03226FFFFFD
++:10EC60000E000F633245FFFF120000390000102133
++:10EC7000320200011040000D3202000424020001A3
++:10EC800012020002023330253226FFFF000020214D
++:10EC90000E000F633245FFFF2402FFFE02028024B4
++:10ECA0001200002B00001021320200041040002846
++:10ECB0002402000124020004120200020233302563
++:10ECC0003226FFFF3245FFFF0E000F6324040100D0
++:10ECD0002402FFFB020280241200001D000010210C
++:10ECE0000A001267240200015040001900001021A0
++:10ECF0003245FFFF36260002000020210E000F6380
++:10ED0000000000000A001267000010212402BFFF6B
++:10ED1000006210241040000800000000240287FF59
++:10ED200000621024144000083C020060008210249D
++:10ED300010400005000000000E000D34000000002F
++:10ED40000A001267000000000E0012C70000000059
++:10ED5000104000063C0240008F4301243C0260202A
++:10ED6000AC430014000000003C024000AF420138F8
++:10ED70000000000032A200021040FEBD00000000B2
++:10ED80008F4201403C044000AF4200208F430148C5
++:10ED90003C02700000621824106400420000000071
++:10EDA0000083102B144000063C0260003C0220004F
++:10EDB000106200073C0240000A0012C3000000007D
++:10EDC0001062003C3C0240000A0012C30000000038
++:10EDD0008F4501408F4601448F42014800021402D2
++:10EDE000304300FF240200041462000A274401801B
++:10EDF0008F4201B80440FFFE2402001CAC850000D5
++:10EE0000A082000B3C021000AF4201B80A0012C3FE
++:10EE10003C0240002402000914620012000616029F
++:10EE2000000229C0AF4500208F4201B80440FFFE18
++:10EE30002402000124030003AF450180A343018B9A
++:10EE4000A740018EA740019AA7400190AF4001A8BA
++:10EE5000A7420188A74201A6AF4001AC3C021000C6
++:10EE6000AF4201B88F4201B80440FFFE000000002D
++:10EE7000AC8500008F42014800021402A482000801
++:10EE800024020002A082000B8F420148A4820010DD
++:10EE90003C021000AC860024AF4201B80A0012C345
++:10EEA0003C0240000E001310000000000A0012C3D4
++:10EEB0003C0240000E001BC2000000003C0240006B
++:10EEC000AF420178000000000A00112F000000008E
++:10EED0008F4201003042003E144000112402000124
++:10EEE000AF4000488F420100304207C0104000058B
++:10EEF00000000000AF40004CAF40005003E00008AD
++:10EF000024020001AF400054AF4000408F42010096
++:10EF10003042380054400001AF4000442402000158
++:10EF200003E00008000000008F4201B80440FFFE2B
++:10EF300024020001AF440180AF400184A74501884D
++:10EF4000A342018A24020002A342018B9742014A94
++:10EF500014C00004A7420190AF4001A40A0012EFC0
++:10EF60003C0210008F420144AF4201A43C02100059
++:10EF7000AF4001A803E00008AF4201B88F4201B8DA
++:10EF80000440FFFE24020002AF440180AF4401842C
++:10EF9000A7450188A342018AA342018B9742014AF7
++:10EFA000A7420190AF4001A48F420144AF4201A8A3
++:10EFB0003C02100003E00008AF4201B83C029000A0
++:10EFC0003442000100822025AF4400208F420020FF
++:10EFD0000440FFFE0000000003E000080000000005
++:10EFE0003C028000344200010082202503E000083A
++:10EFF000AF44002027BDFFE8AFBF0014AFB0001042
++:10F000008F50014093430149934201489344014882
++:10F01000306300FF304200FF00021200006228252A
++:10F020002402001910620076308400802862001AE1
++:10F030001040001C24020020240200081062007707
++:10F04000286200091040000E2402000B2402000177
++:10F0500010620034286200025040000524020006BD
++:10F0600050600034020020210A00139A00000000C2
++:10F0700010620030020020210A00139A00000000F4
++:10F080001062003B2862000C504000022402000E77
++:10F090002402000910620056020020210A00139A7F
++:10F0A0000000000010620056286200211040000F8E
++:10F0B000240200382402001C106200582862001D3F
++:10F0C000104000062402001F2402001B1062004CA6
++:10F0D000000000000A00139A000000001062004ABD
++:10F0E000020020210A00139A00000000106200456F
++:10F0F0002862003910400007240200802462FFCB00
++:10F100002C42000210400045020020210A00139604
++:10F110000000302110620009000000000A00139A6C
++:10F12000000000001480003D020020210A0013901E
++:10F130008FBF00140A001396240600018F4201B805
++:10F140000440FFFE24020002A342018BA745018870
++:10F150009742014AA74201908F420144A74201927F
++:10F160003C021000AF4201B80A00139C8FBF00148C
++:10F170009742014A144000290000000093620005F4
++:10F180003042000414400025000000000E0013026D
++:10F190000200202193620005020020213442000475
++:10F1A0000E00130BA36200059362000530420004B9
++:10F1B00014400002000000000000000D93620000F7
++:10F1C00024030020304200FF14430014000000001C
++:10F1D0008F4201B80440FFFE24020005AF500180B9
++:10F1E000A342018B3C0210000A00139AAF4201B8FF
++:10F1F0008FBF00148FB000100A0012F227BD001854
++:10F200000000000D02002021000030218FBF0014FB
++:10F210008FB000100A0012DD27BD00180000000D9D
++:10F220008FBF00148FB0001003E0000827BD001846
++:10F2300027BDFFE8AFBF00100E000F3C000000002C
++:10F24000AF4001808FBF0010000020210A000FE7AF
++:10F2500027BD00183084FFFF30A5FFFF00001821F4
++:10F260001080000700000000308200011040000202
++:10F2700000042042006518210A0013AB0005284055
++:10F2800003E000080060102110C0000624C6FFFF44
++:10F290008CA2000024A50004AC8200000A0013B573
++:10F2A0002484000403E000080000000010A000080F
++:10F2B00024A3FFFFAC860000000000000000000057
++:10F2C0002402FFFF2463FFFF1462FFFA248400047A
++:10F2D00003E0000800000000308300FF30A500FFBD
++:10F2E00030C600FF274701808F4201B80440FFFE6F
++:10F2F000000000008F42012834634000ACE20000AF
++:10F3000024020001ACE00004A4E30008A0E2000A2B
++:10F3100024020002A0E2000B3C021000A4E5001051
++:10F32000ACE00024ACE00028A4E6001203E00008F2
++:10F33000AF4201B827BDFFE8AFBF00109362003FA6
++:10F3400024030012304200FF1043000D00803021E2
++:10F350008F620044008210230440000A8FBF001017
++:10F360008F620048240400390000282100C21023C5
++:10F3700004410004240600120E0013C9000000001E
++:10F380008FBF00102402000103E0000827BD001811
++:10F3900027BDFFC8AFB20030AFB1002CAFBF003403
++:10F3A000AFB0002890C5000D0080902130A400105F
++:10F3B0001080000B00C088218CC300088F620054AD
++:10F3C0001062000730A20005144000B524040001BB
++:10F3D0000E000D21000020210A0014BB0040202156
++:10F3E00030A200051040000930A30012108000ACCC
++:10F3F000240400018E2300088F620054146200A9C7
++:10F400008FBF00340A00142C240400382402001298
++:10F41000146200A3240400010220202127A500106B
++:10F420000E000CB2AFA000101040001102402021CD
++:10F430008E220008AF620084AF6000400E0013020D
++:10F44000000000009362007D024020213442002031
++:10F450000E00130BA362007D0E000CA902402021B8
++:10F46000240400382405008D0A0014B82406001274
++:10F470009362003E304200081040000F8FA200103F
++:10F4800030420100104000078FA300148F6200601B
++:10F490000062102304430008AF6300600A001441B7
++:10F4A00000000000AF6000609362003E2403FFF79D
++:10F4B00000431024A362003E9362003E30420008E5
++:10F4C000144000022406000300003021936200343F
++:10F4D000936300378F640084304200FF306300FF85
++:10F4E00000661821000318800043282100A4202B67
++:10F4F0001080000B000000009763003C8F620084C6
++:10F500003063FFFF004510230062182B14600004D5
++:10F51000000000008F6200840A00145D0045802313
++:10F520009762003C3050FFFF8FA300103062000450
++:10F5300010400004000628808FA2001C0A001465F9
++:10F540000202102B2E02021850400003240202185F
++:10F550000A00146E020510233063000410600003DB
++:10F56000004510238FA2001C00451023004080217D
++:10F570002C42008054400001241000800E00130231
++:10F580000240202124020001AF62000C9362003E81
++:10F59000001020403042007FA362003E8E22000413
++:10F5A00024420001AF620040A770003C8F6200500F
++:10F5B0009623000E00431021AF6200588F62005066
++:10F5C00000441021AF62005C8E220004AF6200187C
++:10F5D0008E220008AF62001C8FA20010304200088B
++:10F5E0005440000A93A20020A360003693620036C4
++:10F5F0002403FFDFA36200359362003E0043102422
++:10F60000A362003E0A0014988E220008A36200350F
++:10F610008E220008AF62004C8F6200248F6300408E
++:10F6200000431021AF6200489362000024030050A1
++:10F63000304200FF144300122403FF803C02080004
++:10F640008C4231A00242102100431024AF42002816
++:10F650003C0208008C4231A08E2400083C03000CC0
++:10F66000024210213042007F03421021004310214A
++:10F67000AC4400D88E230008AF820014AC4300DCF9
++:10F680000E00130B02402021240400380000282122
++:10F690002406000A0E0013C9000000002404000123
++:10F6A0008FBF00348FB200308FB1002C8FB0002894
++:10F6B0000080102103E0000827BD003827BDFFF8B7
++:10F6C00027420180AFA20000308A00FF8F4201B8BC
++:10F6D0000440FFFE000000008F4601283C020800A5
++:10F6E0008C4231A02403FF80AF86004800C2102165
++:10F6F00000431024AF4200243C0208008C4231A099
++:10F700008FA900008FA8000000C210213042007FA6
++:10F71000034218213C02000A00621821946400D4BC
++:10F720008FA700008FA5000024020002AF83001401
++:10F73000A0A2000B8FA30000354260003084FFFFC1
++:10F74000A4E200083C021000AD260000AD04000455
++:10F75000AC60002427BD0008AF4201B803E00008F8
++:10F76000240200018F88003C938200288F830014BC
++:10F770003C07080024E7779800481023304200FF38
++:10F78000304900FC246500888F860040304A000321
++:10F790001120000900002021248200048CA3000015
++:10F7A000304400FF0089102AACE3000024A50004C7
++:10F7B0001440FFF924E70004114000090000202153
++:10F7C0002482000190A30000304400FF008A102B27
++:10F7D000A0E3000024A500011440FFF924E7000184
++:10F7E00030C20003144000048F85003C3102000346
++:10F7F0001040000D0000000010A0000900002021B2
++:10F800002482000190C30000304400FF0085102BCB
++:10F81000A0E3000024C600011440FFF924E7000122
++:10F8200003E00008000000001100FFFD000020219F
++:10F83000248200048CC30000304400FF0088102B99
++:10F84000ACE3000024C600041440FFF924E70004E0
++:10F8500003E00008000000008F83003C9382002832
++:10F8600030C600FF30A500FF00431023304300FFE7
++:10F870008F820014008038210043102114C0000240
++:10F88000244800880083382130E20003144000053A
++:10F8900030A2000314400003306200031040000D4A
++:10F8A0000000000010A000090000202124820001B7
++:10F8B00090E30000304400FF0085102BA1030000FE
++:10F8C00024E700011440FFF92508000103E00008C7
++:10F8D0000000000010A0FFFD000020212482000491
++:10F8E0008CE30000304400FF0085102BAD030000C6
++:10F8F00024E700041440FFF92508000403E0000891
++:10F90000000000000080482130AAFFFF30C600FF41
++:10F9100030E7FFFF274801808F4201B80440FFFE17
++:10F920008F820048AD0200008F420124AD02000426
++:10F930008D220020A5070008A102000A240200165B
++:10F94000A102000B934301208D2200088D240004A6
++:10F95000306300FF004310219783003A00441021D8
++:10F960008D250024004310233C0308008C6331A044
++:10F970008F840014A502000C246300E82402FFFF1A
++:10F98000A50A000EA5030010A5060012AD0500187B
++:10F99000AD020024948201142403FFF73042FFFFDC
++:10F9A000AD0200288C820118AD02002C3C02100030
++:10F9B000AD000030AF4201B88D220020004310247A
++:10F9C00003E00008AD2200208F82001430E7FFFF23
++:10F9D00000804821904200D330A5FFFF30C600FFD1
++:10F9E0000002110030420F0000E238252748018054
++:10F9F0008F4201B80440FFFE8F820048AD02000034
++:10FA00008F420124AD0200048D220020A5070008CA
++:10FA1000A102000A24020017A102000B9343012057
++:10FA20008D2200088D240004306300FF0043102164
++:10FA30009783003A004410218F8400140043102360
++:10FA40003C0308008C6331A0A502000CA505000E44
++:10FA5000246300E8A5030010A5060012AD00001401
++:10FA60008D220024AD0200188C82005CAD02001CC7
++:10FA70008C820058AD0200202402FFFFAD0200245A
++:10FA8000948200E63042FFFFAD02002894820060BD
++:10FA9000948300BE30427FFF3063FFFF00021200FC
++:10FAA00000431021AD02002C3C021000AD000030DC
++:10FAB000AF4201B8948200BE2403FFF700A21021D8
++:10FAC000A48200BE8D2200200043102403E0000821
++:10FAD000AD220020274301808F4201B80440FFFE81
++:10FAE0008F8200249442001C3042FFFF000211C0AC
++:10FAF000AC62000024020019A062000B3C0210005E
++:10FB0000AC60003003E00008AF4201B88F87002CE2
++:10FB100030C300FF8F4201B80440FFFE8F820048CF
++:10FB200034636000ACA2000093820044A0A20005F0
++:10FB30008CE20010A4A20006A4A300088C8200207E
++:10FB40002403FFF7A0A2000A24020002A0A2000BD7
++:10FB50008CE20000ACA200108CE20004ACA2001405
++:10FB60008CE2001CACA200248CE20020ACA2002895
++:10FB70008CE2002CACA2002C8C820024ACA20018D9
++:10FB80003C021000AF4201B88C82002000431024D8
++:10FB900003E00008AC8200208F86001427BDFFE838
++:10FBA000AFBF0014AFB0001090C20063304200201D
++:10FBB0001040000830A500FF8CC2007C2403FFDF4A
++:10FBC00024420001ACC2007C90C2006300431024B8
++:10FBD000A0C2006310A000238F830014275001806F
++:10FBE000020028210E0015D6240600828F82001400
++:10FBF000904200633042004050400019A38000440E
++:10FC00008F83002C8F4201B80440FFFE8F82004892
++:10FC1000AE02000024026082A60200082402000254
++:10FC2000A202000B8C620008AE0200108C62000C75
++:10FC3000AE0200148C620014AE0200188C62001830
++:10FC4000AE0200248C620024AE0200288C620028E0
++:10FC5000AE02002C3C021000AF4201B8A380004469
++:10FC60008F8300148FBF00148FB000109062006368
++:10FC700027BD00183042007FA06200639782003ADF
++:10FC80008F86003C8F850014938300280046102344
++:10FC9000A782003AA4A000E490A400638F820040F1
++:10FCA000AF83003C2403FFBF0046102100832024C3
++:10FCB000AF820040A0A400638F820014A04000BD6A
++:10FCC0008F82001403E00008A44000BE8F8A001455
++:10FCD00027BDFFE0AFB10014AFB000108F88003C2B
++:10FCE000AFBF00189389001C954200E430D100FF9B
++:10FCF0000109182B0080802130AC00FF3047FFFF46
++:10FD00000000582114600003310600FF012030215B
++:10FD1000010958239783003A0068102B1440003CD7
++:10FD20000000000014680007240200018E02002079
++:10FD30002403FFFB34E7800000431024AE020020C0
++:10FD40002402000134E70880158200053165FFFFB9
++:10FD50000E001554020020210A00169102002021F5
++:10FD60000E001585020020218F8400482743018062
++:10FD70008F4201B80440FFFE24020018AC6400006A
++:10FD8000A062000B8F840014948200E6A46200102D
++:10FD90003C021000AC600030AF4201B894820060B9
++:10FDA00024420001A4820060948200603C030800A9
++:10FDB0008C63318830427FFF5443000F02002021C2
++:10FDC000948200602403800000431024A482006019
++:10FDD0009082006090830060304200FF000211C2F8
++:10FDE00000021027000211C03063007F0062182556
++:10FDF000A083006002002021022028218FBF00186C
++:10FE00008FB100148FB000100A0015F927BD002033
++:10FE1000914200632403FF8000431025A142006348
++:10FE20009782003A3048FFFF110000209383001CA6
++:10FE30008F840014004B1023304600FF948300E4AD
++:10FE40002402EFFF0168282B00621824A48300E439
++:10FE500014A000038E020020010058210000302170
++:10FE60002403FFFB34E7800000431024AE0200208F
++:10FE700024020001158200053165FFFF0E001554B4
++:10FE8000020020210A0016B99783003A0E0015855A
++:10FE9000020020219783003A8F82003CA780003A1D
++:10FEA00000431023AF82003C9383001C8F82001418
++:10FEB0008FBF00188FB100148FB0001027BD002035
++:10FEC00003E00008A04300BD938200442403000126
++:10FED00027BDFFE8004330042C420020AFB00010E3
++:10FEE000AFBF00142410FFFE10400005274501801D
++:10FEF0003C0208008C4231900A0016D600461024BD
++:10FF00003C0208008C423194004610241440000743
++:10FF1000240600848F8300142410FFFF9062006287
++:10FF20003042000F34420040A06200620E0015D63D
++:10FF300000000000020010218FBF00148FB00010DD
++:10FF400003E0000827BD00188F83002427BDFFE0D1
++:10FF5000AFB20018AFB10014AFB00010AFBF001CBB
++:10FF60009062000D00A0902130D100FF3042007F50
++:10FF7000A062000D8F8500148E4300180080802140
++:10FF80008CA2007C146200052402000E90A2006383
++:10FF9000344200200A0016FFA0A200630E0016C51E
++:10FFA000A38200442403FFFF104300472404FFFF03
++:10FFB00052200045000020218E4300003C0200102A
++:10FFC00000621024504000043C020008020020217E
++:10FFD0000A00170E24020015006210245040000988
++:10FFE0008E45000002002021240200140E0016C5D8
++:10FFF000A38200442403FFFF104300332404FFFFC7
++:020000021000EC
++:100000008E4500003C02000200A2102410400016A1
++:100010003C0200048F8600248CC200148CC30010A4
++:100020008CC40014004310230044102B50400005E2
++:10003000020020218E43002C8CC2001010620003AD
++:10004000020020210A00173F240200123C02000493
++:1000500000A210245040001C00002021020020219A
++:100060000A00173F2402001300A2102410400006CB
++:100070008F8300248C620010504000130000202168
++:100080000A001739020020218C6200105040000441
++:100090008E42002C020020210A00173F240200118A
++:1000A00050400009000020210200202124020017F6
++:1000B0000E0016C5A38200442403FFFF1043000274
++:1000C0002404FFFF000020218FBF001C8FB2001806
++:1000D0008FB100148FB000100080102103E00008E1
++:1000E00027BD00208F83001427BDFFD8AFB40020A8
++:1000F000AFB3001CAFB20018AFB10014AFB0001026
++:10010000AFBF0024906200638F91002C2412FFFF88
++:100110003442004092250000A06200638E2200104D
++:100120000080982130B0003F105200060360A021EB
++:100130002402000D0E0016C5A38200441052005484
++:100140002404FFFF8F8300148E2200188C63007C30
++:1001500010430007026020212402000E0E0016C585
++:10016000A38200442403FFFF104300492404FFFF3F
++:1001700024040020120400048F83001490620063A2
++:1001800034420020A06200638F85003410A000205C
++:1001900000000000560400048F8200140260202139
++:1001A0000A0017902402000A9683000A9442006015
++:1001B0003042FFFF144300048F8200202404FFFD1F
++:1001C0000A0017B7AF82003C3C0208008C42318C19
++:1001D0000045102B14400006026020210000282159
++:1001E0000E001646240600010A0017B70000202161
++:1001F0002402002D0E0016C5A38200442403FFFF35
++:10020000104300232404FFFF0A0017B70000202139
++:10021000160400058F8400148E2300142402FFFFAF
++:100220005062001802602021948200602442000184
++:10023000A4820060948200603C0308008C633188D3
++:1002400030427FFF5443000F0260202194820060FF
++:100250002403800000431024A48200609082006088
++:1002600090830060304200FF000211C2000210279C
++:10027000000211C03063007F00621825A083006077
++:10028000026020210E0015F9240500010000202144
++:100290008FBF00248FB400208FB3001C8FB20018D2
++:1002A0008FB100148FB000100080102103E000080F
++:1002B00027BD00288F83001427BDFFE8AFB00010D2
++:1002C000AFBF0014906200638F87002C00808021F4
++:1002D000344200408CE60010A06200633C0308003A
++:1002E0008C6331B030C23FFF0043102B1040004EF2
++:1002F0008F8500302402FF8090A3000D004310245E
++:10030000304200FF504000490200202100061382C5
++:10031000304800032402000255020044020020215C
++:1003200094A2001C8F85001424030023A4A20114AE
++:100330008CE60000000616023042003F1043001019
++:100340003C0300838CE300188CA2007C1062000642
++:100350002402000E0E0016C5A38200442403FFFFF2
++:10036000104300382404FFFF8F8300149062006361
++:1003700034420020A06200630A0017FC8F8300242F
++:1003800000C31024144300078F83002490A200624E
++:100390003042000F34420020A0A20062A38800383F
++:1003A0008F8300249062000D3042007FA062000D18
++:1003B0008F83003410600018020020218F840030E9
++:1003C0008C8200100043102B1040000924020018FA
++:1003D000020020210E0016C5A38200442403FFFF63
++:1003E000104300182404FFFF0A00182400002021F5
++:1003F0008C820010240500010200202100431023FC
++:100400008F830024240600010E001646AC62001003
++:100410000A001824000020210E0015F9240500010F
++:100420000A00182400002021020020212402000DCF
++:100430008FBF00148FB0001027BD00180A0016C52A
++:10044000A38200448FBF00148FB0001000801021E1
++:1004500003E0000827BD001827BDFFC8AFB2002089
++:10046000AFBF0034AFB60030AFB5002CAFB400283A
++:10047000AFB30024AFB1001CAFB000188F46012805
++:100480003C0308008C6331A02402FF80AF86004843
++:1004900000C318213065007F03452821006218241D
++:1004A0003C02000AAF43002400A2282190A200626F
++:1004B00000809021AF850014304200FF000211023D
++:1004C000A382003890A200BC304200021440000217
++:1004D00024030034240300308F820014A3830028F7
++:1004E000938300388C4200C0A3800044AF82003C5C
++:1004F000240200041062031C8F84003C8E4400041C
++:10050000508003198F84003C8E4200103083FFFF1F
++:10051000A784003A106002FFAF8200408F8400146D
++:100520002403FF809082006300621024304200FFA9
++:10053000144002CF9785003A9383003824020002CA
++:1005400030B6FFFF14620005000088219382002866
++:100550002403FFFD0A001B19AF82003C8F82003C80
++:1005600002C2102B144002A18F8400400E0014EC34
++:1005700000000000938300283C040800248477983E
++:10058000240200341462002EAF84002C3C0A0800C0
++:100590008D4A77C82402FFFFAFA2001000803821E7
++:1005A0002405002F3C09080025297398240800FF22
++:1005B0002406FFFF90E2000024A3FFFF00062202B2
++:1005C00000C21026304200FF0002108000491021B6
++:1005D0008C420000306500FF24E7000114A8FFF5FD
++:1005E0000082302600061027AFA20014AFA2001030
++:1005F0000000282127A7001027A6001400C51023FB
++:100600009044000324A2000100A71821304500FFF8
++:100610002CA200041440FFF9A06400008FA2001077
++:100620001142000724020005024020210E0016C5D9
++:10063000A38200442403FFFF104300642404FFFF4F
++:100640003C0208009042779C104000098F82001401
++:10065000024020212402000C0E0016C5A382004493
++:100660002403FFFF104300592404FFFF8F8200146E
++:10067000A380001C3C0308008C63779C8C440080A2
++:100680003C0200FF3442FFFF006218240083202B4D
++:1006900010800008AF83003402402021240200199A
++:1006A0000E0016C5A38200442403FFFF1043004739
++:1006B0002404FFFF8F87003C9782003A8F85003427
++:1006C000AF8700200047202310A0003BA784003AFA
++:1006D0008F86001430A200030002102390C300BCD8
++:1006E0003050000300B0282100031882307300014D
++:1006F0000013108000A228213C0308008C6331A065
++:100700008F8200483084FFFF0085202B004310219A
++:1007100010800011244200888F84002C1082000E6B
++:100720003C033F013C0208008C42779800431024B0
++:100730003C0325001443000630E500FF8C820000D6
++:10074000ACC200888C8200100A0018E9ACC2009884
++:100750000E001529000030219382001C8F850014A3
++:100760008F830040020238218F82003CA387001C47
++:1007700094A400E4006218218F82003434841000B5
++:10078000AF83004000503021A4A400E41260000EAA
++:10079000AF86003C24E20004A382001C94A200E483
++:1007A00024C30004AF83003C34422000A4A200E430
++:1007B0000A001906000020218F820040AF80003C13
++:1007C00000471021AF820040000020212414FFFFC9
++:1007D000109402112403FFFF3C0808008D0877A83D
++:1007E0003C0208008C4231B03C03080090637798CB
++:1007F00031043FFF0082102B1040001B3067003F88
++:100800003C0208008C4231A88F83004800042180FC
++:1008100000621821006418213062007F0342282101
++:100820003C02000C00A228213C020080344200015E
++:100830003066007800C230252402FF800062102458
++:10084000AF42002830640007AF4208048F820014D2
++:100850000344202124840940AF460814AF850024B6
++:10086000AF840030AC4301189383003824020003A6
++:10087000146201CF240200012402002610E201D1FB
++:1008800028E2002710400013240200322402002234
++:1008900010E201CC28E200231040000824020024CA
++:1008A0002402002010E201B82402002110E20147D6
++:1008B000024020210A001AFB2402000B10E201C1B1
++:1008C0002402002510E20010024020210A001AFB39
++:1008D0002402000B10E201AE28E2003310400006B3
++:1008E0002402003F2402003110E2009A024020213D
++:1008F0000A001AFB2402000B10E201A5024020218D
++:100900000A001AFB2402000B8F90002C3C03080005
++:100910008C6331B08F8500308E0400100000A82158
++:100920008CB3001430823FFF0043102B8CB10020A9
++:100930005040018F0240202190A3000D2402FF802F
++:1009400000431024304200FF504001890240202122
++:10095000000413823042000314400185024020212C
++:1009600094A3001C8F8200148E040028A443011459
++:100970008CA20010026218231064000302402021A0
++:100980000A00197C2402001F8F82003400621021AB
++:100990000262102B104000088F83002402402021A7
++:1009A000240200180E0016C5A382004410540174DE
++:1009B0002404FFFF8F8300248F8400348C62001096
++:1009C0000224882100441023AC6200108F8200149E
++:1009D000AC7100208C4200680051102B10400009BF
++:1009E0008F830030024020212402001D0E0016C516
++:1009F000A38200442403FFFF104301612404FFFF8E
++:100A00008F8300308E0200248C6300241043000783
++:100A1000024020212402001C0E0016C5A3820044BF
++:100A20002403FFFF104301562404FFFF8F8400249A
++:100A30008C82002424420001AC8200241233000482
++:100A40008F8200148C4200685622000E8E02000035
++:100A50008E0200003C030080004310241440000D6F
++:100A60002402001A024020210E0016C5A382004471
++:100A70002403FFFF104301422404FFFF0A0019BAB8
++:100A80008E0200143C0300800043102450400003F9
++:100A90008E020014AC8000208E0200142411FFFF8F
++:100AA0001051000E3C0308003C0208008C423190BB
++:100AB000004310242403001B14400007A3830044B8
++:100AC0000E0016C5024020211051012D2404FFFF05
++:100AD0000A0019CB8E030000A38000448E0300009F
++:100AE0003C02000100621024104000123C02008011
++:100AF0000062102414400008024020212402001A41
++:100B00000E0016C5A38200442403FFFF1043011CFE
++:100B10002404FFFF02402021020028210E0016E5D8
++:100B2000240600012403FFFF104301152404FFFFE6
++:100B3000241500018F83002402A0302102402021CF
++:100B40009462003624050001244200010A001ADFE5
++:100B5000A46200368F90002C3C0308008C6331B0F7
++:100B60008E13001032623FFF0043102B10400089AB
++:100B70008F8400302402FF809083000D00431024F6
++:100B8000304200FF104000842402000D0013138245
++:100B900030420003240300011443007F2402000DAF
++:100BA0009082000D30420008544000048F820034CF
++:100BB000024020210A001A102402002450400004A0
++:100BC0008E03000C024020210A001A102402002784
++:100BD0008C82002054620006024020218E0300080F
++:100BE0008C820024506200098E02001402402021F1
++:100BF000240200200E0016C5A38200441054007188
++:100C00002403FFFF0A001A458F8400242411FFFFEC
++:100C1000145100048F860014024020210A001A405B
++:100C2000240200258E0300188CC2007C1062000391
++:100C30002402000E0A001A40024020218E030024E4
++:100C40008C82002810620003240200210A001A404E
++:100C5000024020218E0500288C82002C10A2000367
++:100C60002402001F0A001A40024020218E03002C9B
++:100C700014600003240200230A001A4002402021CD
++:100C80008CC200680043102B104000032402002691
++:100C90000A001A40024020218C82001400651821AD
++:100CA0000043102B104000088F84002402402021B4
++:100CB000240200220E0016C5A382004410510041F8
++:100CC0002403FFFF8F8400242403FFF79082000D8C
++:100CD00000431024A082000D8F8600143C030800FE
++:100CE0008C6331AC8F82004894C400E08F8500246F
++:100CF0000043102130847FFF000420400044102175
++:100D00003043007F034320213C03000E0083202159
++:100D10002403FF8000431024AF42002CA493000062
++:100D20008CA2002824420001ACA200288CA2002C36
++:100D30008E03002C00431021ACA2002C8E02002C4C
++:100D4000ACA200308E020014ACA2003494A2003A8F
++:100D500024420001A4A2003A94C600E03C0208002C
++:100D60008C4231B024C4000130837FFF1462000F35
++:100D700000803021240280000082302430C2FFFF36
++:100D8000000213C2304200FF000210270A001A7E40
++:100D9000000233C02402000D024020210E0016C5BF
++:100DA000A38200440A001A84004018218F82001494
++:100DB00002402021240500010E0015F9A44600E0A0
++:100DC000000018210A001B16006088218F90002C5B
++:100DD0003C0308008C6331B08E05001030A23FFF49
++:100DE0000043102B104000612402FF808F840030EC
++:100DF0009083000D00431024304200FF5040005CFF
++:100E0000024020218F8200341040000B0005138225
++:100E10008F8200149763000A944200603042FFFF03
++:100E200014430005000513828F8200202404FFFD77
++:100E30000A001AF3AF82003C304200031440000E57
++:100E40000000000092020002104000058E03002402
++:100E500050600015920300030A001AAF02402021DF
++:100E60008C82002450620010920300030240202173
++:100E70000A001AB72402000F9082000D30420008C9
++:100E80005440000992030003024020212402001074
++:100E90000E0016C5A38200442403FFFF1043003850
++:100EA0002404FFFF92030003240200025462000C9A
++:100EB000920200038F820034544000099202000322
++:100EC000024020212402002C0E0016C5A3820044FB
++:100ED0002403FFFF1043002A2404FFFF92020003B3
++:100EE0000200282102402021384600102CC60001B3
++:100EF0002C4200010E0016E5004630252410FFFFAD
++:100F00001050001F2404FFFF8F8300341060001373
++:100F1000024020213C0208008C42318C0043102BFF
++:100F200014400007000000000000282124060001F2
++:100F30000E001646000000000A001AF300002021EF
++:100F40002402002D0E0016C5A38200441050000C90
++:100F50002404FFFF0A001AF3000020210E0015F9F7
++:100F6000240500010A001AF300002021024020217C
++:100F70002402000D0E0016C5A3820044004020216B
++:100F80000A001B16008088211514000E00000000C6
++:100F90000E00174C024020210A001B160040882139
++:100FA0000E0016C5A38200440A001B1600408821CB
++:100FB00014620017022018212402002314E2000505
++:100FC0002402000B0E0017C0024020210A001B164D
++:100FD0000040882102402021A38200440E0016C553
++:100FE0002411FFFF0A001B170220182130A500FF63
++:100FF0000E001529240600019783003A8F82003CD9
++:10100000A780003A00431023AF82003C0220182141
++:101010001220003E9782003A2402FFFD5462003EF7
++:101020008E4300208E4200048F830014005610234C
++:10103000AE420004906200633042007FA062006311
++:101040008E4200208F840014A780003A34420002B0
++:10105000AE420020A48000E4908200632403FFBF1E
++:1010600000431024A08200630A001B598E43002015
++:101070009082006300621024304200FF1040002381
++:101080009782003A90820088908300BD2485008872
++:101090003042003F2444FFE02C820020A383001C48
++:1010A00010400019AF85002C2402000100821804B2
++:1010B000306200191440000C3C02800034420002EF
++:1010C000006210241440000B306200201040000F1A
++:1010D0009782003A90A600010240202124050001D9
++:1010E0000A001B5330C60001024020210A001B5297
++:1010F00024050001024020210000282124060001CF
++:101100000E001646000000009782003A1440FD04CD
++:101110008F8400148E4300203062000410400012BF
++:101120008F84003C2402FFFB00621024AE420020AA
++:10113000274301808F4201B80440FFFE8F820048A0
++:10114000AC6200008F420124AC6200042402608380
++:10115000A462000824020002A062000B3C021000FE
++:10116000AF4201B88F84003C8F8300148FBF0034DE
++:101170008FB600308FB5002C8FB400288FB30024B9
++:101180008FB200208FB1001C8FB000182402000124
++:1011900027BD003803E00008AC6400C030A500FFA4
++:1011A0002403000124A900010069102B1040000C49
++:1011B00000004021240A000100A31023004A380443
++:1011C00024630001308200010069302B10400002CE
++:1011D000000420420107402554C0FFF800A310235B
++:1011E00003E00008010010213C020800244260A432
++:1011F0003C010800AC22738C3C02080024425308D6
++:101200003C010800AC2273902402000627BDFFE0D9
++:101210003C010800A02273943C021EDCAFB200180F
++:10122000AFB10014AFBF001CAFB0001034526F411B
++:1012300000008821240500080E001B7A02202021CE
++:10124000001180803C07080024E773980002160014
++:1012500002071821AC6200000000282124A200012E
++:101260003045FFFF8C6200002CA6000804410002FC
++:10127000000220400092202614C0FFF8AC64000059
++:10128000020780218E0400000E001B7A2405002036
++:10129000262300013071FFFF2E2301001460FFE5BB
++:1012A000AE0200008FBF001C8FB200188FB1001477
++:1012B0008FB0001003E0000827BD002027BDFFD835
++:1012C000AFB3001CAFB20018AFBF0020AFB1001425
++:1012D000AFB000108F5101408F48014800089402C0
++:1012E000324300FF311300FF8F4201B80440FFFE7C
++:1012F00027500180AE1100008F420144AE0200046D
++:1013000024020002A6120008A202000B240200140C
++:10131000AE1300241062002528620015104000085A
++:101320002402001524020010106200302402001272
++:10133000106200098FBF00200A001CB58FB3001C8B
++:101340001062007024020022106200378FBF00205C
++:101350000A001CB58FB3001C3C0208008C4231A06F
++:101360002403FF800222102100431024AF420024F6
++:101370003C0208008C4231A0022210213042007F42
++:10138000034218213C02000A00621821166000BCCA
++:10139000AF830014906200623042000F344200308C
++:1013A000A06200620A001CB48FBF00203C046000F1
++:1013B0008C832C083C02F0033442FFFF00621824A7
++:1013C000AC832C083C0208008C4231A08C832C0892
++:1013D000244200740002108200021480006218256A
++:1013E000AC832C080A001CB48FBF00203C0208000C
++:1013F0008C4231A02403FF800222102100431024DC
++:10140000AF4200243C0208008C4231A03C03000A99
++:10141000022210213042007F03421021004310219C
++:101420000A001CB3AF8200143C0208008C4231A0B9
++:101430002405FF800222102100451024AF42002421
++:101440003C0208008C4231A0022210213042007F71
++:10145000034218213C02000A0062182190620063D6
++:1014600000A21024304200FF10400085AF8300141A
++:1014700024620088944300123C0208008C4231A888
++:1014800030633FFF00031980022210210043102126
++:101490003043007F03432021004510243C03000C0F
++:1014A00000832021AF4200289082000D00A210246A
++:1014B000304200FF10400072AF8400249082000D83
++:1014C000304200101440006F8FBF00200E0015C87E
++:1014D000000000008F4201B80440FFFE0000000041
++:1014E000AE1100008F420144AE020004240200024B
++:1014F000A6120008A202000BAE1300240A001CB4BE
++:101500008FBF00202406FF8002261024AF42002057
++:101510003C0208008C4231A031043FFF00042180CE
++:101520000222102100461024AF4200243C03080090
++:101530008C6331A83C0208008C4231A03227007F26
++:101540000223182102221021006418213042007F5A
++:101550003064007F034228213C02000A0066182400
++:1015600000A22821034420213C02000C00822021FB
++:10157000AF4300283C020008034718210062902175
++:10158000AF850014AF8400240E0015C8010080212F
++:101590008F4201B80440FFFE8F8200248F84001424
++:1015A000274501809042000DACB10000A4B00006B8
++:1015B000000216000002160300021027000237C2C4
++:1015C00014C00016248200889442001232033FFFA8
++:1015D00030423FFF14430012240260829083006374
++:1015E0002402FF8000431024304200FF5040000CD2
++:1015F00024026082908200623042000F3442004038
++:10160000A082006224026084A4A200082402000DCB
++:10161000A0A200050A001C9E3C0227002402608252
++:10162000A4A20008A0A000053C02270000061C00A0
++:101630000062182524020002A0A2000BACA3001037
++:10164000ACA00014ACA00024ACA00028ACA0002CDE
++:101650008E42004C8F840024ACA200189083000DB1
++:101660002402FF8000431024304200FF1040000598
++:101670008FBF00209082000D3042007FA082000DBD
++:101680008FBF00208FB3001C8FB200188FB10014E1
++:101690008FB000103C02100027BD002803E00008B6
++:1016A000AF4201B80800343008003430080033A8D5
++:1016B000080033E0080034140800343808003438D7
++:1016C00008003438080033180A0001240000000024
++:1016D000000000000000000D747061362E322E33C1
++:1016E00000000000060203010000000000000000EE
++:1016F00000000000000000000000000000000000EA
++:1017000000000000000000000000000000000000D9
++:1017100000000000000000000000000000000000C9
++:1017200000000000000000000000000000000000B9
++:1017300000000000000000000000000000000000A9
++:101740000000000000000000000000000000000099
++:101750000000000000000000000000001000000376
++:10176000000000000000000D0000000D3C02080019
++:1017700024421C003C03080024632094AC40000079
++:101780000043202B1480FFFD244200043C1D080070
++:1017900037BD2FFC03A0F0213C1008002610049058
++:1017A0003C1C0800279C1C000E00015C000000008F
++:1017B0000000000D3084FFFF308200078F85001885
++:1017C00010400002248300073064FFF800853021B8
++:1017D00030C41FFF03441821247B4000AF85001C48
++:1017E000AF84001803E00008AF4400843084FFFF9A
++:1017F000308200078F8500208F860028104000026D
++:10180000248300073064FFF8008520210086182B10
++:1018100014600002AF8500240086202303442821A1
++:1018200034068000AF840020AF44008000A6202151
++:1018300003E00008AF84003827BDFFD8AFB3001C19
++:10184000AFB20018AFB00010AFBF0024AFB400209B
++:10185000AFB100143C0860088D1450002418FF7FBD
++:101860003C1A8000029898243672380CAD12500051
++:101870008F5100083C07601C3C08600036300001B6
++:10188000AF500008AF800018AF400080AF40008428
++:101890008CE600088D0F08083C0760168CEC0000F1
++:1018A00031EEFFF039CA00103C0DFFFF340B800011
++:1018B0003C030080034B48212D440001018D282466
++:1018C0003C0253533C010800AC230420AF8900388C
++:1018D000AF860028AF840010275B400014A20003ED
++:1018E00034E37C008CF90004032818218C7F007CF1
++:1018F0008C6500783C0280003C0B08008D6B048CEA
++:101900003C0A08008D4A048834520070AF85003CC0
++:10191000AF9F00403C13080026731C440240A021E6
++:101920008E4800008F46000038C30001306400017B
++:1019300010800017AF880034028048218D2F0000EE
++:101940003C0508008CA5045C3C1808008F1804585E
++:1019500001E8102300A280210000C8210202402BD0
++:1019600003198821022838213C010800AC30045CAE
++:101970003C010800AC2704588F4E000039CD00010F
++:1019800031AC00011580FFED01E04021AF8F003444
++:101990008E5100003C0708008CE7045C3C0D0800F9
++:1019A0008DAD04580228802300F0602100007021D2
++:1019B0000190302B01AE1821006620213C01080067
++:1019C000AC2C045C3C010800AC2404588F46010890
++:1019D0008F47010030C92000AF860000AF87000CA0
++:1019E0001120000A00C040213C1808008F18042C68
++:1019F000270800013C010800AC28042C3C184000DA
++:101A0000AF5801380A000196000000009749010410
++:101A100000002821014550213122FFFF0162582199
++:101A20000162F82B015F502130D902003C0108000F
++:101A3000AC2B048C3C010800AC2A0488172000154C
++:101A400024040F0010E400130000000024080D001F
++:101A500010E8023B30CD000611A0FFE93C18400021
++:101A6000936E00002409001031C400F01089027147
++:101A700024020070108202E58F880014250F0001F7
++:101A8000AF8F00143C184000AF5801380A0001968F
++:101A900000000000974C01041180FFD93C18400061
++:101AA00030C34000146000A1000000008F460178A0
++:101AB00004C0FFFE8F87003824100800240F0008A0
++:101AC0008CE30008AF500178A74F0140A7400142C6
++:101AD000974E01048F86000031C9FFFF30CD000111
++:101AE00011A002E1012040212531FFFE241800024F
++:101AF000A75801463228FFFFA75101483C190800AA
++:101B00008F39043C172002D08F8C000C30DF00206E
++:101B100017E00002240400092404000130C20C0074
++:101B2000240504005045000134840004A744014A00
++:101B30003C1108008E3104203C1800483C10000184
++:101B40000238182530CF00020070282511E000046B
++:101B5000000018213C19010000B9282524030001C8
++:101B600030DF000453E00005AF8300083C0600109E
++:101B700000A6282524030001AF830008AF4510000C
++:101B80000000000000000000000000000000000055
++:101B90008F83000810600023000000008F451000B4
++:101BA00004A1FFFE000000001060001E0000000005
++:101BB0008F4410003C0C0020008C102410400019B1
++:101BC0008F8E000031CD000211A000160000000031
++:101BD000974F101415E000130000000097591008EB
++:101BE0003338FFFF271100060011188200033080F0
++:101BF00000C7282132300001322300031200032CD9
++:101C00008CA200000000000D00C7F821AFE2000028
++:101C10003C0508008CA5043024A600013C01080006
++:101C2000AC2604308F6D00003402FFFFAF8D00043E
++:101C30008CEC0000118202A6000020218CED000037
++:101C400031AC01001180028A000000003C02080053
++:101C50008C4204743C0308008C63044C3C1F080055
++:101C60008FFF04703C1808008F1804480048382182
++:101C70000068802100E8282B03E430210208402B73
++:101C80000304882100C57021022878213C01080046
++:101C9000AC30044C3C010800AC2F04483C01080067
++:101CA000AC2704743C010800AC2E04708F8400182B
++:101CB0000120302131290007249F000833F91FFF3C
++:101CC00003594021AF84001CAF990018251B400028
++:101CD000AF590084112000038F83002024C2000725
++:101CE0003046FFF88F84002800C3282100A4302B41
++:101CF00014C00002AF83002400A428230345602100
++:101D0000340D8000018D10213C0F1000AF850020A4
++:101D1000AF820038AF450080AF4F01788F88001444
++:101D2000250F00010A0001EFAF8F00148F62000839
++:101D30008F670000240500300007760231C300F0F1
++:101D4000106500A7240F0040546FFF4C8F880014CB
++:101D50008F4B01780560FFFE0000000030CA0200D2
++:101D600015400003000612820000000D00061282DA
++:101D7000304D0003000D4900012D18210003808023
++:101D8000020D402100086080019380218E1F000019
++:101D900017E00002000000000000000D8F6E00043C
++:101DA00005C202BD92070006920E000592020004D1
++:101DB0003C090001000E18800070F8218FED00181A
++:101DC000277100082448000501A96021000830821D
++:101DD000AFEC0018022020210E00059E26050014FD
++:101DE000920A00068F7900043C0B7FFF000A2080D6
++:101DF000009178218DF800043566FFFF0326282422
++:101E000003053821ADE70004920E0005920D000491
++:101E1000960C0008000E10800051C8218F2300008E
++:101E2000974901043C07FFFF006758243128FFFF52
++:101E3000010DF82103EC50233144FFFF01643025EC
++:101E4000AF260000920300072418000110780275E5
++:101E5000240F0003106F0285000000008E050010A3
++:101E60002419000AA7590140A7450142921800040D
++:101E70008F860000240F0001A7580144A7400146A7
++:101E80009747010430D100023C050041A7470148B3
++:101E900000001821A74F014A1220000330CB000494
++:101EA0003C0501412403000151600005AF83000897
++:101EB0003C06001000A6282524030001AF8300087B
++:101EC000AF4510000000000000000000000000000E
++:101ED000000000008F8A000811400004000000008C
++:101EE0008F4410000481FFFE000000008F6B000093
++:101EF000920800043C1108008E310444AF8B0004AA
++:101F000097590104311800FF3C0E08008DCE0440A3
++:101F10003325FFFF0305382102276021000010212F
++:101F2000250F000A31E8FFFF0187482B01C2682115
++:101F300001A9F821311000073C010800AC2C044431
++:101F40003C010800AC3F0440120000038F8C0018D5
++:101F50002506000730C8FFF8010C682131BF1FFFBC
++:101F6000AF8C001CAF9F0018AF5F00849744010442
++:101F7000035F80213084FFFF308A00071140000397
++:101F8000261B4000248900073124FFF88F8200209F
++:101F90008F850028008220210085702B15C000024B
++:101FA000AF820024008520233C0B08008D6B048C3D
++:101FB0003C0A08008D4A04880344882134038000C9
++:101FC000022310213C0F1000AF840020AF820038A4
++:101FD000AF440080AF4F01780A0002968F8800144A
++:101FE0008F5001780600FFFE30D10200162000035A
++:101FF000000612820000000D00061282305F00030E
++:10200000001F1900007F302100062080009FC8219A
++:1020100000194880013380218E180000130000024F
++:10202000000000000000000D8F6C000C058001FB1B
++:102030008F870038240E0001AE0E00008CE30008EC
++:10204000A20000078F65000400055402314D00FF17
++:1020500025A80005000830822CCB00411560000245
++:10206000A20A00040000000D8F7800043C03FFFF6B
++:1020700000E02821330BFFFF256C000B000C1082C1
++:1020800000022080008748218D3F000026040014B4
++:10209000A618000803E3C8240E00059EAD39000011
++:1020A0008F4F01083C11100001F1382410E001AB02
++:1020B00000000000974D01049208000725AAFFECDC
++:1020C000350600023144FFFFA2060007960600080D
++:1020D0002CC7001354E0000592030007921100077B
++:1020E000362F0001A20F00079203000724180001F9
++:1020F000107801C224090003106901D58F880038C7
++:1021000030CBFFFF257100020011788331E400FF1E
++:1021100000042880A20F000500A848218D2D000092
++:10212000974A01043C0EFFFF01AEF8243143FFFF44
++:10213000006B1023244CFFFE03ECC825AD390000D2
++:10214000920600053C03FFF63462FFFF30D800FF23
++:102150000018388000F08821922F00143C04FF7F83
++:102160003487FFFF31EE000F01C65821316500FFB3
++:1021700000055080015068218DAC00200148F821F5
++:10218000A20B00060182C824AE0C000CAFF9000CB3
++:10219000920900068E11000C032778240009C080E4
++:1021A0000310702195C60026030828210227202449
++:1021B000AE04000CADCF0020ADC60024ACA60010CC
++:1021C0008F8800003C0B08008D6B048C3C0A0800D3
++:1021D0008D4A0488241F001024190002A75F0140C3
++:1021E000A7400142A7400144A7590146974901046D
++:1021F00024070001310600022538FFFEA7580148D8
++:102200003C050009A747014A10C00003000018213F
++:102210003C05010924030001310C00045180000534
++:10222000AF8300083C08001000A828252403000103
++:10223000AF830008AF451000000000000000000060
++:1022400000000000000000009205000424AE00021F
++:1022500031CD0007000D182330620007AE020010D8
++:102260008F90000812000004000000008F4F100043
++:1022700005E1FFFE000000008F7100008F8E001846
++:102280003C0308008C630444AF91000497450104AB
++:1022900025CF001031E61FFF30A2FFFFAF8E001CDC
++:1022A000AF860018AF4600842449FFFE3C0C0800AE
++:1022B0008D8C0440974D010401208021000947C303
++:1022C0000070C02131A9FFFF0310F82B0188C8213D
++:1022D000033F202103463821313100073C0108002B
++:1022E000AC3804443C010800AC2404401220000334
++:1022F00024FB40002527000730E9FFF88F860020E7
++:102300008F8400280126382100E4C02B170000022A
++:10231000AF86002400E438230347202134198000CD
++:10232000009910213C0F1000AF870020AF820038C9
++:10233000AF470080AF4F01780A0002968F880014E3
++:102340009747010410E0FDAE3C1840008F5801781B
++:102350000700FFFE30C5400010A000033C1F00082E
++:102360000000000D3C1F0008AF5F01402410080072
++:102370008F860000AF5001789744010430D90001E6
++:10238000132000ED3086FFFF24CCFFFE240D000259
++:10239000A74D0146A74C01488F9100182408000D55
++:1023A000A748014A8F630000262F000831E21FFF73
++:1023B0000342702130C90007AF830004AF91001CB5
++:1023C000AF82001800C03821AF4200841120000302
++:1023D00025DB400024D800073307FFF88F85002055
++:1023E0008F84002800E5302100C4382B14E000025F
++:1023F000AF85002400C430238F8400140346F821E5
++:10240000340C8000AF86002003EC8021AF460080B2
++:10241000249900013C0610003C184000AF460178AA
++:10242000AF900038AF990014AF5801380A000196F8
++:10243000000000008F630000975101043067FFFF28
++:102440003228FFFF8F4F017805E0FFFE30EC0007D8
++:10245000000CF82333F0000724F9FFFE2404000ADF
++:10246000A7440140A7500142A7590144A740014693
++:10247000A74801488F45010830B800201700000226
++:10248000240300092403000130CD0002A743014AC0
++:102490003C04004111A00003000018213C0401414C
++:1024A0002403000130C9000451200005AF83000857
++:1024B0003C0600100086202524030001AF8300089D
++:1024C000AF44100000000000000000000000000009
++:1024D000000000008F8E000811C000040000000002
++:1024E0008F4210000441FFFE000000008F7F0000BB
++:1024F000276400088F91003CAF9F0004948500087A
++:102500009490000A9499000C30AFFFFF0010C400B3
++:102510003323FFFF11F100A6030320253C0E080022
++:102520008DCE04443C0C08008D8C044000E88821CA
++:102530002626FFFE01C628210000682100A6F82BF0
++:10254000018D2021009F80213C010800AC2504441E
++:102550003C010800AC30044024E200083042FFFF98
++:102560003047000710E000038F830018244F000756
++:1025700031E2FFF83106FFFF30C800070043802139
++:1025800032191FFF0359C021AF83001CAF990018F7
++:10259000271B4000AF590084110000038F8C0020DE
++:1025A00024C5000730A6FFF88F84002800CC28211E
++:1025B00000A4F82B17E00002AF8C002400A428230D
++:1025C000AF850020AF4500803C0408008C840434B3
++:1025D00003454821340E8000012E6821108000053B
++:1025E000AF8D0038939100172406000E12260011BB
++:1025F0002407043F3C021000AF4201788F8800148A
++:10260000250F00010A0001EFAF8F00140E0005C472
++:1026100000E020218F8800143C0B08008D6B048C97
++:102620003C0A08008D4A0488250F00010A0001EFCA
++:10263000AF8F00143C021000A7470148AF42017859
++:102640000A0004CE8F88001424040F001184003D7A
++:1026500030CE002015C0000224030009240300012D
++:102660000A00021AA743014A0A00020DA7400146C8
++:1026700094EF000894F1000A94F0000C8F8C003C59
++:10268000001174003207FFFF31EDFFFF11AC00377E
++:1026900001C720253C1808008F1804443C0F08008F
++:1026A0008DEF0440000080210308682101A8382B29
++:1026B00001F0702101C760213C010800AC2D0444E9
++:1026C0003C010800AC2C04400A00027A8F840018F8
++:1026D0003C0208008C42047C3C0308008C630454D8
++:1026E0003C1F08008FFF04783C1808008F18045026
++:1026F000004838210068802100E8282B03E43021BD
++:102700000208402B0304882100C57021022878218B
++:102710003C010800AC3004543C010800AC2F0450CC
++:102720003C010800AC27047C3C010800AC2E047876
++:102730000A00027A8F840018A74001460A00043577
++:102740008F91001830CD002015A0FFC52403000D87
++:10275000240300050A00021AA743014A974E010408
++:1027600025C5FFF00A00038130A4FFFF8F980040C9
++:102770001498FFC8000010213C0508008CA5046CCB
++:102780003C1F08008FFF046800A8C8210328302BD5
++:1027900003E22021008640213C010800AC39046C92
++:1027A0003C010800AC2804680A00027A8F840018F3
++:1027B0008F8C0040148CFF5900E8C8213C18080099
++:1027C0008F18046C3C1108008E3104682723FFFE2B
++:1027D00003034821000010210123302B0222702125
++:1027E00001C668213C010800AC29046C3C010800CA
++:1027F000AC2D04680A0004A524E200088F88003884
++:102800003C03FFFF8D02000C0043F82403E4C825BD
++:10281000AD19000C0A00038F30CBFFFF0A0003C381
++:10282000AE000000974A0104920400048E26000CBA
++:10283000014458212579FFF200C7C0243325FFFF4A
++:1028400003053825AE27000C0A0002E68E050010AD
++:102850003C0DFFFF8D0A0010014D582401646025D6
++:10286000AD0C00100A00038F30CBFFFF974301042B
++:10287000920E00048E290010006E1021244DFFEEF0
++:102880000127602431A8FFFF0188F825AE3F001022
++:102890000A0002E68E0500108E0F000CAE0000004C
++:1028A00000078880023028210A0002B8ACAF00205F
++:1028B0001460000D3058FFFF3C04FFFF0044682403
++:1028C00001A47026000E602B000D102B004CF82484
++:1028D00013E00002000000000000000D8CAF0000BB
++:1028E0000A00025001E410253B03FFFF0003882B80
++:1028F0000018802B0211202410800002000000002C
++:102900000000000D8CB900000A0002503722FFFFC2
++:102910003084FFFF30A5FFFF108000070000182162
++:10292000308200011040000200042042006518219E
++:102930001480FFFB0005284003E000080060102120
++:1029400010C00007000000008CA2000024C6FFFF9A
++:1029500024A50004AC82000014C0FFFB2484000402
++:1029600003E000080000000010A0000824A3FFFFFF
++:10297000AC86000000000000000000002402FFFF01
++:102980002463FFFF1462FFFA2484000403E00008BC
++:1029900000000000308EFFFF30D8FFFF00057C00F4
++:1029A00001F8602539CDFFFF01AC5021014C582BB7
++:1029B000014B4821000944023127FFFF00E8302184
++:1029C0000006240230C5FFFF00A418213862FFFF73
++:1029D00003E000083042FFFF3C0C08008D8C0484AB
++:1029E000240BFF8027BDFFD001845021014B4824D8
++:1029F000AF4900203C0808008D080484AFB20020D5
++:102A0000AFB00018AFBF0028AFB30024AFB1001CB7
++:102A1000936600040104382130E4007F009A1021FD
++:102A20003C0300080043902130C500200360802152
++:102A30003C080111277B000814A000022646007004
++:102A40002646006C9213000497510104920F000473
++:102A50003267000F322EFFFF31ED004001C72823FF
++:102A600011A0000500004821925900BC3338000431
++:102A70001700009000000000924300BC307F00046B
++:102A800013E0000F0000000010A0000D0000000087
++:102A9000960E0002240AFF8000A7602125CDFFFECC
++:102AA000A74D1016920B0004014B2024308200FF2A
++:102AB00010400085010C40253C0F0400010F40250B
++:102AC0008F5301780660FFFE2404000AA7440140EA
++:102AD000960D00022404000931AC0007000C5823B5
++:102AE000316A0007A74A0142960200022443FFFE12
++:102AF000A7430144A7400146975F0104A75F01482F
++:102B00008F590108333800205300000124040001CC
++:102B1000920F000431EE001015C000023483001043
++:102B200000801821A743014A0000000000000000B7
++:102B30000000000000000000AF481000000000008E
++:102B40000000000000000000000000008F51100095
++:102B50000621FFFE3113FFFF12600003000000009A
++:102B60008F481018ACC8000096030006307FFFFFA6
++:102B700027F900020019988200138880023B302157
++:102B80008CD800001520005700183402920300046E
++:102B90002405FF8000A3F82433F100FF1220002C4D
++:102BA00000000000924700BC30F2000212400028F2
++:102BB00000000000974B100C2562FFFEA742101684
++:102BC000000000003C0A040035490030AF49100005
++:102BD00000000000000000000000000000000000F5
++:102BE0008F4C10000581FFFE000000009749100C7B
++:102BF0008F51101C00C020213127FFFF24F200302C
++:102C0000001218820003288000BBF8213226FFFF43
++:102C1000AFF100000E0005B300112C020013C880B4
++:102C2000033B98218E78000000027400AFB80010BA
++:102C30008FA80010310FFFFFAFAF00108FA400105E
++:102C400001C46825AFAD00108FA60010AE6600006D
++:102C500097730008976D000A9766000C8F8A003CF6
++:102C6000000D5C0030CCFFFF3262FFFF104A0036DF
++:102C7000016C2025960600023C10100024D30008A9
++:102C80000E00013B3264FFFF974C01040E00014926
++:102C90003184FFFFAF5001788FBF00288FB300242D
++:102CA0008FB200208FB1001C8FB0001803E0000825
++:102CB00027BD003010A0FF700000000024A5FFFC1D
++:102CC0000A0005EC240900048CD10000AF51101853
++:102CD0008F5301780660FF7A2404000A0A00060177
++:102CE0000000000000A7C8218F8800388F4E101CFC
++:102CF0000019C0820018788001E82021AC8E000005
++:102D0000000E2C0200C020210E0005B331C6FFFFCB
++:102D1000023B28218CAD000000025400004030210D
++:102D2000AFAD00108FAC0010318BFFFFAFAB0010C8
++:102D30008FA2001001424825AFA900108FA70010F4
++:102D40000A000631ACA700008F8F0040148FFFC926
++:102D50000000000097420104960B00023C050800A9
++:102D60008CA5046C3049FFFF316AFFFF3C1108005D
++:102D70008E310468012A382124F2FFFE00B240217E
++:102D80000012FFC30112C82B023FC02103192021EA
++:102D90003C010800AC28046C3C010800AC24046829
++:102DA0000A00066B0000000000A4102B1040000970
++:102DB000240300010005284000A4102B04A00003F8
++:102DC000000318405440FFFC000528401060000735
++:102DD000000000000085302B14C0000200031842E0
++:102DE000008520231460FFFB0005284203E0000853
++:102DF000008010218F85002C27BDFFE800053027BB
++:102E00002CC300012CA400020083102510400003F5
++:102E1000AFBF00102405007FAF85002C00052827D8
++:102E200030A5FFFF0E000592240426F58F830030A5
++:102E3000240402BD004030210083382B10E000093B
++:102E400024050001000420400083102B04800003AF
++:102E5000000528405440FFFC0004204010A000085A
++:102E600000C350210064402B1500000200052842D9
++:102E70000064182314A0FFFB0004204200C350216B
++:102E80008FBF0010000A4C02312200FF27BD00183E
++:102E9000AF8A002C03E00008AF8900300A00002A46
++:102EA00000000000000000000000000D7478703683
++:102EB0002E322E3300000000060203000000000046
++:102EC000000001360000EA60000000000000000081
++:102ED00000000000000000000000000000000000F2
++:102EE00000000000000000000000000000000000E2
++:102EF00000000000000000000000000000000016BC
++:102F000000000000000000000000000000000000C1
++:102F100000000000000000000000000000000000B1
++:102F200000000000000000000000000000000000A1
++:102F3000000000000000138800000000000005DC15
++:102F4000000000000000000010000003000000006E
++:102F50000000000D0000000D3C02080024423C204F
++:102F60003C03080024633DD4AC4000000043202B08
++:102F70001480FFFD244200043C1D080037BD7FFC87
++:102F800003A0F0213C100800261000A83C1C0800FB
++:102F9000279C3C200E0002BA000000000000000D3B
++:102FA0008F8300383C088000350700708CE50000F6
++:102FB000008330253C02900000C22025AF85003000
++:102FC000AF4400208F4900200520FFFE3C03800015
++:102FD000346200708C4500008F8600303C19080078
++:102FE0008F39007C3C0E08008DCE007800A620238F
++:102FF00003245821000078210164682B01CF60214F
++:10300000018D50213C010800AC2B007C3C010800E4
++:10301000AC2A007803E00008000000000A0000412C
++:10302000240400018F8400383C05800034A2000194
++:103030000082182503E00008AF43002003E00008E9
++:10304000000010213084FFFF30A5FFFF1080000733
++:1030500000001821308200011040000200042042CC
++:10306000006518211480FFFB0005284003E00008DC
++:103070000060102110C00007000000008CA20000BA
++:1030800024C6FFFF24A50004AC82000014C0FFFB8F
++:103090002484000403E000080000000010A00008E1
++:1030A00024A3FFFFAC860000000000000000000029
++:1030B0002402FFFF2463FFFF1462FFFA248400044C
++:1030C00003E0000800000000308AFFFF93A800130F
++:1030D000A74A014497490E1630C600FF3C02100073
++:1030E000A7490146AF450148A3460152A748015AE6
++:1030F000AF4701608FA400188FA30014A7440158A4
++:10310000AF43015403E00008AF42017803E0000838
++:10311000000000003C038000346200708C49000015
++:103120008F8800002484000727BDFFF83084FFF853
++:10313000AF890030974D008A31ACFFFFAFAC000083
++:103140008FAB0000016850232547FFFF30E61FFFCB
++:1031500000C4282B14A0FFF73C0C8000358B0070B6
++:103160008D6A00003C0708008CE700843C060800DC
++:103170008CC6008000081082014918230002788064
++:1031800000E370210000202101C3C82B00C4C0212E
++:1031900001FA4021031948212502400027BD0008FB
++:1031A0003C010800AC2E00843C010800AC290080E2
++:1031B00003E00008000000008F8200002486000762
++:1031C00030C5FFF800A2182130641FFF03E000089B
++:1031D000AF8400008F8700388F8A004027BDFFB87A
++:1031E0008F860044AFB60040AFBF0044AFB5003C8F
++:1031F000AFB40038AFB30034AFB20030AFB1002C81
++:10320000AFB000288F4501048D4900ACAF47008066
++:103210008CC8002000A938230000B021AF480E1050
++:103220008F440E1000004821AF440E148CC20024BD
++:10323000AF420E188F430E18AF430E1C10E001254D
++:103240002D230001936B0008116000D400000000E2
++:10325000976E001031CDFFFF00ED602B158000CF81
++:103260000000000097700010320FFFFFAF4F0E00FC
++:103270008F520000325100081220FFFD00000000B4
++:1032800097540E088F460E043285FFFF30B30001BD
++:1032900012600132000000000000000D30B8A040B4
++:1032A00024150040131500C030A9A0001120012DE5
++:1032B00000000000937F000813E0000800000000F9
++:1032C00097630010306BFFFF00CB402B1100000311
++:1032D00030AC00401180012300000000A785003CB5
++:1032E000AF8600349366000800E02821AFA70020D5
++:1032F00014C0012427B30020AF60000C9782003C6B
++:103300003047400014E00002240300162403000E9E
++:1033100024194007A363000AAF790014938A003E82
++:103320008F740014315800070018AA4002959025A8
++:10333000AF7200149784003C8F700014309100101D
++:1033400002117825AF6F0014978E003C31CD000834
++:1033500011A00147000028218F6700143C021000D3
++:103360003C0C810000E22825AF65001497460E0A48
++:103370002408000E3405FFFC30C3FFFF006C582505
++:10338000AF6B0004A3680002937F000A27E90004E2
++:10339000A369000A9786003C9363000A30CC1F00A3
++:1033A000000C598301634021251F0028A37F0009D9
++:1033B00097490E0CA769001093790009272A00028B
++:1033C000315800070018A82332B10007A371000B81
++:1033D00093740009976400108F910034978F003C1C
++:1033E000329200FF024480210205702131ED00403D
++:1033F00011A0000531C4FFFF0091282B3C12800072
++:1034000010A000140000A0210224382B14E0011B9E
++:103410008FA500208F4D0E14AF4D0E108F420E1C45
++:10342000AF420E18AF440E008F4F000031EE00087F
++:1034300011C0FFFD0000000097540E080080882195
++:1034400000009021A794003C8F500E04241400012A
++:10345000AF900034976400103095FFFF8E68000035
++:103460000111F82317E00009AE7F00008F650014FA
++:103470008F8B004434A60040AF6600148F4C0E10B2
++:10348000AD6C00208F430E18AD63002493670008D5
++:1034900014E000D2000000000E00009E2404001082
++:1034A0008F8900483C08320000402821312600FF67
++:1034B0000006FC0003E8502525390001AF990048BB
++:1034C000AC4A0000937800099370000A330400FFAF
++:1034D00000047400320F00FF01CF6825AC4D0004DA
++:1034E0008F820048064000EAACA20008ACA0000CA5
++:1034F0009783003C306B0008156000022628000608
++:1035000026280002974E0E148F450E1C8F6700046C
++:10351000936D000231C4FFFF31A200FFAFA2001083
++:103520008F6C0014AFA800180E00008BAFAC001415
++:10353000240400100E0000C7000000008E7200007E
++:1035400016400005000000008F6400142405FFBF32
++:1035500000859824AF7300148F79000C033538214F
++:10356000AF67000C9375000816A00008000000006B
++:1035700012800006000000008F7F00143C0BEFFF5C
++:103580003568FFFE03E84824AF690014A3740008FF
++:103590008FA500200A00024602202021AF470E001E
++:1035A0000A0000F5000000008F5901780720FFFE97
++:1035B000241F08008F840000AF5F0178974B008ABA
++:1035C000316AFFFF014448232528FFFF31021FFF16
++:1035D0002C4300081460FFF9000000008F8E0048A3
++:1035E0008F8D003800C048210344202125C60001EA
++:1035F000240C0F00AF86004800E9382324864000E1
++:1036000031CA00FF11AC0005240800019391003E6F
++:103610003230000700107A4035E80001000AAC00A3
++:103620003C18010002B8A025AC9440008F930048DC
++:1036300030B2003630A40008ACD3000410800097EC
++:1036400001123025974E0E0A8F8D00003C0281003A
++:1036500031CCFFFF25AB0008018240253C03100060
++:1036600031651FFF25390006241F000EAF48016099
++:1036700000C33025A75F015AAF850000A759015844
++:1036800014E0000A8F93003824120F0052720002D7
++:103690002416000134C600408F580E108F94004449
++:1036A000AE9800208F550E18AE9500248F450E144D
++:1036B000AF4501448F590E1CAF590148A34A01522E
++:1036C0003C0A1000AF460154AF4A017814E0FEDD19
++:1036D0002D2300010076A025128000178FBF004423
++:1036E0008F84003824160F0010960084000000001C
++:1036F0008F45017804A0FFFE24150F001095006E81
++:10370000000000008F470E14240202403C1F1000EE
++:10371000AF4701448F440E1CAF440148A3400152FF
++:10372000A740015AAF400160A7400158AF42015481
++:10373000AF5F01788FBF00448FB600408FB5003C6B
++:103740008FB400388FB300348FB200308FB1002CAB
++:103750008FB0002803E0000827BD004814C0FED049
++:1037600030B8A0408F420E148F84004400004821DE
++:10377000AC8200208F510E1CAC9100240A00020E76
++:103780002D2300018F910034978A003C3C12800069
++:103790000220A821315800401700FF300000A0216E
++:1037A000976900108F9200343139FFFF13320035D2
++:1037B00000002021008048211480FEA000A03821B4
++:1037C0008F420E148F840044AC8200208F510E1C57
++:1037D000AC9100240A00020E2D230001936A000917
++:1037E0009378000B315000FF330F00FF020F702160
++:1037F00025C2000A3050FFFF0E00009E020020216B
++:103800008F8600483C1F410024CD0001AF8D004849
++:10381000936C000930C600FF00064400318300FFAE
++:10382000246B0002010B4825013FC825AC5900005C
++:103830008F67000C97440E1400F22825AC45000455
++:103840008F450E1C8F670004936A00023084FFFFCF
++:10385000315800FFAFB800108F6F0014AFB10018DF
++:103860000E00008BAFAF00140A0001A60200202159
++:10387000AF6000040A00013EA36000020A00024695
++:1038800000002021000090210A0001702414000192
++:103890003C1280000A000195ACB2000C8F91000030
++:1038A00025240002A744015826300008320F1FFFCC
++:1038B0000A0001F9AF8F0000AF40014C1120002C2D
++:1038C000000000008F590E10AF5901448F430E18AD
++:1038D000240200403C1F1000AF430148A3400152A6
++:1038E000A740015AAF400160A7400158AF420154C0
++:1038F000AF5F01780A0002278FBF00441120000645
++:103900000000000097460E0830CC004015800002F1
++:10391000000000000000000D8F4D017805A0FFFEA3
++:103920000000000097530E103C120500240E2000EA
++:10393000326AFFFF0152C025AF58014C8F4F0E1461
++:103940003C021000AF4F01448F500E1CAF50014895
++:10395000A34001528F840038A740015AAF40016054
++:10396000A7400158AF4E01540A000215AF4201783A
++:103970008F490E14AF4901448F430E1C0A00028E7A
++:10398000240200403C0E20FF27BDFFE03C1A8000CF
++:103990003C0F800835CDFFFDAFBF001CAFB2001853
++:1039A000AFB10014AFB00010AF8F0040AF4D0E00AC
++:1039B0000000000000000000000000000000000007
++:1039C000000000003C0C00FF358BFFFDAF4B0E00EC
++:1039D0003C0660048CC95000240AFF7F3C11600043
++:1039E000012A40243507380CACC750008E24043817
++:1039F00024050009AF4500083083FFFF38622F71AE
++:103A00002450C0B3AF8000480E000068AF800000B3
++:103A100052000001AE20442C0E0004353C11800001
++:103A20000E000ED9363000708F8A00403C1208001C
++:103A300026523C88020088218E0800008F5F00001B
++:103A40003BF900013338000113000017AF88003044
++:103A5000022048218D2700003C0F08008DEF006CEC
++:103A60003C0C08008D8C006800E8C02301F8282178
++:103A70000000682100B8302B018D582101664021DB
++:103A80003C010800AC25006C3C010800AC28006833
++:103A90008F44000038830001306200011440FFEDC4
++:103AA00000E04021AF8700308E0C00003C0508008C
++:103AB0008CA5006C3C0408008C84006801883023CD
++:103AC00000A638210000102100E6402B00821821BA
++:103AD0000068F8213C010800AC27006C3C0108009C
++:103AE000AC3F00688F49010025590088AF99004418
++:103AF000AF890038AF4900208E070000AF87003043
++:103B00008F4D017805A0FFFE000000008E0600002A
++:103B10003C0B08008D6B00743C0408008C84007022
++:103B200000C728230165F8210000102103E5402B80
++:103B30000082382100E8C821240908003C0108005F
++:103B4000AC3F00743C010800AC390070AF4901780B
++:103B500093580108A398003E938F003E31EE000178
++:103B600015C000158F830038240E0D00106E00194B
++:103B7000240F0F00106F001D00000000915900007D
++:103B800024180050332900FF113800043C1F400066
++:103B9000AF5F01380A0002E7000000000E00090EC6
++:103BA000000000008F8A00403C1F4000AF5F0138DA
++:103BB0000A0002E700000000938D003E31AC0006D1
++:103BC000000C51000E0000CE0152D8210A00034320
++:103BD0008F8A00403C1B0800277B3D080E0000CE6A
++:103BE000000000000A0003438F8A00403C1B0800CD
++:103BF000277B3D280E0000CE000000000A00034392
++:103C00008F8A004090AA00018FAB00108CAC00108E
++:103C10003C0300FF8D680004AD6C00208CAD0014E7
++:103C200000E060213462FFFFAD6D00248CA7001816
++:103C30003C09FF000109C024AD6700288CAE001CC0
++:103C40000182C82403197825AD6F0004AD6E002CE5
++:103C50008CAD0008314A00FFAD6D001C94A9000234
++:103C60003128FFFFAD68001090A70000A56000029A
++:103C7000A1600004A167000090A30002306200FF71
++:103C80000002198210600005240500011065000E75
++:103C90000000000003E00008A16A00018CD80028A1
++:103CA000354A0080AD7800188CCF0014AD6F001439
++:103CB0008CCE0030AD6E00088CC4002CA16A0001CF
++:103CC00003E00008AD64000C8CCD001CAD6D001845
++:103CD0008CC90014AD6900148CC80024AD680008BC
++:103CE0008CC70020AD67000C8CC200148C8300646C
++:103CF0000043C82B13200007000000008CC20014F2
++:103D0000144CFFE400000000354A008003E0000886
++:103D1000A16A00018C8200640A000399000000007F
++:103D200090AA000027BDFFF88FA9001CA3AA0000DD
++:103D30008FAE00003C0FFF808FA8001835E2FFFF18
++:103D40008CCD002C01C26024AFAC0000A120000487
++:103D500000E06021A7A000028FB800008D270004BA
++:103D60000188182100A0582100C05021006D28268C
++:103D70003C06FF7F3C0F00FF2CAD000135EEFFFF3E
++:103D800034D9FFFF3C02FF0003193024000D1DC091
++:103D9000010EC82400E2C02400C370250319782551
++:103DA000AD2E0000AD2F00048D450024AFAE000005
++:103DB000AD2500088D4D00202405FFFFAD2D000C22
++:103DC000956800023107FFFFAD27001091660018CB
++:103DD00030C200FF000219C2506000018D4500345E
++:103DE000AD2500148D67000827BD0008AD27001C15
++:103DF0008C8B00CCAD2C0028AD20002CAD2B0024EA
++:103E0000AD20001803E00008AD20002027BDFFE032
++:103E1000AFB20018AFB10014AFB00010AFBF001CBC
++:103E20009098000000C088213C0D00FF330F007FF8
++:103E3000A0CF0000908E000135ACFFFF3C0AFF00D0
++:103E4000A0CE000194A6001EA22000048CAB00149A
++:103E50008E29000400A08021016C2824012A40241E
++:103E60000080902101052025A6260002AE24000432
++:103E700026050020262400080E00007624060002F5
++:103E800092470000260500282624001400071E0083
++:103E90000003160324060004044000032403FFFF6C
++:103EA000965900023323FFFF0E000076AE23001068
++:103EB000262400248FBF001C8FB200188FB100147D
++:103EC0008FB0001024050003000030210A0000809C
++:103ED00027BD002027BDFFD8AFB1001CAFB0001830
++:103EE000AFBF002090A80000240200018FB0003C6A
++:103EF0003103003F00808821106200148FAA00382F
++:103F0000240B0005506B0016AFAA001000A0202162
++:103F100000C028210E0003DC02003021922400BCE6
++:103F2000308300021060000326060030ACC00000A1
++:103F300024C600048FBF00208FB1001C8FB0001872
++:103F400000C0102103E0000827BD002801403821EF
++:103F50000E00035AAFB000100A0004200000000059
++:103F60000E0003A1AFB000140A00042000000000FE
++:103F70003C02000A034218213C04080024843D6CE2
++:103F80002405001A000030210A000080AF8300548D
++:103F90003C038000346200708C48000000A058216F
++:103FA00000C04821308A00FFAF8800308F4401787C
++:103FB0000480FFFE3C0C8000358600708CC500003C
++:103FC0003C0308008C6300743C1808008F180070D4
++:103FD00000A82023006468210000C82101A4782BD8
++:103FE0000319702101CF60213C010800AC2D007441
++:103FF0003C010800AC2C00708F480E14AF480144FF
++:10400000AF47014CA34A0152A74B01589346010800
++:1040100030C5000854A0000135291000934B090059
++:1040200024070050316A00FF11470007000000001C
++:104030008F450E1CAF450148AF4901543C091000A3
++:1040400003E00008AF490178934D010831A800084A
++:104050001100001000000000934F010831EE001025
++:1040600051C00001352900083C04080090843DD06F
++:10407000A34401508F4309A4AF4301488F4209A0D4
++:10408000AF420144AF4901543C09100003E000086D
++:10409000AF4901783C1908008F393D8C333800084E
++:1040A0005700FFF1352900080A00047300000000E2
++:1040B00024070040AF470814AF4008108F4209445E
++:1040C0008F4309508F4409548F45095C8F46094C32
++:1040D000AF820064AF830050AF84004CAF85005CBA
++:1040E00003E00008AF8600609346010930C5007FF9
++:1040F000000518C0000521400083102103E00008DE
++:10410000244200883C09080091293D9124A800021E
++:104110003C05110000093C0000E8302500C51825C9
++:1041200024820008AC83000003E00008AC80000497
++:104130009347010B8F4A002C974F09083C18000E3B
++:104140000358482131EEFFFF000E41C0AF48002C5C
++:1041500097430908952C001A008040212403000190
++:10416000318BFFFFAC8B00008D2D001C00A058216F
++:1041700000C06021AC8D00048D24002030E7004099
++:10418000AD04000891220019304400031083004858
++:104190002885000214A00062240600021086005642
++:1041A00024190003109900660000000010E0003A96
++:1041B000000000003C07080094E73D8624E200016F
++:1041C000934F0934934709219525002A31EE00FFCA
++:1041D000000E488230ED00FF978700580009360036
++:1041E000000D1C003044FFFF00C310250044C02513
++:1041F00000A778213C19400003197025000F4C00DE
++:10420000AD090004AD0E0000934D09203C030006EB
++:1042100025090014000D360000C32025AD04000858
++:104220008F59092C24E5000130A27FFFAD19000C45
++:104230008F580930A782005825020028AD180010B9
++:104240008F4F0938AD0F0014AD2B00048F4E09407D
++:10425000AD2E0008934D09373C05080090A53D9010
++:104260008F4409488F46094031A700FF00EC182110
++:10427000008678230003C7000005CC0003196025E1
++:1042800031E8FFFC01885825AD2B000CAD20001053
++:1042900003E00008AF4A002C3C0D080095AD3D86B8
++:1042A0003C0E080095CE3D800A0004C901AE1021E5
++:1042B0003C05080094A53D8A3C06080094C63D8054
++:1042C0003C18080097183D7C952E002400A6782104
++:1042D00001F86823000E240025A2FFF200821825B1
++:1042E00024190800AD03000CAD190014AD00001036
++:1042F0000A0004C4250800189526002495250028E6
++:104300000006C40000057C00370E810035ED080072
++:10431000AD0E000CAD0D00100A0004C425080014F9
++:104320001480FFA200000000952400240004140063
++:1043300034430800AD03000C0A0004C42508001033
++:104340003C03080094633D8A3C05080094A53D8029
++:104350003C06080094C63D7C953900249538002819
++:10436000006520210086782300196C000018740075
++:1043700025E2FFEE01C2202535A3810024190800A3
++:10438000AD03000CAD040010AD190018AD00001411
++:104390000A0004C42508001C03E00008240201F4FC
++:1043A00027BDFFE8AFB00010AFBF00140E000060E3
++:1043B0000080802124050040AF4508148F83005001
++:1043C0008F84004C8F85005C0070182100641023DE
++:1043D00018400004AF830050AF6300548F66005450
++:1043E000AF86004C1200000C000000008F440074E7
++:1043F000936800813409FA002D07000710E00005DA
++:1044000000891021936C0081240B01F4018B50046E
++:1044100001441021AF62000C8F4E095C01C5682376
++:1044200019A000048FBF00148F4F095CAF8F005C90
++:104430008FBF00148FB000100A00006227BD001863
++:104440008F8400648F8300508F82004CAF640044DF
++:10445000AF63005003E00008AF6200543C038000EB
++:10446000346200708C43000027BDFFF8308700FFE6
++:1044700030A900FF30C800FFAF8300308F440178BF
++:104480000480FFFE3C028000345900708F38000029
++:10449000A3A700033C0708008CE700748FAC000062
++:1044A0003C0608008CC60070030378233C0E7FFF97
++:1044B00000EFC82135CDFFFF00005021018D2824D9
++:1044C00000CA1821000847C0032F202B00A8102580
++:1044D0000064C021AFA200003C010800AC390074A8
++:1044E0003C010800AC380070934F010AA3A0000201
++:1044F0003C0E80FFA3AF00018FAC0000312B007F8A
++:1045000035CDFFFF018D4824000B5600012A4025C0
++:10451000240730002406FF803C05100027BD00085A
++:10452000AF48014CAF470154A7400158A346015280
++:1045300003E00008AF45017827BDFFE8AFBF0014D6
++:10454000AFB000108F6500743C068000309000FF13
++:1045500000A620250E000060AF6400749363000580
++:10456000346200080E000062A362000502002021F0
++:104570008FBF00148FB00010240500052406000131
++:104580000A00057027BD001827BDFFE03C0380002E
++:10459000AFB00010AFBF0018AFB1001434620070AC
++:1045A0008C470000309000FF30A800FFAF8700303C
++:1045B0008F4401780480FFFE3C18800037110070A2
++:1045C0008E2F00003C0D08008DAD00743C0A0800E1
++:1045D0008D4A007001E7702301AE282100005821A8
++:1045E00000AE302B014B4821012638213C01080048
++:1045F000AC250074000088213C010800AC27007045
++:104600001100000F000000008F6200742619FFFFE8
++:104610003208007F0002FE0233E5007F150000062D
++:10462000332200FF2407FF800207202624A3FFFF78
++:1046300000838025320200FF0040802124111008F1
++:104640000E000060000000008F49081831250004AA
++:1046500014A0FFFD3218007F001878C000187140C8
++:1046600001CF682125AC0088AF4C0818274A098083
++:104670008D4B0020AF4B01448D460024AF460148CE
++:10468000A35001500E000062A740015802201021E3
++:104690008FBF00188FB100148FB0001003E0000826
++:1046A00027BD002027BDFFE8308400FFAFBF00100A
++:1046B0000E0005BB30A500FF8F8300508FBF001098
++:1046C000344500402404FF903C02100027BD001830
++:1046D000AF43014CA3440152AF45015403E000082D
++:1046E000AF4201789343093E306200081040000D4C
++:1046F0003C0901013528080AAC8800008F47007486
++:10470000AC8700043C06080090C63D9030C5001000
++:1047100050A00006AC8000088F6A0060AC8A0008D8
++:104720002484000C03E00008008010210A00062207
++:104730002484000C27BDFFE8AFBF0014AFB0001009
++:104740009346093F00A050210005288000853823AA
++:1047500030C200FF240300063C09080095293D866D
++:1047600024E8FFD824050004104300372406000283
++:104770009750093C3C0F020400063400320EFFFF44
++:1047800001CF6825AC8D0000934C093E318B002091
++:104790001160000800000000934309363C02010349
++:1047A000345F0300307900FF033FC0252405000873
++:1047B000AC98000493430934935909210005F88209
++:1047C000306200FF0002C082332F00FF00186E002D
++:1047D000000F740001AE6025018920253C094000CE
++:1047E00000898025ACF0FFD8934309378F4F0948E3
++:1047F0008F580940306200FF004AC821033F7021F2
++:1048000001F86023000E6F0001A650253185FFFCE2
++:10481000001F58800145482501683821AD09002056
++:104820000E00006024F00028240400040E00006242
++:10483000A364003F020010218FBF00148FB000104E
++:1048400003E0000827BD00180A0006352406001200
++:1048500027BDFFD024090010AFB60028AFB5002453
++:10486000AFB40020AFB10014AFB000103C0108009D
++:10487000A0293D90AFBF002CAFB3001CAFB2001811
++:1048800097480908309400FF3C02000E3107FFFFF3
++:10489000000731C0AF46002C974409089344010B30
++:1048A00030B500FF03428021308300300000B0218A
++:1048B0001060012500008821240C00043C01080040
++:1048C000A02C3D90934B093E000B5600000A2E038E
++:1048D00004A0016000000000AF400048934F010BAE
++:1048E00031EE002011C00006000000009358093E80
++:1048F00000189E0000139603064001890000000086
++:104900009344010B30830040106000038F930050EC
++:104910008F8200502453FFFF9347093E30E6000882
++:1049200014C0000224120003000090219619002CEC
++:1049300093580934934F0937A7990058330C00FF57
++:1049400031EE00FF024E6821000D5880016C5021AD
++:10495000015140213C010800A4283D869205001821
++:1049600030A900FF010918213C010800A4233D885B
++:104970009211001816200002000000000000000D37
++:104980003C010800A4233D8A3C010800A4203D808E
++:104990003C010800A4203D7C935F010B3063FFFFC6
++:1049A00033F00040120000022464000A2464000B6B
++:1049B0003091FFFF0E00009E022020219358010B32
++:1049C0003C08080095083D8A0040202100185982C3
++:1049D000316700010E00049A01072821934C010B56
++:1049E0008F4B002C974E09083C0F000E034F4021BF
++:1049F00031CDFFFF000D51C0AF4A002C974309088D
++:104A00009505001A004038212404000130A9FFFF59
++:104A1000AC4900008D06001C00404821318A00404E
++:104A2000AC4600048D020020ACE20008910300199E
++:104A300030630003106400EC28790002172001188D
++:104A4000241000021070010C241F0003107F011EAF
++:104A500000000000114000DE000000003C090800DA
++:104A600095293D8625220001935F0934934E092143
++:104A70009504002A33F900FF0019C08231CF00FFEE
++:104A8000978E005800184600000F6C00010D80251D
++:104A90003045FFFF02051025008E50213C034000E9
++:104AA00000433025000A6400ACEC0004ACE60000D2
++:104AB000935F09203C19000624EC0014001FC60077
++:104AC00003197825ACEF00088F48092C25CD00018B
++:104AD00031A57FFFACE8000C8F500930A785005846
++:104AE00024E80028ACF000108F4409380100802130
++:104AF000ACE40014AD9300048F530940AD9300085B
++:104B0000934A09373C19080093393D908F4309486F
++:104B10008F460940314200FF0052F82100667023A1
++:104B2000001F7F000019C40001F8282531CDFFFCCB
++:104B300000AD2025AD84000CAD800010AF4B002CE3
++:104B4000934B093E317300081260000D3C060101D1
++:104B500034CC080AACEC00288F530074AD13000469
++:104B60003C0B0800916B3D903167001050E0000352
++:104B7000AD0000088F6A0060AD0A00082510000C27
++:104B800012C0003D000000009343093F24160006B8
++:104B900024060004306200FF105600C924070002FA
++:104BA0009758093C3C0F0204330DFFFF01AF40252D
++:104BB000AE0800009345093E30A400201080000894
++:104BC00000000000935309363C0B0103357F0300BE
++:104BD000327900FF033F7025AE0E00042406000862
++:104BE000934F093493480921312AFFFF31ED00FF2B
++:104BF000000D1082310300FF0002B60000032C00FC
++:104C000002C56025018A9825001220803C094000D9
++:104C10000204502302695825AD4BFFD8935F093732
++:104C20008F4F09488F58094033F900FF0332702134
++:104C30000006B08201D668210007440001F828234D
++:104C4000000D1F000068302530A2FFFC2547FFD86B
++:104C500000C260250016808002074821ACEC0020CD
++:104C6000253000280E00006024120004A372003FCB
++:104C70000E000062000000009347010B30F200407C
++:104C8000124000053C1900FF8E180000372EFFFF70
++:104C9000030E3024AE0600000E0000C702202021C3
++:104CA0003C10080092103D90321100031220000FBA
++:104CB00002A028218F89005025330001AF930050B6
++:104CC000AF7300508F6B00540173F8231BE0000298
++:104CD000026020218F640054AF6400548F4C007434
++:104CE000258401F4AF64000C02A028210280202159
++:104CF000A76000680E0005BB3C1410008F850050B3
++:104D000034550006AF45014C8F8A00488FBF002CF8
++:104D10008FB3001C25560001AF9600488FB20018D3
++:104D2000A34A01528FB60028AF5501548FB1001429
++:104D3000AF5401788FB500248FB400208FB00010DD
++:104D400003E0000827BD00309358093E00189E007C
++:104D500000139603064200362411000293440923EF
++:104D6000308300021060FEDD8F8600608F8200506D
++:104D700014C2FEDA000000000E0000600000000017
++:104D80009369003F24070016312800FF1107000C2B
++:104D9000240500083C0C0800918C3D90358B0001E7
++:104DA0003C010800A02B3D90936A003F314300FF77
++:104DB00010650065240D000A106D005E2402000CD1
++:104DC0000E000062000000000A00069000000000D3
++:104DD0003C09080095293D863C0A0800954A3D801B
++:104DE0000A0006F3012A10213C09080095293D8A92
++:104DF0003C04080094843D803C06080094C63D7C39
++:104E000095030024012410210046F8230003CC0060
++:104E100027F0FFF20330C025240F0800ACF8000C87
++:104E2000ACEF0014ACE000100A0006EE24E7001816
++:104E30003C010800A0313D90935F093E241600011B
++:104E400033F900201720FEA5241100080A0006905F
++:104E5000241100048F6E00848F4D094011A0FE9E26
++:104E6000AF8E0050240F00143C010800A02F3D908D
++:104E70000A00068F00000000950E0024950D002802
++:104E8000000E6400000D2C003589810034A6080056
++:104E9000ACE9000CACE600100A0006EE24E70014B2
++:104EA0001460FEEC000000009502002400021C00CB
++:104EB00034640800ACE4000C0A0006EE24E700109D
++:104EC0000A000741240700123C02080094423D8A70
++:104ED0003C06080094C63D803C03080094633D7C7A
++:104EE00095100024951900280046F82103E3C023FB
++:104EF00000106C0000197400270FFFEE01CF282569
++:104F000035AC8100ACEC000CACE5001024070800C7
++:104F1000AD2700182527001C0A0006EEAD2000145E
++:104F20008F7F004CAF7F00548F7900540A000699A0
++:104F3000AF790050A362003F0E0000620000000045
++:104F40000A00069000000000240200140A0008274E
++:104F5000A362003F27BDFFE8308400FFAFBF001011
++:104F60000E0005BB30A500FF9378007E9379007F8B
++:104F7000936E00809368007A332F00FF001866005C
++:104F8000000F6C0031CB00FF018D4825000B520053
++:104F90008FBF0010012A3825310600FF344470000D
++:104FA00000E628252402FF813C03100027BD0018DD
++:104FB000AF45014CAF440154A342015203E0000845
++:104FC000AF43017827BDFFD8AFB20018AFB10014CE
++:104FD000AFB00010AFBF0020AFB3001C9342010977
++:104FE000308600FF30B000FF000618C23204000215
++:104FF0003071000114800005305200FF93670005F6
++:1050000030E5000810A0000D30C80010024020213B
++:105010000E0005A702202821240400018FBF0020D4
++:105020008FB3001C8FB200188FB100148FB0001026
++:105030000080102103E0000827BD00281500003281
++:105040000000000093430109000028213062007F26
++:10505000000220C00002F94003E49821267900886C
++:10506000033B98218E7800248E6F0008130F0046B2
++:10507000000000008F640084241800020004FD82F8
++:1050800033F900031338007C0000000093660083AE
++:10509000934A0109514600043205007C10A00060CB
++:1050A000000000003205007C14A0005302402021C3
++:1050B00016200006320400018E7F00248F5901045F
++:1050C00017F9FFD600002021320400011080000AE9
++:1050D000024020218F4209408F9300641053000644
++:1050E000000000000E00066D022028218F430940B9
++:1050F000AF630044024020210E0006020220282156
++:105100000A000860240400013C0908008D2900649D
++:10511000252600013C010800AC26006416000012A0
++:10512000000000008F6D00843C0E00C001AE6024C2
++:1051300015800005024020210E00082E02202821A3
++:105140000A00086024040001240500040E00057014
++:1051500024060001024020210E00082E02202821F2
++:105160000A000860240400010E000041240400012C
++:10517000936B007D020B50250E000062A36A007D38
++:105180000A0008A38F6D00848F6600748F480104A5
++:105190008E67002400064E021507FFB63126007FF9
++:1051A000936B008326440001308A007F1146004340
++:1051B000316300FF5464FFB08F6400842645000112
++:1051C00030B1007F30A200FF122600042405000148
++:1051D000004090210A00087624110001240FFF806E
++:1051E000024F702401CF9026324200FF00409021F0
++:1051F0000A000876241100010E00066D0220282105
++:10520000321800301300FFAA321000820240202121
++:105210000E0005A7022028210A00086024040001CE
++:105220008F6E00743C0F80002405000301CF902591
++:10523000AF72007493710083240600010E000570A4
++:10524000322400FF0E00004124040001936D007D14
++:10525000020D60250E000062A36C007D3C0B08006F
++:105260008D6B0054257000013C010800AC300054E7
++:105270000A000860240400018F6800743C09800063
++:105280002405000401093825AF6700749363008387
++:10529000240600010E000570306400FF0E0000417E
++:1052A000240400019362007D020298250E00006232
++:1052B000A373007D0A00086024040001324D0080C1
++:1052C00039AC0080546CFF6C8F6400840A0008C9FC
++:1052D0002645000127BDFFC83C0A0008AFBF0030CB
++:1052E000AFB5002CAFB40028AFB30024AFB200209C
++:1052F000AFB1001CAFB00018034AD8212409004008
++:10530000AF490814AF4008108F4209448F43095039
++:105310008F4609548F47095C8F48094C9344010814
++:105320009345010BAF820064308400FF30A500FF7D
++:10533000AF830050AF86004CAF87005C0E00084A78
++:10534000AF8800601440017D8FBF0030A760006807
++:10535000934D0900240B00503C15080026B53D482C
++:1053600031AC00FF3C12080026523D58118B00035F
++:10537000000000000000A8210000902193510109C5
++:105380008F9F005024040010322E007F000E68C052
++:10539000000E6140018D282124B40088AF54081804
++:1053A0008F4901048F4A09A43C0B000E034BC02116
++:1053B000012A10233C010800AC223D6C8F430958A0
++:1053C0003C010800A0243D9097470908007F302346
++:1053D0003C010800AC263D7030E8FFFF0008C9C062
++:1053E0003C010800AC3F3D94AF59002C974209089E
++:1053F0009710002C8EB10000930F001803749821B1
++:10540000A7900058AF9300440220F80931F000FF44
++:10541000304E000215C001B2304F000111E0014FC3
++:10542000000000009343093E3066000814C00002EB
++:10543000241400030000A0218F5809A424130001A4
++:105440003C010800AC383D98934F0934935109371B
++:1054500031EC00FF322E00FF028E6821000D288003
++:1054600000AC5021015058213C010800A42B3D887C
++:105470003C010800A42A3D8693490934312200FFEB
++:1054800002022021249000103C010800A4303D8439
++:10549000240700068F9F00503C010800AC273D8C7C
++:1054A0008F88005C8F59095800008021011F282334
++:1054B00004A00149033F20230480014700A4302BAE
++:1054C00010C00149000000003C010800AC253D70FF
++:1054D0008E4200000040F809000000003043000246
++:1054E000146000F80040882130440001548000100E
++:1054F0008E4200043C0908008D293D743C0AC0001E
++:10550000012A8025AF500E008F45000030AB000807
++:105510001160FFFD00000000974D0E0824100001EF
++:10552000A78D003C8F4C0E04AF8C00348E420004DB
++:105530000040F8090000000002228825322E0002F7
++:1055400015C00180000000003C09080095293D7C41
++:105550003C06080094C63D883C0A0800954A3D7EFA
++:105560003C1908008F393D74012660213C18080061
++:105570008F183D983C03080094633D92018A2021D6
++:105580008F4E09400329F821248F000203E32821CC
++:10559000031968213C010800A42C3D8AAF8E0064E9
++:1055A0003C010800AC2D3D983C010800A4253D803D
++:1055B0000E00009E31E4FFFF8F870048004020214D
++:1055C0003C010800A0273D918E42000824E800011C
++:1055D000AF8800480040F809000000009344010B28
++:1055E0008F4C002C974A09083C0B000E034B4021BE
++:1055F0003149FFFF000919C08F8B0050AF43002CC9
++:10560000974309089506001A00403821308A004067
++:1056100030DFFFFFAC5F00008D19001C0040482107
++:10562000AC5900048D180020AC580008910F0019E7
++:1056300031E30003107300F0000000002862000254
++:105640001440010924050002106500FD240D00032B
++:10565000106D010D00000000114000D90000000095
++:105660003C0A0800954A3D8625420001934D0934C5
++:1056700093580921950E002A31A300FF00032082D0
++:10568000331F00FF9798005800047E00001FCC00D5
++:1056900001F940253049FFFF0109102501D83021CB
++:1056A0003C0540000045502500066C00ACED0004B0
++:1056B000ACEA0000934309203C04000624ED0014EA
++:1056C0000003FE0003E4C825ACF900088F49092C4B
++:1056D000270F000131EE7FFFACE9000C8F48093045
++:1056E000A78E005824E90028ACE800108F4509383F
++:1056F00001204021ACE50014ADAB00048F4209400D
++:10570000ADA20008934B09373C1F080093FF3D9062
++:105710008F4309488F4A0940316600FF00D4202199
++:10572000006A78230004C700001FCC000319282555
++:1057300031EEFFFC00AE1025ADA2000CADA00010B4
++:10574000AF4C002C934C093E318B00085160000F88
++:105750008E58000C3C06010134CA080AACEA002845
++:105760008F4B0074AD2B00043C0C0800918C3D90D5
++:105770003187001050E00003AD2000088F62006008
++:10578000AD2200082528000C8E58000C0300F809F3
++:10579000010020213C19080097393D8A3C1F080070
++:1057A00097FF3D7E033F782125E900020E0000C7E8
++:1057B0003124FFFF3C0E08008DCE3D6C3C080800F4
++:1057C0008D083D7401C828233C010800AC253D6CC0
++:1057D00014A00006000000003C0308008C633D8C10
++:1057E000346400403C010800AC243D8C1200007081
++:1057F0008F8C00448F470E108F900044AE0700201E
++:105800008F4D0E18AE0D00243C10080096103D8000
++:105810000E0000600000000024020040AF420814A7
++:105820008F8600508F8A004C00D01821006A5823C0
++:1058300019600004AF830050AF6300548F650054BB
++:10584000AF85004C1200000C000000008F44007473
++:10585000936800813409FA002D0E000711C000057D
++:1058600000891821937F0081241901F403F9780439
++:1058700001E41821AF63000C8F44095C8F83005C46
++:105880000083C0231B000003000000008F50095C50
++:10589000AF90005C0E000062000000008F8C005092
++:1058A0008E4700103C010800AC2C3D9400E0F80944
++:1058B000000000003C0D08008DAD3D6C55A0FEF5CC
++:1058C000240700068F450024975909088F8B006430
++:1058D0008F9400503C0F001F978200588F86005411
++:1058E0008F93004C3328FFFF35E9FF8000A9502437
++:1058F000000871C032320100AF4E0024A4C2002C57
++:10590000AF4A0024AF6B0044AF740050AF73005433
++:105910001640008032380010570000868EA4000424
++:10592000322300405460001B8EB100088EB0000C82
++:105930000200F809000000008FBF00308FB5002C76
++:105940008FB400288FB300248FB200208FB1001CC9
++:105950008FB0001803E0000827BD00389347010905
++:105960008F8800380007FE0003E8C825AF59008083
++:105970008F5809A08F5309A4AFB80010AF580E1468
++:105980008FB40010AF540E10AF530E1C0A00096202
++:10599000AF530E180220F809000000008EB0000C72
++:1059A0000200F809000000000A000AA88FBF0030BA
++:1059B000A5800020A59300220A000A5BAD93002475
++:1059C0003C09080095293D863C06080094C63D80A8
++:1059D0000A0009F4012610213C010800AC203D70AA
++:1059E0000A00098E8E4200003C010800AC243D7084
++:1059F0000A00098E8E4200003C03080094633D8A31
++:105A00003C04080094843D803C1F080097FF3D7CC7
++:105A1000951800240064C821033F782300186C0007
++:105A200025EEFFF201AE2825AC45000C240208004B
++:105A3000ACE20014ACE000100A0009EF24E7001803
++:105A400095060024950900280006240000091C0082
++:105A5000349F810034790800ACFF000CACF90010D1
++:105A60000A0009EF24E700141460FEFB00000000A8
++:105A70009518002400187C0035EE0800ACEE000CF0
++:105A80000A0009EF24E700103C07080094E73D8076
++:105A90003C04080094843D8A3C03080094633D7CE8
++:105AA00095190024951800280087F82103E378232E
++:105AB0002407080000192C0000186C0025EEFFEEEA
++:105AC00001AE302534A28100AD2700182527001C27
++:105AD000AD22000CAD2600100A0009EFAD20001425
++:105AE00093520109000028210E000602324400FFF3
++:105AF0008FBF00308FB5002C8FB400288FB30024E7
++:105B00008FB200208FB1001C8FB0001803E0000896
++:105B100027BD0038935F010933E400FF0E00066DD6
++:105B200000002821323800105300FF7E322300404D
++:105B30008EA400040080F809000000000A000AA2F8
++:105B4000322300401200FF5F000000008F540E144B
++:105B50008F920044AE5400208F530E1C0A000A8A14
++:105B6000AE5300248F82001C008040213C040100C1
++:105B70009047008530E3002010600009000000001D
++:105B80003C0708008CE73D948F83001800E3202336
++:105B9000048000089389000414E30003010020211D
++:105BA00003E00008008010213C04010003E000082D
++:105BB000008010211120000B006738238F8C0020FB
++:105BC00024090034918B00BC316A0002514000016D
++:105BD0002409003000E9682B15A0FFF10100202105
++:105BE00000E938232419FFFC00B9C02400F9782407
++:105BF00000F8702B15C0FFEA01E8202130C2000335
++:105C00000002182314C00012306900030000302184
++:105C100000A9702101C6682100ED602B1180FFE012
++:105C20003C0401002D2F00010006482B01053821FE
++:105C300001E9302414C0FFDA24E4FFFC2419FFFC3E
++:105C400000B9C0240308202103E0000800801021CF
++:105C50008F8B002024060004916A00BC31440004AC
++:105C60001480FFEC00A970210A000B5E00003021B7
++:105C700027BDFFE8AFBF00108F460100934A01091E
++:105C80003C1F08008FFF00902407FF80314F00FF6A
++:105C900031E8007F0008614003E6C821032CC021E1
++:105CA00027090120012770243C010800A02F3DD0C6
++:105CB000AF4E080C3C0D08008DAD00903C040080F8
++:105CC0003482000301A65821016C182124650120AB
++:105CD00030AA007801424025AF48081C3C1F08004C
++:105CE0008FFF00908F88004003E6C0213319000722
++:105CF00003074824033A7821AF49002825E909C061
++:105D0000952E00023C0D08008DAD008C3C0A080069
++:105D10008D4A009031CC3FFF01A61821000C59801C
++:105D2000006B282100A72024AF44002C95220002FC
++:105D30003C1F08008FFF008C9107008530593FFF02
++:105D400003E678210019C1800146702101F868211D
++:105D500031CC007F31AB007F019A2821017A50219C
++:105D60003C03000C3C04000E00A328210144102138
++:105D700030E6002027470980AF82002CAF88001C46
++:105D8000AF890024AF85002010C00006AF8700282F
++:105D90008D0200508CA4010C0044302318C0007701
++:105DA00000000000910C0085240DFFDF018D3824D8
++:105DB000A10700858F8B001C8F8900248F87002806
++:105DC0008D65004CAF850018912F000D31EE00203D
++:105DD00011C000170000000024090001A38900047D
++:105DE000AF80000C8CE400248F85000C240A00088E
++:105DF000AF800008AF8000103C010800A42A3D7E5F
++:105E00003C010800A4203D920E000B32000030211E
++:105E10008F8500248FBF0010AF82001490A8000D62
++:105E200027BD00180008394203E0000830E20001F5
++:105E3000913F00022418000133F900FF001921826C
++:105E400010980039240800021088005B8F86002C0F
++:105E50008CE5002414A0001B8F9F002091220000DD
++:105E6000240A00053046003F10CA00472404000100
++:105E70008F860008A3840004AF860010AF86000C54
++:105E80008CE400248F85000C240A00083C010800E3
++:105E9000A42A3D7E3C010800A4203D920E000B3256
++:105EA000000000008F8500248FBF0010AF82001417
++:105EB00090A8000D27BD00180008394203E0000833
++:105EC00030E200018CF800088CF900248FEE00C449
++:105ED000A38000048CE40024AF8E000C8F85000C9E
++:105EE0008F86000803197823240A0008AF8F00105A
++:105EF0003C010800A42A3D7E3C010800A4203D92FC
++:105F00000E000B32000000008F8500248FBF0010B0
++:105F1000AF82001490A8000D27BD00180008394278
++:105F200003E0000830E20001912300003062003FEE
++:105F3000104400278F8500208CE400241480002169
++:105F4000000000008D2E00183C187FFF8F85002078
++:105F5000370FFFFF01CF1824AF8300088F9F000881
++:105F60008CA8008403E8C82B1720000203E020213E
++:105F70008CA400840A000BEDAF8400088CA3010CF4
++:105F80000A000BCBAF8300188D2C00188F860008F9
++:105F90003C0D7FFF8F89002035A3FFFF018358242C
++:105FA00024040001AF8B0010AD2000CCA3840004BA
++:105FB0000A000BF9AF86000C8CCA00140A000BED26
++:105FC000AF8A00088CA300C80A000C30AF83000819
++:105FD0008F84002C8CAC00648C8D0014018D582BA8
++:105FE00011600004000000008CA200640A000C3064
++:105FF000AF8200088C8200140A000C30AF820008C7
++:106000008F85000C27BDFFE0AFBF0018AFB10014B3
++:1060100014A00007AFB000108F86002424020005F2
++:1060200090C400003083003F106200B68F840020CF
++:106030008F91000800A080218F8C00283C0508006B
++:106040008CA53D708D8B000431663FFF00C5502B41
++:106050005540000100C02821938D000411A0007359
++:1060600000B0F82B8F98002024040034930F00BC5C
++:1060700031EE000251C000012404003000A4C82BFE
++:10608000172000D10000000000A4282300B0F82B46
++:106090003C010800A4243D7C17E000680200202198
++:1060A0003C0308008C633D6C0083102B54400001BE
++:1060B000008018218F8800243C010800AC233D7427
++:1060C000000048219104000D308300205060000141
++:1060D0008F490E188F8300140123382B10E00059CC
++:1060E000000000003C0408008C843D7400895821A5
++:1060F000006B502B114000560090602B006930233C
++:1061000000C020213C010800AC263D7412000003B1
++:10611000241FFFFC1090008A32270003009FC82430
++:106120003C010800AC393D743C010800A4203D92BC
++:106130008F84000C120400078F830020AF910008A9
++:10614000020020218C7100CCAF90000C26300001A1
++:10615000AC7000CC3C0208008C423D748F8A001069
++:10616000240700180082202301422823AF84000C5A
++:1061700010800002AF850010240700108F86001CDD
++:106180003C010800A0273D902407004090CC0085EA
++:10619000318B00C0116700408F8D001414A00015D2
++:1061A00000002021934A01098F420974314500FF04
++:1061B0000002260224A300013090007F3071007F8E
++:1061C0001230007A2407FF80A0C300833C09080036
++:1061D0008D293D8C8F880024240D0002352C000869
++:1061E0003C010800A02D3DD13C010800AC2C3D8CA9
++:1061F00024040010910E000D31C6002010C00005CF
++:1062000000801821240800013C010800AC283D74DE
++:10621000348300018FBF00188FB100148FB00010BD
++:106220000060102103E0000827BD00203C010800A9
++:10623000A4203D7C13E0FF9A020020210A000C817B
++:1062400000A020213C0408008C843D740090602B49
++:106250001180FFAE000000003C0F080095EF3D7C70
++:1062600001E4702101C6682B11A000072C820004F4
++:106270003C1F60008FF954043338003F1700FFE5DE
++:10628000240300422C8200041040FFA0240300429B
++:106290000A000CDF8FBF0018152DFFC000000000A2
++:1062A0008CDF00743C0380002405FF8003E3C825D5
++:1062B000ACD9007490D80085240E0004240400108A
++:1062C000330F003F01E54025A0C800858F880024DA
++:1062D0003C010800A02E3DD1240300019106000DD1
++:1062E00030C9002015200003000000003C03080016
++:1062F0008C633D743C010800AC233D6C0A000CD655
++:10630000000000008F8700108C88008400E8282B94
++:1063100014A0000200E088218C910084240900016F
++:10632000A38900048F440E18022028210E000B328E
++:1063300002203021022080210A000C67AF82001465
++:1063400000071823306600033C010800A4263D9294
++:10635000122000058F8C0020918B00BC316A000454
++:106360001540001524CD00043C0F080095EF3D9228
++:1063700001E4702100AE302B50C0FF6E8F84000C02
++:106380002C85000514A0FFA32403004230980003CD
++:1063900017000002009818232483FFFC3C0108002A
++:1063A000AC233D740A000CA30000000000A7582491
++:1063B0000A000CCB016718263C010800A42D3D9271
++:1063C0000A000D33000000003C010800AC203D74C1
++:1063D0000A000CDE240300428F83001014600007C3
++:1063E000000010218F88002424050005910600007C
++:1063F00030C400FF108500030000000003E0000827
++:1064000000000000910A0018314900FF000939C25C
++:1064100014E0FFFA8F85001C3C04080094843D7C46
++:106420003C0308008C633D943C1908008F393D748F
++:106430003C0F080095EF3D920064C0218CAD0054E4
++:106440000319702101CF6021018D58231960001DAF
++:1064500000000000910E001C8F8C002C974B0E103A
++:1064600031CD00FF8D850004016D30238D88000043
++:1064700030CEFFFF000E510000AAC82100003821D5
++:1064800001072021032A182B0083C021AD990004A5
++:10649000AD980000918F000A01CF6821A18D000AFC
++:1064A0008F88002C974B0E12A50B0008950A003818
++:1064B00025490001A50900389107000D34E60008C0
++:1064C000A106000D03E000080000000027BDFFE06A
++:1064D000938700048F8F00248FAD00143C0E7FFF44
++:1064E0008F89000C35C8FFFFAFBF001CAFB000188C
++:1064F00001A8182491EA000D000717C03C1FBFFF38
++:10650000006258252D2E00018F90001837F9FFFFEB
++:106510003C1808008F183D943C0F080095EF3D8A09
++:1065200001796824000E47803C07EFFF3C05F0FF2F
++:1065300001A818253149002034E2FFFF34ACFFFFE9
++:106540000310582327A500102406000225EA0002A4
++:1065500000621824008080211520000200004021E4
++:106560008F480E1CA7AA0012056000372407000000
++:1065700030FF00FF001FCF008F8B001C00793825F3
++:10658000AFA70014916F00853C08080091083D9169
++:106590003C18DFFF31EE00C0370AFFFF000E182B5A
++:1065A0003C1F080097FF3D8400EA6824A3A800115F
++:1065B0000003174001A248258FB90010AFA90014AD
++:1065C0003C0A0800914A3D93A7BF00168FA800140B
++:1065D000032CC0243C0B01003C0F0FFF030B1825BC
++:1065E0003147000335EEFFFF010C68240007160059
++:1065F000006EF8243C09700001A2C82503E9582563
++:10660000AFB90014AFAB00100E000076A3A00015C8
++:106610008F8C0024260200089186000D30C40020D3
++:10662000108000068FBF001C3C05080094A53D802B
++:1066300024B0FFFF3C010800A4303D808FB000185B
++:1066400003E0000827BD00208F9800140118502B8C
++:106650005540FFC7240700010A000DB630FF00FFB8
++:106660009382000427BDFFE0AFBF00181040000F69
++:10667000008050218F880024240B00058F8900089A
++:10668000910700008F8400200100282130E3003FA3
++:106690008F86002C106B000800003821AFA9001075
++:1066A0000E00040EAFAA0014A38000048FBF0018D0
++:1066B00003E0000827BD00208D1900183C0F0800DA
++:1066C0008DEF3D748F9800103C027FFF8D08001401
++:1066D000345FFFFF033F682401F8702101AE60239F
++:1066E00001883821AFA900100E00040EAFAA0014D3
++:1066F0000A000E04A38000048F8700243C050800D4
++:1067000094A53D923C0208008C423D8C90E6000D21
++:106710000005240030C300201060002C00444025F8
++:106720008F85001C00006021240B000190A30085D0
++:1067300000004821240A00013C0F800035EE007063
++:106740008DC70000AF8700308F5801780700FFFE2B
++:106750003C038000347900708F3800003C0508004D
++:106760008CA500743C0D08008DAD007003077823E4
++:1067700000AF38210000102100EF302B01A22021B2
++:10678000008618213C010800AC2700743C01080079
++:10679000AC230070AF4B01483C1908008F393D9481
++:1067A000A7490144A74A0146AF59014C3C0B0800D8
++:1067B000916B3D91A34B0152AF4801543C0810002E
++:1067C000A74C015803E00008AF4801788F4B0E1C1E
++:1067D0003C0A08008D4A3D7497490E16974D0E14D9
++:1067E00001456021312AFFFF0A000E2731A9FFFF72
++:1067F0008F8300249064000D308200201040002917
++:10680000000000000000482100005021000040214D
++:106810003C07800034EB00708D670000AF870030CC
++:106820008F4C01780580FFFE3C0D800035AC007078
++:106830008D8B00003C0508008CA500743C0408000A
++:106840008C8400700167302300A67821000010219D
++:1068500001E6C82B0082C021031970213C01080009
++:10686000AC2F00743C010800AC2E0070AF49014809
++:106870003C0D08008DAD3D94A7480144240900401B
++:10688000A74A01463C081000240AFF91AF4D014C75
++:10689000A34A0152AF490154A740015803E0000840
++:1068A000AF4801788F490E1897460E1297450E1083
++:1068B00030CAFFFF0A000E5D30A8FFFF8F8300245F
++:1068C00027BDFFF89064000D308200201040003A90
++:1068D00000000000240B000100004821240A0001F0
++:1068E0003C088000350700708CE30000AF83003067
++:1068F0008F4C01780580FFFE3C0E80003C040800B0
++:1069000090843DD035C700708CEC00003C05080039
++:106910008CA50074A3A400033C1908008F390070F3
++:106920008FAD00000183302300A638210000102124
++:106930000322782100E6C02B01F8602101AE40253A
++:10694000AFA800003C010800AC2700743C0108001F
++:10695000AC2C00709346010A3C04080090843DD1A1
++:10696000A3A00002A3A600018FA300003C0580FFA6
++:106970003099007F34A2FFFF006278240019C6001E
++:1069800001F87025240D3000AF4E014C27BD0008E2
++:10699000AF4D0154A7400158AF4B0148A7490144EE
++:1069A000A74A01463C091000240AFF80A34A01526D
++:1069B00003E00008AF4901788F4B0E1897460E127E
++:1069C00097450E1030CAFFFF0A000E9130A9FFFF55
++:1069D0008F85001C2402008090A40085308300C0B5
++:1069E000106200058F8600208F8800088F87000CBA
++:1069F000ACC800C8ACC700C403E000080000000039
++:106A00003C0A0800254A39543C09080025293A2047
++:106A10003C08080025082DD43C07080024E73B3437
++:106A20003C06080024C637C43C05080024A5353CB4
++:106A30003C040800248431643C0308002463385C6F
++:106A40003C020800244236303C010800AC2A3D508C
++:106A50003C010800AC293D4C3C010800AC283D48F5
++:106A60003C010800AC273D543C010800AC263D64C5
++:106A70003C010800AC253D5C3C010800AC243D58BD
++:106A80003C010800AC233D683C010800AC223D609D
++:086A900003E000080000000013
++:00000001FF
 diff --git a/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex b/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex
 new file mode 100644
 index 0000000..43d7c4f
@@ -66010,24 +72267,21 @@ index 0000000..43d7c4f
 +:1095C00080080000800E00008008008080080000F5
 +:1095D00080000A8080000A00800009808000090065
 +:00000001FF
-diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c
-index eb14e05..5156de7 100644
---- a/fs/9p/vfs_addr.c
-+++ b/fs/9p/vfs_addr.c
-@@ -187,7 +187,7 @@ static int v9fs_vfs_writepage_locked(struct page *page)
-       retval = v9fs_file_write_internal(inode,
-                                         v9inode->writeback_fid,
--                                        (__force const char __user *)buffer,
-+                                        (const char __force_user *)buffer,
-                                         len, &offset, 0);
-       if (retval > 0)
-               retval = 0;
 diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
-index 3662f1d..90558b5 100644
+index 703342e..2b96b597 100644
 --- a/fs/9p/vfs_inode.c
 +++ b/fs/9p/vfs_inode.c
-@@ -1312,7 +1312,7 @@ static void *v9fs_vfs_follow_link(struct dentry *dentry, struct nameidata *nd)
+@@ -540,8 +540,7 @@ static struct inode *v9fs_qid_iget(struct super_block *sb,
+       unlock_new_inode(inode);
+       return inode;
+ error:
+-      unlock_new_inode(inode);
+-      iput(inode);
++      iget_failed(inode);
+       return ERR_PTR(retval);
+ }
+@@ -1312,7 +1311,7 @@ static void *v9fs_vfs_follow_link(struct dentry *dentry, struct nameidata *nd)
  void
  v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
  {
@@ -66036,11 +72290,25 @@ index 3662f1d..90558b5 100644
  
        p9_debug(P9_DEBUG_VFS, " %pd %s\n",
                 dentry, IS_ERR(s) ? "<error>" : s);
+diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c
+index 9861c7c..4d3ecfb 100644
+--- a/fs/9p/vfs_inode_dotl.c
++++ b/fs/9p/vfs_inode_dotl.c
+@@ -149,8 +149,7 @@ static struct inode *v9fs_qid_iget_dotl(struct super_block *sb,
+       unlock_new_inode(inode);
+       return inode;
+ error:
+-      unlock_new_inode(inode);
+-      iput(inode);
++      iget_failed(inode);
+       return ERR_PTR(retval);
+ }
 diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
-index 270c481..0d8a962 100644
+index 2d0cbbd..a6d6149 100644
 --- a/fs/Kconfig.binfmt
 +++ b/fs/Kconfig.binfmt
-@@ -106,7 +106,7 @@ config HAVE_AOUT
+@@ -103,7 +103,7 @@ config HAVE_AOUT
  
  config BINFMT_AOUT
        tristate "Kernel support for a.out and ECOFF binaries"
@@ -66050,7 +72318,7 @@ index 270c481..0d8a962 100644
          A.out (Assembler.OUTput) is a set of formats for libraries and
          executables used in the earliest versions of UNIX.  Linux used
 diff --git a/fs/afs/inode.c b/fs/afs/inode.c
-index 8a1d38e..300a14e 100644
+index e06f5a2..81d07ac 100644
 --- a/fs/afs/inode.c
 +++ b/fs/afs/inode.c
 @@ -141,7 +141,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
@@ -66072,10 +72340,10 @@ index 8a1d38e..300a14e 100644
                             &data);
        if (!inode) {
 diff --git a/fs/aio.c b/fs/aio.c
-index a793f70..46f45af 100644
+index 480440f..623fd88 100644
 --- a/fs/aio.c
 +++ b/fs/aio.c
-@@ -404,7 +404,7 @@ static int aio_setup_ring(struct kioctx *ctx)
+@@ -441,7 +441,7 @@ static int aio_setup_ring(struct kioctx *ctx)
        size += sizeof(struct io_event) * nr_events;
  
        nr_pages = PFN_UP(size);
@@ -66097,7 +72365,7 @@ index 6530ced..4a827e2 100644
                        goto out_sig;
                if (offset > inode->i_sb->s_maxbytes)
 diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
-index 116fd38..c04182da 100644
+index 35b755e..f4b9e0a 100644
 --- a/fs/autofs4/waitq.c
 +++ b/fs/autofs4/waitq.c
 @@ -59,7 +59,7 @@ static int autofs4_write(struct autofs_sb_info *sbi,
@@ -66245,10 +72513,10 @@ index 4c55668..eeae150 100644
                                fd_offset + ex.a_text);
                if (error != N_DATADDR(ex))
 diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
-index d925f55..d31f527 100644
+index cd46e41..244f778 100644
 --- a/fs/binfmt_elf.c
 +++ b/fs/binfmt_elf.c
-@@ -34,6 +34,7 @@
+@@ -35,6 +35,7 @@
  #include <linux/utsname.h>
  #include <linux/coredump.h>
  #include <linux/sched.h>
@@ -66256,7 +72524,7 @@ index d925f55..d31f527 100644
  #include <asm/uaccess.h>
  #include <asm/param.h>
  #include <asm/page.h>
-@@ -47,7 +48,7 @@
+@@ -48,7 +49,7 @@
  
  static int load_elf_binary(struct linux_binprm *bprm);
  static unsigned long elf_map(struct file *, unsigned long, struct elf_phdr *,
@@ -66265,7 +72533,7 @@ index d925f55..d31f527 100644
  
  #ifdef CONFIG_USELIB
  static int load_elf_library(struct file *);
-@@ -65,6 +66,14 @@ static int elf_core_dump(struct coredump_params *cprm);
+@@ -66,6 +67,14 @@ static int elf_core_dump(struct coredump_params *cprm);
  #define elf_core_dump NULL
  #endif
  
@@ -66280,7 +72548,7 @@ index d925f55..d31f527 100644
  #if ELF_EXEC_PAGESIZE > PAGE_SIZE
  #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE
  #else
-@@ -84,6 +93,15 @@ static struct linux_binfmt elf_format = {
+@@ -85,6 +94,15 @@ static struct linux_binfmt elf_format = {
        .load_binary    = load_elf_binary,
        .load_shlib     = load_elf_library,
        .core_dump      = elf_core_dump,
@@ -66296,7 +72564,7 @@ index d925f55..d31f527 100644
        .min_coredump   = ELF_EXEC_PAGESIZE,
  };
  
-@@ -91,6 +109,8 @@ static struct linux_binfmt elf_format = {
+@@ -92,6 +110,8 @@ static struct linux_binfmt elf_format = {
  
  static int set_brk(unsigned long start, unsigned long end)
  {
@@ -66305,7 +72573,7 @@ index d925f55..d31f527 100644
        start = ELF_PAGEALIGN(start);
        end = ELF_PAGEALIGN(end);
        if (end > start) {
-@@ -99,7 +119,7 @@ static int set_brk(unsigned long start, unsigned long end)
+@@ -100,7 +120,7 @@ static int set_brk(unsigned long start, unsigned long end)
                if (BAD_ADDR(addr))
                        return addr;
        }
@@ -66314,7 +72582,7 @@ index d925f55..d31f527 100644
        return 0;
  }
  
-@@ -160,12 +180,13 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
+@@ -161,12 +181,13 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
        elf_addr_t __user *u_rand_bytes;
        const char *k_platform = ELF_PLATFORM;
        const char *k_base_platform = ELF_BASE_PLATFORM;
@@ -66329,7 +72597,7 @@ index d925f55..d31f527 100644
  
        /*
         * In some cases (e.g. Hyper-Threading), we want to avoid L1
-@@ -207,8 +228,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
+@@ -208,8 +229,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
         * Generate 16 random bytes for userspace PRNG seeding.
         */
        get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
@@ -66344,7 +72612,7 @@ index d925f55..d31f527 100644
        if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
                return -EFAULT;
  
-@@ -323,9 +348,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
+@@ -324,9 +349,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
                return -EFAULT;
        current->mm->env_end = p;
  
@@ -66357,7 +72625,7 @@ index d925f55..d31f527 100644
                return -EFAULT;
        return 0;
  }
-@@ -514,14 +541,14 @@ static inline int arch_check_elf(struct elfhdr *ehdr, bool has_interp,
+@@ -515,14 +542,14 @@ static inline int arch_check_elf(struct elfhdr *ehdr, bool has_interp,
     an ELF header */
  
  static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
@@ -66375,7 +72643,7 @@ index d925f55..d31f527 100644
        unsigned long total_size;
        int i;
  
-@@ -541,6 +568,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
+@@ -542,6 +569,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
                goto out;
        }
  
@@ -66387,7 +72655,7 @@ index d925f55..d31f527 100644
        eppnt = interp_elf_phdata;
        for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
                if (eppnt->p_type == PT_LOAD) {
-@@ -564,8 +596,6 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
+@@ -565,8 +597,6 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
                        map_addr = elf_map(interpreter, load_addr + vaddr,
                                        eppnt, elf_prot, elf_type, total_size);
                        total_size = 0;
@@ -66396,7 +72664,7 @@ index d925f55..d31f527 100644
                        error = map_addr;
                        if (BAD_ADDR(map_addr))
                                goto out;
-@@ -584,8 +614,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
+@@ -585,8 +615,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
                        k = load_addr + eppnt->p_vaddr;
                        if (BAD_ADDR(k) ||
                            eppnt->p_filesz > eppnt->p_memsz ||
@@ -66407,7 +72675,7 @@ index d925f55..d31f527 100644
                                error = -ENOMEM;
                                goto out;
                        }
-@@ -624,9 +654,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
+@@ -625,9 +655,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
                elf_bss = ELF_PAGESTART(elf_bss + ELF_MIN_ALIGN - 1);
  
                /* Map the last of the bss segment */
@@ -66422,7 +72690,7 @@ index d925f55..d31f527 100644
        }
  
        error = load_addr;
-@@ -634,6 +666,336 @@ out:
+@@ -635,6 +667,336 @@ out:
        return error;
  }
  
@@ -66759,7 +73027,7 @@ index d925f55..d31f527 100644
  /*
   * These are the functions used to load ELF style executables and shared
   * libraries.  There is no binary dependent code anywhere else.
-@@ -647,6 +1009,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top)
+@@ -648,6 +1010,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top)
  {
        unsigned long random_variable = 0;
  
@@ -66771,7 +73039,7 @@ index d925f55..d31f527 100644
        if ((current->flags & PF_RANDOMIZE) &&
                !(current->personality & ADDR_NO_RANDOMIZE)) {
                random_variable = (unsigned long) get_random_int();
-@@ -666,7 +1033,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
+@@ -667,7 +1034,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
        unsigned long load_addr = 0, load_bias = 0;
        int load_addr_set = 0;
        char * elf_interpreter = NULL;
@@ -66780,7 +73048,7 @@ index d925f55..d31f527 100644
        struct elf_phdr *elf_ppnt, *elf_phdata, *interp_elf_phdata = NULL;
        unsigned long elf_bss, elf_brk;
        int retval, i;
-@@ -681,6 +1048,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
+@@ -682,6 +1049,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
                struct elfhdr interp_elf_ex;
        } *loc;
        struct arch_elf_state arch_state = INIT_ARCH_ELF_STATE;
@@ -66788,7 +73056,7 @@ index d925f55..d31f527 100644
  
        loc = kmalloc(sizeof(*loc), GFP_KERNEL);
        if (!loc) {
-@@ -839,6 +1207,77 @@ static int load_elf_binary(struct linux_binprm *bprm)
+@@ -840,6 +1208,77 @@ static int load_elf_binary(struct linux_binprm *bprm)
        /* Do this immediately, since STACK_TOP as used in setup_arg_pages
           may depend on the personality.  */
        SET_PERSONALITY2(loc->elf_ex, &arch_state);
@@ -66866,15 +73134,12 @@ index d925f55..d31f527 100644
        if (elf_read_implies_exec(loc->elf_ex, executable_stack))
                current->personality |= READ_IMPLIES_EXEC;
  
-@@ -925,12 +1364,21 @@ static int load_elf_binary(struct linux_binprm *bprm)
- #else
-                       load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
- #endif
+@@ -915,8 +1354,21 @@ static int load_elf_binary(struct linux_binprm *bprm)
+                       if (current->flags & PF_RANDOMIZE)
+                               load_bias += arch_mmap_rnd();
+                       load_bias = ELF_PAGESTART(load_bias);
 -                      total_size = total_mapping_size(elf_phdata,
 -                                                      loc->elf_ex.e_phnum);
--                      if (!total_size) {
--                              error = -EINVAL;
--                              goto out_free_dentry;
 +
 +#ifdef CONFIG_PAX_RANDMMAP
 +                      /* PaX: randomize base address at the default exe base if requested */
@@ -66886,14 +73151,14 @@ index d925f55..d31f527 100644
 +#endif
 +                              load_bias = ELF_PAGESTART(PAX_ELF_ET_DYN_BASE - vaddr + load_bias);
 +                              elf_flags |= MAP_FIXED;
-                       }
++                      }
 +#endif
 +
 +                      total_size = total_mapping_size(elf_phdata, loc->elf_ex.e_phnum);
-               }
-               error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
-@@ -962,9 +1410,9 @@ static int load_elf_binary(struct linux_binprm *bprm)
+                       if (!total_size) {
+                               retval = -EINVAL;
+                               goto out_free_dentry;
+@@ -952,9 +1404,9 @@ static int load_elf_binary(struct linux_binprm *bprm)
                 * allowed task size. Note that p_filesz must always be
                 * <= p_memsz so it is only necessary to check p_memsz.
                 */
@@ -66906,7 +73171,7 @@ index d925f55..d31f527 100644
                        /* set_brk can never work. Avoid overflows. */
                        retval = -EINVAL;
                        goto out_free_dentry;
-@@ -1000,16 +1448,43 @@ static int load_elf_binary(struct linux_binprm *bprm)
+@@ -990,16 +1442,43 @@ static int load_elf_binary(struct linux_binprm *bprm)
        if (retval)
                goto out_free_dentry;
        if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
@@ -66955,7 +73220,23 @@ index d925f55..d31f527 100644
                                            load_bias, interp_elf_phdata);
                if (!IS_ERR((void *)elf_entry)) {
                        /*
-@@ -1237,7 +1712,7 @@ static bool always_dump_vma(struct vm_area_struct *vma)
+@@ -1050,6 +1529,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
+       current->mm->end_data = end_data;
+       current->mm->start_stack = bprm->p;
++#ifndef CONFIG_PAX_RANDMMAP
+       if ((current->flags & PF_RANDOMIZE) && (randomize_va_space > 1)) {
+               current->mm->brk = current->mm->start_brk =
+                       arch_randomize_brk(current->mm);
+@@ -1057,6 +1537,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
+               current->brk_randomized = 1;
+ #endif
+       }
++#endif
+       if (current->personality & MMAP_PAGE_ZERO) {
+               /* Why this, you ask???  Well SVr4 maps page 0 as read-only,
+@@ -1225,7 +1706,7 @@ static bool always_dump_vma(struct vm_area_struct *vma)
   * Decide what to dump of a segment, part, all or none.
   */
  static unsigned long vma_dump_size(struct vm_area_struct *vma,
@@ -66964,7 +73245,7 @@ index d925f55..d31f527 100644
  {
  #define FILTER(type)  (mm_flags & (1UL << MMF_DUMP_##type))
  
-@@ -1275,7 +1750,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
+@@ -1263,7 +1744,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
        if (vma->vm_file == NULL)
                return 0;
  
@@ -66973,7 +73254,7 @@ index d925f55..d31f527 100644
                goto whole;
  
        /*
-@@ -1482,9 +1957,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
+@@ -1470,9 +1951,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
  {
        elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
        int i = 0;
@@ -66985,7 +73266,7 @@ index d925f55..d31f527 100644
        fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
  }
  
-@@ -1493,7 +1968,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
+@@ -1481,7 +1962,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
  {
        mm_segment_t old_fs = get_fs();
        set_fs(KERNEL_DS);
@@ -66994,7 +73275,7 @@ index d925f55..d31f527 100644
        set_fs(old_fs);
        fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata);
  }
-@@ -2213,7 +2688,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2201,7 +2682,7 @@ static int elf_core_dump(struct coredump_params *cprm)
                        vma = next_vma(vma, gate_vma)) {
                unsigned long dump_size;
  
@@ -67003,7 +73284,7 @@ index d925f55..d31f527 100644
                vma_filesz[i++] = dump_size;
                vma_data_size += dump_size;
        }
-@@ -2321,6 +2796,167 @@ out:
+@@ -2309,6 +2790,167 @@ out:
  
  #endif                /* CONFIG_ELF_CORE */
  
@@ -67172,10 +73453,10 @@ index d925f55..d31f527 100644
  {
        register_binfmt(&elf_format);
 diff --git a/fs/block_dev.c b/fs/block_dev.c
-index 975266b..c3d1856 100644
+index c7e4163..6939003 100644
 --- a/fs/block_dev.c
 +++ b/fs/block_dev.c
-@@ -734,7 +734,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
+@@ -732,7 +732,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
        else if (bdev->bd_contains == bdev)
                return true;     /* is a whole device which isn't held */
  
@@ -67185,10 +73466,10 @@ index 975266b..c3d1856 100644
        else if (whole->bd_holder != NULL)
                return false;    /* is a partition of a held device */
 diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
-index 6d67f32..8f33187 100644
+index 0f11ebc..1bf3321 100644
 --- a/fs/btrfs/ctree.c
 +++ b/fs/btrfs/ctree.c
-@@ -1181,9 +1181,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
+@@ -1180,9 +1180,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
                free_extent_buffer(buf);
                add_root_to_dirty_list(root);
        } else {
@@ -67205,7 +73486,7 @@ index 6d67f32..8f33187 100644
  
                WARN_ON(trans->transid != btrfs_header_generation(parent));
 diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
-index 82f0c7c..dff78a8 100644
+index a2ae427..53c2e98 100644
 --- a/fs/btrfs/delayed-inode.c
 +++ b/fs/btrfs/delayed-inode.c
 @@ -462,7 +462,7 @@ static int __btrfs_add_delayed_deletion_item(struct btrfs_delayed_node *node,
@@ -67226,14 +73507,14 @@ index 82f0c7c..dff78a8 100644
  
        if (val < seq || val >= seq + BTRFS_DELAYED_BATCH)
                return 1;
-@@ -1436,7 +1436,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
+@@ -1437,7 +1437,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
                int seq;
                int ret;
  
 -              seq = atomic_read(&delayed_root->items_seq);
 +              seq = atomic_read_unchecked(&delayed_root->items_seq);
  
-               ret = btrfs_wq_run_delayed_node(delayed_root, root, 0);
+               ret = btrfs_wq_run_delayed_node(delayed_root, fs_info, 0);
                if (ret)
 diff --git a/fs/btrfs/delayed-inode.h b/fs/btrfs/delayed-inode.h
 index f70119f..ab5894d 100644
@@ -67258,7 +73539,7 @@ index f70119f..ab5894d 100644
        spin_lock_init(&delayed_root->lock);
        init_waitqueue_head(&delayed_root->wait);
 diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
-index 05fef19..f3774b8 100644
+index 9e66f5e..f7caaf0 100644
 --- a/fs/btrfs/super.c
 +++ b/fs/btrfs/super.c
 @@ -271,7 +271,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
@@ -67271,7 +73552,7 @@ index 05fef19..f3774b8 100644
        wake_up(&root->fs_info->transaction_wait);
        wake_up(&root->fs_info->transaction_blocked_wait);
 diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
-index 94edb0a..e94dc93 100644
+index e8a4c86..f8c22ae 100644
 --- a/fs/btrfs/sysfs.c
 +++ b/fs/btrfs/sysfs.c
 @@ -472,7 +472,7 @@ static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add)
@@ -67310,10 +73591,10 @@ index 2299bfd..4098e72 100644
  
        return 0;
 diff --git a/fs/btrfs/tree-log.h b/fs/btrfs/tree-log.h
-index 154990c..d0cf699 100644
+index 6916a78..4598936 100644
 --- a/fs/btrfs/tree-log.h
 +++ b/fs/btrfs/tree-log.h
-@@ -43,7 +43,7 @@ static inline void btrfs_init_log_ctx(struct btrfs_log_ctx *ctx)
+@@ -45,7 +45,7 @@ static inline void btrfs_init_log_ctx(struct btrfs_log_ctx *ctx)
  static inline void btrfs_set_log_full_commit(struct btrfs_fs_info *fs_info,
                                             struct btrfs_trans_handle *trans)
  {
@@ -67323,7 +73604,7 @@ index 154990c..d0cf699 100644
  
  static inline int btrfs_need_log_full_commit(struct btrfs_fs_info *fs_info,
 diff --git a/fs/buffer.c b/fs/buffer.c
-index 20805db..2e8fc69 100644
+index c7a5602..18eabd1 100644
 --- a/fs/buffer.c
 +++ b/fs/buffer.c
 @@ -3417,7 +3417,7 @@ void __init buffer_init(void)
@@ -67336,7 +73617,7 @@ index 20805db..2e8fc69 100644
  
        /*
 diff --git a/fs/cachefiles/bind.c b/fs/cachefiles/bind.c
-index fbb08e9..0fda764 100644
+index 6af790f..ec4c1e6 100644
 --- a/fs/cachefiles/bind.c
 +++ b/fs/cachefiles/bind.c
 @@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args)
@@ -67434,7 +73715,7 @@ index 8c52472..c4e3a69 100644
  
  #else
 diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
-index 1e51714..411eded 100644
+index ab857ab..ff8d593 100644
 --- a/fs/cachefiles/namei.c
 +++ b/fs/cachefiles/namei.c
 @@ -309,7 +309,7 @@ try_again:
@@ -67477,7 +73758,7 @@ index eccd339..4c1d995 100644
                        return 0;
  
 diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
-index 83e9976..bfd1eee 100644
+index 4248307..f41e44e 100644
 --- a/fs/ceph/dir.c
 +++ b/fs/ceph/dir.c
 @@ -127,6 +127,8 @@ static int __dcache_readdir(struct file *file,  struct dir_context *ctx,
@@ -67492,7 +73773,7 @@ index 83e9976..bfd1eee 100644
 @@ -190,7 +192,12 @@ more:
  
        dout(" %llu (%llu) dentry %p %pd %p\n", di->offset, ctx->pos,
-            dentry, dentry, dentry->d_inode);
+            dentry, dentry, d_inode(dentry));
 -      if (!dir_emit(ctx, dentry->d_name.name,
 +      name = dentry->d_name.name;
 +      if (name == dentry->d_iname) {
@@ -67501,8 +73782,8 @@ index 83e9976..bfd1eee 100644
 +      }
 +      if (!dir_emit(ctx, name,
                      dentry->d_name.len,
-                     ceph_translate_ino(dentry->d_sb, dentry->d_inode->i_ino),
-                     dentry->d_inode->i_mode >> 12)) {
+                     ceph_translate_ino(dentry->d_sb, d_inode(dentry)->i_ino),
+                     d_inode(dentry)->i_mode >> 12)) {
 @@ -248,7 +255,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
        struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
        struct ceph_mds_client *mdsc = fsc->mdsc;
@@ -67513,10 +73794,10 @@ index 83e9976..bfd1eee 100644
        u32 ftype;
        struct ceph_mds_reply_info_parsed *rinfo;
 diff --git a/fs/ceph/super.c b/fs/ceph/super.c
-index a63997b..ddc0577 100644
+index 4e99053..a7e2a5f 100644
 --- a/fs/ceph/super.c
 +++ b/fs/ceph/super.c
-@@ -889,7 +889,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
+@@ -885,7 +885,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
  /*
   * construct our own bdi so we can control readahead, etc.
   */
@@ -67525,7 +73806,7 @@ index a63997b..ddc0577 100644
  
  static int ceph_register_bdi(struct super_block *sb,
                             struct ceph_fs_client *fsc)
-@@ -906,7 +906,7 @@ static int ceph_register_bdi(struct super_block *sb,
+@@ -902,7 +902,7 @@ static int ceph_register_bdi(struct super_block *sb,
                        VM_MAX_READAHEAD * 1024 / PAGE_CACHE_SIZE;
  
        err = bdi_register(&fsc->backing_dev_info, NULL, "ceph-%ld",
@@ -67579,10 +73860,10 @@ index 7febcf2..62a5721 100644
                                        server->ops->print_stats(m, tcon);
                        }
 diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
-index d72fe37..ded5511 100644
+index 0a9fb6b..9def7fa 100644
 --- a/fs/cifs/cifsfs.c
 +++ b/fs/cifs/cifsfs.c
-@@ -1092,7 +1092,7 @@ cifs_init_request_bufs(void)
+@@ -1082,7 +1082,7 @@ cifs_init_request_bufs(void)
  */
        cifs_req_cachep = kmem_cache_create("cifs_request",
                                            CIFSMaxBufSize + max_hdr_size, 0,
@@ -67591,7 +73872,7 @@ index d72fe37..ded5511 100644
        if (cifs_req_cachep == NULL)
                return -ENOMEM;
  
-@@ -1119,7 +1119,7 @@ cifs_init_request_bufs(void)
+@@ -1109,7 +1109,7 @@ cifs_init_request_bufs(void)
        efficient to alloc 1 per page off the slab compared to 17K (5page)
        alloc of large cifs buffers even when page debugging is on */
        cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq",
@@ -67600,7 +73881,7 @@ index d72fe37..ded5511 100644
                        NULL);
        if (cifs_sm_req_cachep == NULL) {
                mempool_destroy(cifs_req_poolp);
-@@ -1204,8 +1204,8 @@ init_cifs(void)
+@@ -1194,8 +1194,8 @@ init_cifs(void)
        atomic_set(&bufAllocCount, 0);
        atomic_set(&smBufAllocCount, 0);
  #ifdef CONFIG_CIFS_STATS2
@@ -67612,7 +73893,7 @@ index d72fe37..ded5511 100644
  
        atomic_set(&midCount, 0);
 diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
-index 22b289a..bbbba08 100644
+index 22b289a..bbbba082 100644
 --- a/fs/cifs/cifsglob.h
 +++ b/fs/cifs/cifsglob.h
 @@ -823,35 +823,35 @@ struct cifs_tcon {
@@ -67696,10 +73977,10 @@ index 22b289a..bbbba08 100644
  GLOBAL_EXTERN atomic_t smBufAllocCount;
  GLOBAL_EXTERN atomic_t midCount;
 diff --git a/fs/cifs/file.c b/fs/cifs/file.c
-index ca30c39..570fb94 100644
+index 3f50cee..7741620 100644
 --- a/fs/cifs/file.c
 +++ b/fs/cifs/file.c
-@@ -2055,10 +2055,14 @@ static int cifs_writepages(struct address_space *mapping,
+@@ -2054,10 +2054,14 @@ static int cifs_writepages(struct address_space *mapping,
                index = mapping->writeback_index; /* Start from prev offset */
                end = -1;
        } else {
@@ -67718,7 +73999,7 @@ index ca30c39..570fb94 100644
        }
        server = cifs_sb_master_tcon(cifs_sb)->ses->server;
 diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
-index 3379463..3af418a 100644
+index 8442b8b..ea6986f 100644
 --- a/fs/cifs/misc.c
 +++ b/fs/cifs/misc.c
 @@ -170,7 +170,7 @@ cifs_buf_get(void)
@@ -67740,7 +74021,7 @@ index 3379463..3af418a 100644
  
        }
 diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
-index d297903..1cb7516 100644
+index fc537c2..47d654c 100644
 --- a/fs/cifs/smb1ops.c
 +++ b/fs/cifs/smb1ops.c
 @@ -622,27 +622,27 @@ static void
@@ -67849,7 +74130,7 @@ index d297903..1cb7516 100644
  }
  
 diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
-index eab05e1..ffe5ea4 100644
+index 54daee5..2669fcb 100644
 --- a/fs/cifs/smb2ops.c
 +++ b/fs/cifs/smb2ops.c
 @@ -418,8 +418,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
@@ -67970,7 +74251,7 @@ index eab05e1..ffe5ea4 100644
  }
  
 diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
-index 65cd7a8..3518676 100644
+index 54cbe19..fcd4a1b 100644
 --- a/fs/cifs/smb2pdu.c
 +++ b/fs/cifs/smb2pdu.c
 @@ -2147,8 +2147,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
@@ -67984,7 +74265,7 @@ index 65cd7a8..3518676 100644
  
        req->FileIndex = cpu_to_le32(index);
 diff --git a/fs/coda/cache.c b/fs/coda/cache.c
-index 46ee6f2..89a9e7f 100644
+index 5bb630a..043dc70 100644
 --- a/fs/coda/cache.c
 +++ b/fs/coda/cache.c
 @@ -24,7 +24,7 @@
@@ -68162,10 +74443,10 @@ index 4d24d17..4f8c09e 100644
  
  /*
 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
-index afec645..9c65620 100644
+index 6b8e2f0..9b13a5e 100644
 --- a/fs/compat_ioctl.c
 +++ b/fs/compat_ioctl.c
-@@ -621,7 +621,7 @@ static int serial_struct_ioctl(unsigned fd, unsigned cmd,
+@@ -622,7 +622,7 @@ static int serial_struct_ioctl(unsigned fd, unsigned cmd,
                        return -EFAULT;
                  if (__get_user(udata, &ss32->iomem_base))
                        return -EFAULT;
@@ -68174,7 +74455,7 @@ index afec645..9c65620 100644
                  if (__get_user(ss.iomem_reg_shift, &ss32->iomem_reg_shift) ||
                    __get_user(ss.port_high, &ss32->port_high))
                        return -EFAULT;
-@@ -703,8 +703,8 @@ static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd,
+@@ -704,8 +704,8 @@ static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd,
        for (i = 0; i < nmsgs; i++) {
                if (copy_in_user(&tmsgs[i].addr, &umsgs[i].addr, 3*sizeof(u16)))
                        return -EFAULT;
@@ -68185,7 +74466,7 @@ index afec645..9c65620 100644
                        return -EFAULT;
        }
        return sys_ioctl(fd, cmd, (unsigned long)tdata);
-@@ -797,7 +797,7 @@ static int compat_ioctl_preallocate(struct file *file,
+@@ -798,7 +798,7 @@ static int compat_ioctl_preallocate(struct file *file,
            copy_in_user(&p->l_len,     &p32->l_len,    sizeof(s64)) ||
            copy_in_user(&p->l_sysid,   &p32->l_sysid,  sizeof(s32)) ||
            copy_in_user(&p->l_pid,     &p32->l_pid,    sizeof(u32)) ||
@@ -68194,7 +74475,7 @@ index afec645..9c65620 100644
                return -EFAULT;
  
        return ioctl_preallocate(file, p);
-@@ -1618,8 +1618,8 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
+@@ -1620,8 +1620,8 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
  static int __init init_sys32_ioctl_cmp(const void *p, const void *q)
  {
        unsigned int a, b;
@@ -68206,7 +74487,7 @@ index afec645..9c65620 100644
                return 1;
        if (a < b)
 diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
-index cf0db00..c7f70e8 100644
+index c81ce7f..f3de5fd 100644
 --- a/fs/configfs/dir.c
 +++ b/fs/configfs/dir.c
 @@ -1540,7 +1540,8 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
@@ -68233,6 +74514,28 @@ index cf0db00..c7f70e8 100644
  
                /*
                 * We'll have a dentry and an inode for
+diff --git a/fs/configfs/item.c b/fs/configfs/item.c
+index e65f9ff..3ed264d 100644
+--- a/fs/configfs/item.c
++++ b/fs/configfs/item.c
+@@ -116,7 +116,7 @@ void config_item_init_type_name(struct config_item *item,
+                               const char *name,
+                               struct config_item_type *type)
+ {
+-      config_item_set_name(item, name);
++      config_item_set_name(item, "%s", name);
+       item->ci_type = type;
+       config_item_init(item);
+ }
+@@ -125,7 +125,7 @@ EXPORT_SYMBOL(config_item_init_type_name);
+ void config_group_init_type_name(struct config_group *group, const char *name,
+                        struct config_item_type *type)
+ {
+-      config_item_set_name(&group->cg_item, name);
++      config_item_set_name(&group->cg_item, "%s", name);
+       group->cg_item.ci_type = type;
+       config_group_init(group);
+ }
 diff --git a/fs/coredump.c b/fs/coredump.c
 index bbbe139..b76fae5 100644
 --- a/fs/coredump.c
@@ -68340,10 +74643,10 @@ index bbbe139..b76fae5 100644
                return 0;
        while (nr) {
 diff --git a/fs/dcache.c b/fs/dcache.c
-index c71e373..5c1f656 100644
+index 50bb3c2..d874b57 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
-@@ -511,7 +511,7 @@ static void __dentry_kill(struct dentry *dentry)
+@@ -545,7 +545,7 @@ static void __dentry_kill(struct dentry *dentry)
         * dentry_iput drops the locks, at which point nobody (except
         * transient RCU lookups) can reach this dentry.
         */
@@ -68352,7 +74655,7 @@ index c71e373..5c1f656 100644
        this_cpu_dec(nr_dentry);
        if (dentry->d_op && dentry->d_op->d_release)
                dentry->d_op->d_release(dentry);
-@@ -564,7 +564,7 @@ static inline struct dentry *lock_parent(struct dentry *dentry)
+@@ -598,7 +598,7 @@ static inline struct dentry *lock_parent(struct dentry *dentry)
        struct dentry *parent = dentry->d_parent;
        if (IS_ROOT(dentry))
                return NULL;
@@ -68361,7 +74664,16 @@ index c71e373..5c1f656 100644
                return NULL;
        if (likely(spin_trylock(&parent->d_lock)))
                return parent;
-@@ -626,8 +626,8 @@ static inline bool fast_dput(struct dentry *dentry)
+@@ -642,7 +642,7 @@ static inline bool fast_dput(struct dentry *dentry)
+       /*
+        * If we have a d_op->d_delete() operation, we sould not
+-       * let the dentry count go to zero, so use "put__or_lock".
++       * let the dentry count go to zero, so use "put_or_lock".
+        */
+       if (unlikely(dentry->d_flags & DCACHE_OP_DELETE))
+               return lockref_put_or_lock(&dentry->d_lockref);
+@@ -660,8 +660,8 @@ static inline bool fast_dput(struct dentry *dentry)
         */
        if (unlikely(ret < 0)) {
                spin_lock(&dentry->d_lock);
@@ -68372,7 +74684,16 @@ index c71e373..5c1f656 100644
                        spin_unlock(&dentry->d_lock);
                        return 1;
                }
-@@ -682,7 +682,7 @@ static inline bool fast_dput(struct dentry *dentry)
+@@ -697,7 +697,7 @@ static inline bool fast_dput(struct dentry *dentry)
+        */
+       smp_rmb();
+       d_flags = ACCESS_ONCE(dentry->d_flags);
+-      d_flags &= DCACHE_REFERENCED | DCACHE_LRU_LIST;
++      d_flags &= DCACHE_REFERENCED | DCACHE_LRU_LIST | DCACHE_DISCONNECTED;
+       /* Nothing to do? Dropping the reference was all we needed? */
+       if (d_flags == (DCACHE_REFERENCED | DCACHE_LRU_LIST) && !d_unhashed(dentry))
+@@ -716,7 +716,7 @@ static inline bool fast_dput(struct dentry *dentry)
         * else could have killed it and marked it dead. Either way, we
         * don't need to do anything else.
         */
@@ -68381,7 +74702,7 @@ index c71e373..5c1f656 100644
                spin_unlock(&dentry->d_lock);
                return 1;
        }
-@@ -692,7 +692,7 @@ static inline bool fast_dput(struct dentry *dentry)
+@@ -726,7 +726,7 @@ static inline bool fast_dput(struct dentry *dentry)
         * lock, and we just tested that it was zero, so we can just
         * set it to 1.
         */
@@ -68390,7 +74711,17 @@ index c71e373..5c1f656 100644
        return 0;
  }
  
-@@ -751,7 +751,7 @@ repeat:
+@@ -776,6 +776,9 @@ repeat:
+       if (unlikely(d_unhashed(dentry)))
+               goto kill_it;
++      if (unlikely(dentry->d_flags & DCACHE_DISCONNECTED))
++              goto kill_it;
++
+       if (unlikely(dentry->d_flags & DCACHE_OP_DELETE)) {
+               if (dentry->d_op->d_delete(dentry))
+                       goto kill_it;
+@@ -785,7 +788,7 @@ repeat:
                dentry->d_flags |= DCACHE_REFERENCED;
        dentry_lru_add(dentry);
  
@@ -68399,7 +74730,7 @@ index c71e373..5c1f656 100644
        spin_unlock(&dentry->d_lock);
        return;
  
-@@ -766,7 +766,7 @@ EXPORT_SYMBOL(dput);
+@@ -800,7 +803,7 @@ EXPORT_SYMBOL(dput);
  /* This must be called with d_lock held */
  static inline void __dget_dlock(struct dentry *dentry)
  {
@@ -68408,7 +74739,7 @@ index c71e373..5c1f656 100644
  }
  
  static inline void __dget(struct dentry *dentry)
-@@ -807,8 +807,8 @@ repeat:
+@@ -841,8 +844,8 @@ repeat:
                goto repeat;
        }
        rcu_read_unlock();
@@ -68419,7 +74750,7 @@ index c71e373..5c1f656 100644
        spin_unlock(&ret->d_lock);
        return ret;
  }
-@@ -886,9 +886,9 @@ restart:
+@@ -920,9 +923,9 @@ restart:
        spin_lock(&inode->i_lock);
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
                spin_lock(&dentry->d_lock);
@@ -68431,7 +74762,7 @@ index c71e373..5c1f656 100644
                                __dentry_kill(dentry);
                                dput(parent);
                                goto restart;
-@@ -923,7 +923,7 @@ static void shrink_dentry_list(struct list_head *list)
+@@ -957,7 +960,7 @@ static void shrink_dentry_list(struct list_head *list)
                 * We found an inuse dentry which was not removed from
                 * the LRU because of laziness during lookup. Do not free it.
                 */
@@ -68440,7 +74771,7 @@ index c71e373..5c1f656 100644
                        spin_unlock(&dentry->d_lock);
                        if (parent)
                                spin_unlock(&parent->d_lock);
-@@ -961,8 +961,8 @@ static void shrink_dentry_list(struct list_head *list)
+@@ -995,8 +998,8 @@ static void shrink_dentry_list(struct list_head *list)
                dentry = parent;
                while (dentry && !lockref_put_or_lock(&dentry->d_lockref)) {
                        parent = lock_parent(dentry);
@@ -68451,7 +74782,7 @@ index c71e373..5c1f656 100644
                                spin_unlock(&dentry->d_lock);
                                if (parent)
                                        spin_unlock(&parent->d_lock);
-@@ -1002,7 +1002,7 @@ static enum lru_status dentry_lru_isolate(struct list_head *item,
+@@ -1036,7 +1039,7 @@ static enum lru_status dentry_lru_isolate(struct list_head *item,
         * counts, just remove them from the LRU. Otherwise give them
         * another pass through the LRU.
         */
@@ -68460,7 +74791,7 @@ index c71e373..5c1f656 100644
                d_lru_isolate(lru, dentry);
                spin_unlock(&dentry->d_lock);
                return LRU_REMOVED;
-@@ -1336,7 +1336,7 @@ static enum d_walk_ret select_collect(void *_data, struct dentry *dentry)
+@@ -1370,7 +1373,7 @@ static enum d_walk_ret select_collect(void *_data, struct dentry *dentry)
        } else {
                if (dentry->d_flags & DCACHE_LRU_LIST)
                        d_lru_del(dentry);
@@ -68469,7 +74800,7 @@ index c71e373..5c1f656 100644
                        d_shrink_add(dentry, &data->dispose);
                        data->found++;
                }
-@@ -1384,7 +1384,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
+@@ -1418,7 +1421,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
                return D_WALK_CONTINUE;
  
        /* root with refcount 1 is fine */
@@ -68478,7 +74809,7 @@ index c71e373..5c1f656 100644
                return D_WALK_CONTINUE;
  
        printk(KERN_ERR "BUG: Dentry %p{i=%lx,n=%pd} "
-@@ -1393,7 +1393,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
+@@ -1427,7 +1430,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
                       dentry->d_inode ?
                       dentry->d_inode->i_ino : 0UL,
                       dentry,
@@ -68487,7 +74818,7 @@ index c71e373..5c1f656 100644
                       dentry->d_sb->s_type->name,
                       dentry->d_sb->s_id);
        WARN_ON(1);
-@@ -1534,7 +1534,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
+@@ -1568,7 +1571,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
        dentry->d_iname[DNAME_INLINE_LEN-1] = 0;
        if (name->len > DNAME_INLINE_LEN-1) {
                size_t size = offsetof(struct external_name, name[1]);
@@ -68496,7 +74827,7 @@ index c71e373..5c1f656 100644
                if (!p) {
                        kmem_cache_free(dentry_cache, dentry); 
                        return NULL;
-@@ -1557,7 +1557,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
+@@ -1591,7 +1594,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
        smp_wmb();
        dentry->d_name.name = dname;
  
@@ -68505,7 +74836,7 @@ index c71e373..5c1f656 100644
        dentry->d_flags = 0;
        spin_lock_init(&dentry->d_lock);
        seqcount_init(&dentry->d_seq);
-@@ -1566,6 +1566,9 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
+@@ -1600,6 +1603,9 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
        dentry->d_sb = sb;
        dentry->d_op = NULL;
        dentry->d_fsdata = NULL;
@@ -68515,7 +74846,7 @@ index c71e373..5c1f656 100644
        INIT_HLIST_BL_NODE(&dentry->d_hash);
        INIT_LIST_HEAD(&dentry->d_lru);
        INIT_LIST_HEAD(&dentry->d_subdirs);
-@@ -2290,7 +2293,7 @@ struct dentry *__d_lookup(const struct dentry *parent, const struct qstr *name)
+@@ -2321,7 +2327,7 @@ struct dentry *__d_lookup(const struct dentry *parent, const struct qstr *name)
                                goto next;
                }
  
@@ -68524,7 +74855,7 @@ index c71e373..5c1f656 100644
                found = dentry;
                spin_unlock(&dentry->d_lock);
                break;
-@@ -2358,7 +2361,7 @@ again:
+@@ -2389,7 +2395,7 @@ again:
        spin_lock(&dentry->d_lock);
        inode = dentry->d_inode;
        isdir = S_ISDIR(inode->i_mode);
@@ -68533,7 +74864,7 @@ index c71e373..5c1f656 100644
                if (!spin_trylock(&inode->i_lock)) {
                        spin_unlock(&dentry->d_lock);
                        cpu_relax();
-@@ -3311,7 +3314,7 @@ static enum d_walk_ret d_genocide_kill(void *data, struct dentry *dentry)
+@@ -3331,7 +3337,7 @@ static enum d_walk_ret d_genocide_kill(void *data, struct dentry *dentry)
  
                if (!(dentry->d_flags & DCACHE_GENOCIDE)) {
                        dentry->d_flags |= DCACHE_GENOCIDE;
@@ -68542,7 +74873,7 @@ index c71e373..5c1f656 100644
                }
        }
        return D_WALK_CONTINUE;
-@@ -3427,7 +3430,8 @@ void __init vfs_caches_init(unsigned long mempages)
+@@ -3447,7 +3453,8 @@ void __init vfs_caches_init(unsigned long mempages)
        mempages -= reserve;
  
        names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
@@ -68553,21 +74884,10 @@ index c71e373..5c1f656 100644
        dcache_init();
        inode_init();
 diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
-index 96400ab..906103d 100644
+index 1275604..d2ca85b 100644
 --- a/fs/debugfs/inode.c
 +++ b/fs/debugfs/inode.c
-@@ -386,6 +386,10 @@ struct dentry *debugfs_create_file_size(const char *name, umode_t mode,
- }
- EXPORT_SYMBOL_GPL(debugfs_create_file_size);
-+#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
-+extern int grsec_enable_sysfs_restrict;
-+#endif
-+
- /**
-  * debugfs_create_dir - create a directory in the debugfs filesystem
-  * @name: a pointer to a string containing the name of the directory to
-@@ -404,6 +408,10 @@ EXPORT_SYMBOL_GPL(debugfs_create_file_size);
+@@ -407,6 +407,10 @@ EXPORT_SYMBOL_GPL(debugfs_create_file_size);
   * If debugfs is not enabled in the kernel, the value -%ENODEV will be
   * returned.
   */
@@ -68578,7 +74898,7 @@ index 96400ab..906103d 100644
  struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
  {
        struct dentry *dentry = start_creating(name, parent);
-@@ -416,7 +424,12 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
+@@ -419,7 +423,12 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
        if (unlikely(!inode))
                return failed_creating(dentry);
  
@@ -68593,13 +74913,13 @@ index 96400ab..906103d 100644
        inode->i_fop = &simple_dir_operations;
  
 diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
-index b08b518..d6acffa 100644
+index fc850b5..1677a2a 100644
 --- a/fs/ecryptfs/inode.c
 +++ b/fs/ecryptfs/inode.c
 @@ -663,7 +663,7 @@ static char *ecryptfs_readlink_lower(struct dentry *dentry, size_t *bufsiz)
        old_fs = get_fs();
        set_fs(get_ds());
-       rc = lower_dentry->d_inode->i_op->readlink(lower_dentry,
+       rc = d_inode(lower_dentry)->i_op->readlink(lower_dentry,
 -                                                 (char __user *)lower_buf,
 +                                                 (char __force_user *)lower_buf,
                                                   PATH_MAX);
@@ -68619,7 +74939,7 @@ index e4141f2..d8263e8 100644
                i += packet_length_size;
                if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
 diff --git a/fs/exec.c b/fs/exec.c
-index 00400cf..b9d927b 100644
+index 1977c2a..40e7f8f 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
 @@ -56,8 +56,20 @@
@@ -68828,7 +75148,7 @@ index 00400cf..b9d927b 100644
        /*
         * cover the whole range: [new_start, old_end)
         */
-@@ -672,10 +718,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -675,10 +721,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
        stack_top = arch_align_stack(stack_top);
        stack_top = PAGE_ALIGN(stack_top);
  
@@ -68839,7 +75159,7 @@ index 00400cf..b9d927b 100644
        stack_shift = vma->vm_end - stack_top;
  
        bprm->p -= stack_shift;
-@@ -687,8 +729,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -690,8 +732,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
        bprm->exec -= stack_shift;
  
        down_write(&mm->mmap_sem);
@@ -68868,7 +75188,7 @@ index 00400cf..b9d927b 100644
        /*
         * Adjust stack execute permissions; explicitly enable for
         * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone
-@@ -707,13 +769,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -710,13 +772,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
                goto out_unlock;
        BUG_ON(prev != vma);
  
@@ -68882,7 +75202,7 @@ index 00400cf..b9d927b 100644
        /* mprotect_fixup is overkill to remove the temporary stack flags */
        vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP;
  
-@@ -737,6 +792,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -740,6 +795,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
  #endif
        current->mm->start_stack = bprm->p;
        ret = expand_stack(vma, stack_base);
@@ -68910,7 +75230,7 @@ index 00400cf..b9d927b 100644
        if (ret)
                ret = -EFAULT;
  
-@@ -781,8 +857,10 @@ static struct file *do_open_execat(int fd, struct filename *name, int flags)
+@@ -784,8 +860,10 @@ static struct file *do_open_execat(int fd, struct filename *name, int flags)
        if (err)
                goto exit;
  
@@ -68922,7 +75242,7 @@ index 00400cf..b9d927b 100644
  
  out:
        return file;
-@@ -815,7 +893,7 @@ int kernel_read(struct file *file, loff_t offset,
+@@ -818,7 +896,7 @@ int kernel_read(struct file *file, loff_t offset,
        old_fs = get_fs();
        set_fs(get_ds());
        /* The cast to a user pointer is valid due to the set_fs() */
@@ -68931,7 +75251,7 @@ index 00400cf..b9d927b 100644
        set_fs(old_fs);
        return result;
  }
-@@ -860,6 +938,7 @@ static int exec_mmap(struct mm_struct *mm)
+@@ -863,6 +941,7 @@ static int exec_mmap(struct mm_struct *mm)
        tsk->mm = mm;
        tsk->active_mm = mm;
        activate_mm(active_mm, mm);
@@ -68939,23 +75259,7 @@ index 00400cf..b9d927b 100644
        tsk->mm->vmacache_seqnum = 0;
        vmacache_flush(tsk);
        task_unlock(tsk);
-@@ -926,10 +1005,14 @@ static int de_thread(struct task_struct *tsk)
-       if (!thread_group_leader(tsk)) {
-               struct task_struct *leader = tsk->group_leader;
--              sig->notify_count = -1; /* for exit_notify() */
-               for (;;) {
-                       threadgroup_change_begin(tsk);
-                       write_lock_irq(&tasklist_lock);
-+                      /*
-+                       * Do this under tasklist_lock to ensure that
-+                       * exit_notify() can't miss ->group_exit_task
-+                       */
-+                      sig->notify_count = -1;
-                       if (likely(leader->exit_state))
-                               break;
-                       __set_current_state(TASK_KILLABLE);
-@@ -1258,7 +1341,7 @@ static void check_unsafe_exec(struct linux_binprm *bprm)
+@@ -1271,7 +1350,7 @@ static void check_unsafe_exec(struct linux_binprm *bprm)
        }
        rcu_read_unlock();
  
@@ -68964,7 +75268,7 @@ index 00400cf..b9d927b 100644
                bprm->unsafe |= LSM_UNSAFE_SHARE;
        else
                p->fs->in_exec = 1;
-@@ -1459,6 +1542,31 @@ static int exec_binprm(struct linux_binprm *bprm)
+@@ -1472,6 +1551,31 @@ static int exec_binprm(struct linux_binprm *bprm)
        return ret;
  }
  
@@ -68996,7 +75300,7 @@ index 00400cf..b9d927b 100644
  /*
   * sys_execve() executes a new program.
   */
-@@ -1467,6 +1575,11 @@ static int do_execveat_common(int fd, struct filename *filename,
+@@ -1480,6 +1584,11 @@ static int do_execveat_common(int fd, struct filename *filename,
                              struct user_arg_ptr envp,
                              int flags)
  {
@@ -69008,7 +75312,7 @@ index 00400cf..b9d927b 100644
        char *pathbuf = NULL;
        struct linux_binprm *bprm;
        struct file *file;
-@@ -1476,6 +1589,8 @@ static int do_execveat_common(int fd, struct filename *filename,
+@@ -1489,6 +1598,8 @@ static int do_execveat_common(int fd, struct filename *filename,
        if (IS_ERR(filename))
                return PTR_ERR(filename);
  
@@ -69017,7 +75321,7 @@ index 00400cf..b9d927b 100644
        /*
         * We move the actual failure in case of RLIMIT_NPROC excess from
         * set*uid() to execve() because too many poorly written programs
-@@ -1513,6 +1628,11 @@ static int do_execveat_common(int fd, struct filename *filename,
+@@ -1526,6 +1637,11 @@ static int do_execveat_common(int fd, struct filename *filename,
        if (IS_ERR(file))
                goto out_unmark;
  
@@ -69029,7 +75333,7 @@ index 00400cf..b9d927b 100644
        sched_exec();
  
        bprm->file = file;
-@@ -1539,6 +1659,11 @@ static int do_execveat_common(int fd, struct filename *filename,
+@@ -1552,6 +1668,11 @@ static int do_execveat_common(int fd, struct filename *filename,
        }
        bprm->interp = bprm->filename;
  
@@ -69041,7 +75345,7 @@ index 00400cf..b9d927b 100644
        retval = bprm_mm_init(bprm);
        if (retval)
                goto out_unmark;
-@@ -1555,24 +1680,70 @@ static int do_execveat_common(int fd, struct filename *filename,
+@@ -1568,24 +1689,70 @@ static int do_execveat_common(int fd, struct filename *filename,
        if (retval < 0)
                goto out;
  
@@ -69116,7 +75420,7 @@ index 00400cf..b9d927b 100644
        current->fs->in_exec = 0;
        current->in_execve = 0;
        acct_update_integrals(current);
-@@ -1584,6 +1755,14 @@ static int do_execveat_common(int fd, struct filename *filename,
+@@ -1597,6 +1764,14 @@ static int do_execveat_common(int fd, struct filename *filename,
                put_files_struct(displaced);
        return retval;
  
@@ -69131,7 +75435,7 @@ index 00400cf..b9d927b 100644
  out:
        if (bprm->mm) {
                acct_arg_size(bprm, 0);
-@@ -1730,3 +1909,312 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd,
+@@ -1743,3 +1918,312 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd,
                                  argv, envp, flags);
  }
  #endif
@@ -69271,13 +75575,13 @@ index 00400cf..b9d927b 100644
 +void pax_report_refcount_overflow(struct pt_regs *regs)
 +{
 +      if (current->signal->curr_ip)
-+              printk(KERN_ERR "PAX: From %pI4: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n",
++              printk(KERN_EMERG "PAX: From %pI4: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n",
 +                              &current->signal->curr_ip, current->comm, task_pid_nr(current),
 +                              from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
 +      else
-+              printk(KERN_ERR "PAX: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n", current->comm, task_pid_nr(current),
++              printk(KERN_EMERG "PAX: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n", current->comm, task_pid_nr(current),
 +                              from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
-+      print_symbol(KERN_ERR "PAX: refcount overflow occured at: %s\n", instruction_pointer(regs));
++      print_symbol(KERN_EMERG "PAX: refcount overflow occured at: %s\n", instruction_pointer(regs));
 +      preempt_disable();
 +      show_regs(regs);
 +      preempt_enable();
@@ -69336,10 +75640,10 @@ index 00400cf..b9d927b 100644
 +static __noreturn void pax_report_usercopy(const void *ptr, unsigned long len, bool to_user, const char *type)
 +{
 +      if (current->signal->curr_ip)
-+              printk(KERN_ERR "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
++              printk(KERN_EMERG "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
 +                      &current->signal->curr_ip, to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
 +      else
-+              printk(KERN_ERR "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
++              printk(KERN_EMERG "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
 +                      to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
 +      dump_stack();
 +      gr_handle_kernel_exploit();
@@ -69423,7 +75727,7 @@ index 00400cf..b9d927b 100644
 +EXPORT_SYMBOL(__check_object_size);
 +
 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
-+void pax_track_stack(void)
++void __used pax_track_stack(void)
 +{
 +      unsigned long sp = (unsigned long)&sp;
 +      if (sp < current_thread_info()->lowest_stack &&
@@ -69436,9 +75740,9 @@ index 00400cf..b9d927b 100644
 +#endif
 +
 +#ifdef CONFIG_PAX_SIZE_OVERFLOW
-+void __nocapture(1, 3, 4) report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
++void __nocapture(1, 3, 4) __used report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
 +{
-+      printk(KERN_ERR "PAX: size overflow detected in function %s %s:%u %s", func, file, line, ssa_name);
++      printk(KERN_EMERG "PAX: size overflow detected in function %s %s:%u %s", func, file, line, ssa_name);
 +      dump_stack();
 +      do_group_exit(SIGKILL);
 +}
@@ -69489,7 +75793,7 @@ index d0e746e..82e06f0 100644
  #ifdef CONFIG_EXT2_FS_POSIX_ACL
        if (def_mount_opts & EXT2_DEFM_ACL)
 diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
-index 9142614..97484fa 100644
+index 0b6bfd3..93a2964 100644
 --- a/fs/ext2/xattr.c
 +++ b/fs/ext2/xattr.c
 @@ -247,7 +247,7 @@ ext2_xattr_list(struct dentry *dentry, char *buffer, size_t buffer_size)
@@ -69531,7 +75835,7 @@ index 158b5d4..2432610 100644
        }
        return 1;
 diff --git a/fs/ext3/super.c b/fs/ext3/super.c
-index d4dbf3c..906a6fb 100644
+index a9312f0..e3a11ec 100644
 --- a/fs/ext3/super.c
 +++ b/fs/ext3/super.c
 @@ -655,10 +655,8 @@ static int ext3_show_options(struct seq_file *seq, struct dentry *root)
@@ -69558,7 +75862,7 @@ index d4dbf3c..906a6fb 100644
  #ifdef CONFIG_EXT3_FS_POSIX_ACL
        if (def_mount_opts & EXT3_DEFM_ACL)
 diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
-index c6874be..f8a6ae8 100644
+index 7cf3650..e3f4a51 100644
 --- a/fs/ext3/xattr.c
 +++ b/fs/ext3/xattr.c
 @@ -330,7 +330,7 @@ static int
@@ -69583,10 +75887,10 @@ index c6874be..f8a6ae8 100644
  
  static int
 diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
-index 83a6f49..d4e4d03 100644
+index 955bf49a..44ee359 100644
 --- a/fs/ext4/balloc.c
 +++ b/fs/ext4/balloc.c
-@@ -557,8 +557,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
+@@ -556,8 +556,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
        /* Hm, nope.  Are (enough) root reserved clusters available? */
        if (uid_eq(sbi->s_resuid, current_fsuid()) ||
            (!gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) && in_group_p(sbi->s_resgid)) ||
@@ -69598,10 +75902,10 @@ index 83a6f49..d4e4d03 100644
                if (free_clusters >= (nclusters + dirty_clusters +
                                      resv_clusters))
 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
-index f63c3d5..3c1a033 100644
+index 9a83f14..1dd1b38 100644
 --- a/fs/ext4/ext4.h
 +++ b/fs/ext4/ext4.h
-@@ -1287,19 +1287,19 @@ struct ext4_sb_info {
+@@ -1310,19 +1310,19 @@ struct ext4_sb_info {
        unsigned long s_mb_last_start;
  
        /* stats for buddy allocator */
@@ -69762,7 +76066,7 @@ index 8313ca3..8a37d08 100644
                       "MMP failure info: last update time: %llu, last update "
                       "node: %s, last update device: %s\n",
 diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
-index 8a8ec62..1b02de5 100644
+index cf0c472..ddf284d 100644
 --- a/fs/ext4/resize.c
 +++ b/fs/ext4/resize.c
 @@ -413,7 +413,7 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
@@ -69804,10 +76108,10 @@ index 8a8ec62..1b02de5 100644
                err = ext4_handle_dirty_metadata(handle, NULL, bh);
                if (unlikely(err))
 diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index e061e66..87bc092 100644
+index ca9d4a2..4c52f42 100644
 --- a/fs/ext4/super.c
 +++ b/fs/ext4/super.c
-@@ -1243,7 +1243,7 @@ static ext4_fsblk_t get_sb_block(void **data)
+@@ -1232,7 +1232,7 @@ static ext4_fsblk_t get_sb_block(void **data)
  }
  
  #define DEFAULT_JOURNAL_IOPRIO (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 3))
@@ -69816,7 +76120,7 @@ index e061e66..87bc092 100644
        "Contact linux-ext4@vger.kernel.org if you think we should keep it.\n";
  
  #ifdef CONFIG_QUOTA
-@@ -2443,7 +2443,7 @@ struct ext4_attr {
+@@ -2442,7 +2442,7 @@ struct ext4_attr {
                int offset;
                int deprecated_val;
        } u;
@@ -69826,10 +76130,10 @@ index e061e66..87bc092 100644
  static int parse_strtoull(const char *buf,
                unsigned long long max, unsigned long long *value)
 diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
-index 1e09fc7..0400dd4 100644
+index 16e28c0..728c282 100644
 --- a/fs/ext4/xattr.c
 +++ b/fs/ext4/xattr.c
-@@ -399,7 +399,7 @@ static int
+@@ -398,7 +398,7 @@ static int
  ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
                        char *buffer, size_t buffer_size)
  {
@@ -69838,7 +76142,7 @@ index 1e09fc7..0400dd4 100644
  
        for (; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)) {
                const struct xattr_handler *handler =
-@@ -416,9 +416,10 @@ ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
+@@ -415,9 +415,10 @@ ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
                                buffer += size;
                        }
                        rest -= size;
@@ -69866,7 +76170,7 @@ index ee85cd4..9dd0d20 100644
  }
  EXPORT_SYMBOL(__f_setown);
 diff --git a/fs/fhandle.c b/fs/fhandle.c
-index 999ff5c..2281df9 100644
+index d59712d..2281df9 100644
 --- a/fs/fhandle.c
 +++ b/fs/fhandle.c
 @@ -8,6 +8,7 @@
@@ -69896,20 +76200,8 @@ index 999ff5c..2281df9 100644
                retval = -EPERM;
                goto out_err;
        }
-@@ -195,8 +195,9 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh,
-               goto out_err;
-       }
-       /* copy the full handle */
--      if (copy_from_user(handle, ufh,
--                         sizeof(struct file_handle) +
-+      *handle = f_handle;
-+      if (copy_from_user(&handle->f_handle,
-+                         &ufh->f_handle,
-                          f_handle.handle_bytes)) {
-               retval = -EFAULT;
-               goto out_handle;
 diff --git a/fs/file.c b/fs/file.c
-index ee738ea..f6c15629 100644
+index 93c5f89..ed75817 100644
 --- a/fs/file.c
 +++ b/fs/file.c
 @@ -16,6 +16,7 @@
@@ -69938,7 +76230,7 @@ index ee738ea..f6c15629 100644
  {
        struct fdtable *fdt;
  
-@@ -800,6 +801,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
+@@ -799,6 +800,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
        if (!file)
                return __close_fd(files, fd);
  
@@ -69946,7 +76238,7 @@ index ee738ea..f6c15629 100644
        if (fd >= rlimit(RLIMIT_NOFILE))
                return -EBADF;
  
-@@ -826,6 +828,7 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
+@@ -825,6 +827,7 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
        if (unlikely(oldfd == newfd))
                return -EINVAL;
  
@@ -69954,7 +76246,7 @@ index ee738ea..f6c15629 100644
        if (newfd >= rlimit(RLIMIT_NOFILE))
                return -EBADF;
  
-@@ -881,6 +884,7 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes)
+@@ -880,6 +883,7 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes)
  int f_dupfd(unsigned int from, struct file *file, unsigned flags)
  {
        int err;
@@ -71476,10 +77768,10 @@ index 40d13c7..ddf52b9 100644
        seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
                   atomic_read(&fscache_n_cop_alloc_object),
 diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
-index 28d0c7a..04816b7 100644
+index e5bbf74..9bfdaf3 100644
 --- a/fs/fuse/cuse.c
 +++ b/fs/fuse/cuse.c
-@@ -611,10 +611,12 @@ static int __init cuse_init(void)
+@@ -602,10 +602,12 @@ static int __init cuse_init(void)
                INIT_LIST_HEAD(&cuse_conntbl[i]);
  
        /* inherit and extend fuse_dev_operations */
@@ -71497,10 +77789,10 @@ index 28d0c7a..04816b7 100644
        cuse_class = class_create(THIS_MODULE, "cuse");
        if (IS_ERR(cuse_class))
 diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
-index 39706c5..a803c71 100644
+index c8b68ab..97190db 100644
 --- a/fs/fuse/dev.c
 +++ b/fs/fuse/dev.c
-@@ -1405,7 +1405,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
+@@ -1398,7 +1398,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
        ret = 0;
        pipe_lock(pipe);
  
@@ -71509,7 +77801,7 @@ index 39706c5..a803c71 100644
                send_sig(SIGPIPE, current, 0);
                if (!ret)
                        ret = -EPIPE;
-@@ -1434,7 +1434,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
+@@ -1427,7 +1427,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
                page_nr++;
                ret += buf->len;
  
@@ -71519,7 +77811,7 @@ index 39706c5..a803c71 100644
        }
  
 diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
-index 1545b71..7fabe47 100644
+index 0572bca..cb9c3fa 100644
 --- a/fs/fuse/dir.c
 +++ b/fs/fuse/dir.c
 @@ -1394,7 +1394,7 @@ static char *read_link(struct dentry *dentry)
@@ -71532,7 +77824,7 @@ index 1545b71..7fabe47 100644
        if (!IS_ERR(link))
                free_page((unsigned long) link);
 diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
-index f42dffb..4a4c435 100644
+index 0fa8062..755b198 100644
 --- a/fs/gfs2/glock.c
 +++ b/fs/gfs2/glock.c
 @@ -385,9 +385,9 @@ static void state_change(struct gfs2_glock *gl, unsigned int new_state)
@@ -71630,7 +77922,7 @@ index fe91951..ce38a6e 100644
  }
  
 diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
-index 3aa17d4..b338075 100644
+index e3065cb..45e7117 100644
 --- a/fs/gfs2/quota.c
 +++ b/fs/gfs2/quota.c
 @@ -154,7 +154,7 @@ static enum lru_status gfs2_qd_isolate(struct list_head *item,
@@ -71661,10 +77953,10 @@ index 3aa17d4..b338075 100644
        spin_unlock(&qd->qd_lockref.lock);
  
 diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
-index fd62cae..3494dfa 100644
+index 07d8d8f..2c2a4e7 100644
 --- a/fs/hostfs/hostfs_kern.c
 +++ b/fs/hostfs/hostfs_kern.c
-@@ -908,7 +908,7 @@ static void *hostfs_follow_link(struct dentry *dentry, struct nameidata *nd)
+@@ -918,7 +918,7 @@ static void *hostfs_follow_link(struct dentry *dentry, struct nameidata *nd)
  
  static void hostfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
  {
@@ -71674,10 +77966,10 @@ index fd62cae..3494dfa 100644
                __putname(s);
  }
 diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
-index c274aca..772fa5e 100644
+index 87724c1..5a5e53f 100644
 --- a/fs/hugetlbfs/inode.c
 +++ b/fs/hugetlbfs/inode.c
-@@ -148,6 +148,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+@@ -151,6 +151,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
        struct mm_struct *mm = current->mm;
        struct vm_area_struct *vma;
        struct hstate *h = hstate_file(file);
@@ -71685,7 +77977,7 @@ index c274aca..772fa5e 100644
        struct vm_unmapped_area_info info;
  
        if (len & ~huge_page_mask(h))
-@@ -161,17 +162,26 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+@@ -164,17 +165,26 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
                return addr;
        }
  
@@ -71714,7 +78006,7 @@ index c274aca..772fa5e 100644
        info.high_limit = TASK_SIZE;
        info.align_mask = PAGE_MASK & ~huge_page_mask(h);
        info.align_offset = 0;
-@@ -912,7 +922,7 @@ static struct file_system_type hugetlbfs_fs_type = {
+@@ -939,7 +949,7 @@ static struct file_system_type hugetlbfs_fs_type = {
  };
  MODULE_ALIAS_FS("hugetlbfs");
  
@@ -71724,7 +78016,7 @@ index c274aca..772fa5e 100644
  static int can_do_hugetlb_shm(void)
  {
 diff --git a/fs/inode.c b/fs/inode.c
-index f00b16f..b653fea 100644
+index 6e342ca..0538cb7 100644
 --- a/fs/inode.c
 +++ b/fs/inode.c
 @@ -830,16 +830,20 @@ unsigned int get_next_ino(void)
@@ -71780,7 +78072,7 @@ index 09ed551..45684f8 100644
  
  /*
 diff --git a/fs/jfs/super.c b/fs/jfs/super.c
-index 5d30c56..8c45372 100644
+index 4cd9798..8dfe86a 100644
 --- a/fs/jfs/super.c
 +++ b/fs/jfs/super.c
 @@ -901,7 +901,7 @@ static int __init init_jfs_fs(void)
@@ -71793,7 +78085,7 @@ index 5d30c56..8c45372 100644
        if (jfs_inode_cachep == NULL)
                return -ENOMEM;
 diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
-index 6acc964..eca491f 100644
+index 2d48d28..82eddad 100644
 --- a/fs/kernfs/dir.c
 +++ b/fs/kernfs/dir.c
 @@ -182,7 +182,7 @@ struct kernfs_node *kernfs_get_parent(struct kernfs_node *kn)
@@ -71805,7 +78097,7 @@ index 6acc964..eca491f 100644
  {
        unsigned long hash = init_name_hash();
        unsigned int len = strlen(name);
-@@ -831,6 +831,12 @@ static int kernfs_iop_mkdir(struct inode *dir, struct dentry *dentry,
+@@ -873,6 +873,12 @@ static int kernfs_iop_mkdir(struct inode *dir, struct dentry *dentry,
        ret = scops->mkdir(parent, dentry->d_name.name, mode);
  
        kernfs_put_active(parent);
@@ -71915,7 +78207,7 @@ index 8a19889..4c3069a 100644
                free_page((unsigned long)page);
  }
 diff --git a/fs/libfs.c b/fs/libfs.c
-index 0ab6512..cd9982d 100644
+index 0281359..24971ac 100644
 --- a/fs/libfs.c
 +++ b/fs/libfs.c
 @@ -160,6 +160,9 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
@@ -71939,7 +78231,7 @@ index 0ab6512..cd9982d 100644
 +                      name = d_name;
 +              }
 +              if (!dir_emit(ctx, name, next->d_name.len,
-                             next->d_inode->i_ino, dt_type(next->d_inode)))
+                             d_inode(next)->i_ino, dt_type(d_inode(next))))
                        return 0;
                spin_lock(&dentry->d_lock);
 @@ -1027,7 +1035,7 @@ EXPORT_SYMBOL(noop_fsync);
@@ -71992,10 +78284,10 @@ index 6a61c2b..bd79179 100644
  #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
  
 diff --git a/fs/namei.c b/fs/namei.c
-index 50a8583..44c470a 100644
+index fe30d3b..cf767ae 100644
 --- a/fs/namei.c
 +++ b/fs/namei.c
-@@ -337,17 +337,32 @@ int generic_permission(struct inode *inode, int mask)
+@@ -336,17 +336,32 @@ int generic_permission(struct inode *inode, int mask)
        if (ret != -EACCES)
                return ret;
  
@@ -72032,7 +78324,7 @@ index 50a8583..44c470a 100644
         * Read/write DACs are always overridable.
         * Executable DACs are overridable when there is
         * at least one exec bit set.
-@@ -356,14 +371,6 @@ int generic_permission(struct inode *inode, int mask)
+@@ -355,14 +370,6 @@ int generic_permission(struct inode *inode, int mask)
                if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
                        return 0;
  
@@ -72047,7 +78339,7 @@ index 50a8583..44c470a 100644
        return -EACCES;
  }
  EXPORT_SYMBOL(generic_permission);
-@@ -503,7 +510,7 @@ struct nameidata {
+@@ -502,7 +509,7 @@ struct nameidata {
        int             last_type;
        unsigned        depth;
        struct file     *base;
@@ -72056,7 +78348,7 @@ index 50a8583..44c470a 100644
  };
  
  /*
-@@ -714,13 +721,13 @@ void nd_jump_link(struct nameidata *nd, struct path *path)
+@@ -713,13 +720,13 @@ void nd_jump_link(struct nameidata *nd, struct path *path)
        nd->flags |= LOOKUP_JUMPED;
  }
  
@@ -72072,7 +78364,7 @@ index 50a8583..44c470a 100644
  {
        return nd->saved_names[nd->depth];
  }
-@@ -855,7 +862,7 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
+@@ -854,7 +861,7 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
  {
        struct dentry *dentry = link->dentry;
        int error;
@@ -72081,12 +78373,11 @@ index 50a8583..44c470a 100644
  
        BUG_ON(nd->flags & LOOKUP_RCU);
  
-@@ -876,6 +883,12 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
+@@ -875,6 +882,11 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
        if (error)
                goto out_put_nd_path;
  
-+      if (gr_handle_follow_link(dentry->d_parent->d_inode,
-+                                dentry->d_inode, dentry, nd->path.mnt)) {
++      if (gr_handle_follow_link(dentry, nd->path.mnt)) {
 +              error = -EACCES;
 +              goto out_put_nd_path;
 +      }       
@@ -72094,7 +78385,7 @@ index 50a8583..44c470a 100644
        nd->last_type = LAST_BIND;
        *p = dentry->d_inode->i_op->follow_link(dentry, nd);
        error = PTR_ERR(*p);
-@@ -1640,6 +1653,8 @@ static inline int nested_symlink(struct path *path, struct nameidata *nd)
+@@ -1647,6 +1659,8 @@ static inline int nested_symlink(struct path *path, struct nameidata *nd)
                if (res)
                        break;
                res = walk_component(nd, path, LOOKUP_FOLLOW);
@@ -72103,7 +78394,7 @@ index 50a8583..44c470a 100644
                put_link(nd, &link, cookie);
        } while (res > 0);
  
-@@ -1712,7 +1727,7 @@ EXPORT_SYMBOL(full_name_hash);
+@@ -1719,7 +1733,7 @@ EXPORT_SYMBOL(full_name_hash);
  static inline u64 hash_name(const char *name)
  {
        unsigned long a, b, adata, bdata, mask, hash, len;
@@ -72112,7 +78403,7 @@ index 50a8583..44c470a 100644
  
        hash = a = 0;
        len = -sizeof(unsigned long);
-@@ -2007,6 +2022,8 @@ static int path_lookupat(int dfd, const char *name,
+@@ -2015,6 +2029,8 @@ static int path_lookupat(int dfd, const struct filename *name,
                        if (err)
                                break;
                        err = lookup_last(nd, &path);
@@ -72121,7 +78412,7 @@ index 50a8583..44c470a 100644
                        put_link(nd, &link, cookie);
                }
        }
-@@ -2014,6 +2031,13 @@ static int path_lookupat(int dfd, const char *name,
+@@ -2022,6 +2038,13 @@ static int path_lookupat(int dfd, const struct filename *name,
        if (!err)
                err = complete_walk(nd);
  
@@ -72135,9 +78426,9 @@ index 50a8583..44c470a 100644
        if (!err && nd->flags & LOOKUP_DIRECTORY) {
                if (!d_can_lookup(nd->path.dentry)) {
                        path_put(&nd->path);
-@@ -2035,8 +2059,15 @@ static int filename_lookup(int dfd, struct filename *name,
-               retval = path_lookupat(dfd, name->name,
-                                               flags | LOOKUP_REVAL, nd);
+@@ -2042,8 +2065,15 @@ static int filename_lookup(int dfd, struct filename *name,
+       if (unlikely(retval == -ESTALE))
+               retval = path_lookupat(dfd, name, flags | LOOKUP_REVAL, nd);
  
 -      if (likely(!retval))
 +      if (likely(!retval)) {
@@ -72152,7 +78443,7 @@ index 50a8583..44c470a 100644
        return retval;
  }
  
-@@ -2615,6 +2646,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
+@@ -2621,6 +2651,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
        if (flag & O_NOATIME && !inode_owner_or_capable(inode))
                return -EPERM;
  
@@ -72166,7 +78457,7 @@ index 50a8583..44c470a 100644
        return 0;
  }
  
-@@ -2846,7 +2884,7 @@ looked_up:
+@@ -2852,7 +2889,7 @@ looked_up:
   * cleared otherwise prior to returning.
   */
  static int lookup_open(struct nameidata *nd, struct path *path,
@@ -72175,7 +78466,7 @@ index 50a8583..44c470a 100644
                        const struct open_flags *op,
                        bool got_write, int *opened)
  {
-@@ -2881,6 +2919,17 @@ static int lookup_open(struct nameidata *nd, struct path *path,
+@@ -2887,6 +2924,17 @@ static int lookup_open(struct nameidata *nd, struct path *path,
        /* Negative dentry, just create the file */
        if (!dentry->d_inode && (op->open_flag & O_CREAT)) {
                umode_t mode = op->mode;
@@ -72193,7 +78484,7 @@ index 50a8583..44c470a 100644
                if (!IS_POSIXACL(dir->d_inode))
                        mode &= ~current_umask();
                /*
-@@ -2902,6 +2951,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
+@@ -2908,6 +2956,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
                                   nd->flags & LOOKUP_EXCL);
                if (error)
                        goto out_dput;
@@ -72202,7 +78493,7 @@ index 50a8583..44c470a 100644
        }
  out_no_open:
        path->dentry = dentry;
-@@ -2916,7 +2967,7 @@ out_dput:
+@@ -2922,7 +2972,7 @@ out_dput:
  /*
   * Handle the last step of open()
   */
@@ -72211,7 +78502,7 @@ index 50a8583..44c470a 100644
                   struct file *file, const struct open_flags *op,
                   int *opened, struct filename *name)
  {
-@@ -2966,6 +3017,15 @@ static int do_last(struct nameidata *nd, struct path *path,
+@@ -2972,6 +3022,15 @@ static int do_last(struct nameidata *nd, struct path *path,
                if (error)
                        return error;
  
@@ -72227,7 +78518,7 @@ index 50a8583..44c470a 100644
                audit_inode(name, dir, LOOKUP_PARENT);
                error = -EISDIR;
                /* trailing slashes? */
-@@ -2985,7 +3045,7 @@ retry_lookup:
+@@ -2991,7 +3050,7 @@ retry_lookup:
                 */
        }
        mutex_lock(&dir->d_inode->i_mutex);
@@ -72236,7 +78527,7 @@ index 50a8583..44c470a 100644
        mutex_unlock(&dir->d_inode->i_mutex);
  
        if (error <= 0) {
-@@ -3009,11 +3069,28 @@ retry_lookup:
+@@ -3015,11 +3074,28 @@ retry_lookup:
                goto finish_open_created;
        }
  
@@ -72266,7 +78557,7 @@ index 50a8583..44c470a 100644
  
        /*
         * If atomic_open() acquired write access it is dropped now due to
-@@ -3055,6 +3132,11 @@ finish_lookup:
+@@ -3060,6 +3136,11 @@ finish_lookup:
                        }
                }
                BUG_ON(inode != path->dentry->d_inode);
@@ -72278,7 +78569,7 @@ index 50a8583..44c470a 100644
                return 1;
        }
  
-@@ -3074,7 +3156,18 @@ finish_open:
+@@ -3079,7 +3160,18 @@ finish_open:
                path_put(&save_parent);
                return error;
        }
@@ -72297,7 +78588,7 @@ index 50a8583..44c470a 100644
        error = -EISDIR;
        if ((open_flag & O_CREAT) && d_is_dir(nd->path.dentry))
                goto out;
-@@ -3235,7 +3328,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
+@@ -3240,7 +3332,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
        if (unlikely(error))
                goto out;
  
@@ -72306,7 +78597,7 @@ index 50a8583..44c470a 100644
        while (unlikely(error > 0)) { /* trailing symlink */
                struct path link = path;
                void *cookie;
-@@ -3253,7 +3346,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
+@@ -3258,7 +3350,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
                error = follow_link(&link, nd, &cookie);
                if (unlikely(error))
                        break;
@@ -72315,7 +78606,7 @@ index 50a8583..44c470a 100644
                put_link(nd, &link, cookie);
        }
  out:
-@@ -3356,9 +3449,11 @@ static struct dentry *filename_create(int dfd, struct filename *name,
+@@ -3361,9 +3453,11 @@ static struct dentry *filename_create(int dfd, struct filename *name,
                goto unlock;
  
        error = -EEXIST;
@@ -72329,7 +78620,7 @@ index 50a8583..44c470a 100644
        /*
         * Special case - lookup gave negative, but... we had foo/bar/
         * From the vfs_mknod() POV we just have a negative dentry -
-@@ -3423,6 +3518,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
+@@ -3428,6 +3522,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
  }
  EXPORT_SYMBOL(user_path_create);
  
@@ -72350,7 +78641,7 @@ index 50a8583..44c470a 100644
  int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
  {
        int error = may_create(dir, dentry);
-@@ -3486,6 +3595,17 @@ retry:
+@@ -3491,6 +3599,17 @@ retry:
  
        if (!IS_POSIXACL(path.dentry->d_inode))
                mode &= ~current_umask();
@@ -72368,7 +78659,7 @@ index 50a8583..44c470a 100644
        error = security_path_mknod(&path, dentry, mode, dev);
        if (error)
                goto out;
-@@ -3501,6 +3621,8 @@ retry:
+@@ -3506,6 +3625,8 @@ retry:
                        error = vfs_mknod(path.dentry->d_inode,dentry,mode,0);
                        break;
        }
@@ -72377,7 +78668,7 @@ index 50a8583..44c470a 100644
  out:
        done_path_create(&path, dentry);
        if (retry_estale(error, lookup_flags)) {
-@@ -3555,9 +3677,16 @@ retry:
+@@ -3560,9 +3681,16 @@ retry:
  
        if (!IS_POSIXACL(path.dentry->d_inode))
                mode &= ~current_umask();
@@ -72394,7 +78685,7 @@ index 50a8583..44c470a 100644
        done_path_create(&path, dentry);
        if (retry_estale(error, lookup_flags)) {
                lookup_flags |= LOOKUP_REVAL;
-@@ -3590,7 +3719,7 @@ void dentry_unhash(struct dentry *dentry)
+@@ -3595,7 +3723,7 @@ void dentry_unhash(struct dentry *dentry)
  {
        shrink_dcache_parent(dentry);
        spin_lock(&dentry->d_lock);
@@ -72403,7 +78694,7 @@ index 50a8583..44c470a 100644
                __d_drop(dentry);
        spin_unlock(&dentry->d_lock);
  }
-@@ -3641,6 +3770,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
+@@ -3646,6 +3774,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
        struct filename *name;
        struct dentry *dentry;
        struct nameidata nd;
@@ -72412,7 +78703,7 @@ index 50a8583..44c470a 100644
        unsigned int lookup_flags = 0;
  retry:
        name = user_path_parent(dfd, pathname, &nd, lookup_flags);
-@@ -3673,10 +3804,21 @@ retry:
+@@ -3678,10 +3808,21 @@ retry:
                error = -ENOENT;
                goto exit3;
        }
@@ -72434,7 +78725,7 @@ index 50a8583..44c470a 100644
  exit3:
        dput(dentry);
  exit2:
-@@ -3769,6 +3911,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
+@@ -3774,6 +3915,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
        struct nameidata nd;
        struct inode *inode = NULL;
        struct inode *delegated_inode = NULL;
@@ -72443,7 +78734,7 @@ index 50a8583..44c470a 100644
        unsigned int lookup_flags = 0;
  retry:
        name = user_path_parent(dfd, pathname, &nd, lookup_flags);
-@@ -3795,10 +3939,22 @@ retry_deleg:
+@@ -3800,10 +3943,22 @@ retry_deleg:
                if (d_is_negative(dentry))
                        goto slashes;
                ihold(inode);
@@ -72466,7 +78757,7 @@ index 50a8583..44c470a 100644
  exit2:
                dput(dentry);
        }
-@@ -3887,9 +4043,17 @@ retry:
+@@ -3892,9 +4047,17 @@ retry:
        if (IS_ERR(dentry))
                goto out_putname;
  
@@ -72484,7 +78775,7 @@ index 50a8583..44c470a 100644
        done_path_create(&path, dentry);
        if (retry_estale(error, lookup_flags)) {
                lookup_flags |= LOOKUP_REVAL;
-@@ -3993,6 +4157,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
+@@ -3998,6 +4161,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
        struct dentry *new_dentry;
        struct path old_path, new_path;
        struct inode *delegated_inode = NULL;
@@ -72492,7 +78783,7 @@ index 50a8583..44c470a 100644
        int how = 0;
        int error;
  
-@@ -4016,7 +4181,7 @@ retry:
+@@ -4021,7 +4185,7 @@ retry:
        if (error)
                return error;
  
@@ -72501,14 +78792,12 @@ index 50a8583..44c470a 100644
                                        (how & LOOKUP_REVAL));
        error = PTR_ERR(new_dentry);
        if (IS_ERR(new_dentry))
-@@ -4028,11 +4193,28 @@ retry:
+@@ -4033,11 +4197,26 @@ retry:
        error = may_linkat(&old_path);
        if (unlikely(error))
                goto out_dput;
 +
-+      if (gr_handle_hardlink(old_path.dentry, old_path.mnt,
-+                             old_path.dentry->d_inode,
-+                             old_path.dentry->d_inode->i_mode, to)) {
++      if (gr_handle_hardlink(old_path.dentry, old_path.mnt, to)) {
 +              error = -EACCES;
 +              goto out_dput;
 +      }
@@ -72530,7 +78819,7 @@ index 50a8583..44c470a 100644
        done_path_create(&new_path, new_dentry);
        if (delegated_inode) {
                error = break_deleg_wait(&delegated_inode);
-@@ -4348,6 +4530,20 @@ retry_deleg:
+@@ -4353,6 +4532,20 @@ retry_deleg:
        if (new_dentry == trap)
                goto exit5;
  
@@ -72543,7 +78832,7 @@ index 50a8583..44c470a 100644
 +      }
 +
 +      error = gr_acl_handle_rename(new_dentry, new_dir, newnd.path.mnt,
-+                                   old_dentry, old_dir->d_inode, oldnd.path.mnt,
++                                   old_dentry, d_backing_inode(old_dir), oldnd.path.mnt,
 +                                   to, flags);
 +      if (error)
 +              goto exit5;
@@ -72551,17 +78840,17 @@ index 50a8583..44c470a 100644
        error = security_path_rename(&oldnd.path, old_dentry,
                                     &newnd.path, new_dentry, flags);
        if (error)
-@@ -4355,6 +4551,9 @@ retry_deleg:
+@@ -4360,6 +4553,9 @@ retry_deleg:
        error = vfs_rename(old_dir->d_inode, old_dentry,
                           new_dir->d_inode, new_dentry,
                           &delegated_inode, flags);
 +      if (!error)
-+              gr_handle_rename(old_dir->d_inode, new_dir->d_inode, old_dentry,
-+                               new_dentry, oldnd.path.mnt, new_dentry->d_inode ? 1 : 0, flags);
++              gr_handle_rename(d_backing_inode(old_dir), d_backing_inode(new_dir), old_dentry,
++                               new_dentry, oldnd.path.mnt, d_is_positive(new_dentry) ? 1 : 0, flags);
  exit5:
        dput(new_dentry);
  exit4:
-@@ -4411,14 +4610,24 @@ EXPORT_SYMBOL(vfs_whiteout);
+@@ -4416,14 +4612,24 @@ EXPORT_SYMBOL(vfs_whiteout);
  
  int readlink_copy(char __user *buffer, int buflen, const char *link)
  {
@@ -72588,10 +78877,59 @@ index 50a8583..44c470a 100644
  out:
        return len;
 diff --git a/fs/namespace.c b/fs/namespace.c
-index 38ed1e1..8500e56 100644
+index 02c6875..ac3626c 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -1480,6 +1480,9 @@ static int do_umount(struct mount *mnt, int flags)
+@@ -1350,6 +1350,36 @@ enum umount_tree_flags {
+       UMOUNT_PROPAGATE = 2,
+       UMOUNT_CONNECTED = 4,
+ };
++
++static bool disconnect_mount(struct mount *mnt, enum umount_tree_flags how)
++{
++      /* Leaving mounts connected is only valid for lazy umounts */
++      if (how & UMOUNT_SYNC)
++              return true;
++
++      /* A mount without a parent has nothing to be connected to */
++      if (!mnt_has_parent(mnt))
++              return true;
++
++      /* Because the reference counting rules change when mounts are
++       * unmounted and connected, umounted mounts may not be
++       * connected to mounted mounts.
++       */
++      if (!(mnt->mnt_parent->mnt.mnt_flags & MNT_UMOUNT))
++              return true;
++
++      /* Has it been requested that the mount remain connected? */
++      if (how & UMOUNT_CONNECTED)
++              return false;
++
++      /* Is the mount locked such that it needs to remain connected? */
++      if (IS_MNT_LOCKED(mnt))
++              return false;
++
++      /* By default disconnect the mount */
++      return true;
++}
++
+ /*
+  * mount_lock must be held
+  * namespace_sem must be held for write
+@@ -1387,10 +1417,7 @@ static void umount_tree(struct mount *mnt, enum umount_tree_flags how)
+               if (how & UMOUNT_SYNC)
+                       p->mnt.mnt_flags |= MNT_SYNC_UMOUNT;
+-              disconnect = !(((how & UMOUNT_CONNECTED) &&
+-                              mnt_has_parent(p) &&
+-                              (p->mnt_parent->mnt.mnt_flags & MNT_UMOUNT)) ||
+-                             IS_MNT_LOCKED_AND_LAZY(p));
++              disconnect = disconnect_mount(p, how);
+               pin_insert_group(&p->mnt_umount, &p->mnt_parent->mnt,
+                                disconnect ? &unmounted : NULL);
+@@ -1478,6 +1505,9 @@ static int do_umount(struct mount *mnt, int flags)
                if (!(sb->s_flags & MS_RDONLY))
                        retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
                up_write(&sb->s_umount);
@@ -72601,7 +78939,7 @@ index 38ed1e1..8500e56 100644
                return retval;
        }
  
-@@ -1502,6 +1505,9 @@ static int do_umount(struct mount *mnt, int flags)
+@@ -1500,6 +1530,9 @@ static int do_umount(struct mount *mnt, int flags)
        }
        unlock_mount_hash();
        namespace_unlock();
@@ -72611,7 +78949,21 @@ index 38ed1e1..8500e56 100644
        return retval;
  }
  
-@@ -1559,7 +1565,7 @@ static inline bool may_mount(void)
+@@ -1527,11 +1560,8 @@ void __detach_mounts(struct dentry *dentry)
+       while (!hlist_empty(&mp->m_list)) {
+               mnt = hlist_entry(mp->m_list.first, struct mount, mnt_mp_list);
+               if (mnt->mnt.mnt_flags & MNT_UMOUNT) {
+-                      struct mount *p, *tmp;
+-                      list_for_each_entry_safe(p, tmp, &mnt->mnt_mounts,  mnt_child) {
+-                              hlist_add_head(&p->mnt_umount.s_list, &unmounted);
+-                              umount_mnt(p);
+-                      }
++                      hlist_add_head(&mnt->mnt_umount.s_list, &unmounted);
++                      umount_mnt(mnt);
+               }
+               else umount_tree(mnt, UMOUNT_CONNECTED);
+       }
+@@ -1557,7 +1587,7 @@ static inline bool may_mount(void)
   * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
   */
  
@@ -72620,7 +78972,7 @@ index 38ed1e1..8500e56 100644
  {
        struct path path;
        struct mount *mnt;
-@@ -1604,7 +1610,7 @@ out:
+@@ -1602,7 +1632,7 @@ out:
  /*
   *    The 2.0 compatible umount. No flags.
   */
@@ -72629,7 +78981,7 @@ index 38ed1e1..8500e56 100644
  {
        return sys_umount(name, 0);
  }
-@@ -2670,6 +2676,16 @@ long do_mount(const char *dev_name, const char __user *dir_name,
+@@ -2677,6 +2707,16 @@ long do_mount(const char *dev_name, const char __user *dir_name,
                   MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
                   MS_STRICTATIME);
  
@@ -72646,7 +78998,7 @@ index 38ed1e1..8500e56 100644
        if (flags & MS_REMOUNT)
                retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
                                    data_page);
-@@ -2683,7 +2699,10 @@ long do_mount(const char *dev_name, const char __user *dir_name,
+@@ -2690,7 +2730,10 @@ long do_mount(const char *dev_name, const char __user *dir_name,
                retval = do_new_mount(&path, type_page, flags, mnt_flags,
                                      dev_name, data_page);
  dput_out:
@@ -72657,7 +79009,7 @@ index 38ed1e1..8500e56 100644
        return retval;
  }
  
-@@ -2701,7 +2720,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
+@@ -2708,7 +2751,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
   * number incrementing at 10Ghz will take 12,427 years to wrap which
   * is effectively never, so we can ignore the possibility.
   */
@@ -72666,7 +79018,7 @@ index 38ed1e1..8500e56 100644
  
  static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
  {
-@@ -2717,7 +2736,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
+@@ -2724,7 +2767,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
                return ERR_PTR(ret);
        }
        new_ns->ns.ops = &mntns_operations;
@@ -72675,7 +79027,7 @@ index 38ed1e1..8500e56 100644
        atomic_set(&new_ns->count, 1);
        new_ns->root = NULL;
        INIT_LIST_HEAD(&new_ns->list);
-@@ -2727,7 +2746,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
+@@ -2734,7 +2777,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
        return new_ns;
  }
  
@@ -72684,7 +79036,7 @@ index 38ed1e1..8500e56 100644
                struct user_namespace *user_ns, struct fs_struct *new_fs)
  {
        struct mnt_namespace *new_ns;
-@@ -2848,8 +2867,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
+@@ -2855,8 +2898,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
  }
  EXPORT_SYMBOL(mount_subtree);
  
@@ -72695,7 +79047,7 @@ index 38ed1e1..8500e56 100644
  {
        int ret;
        char *kernel_type;
-@@ -2955,6 +2974,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
+@@ -2962,6 +3005,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
        if (error)
                goto out2;
  
@@ -72707,7 +79059,7 @@ index 38ed1e1..8500e56 100644
        get_fs_root(current->fs, &root);
        old_mp = lock_mount(&old);
        error = PTR_ERR(old_mp);
-@@ -3235,7 +3259,7 @@ static int mntns_install(struct nsproxy *nsproxy, struct ns_common *ns)
+@@ -3263,7 +3311,7 @@ static int mntns_install(struct nsproxy *nsproxy, struct ns_common *ns)
            !ns_capable(current_user_ns(), CAP_SYS_ADMIN))
                return -EPERM;
  
@@ -72730,10 +79082,10 @@ index 19ca95c..b28702c 100644
  static struct callback_op callback_ops[];
  
 diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
-index d42dff6..ecbdf42 100644
+index f734562..3fd6c4e 100644
 --- a/fs/nfs/inode.c
 +++ b/fs/nfs/inode.c
-@@ -1270,16 +1270,16 @@ static int nfs_ctime_need_update(const struct inode *inode, const struct nfs_fat
+@@ -1275,16 +1275,16 @@ static int nfs_ctime_need_update(const struct inode *inode, const struct nfs_fat
        return timespec_compare(&fattr->ctime, &inode->i_ctime) > 0;
  }
  
@@ -72754,7 +79106,7 @@ index d42dff6..ecbdf42 100644
  EXPORT_SYMBOL_GPL(nfs_inc_attr_generation_counter);
  
 diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
-index 5416968..0942042 100644
+index 864e200..357c255 100644
 --- a/fs/nfsd/nfs4proc.c
 +++ b/fs/nfsd/nfs4proc.c
 @@ -1496,7 +1496,7 @@ struct nfsd4_operation {
@@ -72767,7 +79119,7 @@ index 5416968..0942042 100644
  static struct nfsd4_operation nfsd4_ops[];
  
 diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
-index 5b33ce1..c2a92aa 100644
+index 158badf..f7132ea 100644
 --- a/fs/nfsd/nfs4xdr.c
 +++ b/fs/nfsd/nfs4xdr.c
 @@ -1703,7 +1703,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
@@ -72820,7 +79172,7 @@ index 46ec934..f384e41 100644
                break;
        case RC_REPLBUFF:
 diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
-index 3685265..e77261e 100644
+index 84d770b..929bc5e 100644
 --- a/fs/nfsd/vfs.c
 +++ b/fs/nfsd/vfs.c
 @@ -893,7 +893,7 @@ __be32 nfsd_readv(struct file *file, loff_t offset, struct kvec *vec, int vlen,
@@ -73005,19 +79357,6 @@ index 9e38daf..5727cae 100644
                ntfs_error(sb, "Out of bounds check failed. Corrupt directory "
                                "inode 0x%lx or driver bug.", vdir->i_ino);
                goto err_out;
-diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
-index 1da9b2d..9cca092a 100644
---- a/fs/ntfs/file.c
-+++ b/fs/ntfs/file.c
-@@ -1281,7 +1281,7 @@ static inline size_t ntfs_copy_from_user(struct page **pages,
-       char *addr;
-       size_t total = 0;
-       unsigned len;
--      int left;
-+      unsigned left;
-       do {
-               len = PAGE_CACHE_SIZE - ofs;
 diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
 index 9e1e112..241a52a 100644
 --- a/fs/ntfs/super.c
@@ -73050,7 +79389,7 @@ index 9e1e112..241a52a 100644
        if (bh_primary)
                brelse(bh_primary);
 diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c
-index 0440134..d52c93a 100644
+index 857bbbc..3c47d15 100644
 --- a/fs/ocfs2/localalloc.c
 +++ b/fs/ocfs2/localalloc.c
 @@ -1320,7 +1320,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb,
@@ -73083,21 +79422,8 @@ index 460c6c3..b4ef513 100644
  };
  
  enum ocfs2_local_alloc_state
-diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
-index ee541f9..df3a500 100644
---- a/fs/ocfs2/refcounttree.c
-+++ b/fs/ocfs2/refcounttree.c
-@@ -4276,7 +4276,7 @@ static int ocfs2_reflink(struct dentry *old_dentry, struct inode *dir,
-       error = posix_acl_create(dir, &mode, &default_acl, &acl);
-       if (error) {
-               mlog_errno(error);
--              goto out;
-+              return error;
-       }
-       error = ocfs2_create_inode_in_orphan(dir, mode,
 diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
-index 0cb889a..6a26b24 100644
+index 4479029..5de740b 100644
 --- a/fs/ocfs2/suballoc.c
 +++ b/fs/ocfs2/suballoc.c
 @@ -867,7 +867,7 @@ static int ocfs2_reserve_suballoc_bits(struct ocfs2_super *osb,
@@ -73155,7 +79481,7 @@ index 0cb889a..6a26b24 100644
                }
        }
 diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
-index 2667518..24bcf79 100644
+index 403c566..6525b35 100644
 --- a/fs/ocfs2/super.c
 +++ b/fs/ocfs2/super.c
 @@ -308,11 +308,11 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
@@ -73175,7 +79501,7 @@ index 2667518..24bcf79 100644
  
        out += snprintf(buf + out, len - out,
                        "%10s => State: %u  Descriptor: %llu  Size: %u bits  "
-@@ -2093,11 +2093,11 @@ static int ocfs2_initialize_super(struct super_block *sb,
+@@ -2095,11 +2095,11 @@ static int ocfs2_initialize_super(struct super_block *sb,
  
        mutex_init(&osb->system_file_mutex);
  
@@ -73193,7 +79519,7 @@ index 2667518..24bcf79 100644
        /* Copy the blockcheck stats from the superblock probe */
        osb->osb_ecc_stats = *stats;
 diff --git a/fs/open.c b/fs/open.c
-index 44a3be1..5e97aa1 100644
+index 98e5a52..8e77e14 100644
 --- a/fs/open.c
 +++ b/fs/open.c
 @@ -32,6 +32,8 @@
@@ -73223,7 +79549,7 @@ index 44a3be1..5e97aa1 100644
        if (!error)
                error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, f.file);
        sb_end_write(inode->i_sb);
-@@ -392,6 +398,9 @@ retry:
+@@ -396,6 +402,9 @@ retry:
        if (__mnt_is_readonly(path.mnt))
                res = -EROFS;
  
@@ -73233,7 +79559,7 @@ index 44a3be1..5e97aa1 100644
  out_path_release:
        path_put(&path);
        if (retry_estale(res, lookup_flags)) {
-@@ -423,6 +432,8 @@ retry:
+@@ -427,6 +436,8 @@ retry:
        if (error)
                goto dput_and_out;
  
@@ -73242,7 +79568,7 @@ index 44a3be1..5e97aa1 100644
        set_fs_pwd(current->fs, &path);
  
  dput_and_out:
-@@ -452,6 +463,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
+@@ -456,6 +467,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
                goto out_putf;
  
        error = inode_permission(inode, MAY_EXEC | MAY_CHDIR);
@@ -73256,7 +79582,7 @@ index 44a3be1..5e97aa1 100644
        if (!error)
                set_fs_pwd(current->fs, &f.file->f_path);
  out_putf:
-@@ -481,7 +499,13 @@ retry:
+@@ -485,7 +503,13 @@ retry:
        if (error)
                goto dput_and_out;
  
@@ -73270,7 +79596,7 @@ index 44a3be1..5e97aa1 100644
        error = 0;
  dput_and_out:
        path_put(&path);
-@@ -505,6 +529,16 @@ static int chmod_common(struct path *path, umode_t mode)
+@@ -509,6 +533,16 @@ static int chmod_common(struct path *path, umode_t mode)
                return error;
  retry_deleg:
        mutex_lock(&inode->i_mutex);
@@ -73287,7 +79613,7 @@ index 44a3be1..5e97aa1 100644
        error = security_path_chmod(path, mode);
        if (error)
                goto out_unlock;
-@@ -570,6 +604,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
+@@ -574,6 +608,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
        uid = make_kuid(current_user_ns(), user);
        gid = make_kgid(current_user_ns(), group);
  
@@ -73297,7 +79623,7 @@ index 44a3be1..5e97aa1 100644
  retry_deleg:
        newattrs.ia_valid =  ATTR_CTIME;
        if (user != (uid_t) -1) {
-@@ -1017,6 +1054,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
+@@ -1018,6 +1055,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
                } else {
                        fsnotify_open(f);
                        fd_install(fd, f);
@@ -73305,8 +79631,22 @@ index 44a3be1..5e97aa1 100644
                }
        }
        putname(tmp);
+diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
+index 04f1248..60b3be1 100644
+--- a/fs/overlayfs/inode.c
++++ b/fs/overlayfs/inode.c
+@@ -344,6 +344,9 @@ static int ovl_dentry_open(struct dentry *dentry, struct file *file,
+       enum ovl_path_type type;
+       bool want_write = false;
++      if (d_is_dir(dentry))
++              return d_backing_inode(dentry);
++
+       type = ovl_path_real(dentry, &realpath);
+       if (ovl_open_need_copy_up(file->f_flags, type, realpath.dentry)) {
+               want_write = true;
 diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
-index 5f0d199..13b74b9 100644
+index bf8537c..c16ef7d 100644
 --- a/fs/overlayfs/super.c
 +++ b/fs/overlayfs/super.c
 @@ -172,7 +172,7 @@ void ovl_path_lower(struct dentry *dentry, struct path *path)
@@ -73330,10 +79670,10 @@ index 5f0d199..13b74b9 100644
        struct ovl_entry *oe;
        struct ovl_fs *ufs;
 diff --git a/fs/pipe.c b/fs/pipe.c
-index 21981e5..2c0bffb 100644
+index 8865f79..bd2c79b 100644
 --- a/fs/pipe.c
 +++ b/fs/pipe.c
-@@ -37,7 +37,7 @@ unsigned int pipe_max_size = 1048576;
+@@ -36,7 +36,7 @@ unsigned int pipe_max_size = 1048576;
  /*
   * Minimum pipe size, as required by POSIX
   */
@@ -73342,7 +79682,7 @@ index 21981e5..2c0bffb 100644
  
  /*
   * We use a start+len construction, which provides full use of the 
-@@ -56,7 +56,7 @@ unsigned int pipe_min_size = PAGE_SIZE;
+@@ -55,7 +55,7 @@ unsigned int pipe_min_size = PAGE_SIZE;
  
  static void pipe_lock_nested(struct pipe_inode_info *pipe, int subclass)
  {
@@ -73351,7 +79691,7 @@ index 21981e5..2c0bffb 100644
                mutex_lock_nested(&pipe->mutex, subclass);
  }
  
-@@ -71,7 +71,7 @@ EXPORT_SYMBOL(pipe_lock);
+@@ -70,7 +70,7 @@ EXPORT_SYMBOL(pipe_lock);
  
  void pipe_unlock(struct pipe_inode_info *pipe)
  {
@@ -73360,7 +79700,7 @@ index 21981e5..2c0bffb 100644
                mutex_unlock(&pipe->mutex);
  }
  EXPORT_SYMBOL(pipe_unlock);
-@@ -292,9 +292,9 @@ pipe_read(struct kiocb *iocb, struct iov_iter *to)
+@@ -291,9 +291,9 @@ pipe_read(struct kiocb *iocb, struct iov_iter *to)
                }
                if (bufs)       /* More to do? */
                        continue;
@@ -73372,7 +79712,7 @@ index 21981e5..2c0bffb 100644
                        /* syscall merging: Usually we must not sleep
                         * if O_NONBLOCK is set, or if we got some data.
                         * But if a writer sleeps in kernel space, then
-@@ -351,7 +351,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
+@@ -350,7 +350,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
  
        __pipe_lock(pipe);
  
@@ -73381,7 +79721,7 @@ index 21981e5..2c0bffb 100644
                send_sig(SIGPIPE, current, 0);
                ret = -EPIPE;
                goto out;
-@@ -387,7 +387,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
+@@ -386,7 +386,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
        for (;;) {
                int bufs;
  
@@ -73390,7 +79730,7 @@ index 21981e5..2c0bffb 100644
                        send_sig(SIGPIPE, current, 0);
                        if (!ret)
                                ret = -EPIPE;
-@@ -455,9 +455,9 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
+@@ -454,9 +454,9 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
                        kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
                        do_wakeup = 0;
                }
@@ -73402,7 +79742,7 @@ index 21981e5..2c0bffb 100644
        }
  out:
        __pipe_unlock(pipe);
-@@ -512,7 +512,7 @@ pipe_poll(struct file *filp, poll_table *wait)
+@@ -511,7 +511,7 @@ pipe_poll(struct file *filp, poll_table *wait)
        mask = 0;
        if (filp->f_mode & FMODE_READ) {
                mask = (nrbufs > 0) ? POLLIN | POLLRDNORM : 0;
@@ -73411,7 +79751,7 @@ index 21981e5..2c0bffb 100644
                        mask |= POLLHUP;
        }
  
-@@ -522,7 +522,7 @@ pipe_poll(struct file *filp, poll_table *wait)
+@@ -521,7 +521,7 @@ pipe_poll(struct file *filp, poll_table *wait)
                 * Most Unices do not set POLLERR for FIFOs but on Linux they
                 * behave exactly like pipes for poll().
                 */
@@ -73420,7 +79760,7 @@ index 21981e5..2c0bffb 100644
                        mask |= POLLERR;
        }
  
-@@ -534,7 +534,7 @@ static void put_pipe_info(struct inode *inode, struct pipe_inode_info *pipe)
+@@ -533,7 +533,7 @@ static void put_pipe_info(struct inode *inode, struct pipe_inode_info *pipe)
        int kill = 0;
  
        spin_lock(&inode->i_lock);
@@ -73429,7 +79769,7 @@ index 21981e5..2c0bffb 100644
                inode->i_pipe = NULL;
                kill = 1;
        }
-@@ -551,11 +551,11 @@ pipe_release(struct inode *inode, struct file *file)
+@@ -550,11 +550,11 @@ pipe_release(struct inode *inode, struct file *file)
  
        __pipe_lock(pipe);
        if (file->f_mode & FMODE_READ)
@@ -73444,7 +79784,7 @@ index 21981e5..2c0bffb 100644
                wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP);
                kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
                kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
-@@ -620,7 +620,7 @@ void free_pipe_info(struct pipe_inode_info *pipe)
+@@ -619,7 +619,7 @@ void free_pipe_info(struct pipe_inode_info *pipe)
        kfree(pipe);
  }
  
@@ -73453,7 +79793,7 @@ index 21981e5..2c0bffb 100644
  
  /*
   * pipefs_dname() is called from d_path().
-@@ -650,8 +650,9 @@ static struct inode * get_pipe_inode(void)
+@@ -649,8 +649,9 @@ static struct inode * get_pipe_inode(void)
                goto fail_iput;
  
        inode->i_pipe = pipe;
@@ -73465,7 +79805,7 @@ index 21981e5..2c0bffb 100644
        inode->i_fop = &pipefifo_fops;
  
        /*
-@@ -830,17 +831,17 @@ static int fifo_open(struct inode *inode, struct file *filp)
+@@ -829,17 +830,17 @@ static int fifo_open(struct inode *inode, struct file *filp)
        spin_lock(&inode->i_lock);
        if (inode->i_pipe) {
                pipe = inode->i_pipe;
@@ -73486,7 +79826,7 @@ index 21981e5..2c0bffb 100644
                        spin_unlock(&inode->i_lock);
                        free_pipe_info(pipe);
                        pipe = inode->i_pipe;
-@@ -865,10 +866,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
+@@ -864,10 +865,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
         *  opened, even when there is no process writing the FIFO.
         */
                pipe->r_counter++;
@@ -73499,7 +79839,7 @@ index 21981e5..2c0bffb 100644
                        if ((filp->f_flags & O_NONBLOCK)) {
                                /* suppress POLLHUP until we have
                                 * seen a writer */
-@@ -887,14 +888,14 @@ static int fifo_open(struct inode *inode, struct file *filp)
+@@ -886,14 +887,14 @@ static int fifo_open(struct inode *inode, struct file *filp)
         *  errno=ENXIO when there is no process reading the FIFO.
         */
                ret = -ENXIO;
@@ -73517,7 +79857,7 @@ index 21981e5..2c0bffb 100644
                        if (wait_for_partner(pipe, &pipe->r_counter))
                                goto err_wr;
                }
-@@ -908,11 +909,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
+@@ -907,11 +908,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
         *  the process can at least talk to itself.
         */
  
@@ -73532,7 +79872,7 @@ index 21981e5..2c0bffb 100644
                        wake_up_partner(pipe);
                break;
  
-@@ -926,13 +927,13 @@ static int fifo_open(struct inode *inode, struct file *filp)
+@@ -925,13 +926,13 @@ static int fifo_open(struct inode *inode, struct file *filp)
        return 0;
  
  err_rd:
@@ -73548,7 +79888,7 @@ index 21981e5..2c0bffb 100644
                wake_up_interruptible(&pipe->wait);
        ret = -ERESTARTSYS;
        goto err;
-@@ -1010,7 +1011,7 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long nr_pages)
+@@ -1007,7 +1008,7 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long nr_pages)
   * Currently we rely on the pipe array holding a power-of-2 number
   * of pages.
   */
@@ -73557,7 +79897,7 @@ index 21981e5..2c0bffb 100644
  {
        unsigned long nr_pages;
  
-@@ -1058,13 +1059,16 @@ long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg)
+@@ -1055,13 +1056,16 @@ long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg)
  
        switch (cmd) {
        case F_SETPIPE_SZ: {
@@ -73577,8 +79917,21 @@ index 21981e5..2c0bffb 100644
                        goto out;
  
                if (!capable(CAP_SYS_RESOURCE) && size > pipe_max_size) {
+diff --git a/fs/pnode.h b/fs/pnode.h
+index 7114ce6..0fcdbe7 100644
+--- a/fs/pnode.h
++++ b/fs/pnode.h
+@@ -20,8 +20,6 @@
+ #define SET_MNT_MARK(m) ((m)->mnt.mnt_flags |= MNT_MARKED)
+ #define CLEAR_MNT_MARK(m) ((m)->mnt.mnt_flags &= ~MNT_MARKED)
+ #define IS_MNT_LOCKED(m) ((m)->mnt.mnt_flags & MNT_LOCKED)
+-#define IS_MNT_LOCKED_AND_LAZY(m) \
+-      (((m)->mnt.mnt_flags & (MNT_LOCKED|MNT_SYNC_UMOUNT)) == MNT_LOCKED)
+ #define CL_EXPIRE             0x01
+ #define CL_SLAVE              0x02
 diff --git a/fs/posix_acl.c b/fs/posix_acl.c
-index 3a48bb7..403067b 100644
+index 84bb65b8..4270e47 100644
 --- a/fs/posix_acl.c
 +++ b/fs/posix_acl.c
 @@ -20,6 +20,7 @@
@@ -73694,7 +80047,7 @@ index 2183fcf..3c32a98 100644
        help
          Various /proc files exist to monitor process memory utilization:
 diff --git a/fs/proc/array.c b/fs/proc/array.c
-index 1295a00..4c91a6b 100644
+index fd02a9e..7bc9dff 100644
 --- a/fs/proc/array.c
 +++ b/fs/proc/array.c
 @@ -60,6 +60,7 @@
@@ -73705,7 +80058,7 @@ index 1295a00..4c91a6b 100644
  #include <linux/proc_fs.h>
  #include <linux/ioport.h>
  #include <linux/uaccess.h>
-@@ -322,6 +323,21 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
+@@ -340,6 +341,21 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
                   cpumask_pr_args(&task->cpus_allowed));
  }
  
@@ -73727,7 +80080,7 @@ index 1295a00..4c91a6b 100644
  int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
                        struct pid *pid, struct task_struct *task)
  {
-@@ -340,9 +356,24 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
+@@ -358,9 +374,24 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
        task_cpus_allowed(m, task);
        cpuset_task_status_allowed(m, task);
        task_context_switch_counts(m, task);
@@ -73752,7 +80105,7 @@ index 1295a00..4c91a6b 100644
  static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
                        struct pid *pid, struct task_struct *task, int whole)
  {
-@@ -364,6 +395,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+@@ -382,6 +413,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
        char tcomm[sizeof(task->comm)];
        unsigned long flags;
  
@@ -73766,7 +80119,7 @@ index 1295a00..4c91a6b 100644
        state = *get_task_state(task);
        vsize = eip = esp = 0;
        permitted = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
-@@ -434,6 +472,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+@@ -452,6 +490,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
                gtime = task_gtime(task);
        }
  
@@ -73786,7 +80139,7 @@ index 1295a00..4c91a6b 100644
        /* scale priority and nice values from timeslices to -20..20 */
        /* to make it look like a "normal" Unix priority/nice value  */
        priority = task_prio(task);
-@@ -465,9 +516,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+@@ -483,9 +534,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
        seq_put_decimal_ull(m, ' ', vsize);
        seq_put_decimal_ull(m, ' ', mm ? get_mm_rss(mm) : 0);
        seq_put_decimal_ull(m, ' ', rsslim);
@@ -73802,7 +80155,7 @@ index 1295a00..4c91a6b 100644
        seq_put_decimal_ull(m, ' ', esp);
        seq_put_decimal_ull(m, ' ', eip);
        /* The signal information here is obsolete.
-@@ -489,7 +546,11 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+@@ -507,7 +564,11 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
        seq_put_decimal_ull(m, ' ', cputime_to_clock_t(gtime));
        seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cgtime));
  
@@ -73815,7 +80168,7 @@ index 1295a00..4c91a6b 100644
                seq_put_decimal_ull(m, ' ', mm->start_data);
                seq_put_decimal_ull(m, ' ', mm->end_data);
                seq_put_decimal_ull(m, ' ', mm->start_brk);
-@@ -527,8 +588,15 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
+@@ -545,8 +606,15 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
                        struct pid *pid, struct task_struct *task)
  {
        unsigned long size = 0, resident = 0, shared = 0, text = 0, data = 0;
@@ -73832,7 +80185,7 @@ index 1295a00..4c91a6b 100644
        if (mm) {
                size = task_statm(mm, &shared, &text, &data, &resident);
                mmput(mm);
-@@ -551,6 +619,20 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
+@@ -569,6 +637,20 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
        return 0;
  }
  
@@ -73854,7 +80207,7 @@ index 1295a00..4c91a6b 100644
  static struct pid *
  get_children_pid(struct inode *inode, struct pid *pid_prev, loff_t pos)
 diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 3f3d7ae..68de109 100644
+index 093ca14..322f097 100644
 --- a/fs/proc/base.c
 +++ b/fs/proc/base.c
 @@ -113,6 +113,14 @@ struct pid_entry {
@@ -73910,7 +80263,7 @@ index 3f3d7ae..68de109 100644
  /*
   * Provides a wchan file via kallsyms in a proper one-value-per-file format.
   * Returns the resolved symbol.  If that fails, simply return the address.
-@@ -265,7 +289,7 @@ static void unlock_trace(struct task_struct *task)
+@@ -267,7 +291,7 @@ static void unlock_trace(struct task_struct *task)
        mutex_unlock(&task->signal->cred_guard_mutex);
  }
  
@@ -73919,7 +80272,7 @@ index 3f3d7ae..68de109 100644
  
  #define MAX_STACK_TRACE_DEPTH 64
  
-@@ -456,7 +480,7 @@ static int proc_pid_limits(struct seq_file *m, struct pid_namespace *ns,
+@@ -462,7 +486,7 @@ static int proc_pid_limits(struct seq_file *m, struct pid_namespace *ns,
        return 0;
  }
  
@@ -73928,7 +80281,7 @@ index 3f3d7ae..68de109 100644
  static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
                            struct pid *pid, struct task_struct *task)
  {
-@@ -486,7 +510,7 @@ static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
+@@ -495,7 +519,7 @@ static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
  /************************************************************************/
  
  /* permission checks */
@@ -73937,7 +80290,7 @@ index 3f3d7ae..68de109 100644
  {
        struct task_struct *task;
        int allowed = 0;
-@@ -496,7 +520,10 @@ static int proc_fd_access_allowed(struct inode *inode)
+@@ -505,7 +529,10 @@ static int proc_fd_access_allowed(struct inode *inode)
         */
        task = get_proc_task(inode);
        if (task) {
@@ -73949,7 +80302,7 @@ index 3f3d7ae..68de109 100644
                put_task_struct(task);
        }
        return allowed;
-@@ -527,10 +554,35 @@ static bool has_pid_permissions(struct pid_namespace *pid,
+@@ -536,10 +563,35 @@ static bool has_pid_permissions(struct pid_namespace *pid,
                                 struct task_struct *task,
                                 int hide_pid_min)
  {
@@ -73985,7 +80338,7 @@ index 3f3d7ae..68de109 100644
        return ptrace_may_access(task, PTRACE_MODE_READ);
  }
  
-@@ -548,7 +600,11 @@ static int proc_pid_permission(struct inode *inode, int mask)
+@@ -557,7 +609,11 @@ static int proc_pid_permission(struct inode *inode, int mask)
        put_task_struct(task);
  
        if (!has_perms) {
@@ -73997,7 +80350,7 @@ index 3f3d7ae..68de109 100644
                        /*
                         * Let's make getdents(), stat(), and open()
                         * consistent with each other.  If a process
-@@ -609,6 +665,10 @@ struct mm_struct *proc_mem_open(struct inode *inode, unsigned int mode)
+@@ -618,6 +674,10 @@ struct mm_struct *proc_mem_open(struct inode *inode, unsigned int mode)
  
        if (task) {
                mm = mm_access(task, mode);
@@ -74008,7 +80361,7 @@ index 3f3d7ae..68de109 100644
                put_task_struct(task);
  
                if (!IS_ERR_OR_NULL(mm)) {
-@@ -630,6 +690,11 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
+@@ -639,6 +699,11 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
                return PTR_ERR(mm);
  
        file->private_data = mm;
@@ -74020,7 +80373,7 @@ index 3f3d7ae..68de109 100644
        return 0;
  }
  
-@@ -651,6 +716,17 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
+@@ -660,6 +725,17 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
        ssize_t copied;
        char *page;
  
@@ -74038,7 +80391,7 @@ index 3f3d7ae..68de109 100644
        if (!mm)
                return 0;
  
-@@ -663,7 +739,7 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
+@@ -672,7 +748,7 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
                goto free;
  
        while (count > 0) {
@@ -74047,7 +80400,7 @@ index 3f3d7ae..68de109 100644
  
                if (write && copy_from_user(page, buf, this_len)) {
                        copied = -EFAULT;
-@@ -755,6 +831,13 @@ static ssize_t environ_read(struct file *file, char __user *buf,
+@@ -764,6 +840,13 @@ static ssize_t environ_read(struct file *file, char __user *buf,
        if (!mm)
                return 0;
  
@@ -74061,7 +80414,7 @@ index 3f3d7ae..68de109 100644
        page = (char *)__get_free_page(GFP_TEMPORARY);
        if (!page)
                return -ENOMEM;
-@@ -764,7 +847,7 @@ static ssize_t environ_read(struct file *file, char __user *buf,
+@@ -773,7 +856,7 @@ static ssize_t environ_read(struct file *file, char __user *buf,
                goto free;
        while (count > 0) {
                size_t this_len, max_len;
@@ -74070,7 +80423,7 @@ index 3f3d7ae..68de109 100644
  
                if (src >= (mm->env_end - mm->env_start))
                        break;
-@@ -1378,7 +1461,7 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd)
+@@ -1387,7 +1470,7 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd)
        int error = -EACCES;
  
        /* Are we allowed to snoop on the tasks file descriptors? */
@@ -74079,7 +80432,7 @@ index 3f3d7ae..68de109 100644
                goto out;
  
        error = PROC_I(inode)->op.proc_get_link(dentry, &path);
-@@ -1422,8 +1505,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
+@@ -1431,8 +1514,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
        struct path path;
  
        /* Are we allowed to snoop on the tasks file descriptors? */
@@ -74100,7 +80453,7 @@ index 3f3d7ae..68de109 100644
  
        error = PROC_I(inode)->op.proc_get_link(dentry, &path);
        if (error)
-@@ -1473,7 +1566,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
+@@ -1482,7 +1575,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
                rcu_read_lock();
                cred = __task_cred(task);
                inode->i_uid = cred->euid;
@@ -74112,7 +80465,7 @@ index 3f3d7ae..68de109 100644
                rcu_read_unlock();
        }
        security_task_to_inode(task, inode);
-@@ -1509,10 +1606,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+@@ -1518,10 +1615,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
                        return -ENOENT;
                }
                if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
@@ -74132,7 +80485,7 @@ index 3f3d7ae..68de109 100644
                }
        }
        rcu_read_unlock();
-@@ -1550,11 +1656,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags)
+@@ -1559,11 +1665,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags)
  
        if (task) {
                if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
@@ -74153,7 +80506,7 @@ index 3f3d7ae..68de109 100644
                        rcu_read_unlock();
                } else {
                        inode->i_uid = GLOBAL_ROOT_UID;
-@@ -2085,6 +2200,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
+@@ -2095,6 +2210,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
        if (!task)
                goto out_no_task;
  
@@ -74163,7 +80516,7 @@ index 3f3d7ae..68de109 100644
        /*
         * Yes, it does not scale. And it should not. Don't add
         * new entries into /proc/<tgid>/ without very good reasons.
-@@ -2115,6 +2233,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx,
+@@ -2125,6 +2243,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx,
        if (!task)
                return -ENOENT;
  
@@ -74173,7 +80526,7 @@ index 3f3d7ae..68de109 100644
        if (!dir_emit_dots(file, ctx))
                goto out;
  
-@@ -2557,7 +2678,7 @@ static const struct pid_entry tgid_base_stuff[] = {
+@@ -2569,7 +2690,7 @@ static const struct pid_entry tgid_base_stuff[] = {
        REG("autogroup",  S_IRUGO|S_IWUSR, proc_pid_sched_autogroup_operations),
  #endif
        REG("comm",      S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -74182,7 +80535,7 @@ index 3f3d7ae..68de109 100644
        ONE("syscall",    S_IRUSR, proc_pid_syscall),
  #endif
        ONE("cmdline",    S_IRUGO, proc_pid_cmdline),
-@@ -2582,10 +2703,10 @@ static const struct pid_entry tgid_base_stuff[] = {
+@@ -2594,10 +2715,10 @@ static const struct pid_entry tgid_base_stuff[] = {
  #ifdef CONFIG_SECURITY
        DIR("attr",       S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
  #endif
@@ -74195,7 +80548,7 @@ index 3f3d7ae..68de109 100644
        ONE("stack",      S_IRUSR, proc_pid_stack),
  #endif
  #ifdef CONFIG_SCHEDSTATS
-@@ -2619,6 +2740,9 @@ static const struct pid_entry tgid_base_stuff[] = {
+@@ -2631,6 +2752,9 @@ static const struct pid_entry tgid_base_stuff[] = {
  #ifdef CONFIG_HARDWALL
        ONE("hardwall",   S_IRUGO, proc_pid_hardwall),
  #endif
@@ -74205,7 +80558,7 @@ index 3f3d7ae..68de109 100644
  #ifdef CONFIG_USER_NS
        REG("uid_map",    S_IRUGO|S_IWUSR, proc_uid_map_operations),
        REG("gid_map",    S_IRUGO|S_IWUSR, proc_gid_map_operations),
-@@ -2751,7 +2875,14 @@ static int proc_pid_instantiate(struct inode *dir,
+@@ -2763,7 +2887,14 @@ static int proc_pid_instantiate(struct inode *dir,
        if (!inode)
                goto out;
  
@@ -74220,7 +80573,7 @@ index 3f3d7ae..68de109 100644
        inode->i_op = &proc_tgid_base_inode_operations;
        inode->i_fop = &proc_tgid_base_operations;
        inode->i_flags|=S_IMMUTABLE;
-@@ -2789,7 +2920,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign
+@@ -2801,7 +2932,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign
        if (!task)
                goto out;
  
@@ -74232,7 +80585,7 @@ index 3f3d7ae..68de109 100644
        put_task_struct(task);
  out:
        return ERR_PTR(result);
-@@ -2903,7 +3038,7 @@ static const struct pid_entry tid_base_stuff[] = {
+@@ -2915,7 +3050,7 @@ static const struct pid_entry tid_base_stuff[] = {
        REG("sched",     S_IRUGO|S_IWUSR, proc_pid_sched_operations),
  #endif
        REG("comm",      S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -74241,7 +80594,7 @@ index 3f3d7ae..68de109 100644
        ONE("syscall",   S_IRUSR, proc_pid_syscall),
  #endif
        ONE("cmdline",   S_IRUGO, proc_pid_cmdline),
-@@ -2930,10 +3065,10 @@ static const struct pid_entry tid_base_stuff[] = {
+@@ -2942,10 +3077,10 @@ static const struct pid_entry tid_base_stuff[] = {
  #ifdef CONFIG_SECURITY
        DIR("attr",      S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
  #endif
@@ -74287,10 +80640,10 @@ index 50493ed..248166b 100644
  }
  fs_initcall(proc_devices_init);
 diff --git a/fs/proc/fd.c b/fs/proc/fd.c
-index 8e5ad83..1f07a8c 100644
+index 6e5fcd0..06ea074 100644
 --- a/fs/proc/fd.c
 +++ b/fs/proc/fd.c
-@@ -26,7 +26,8 @@ static int seq_show(struct seq_file *m, void *v)
+@@ -27,7 +27,8 @@ static int seq_show(struct seq_file *m, void *v)
        if (!task)
                return -ENOENT;
  
@@ -74300,7 +80653,7 @@ index 8e5ad83..1f07a8c 100644
        put_task_struct(task);
  
        if (files) {
-@@ -284,11 +285,21 @@ static struct dentry *proc_lookupfd(struct inode *dir, struct dentry *dentry,
+@@ -291,11 +292,21 @@ static struct dentry *proc_lookupfd(struct inode *dir, struct dentry *dentry,
   */
  int proc_fd_permission(struct inode *inode, int mask)
  {
@@ -74325,7 +80678,7 @@ index 8e5ad83..1f07a8c 100644
  }
  
 diff --git a/fs/proc/generic.c b/fs/proc/generic.c
-index be65b20..2998ba8 100644
+index e5dee5c..dafe21b 100644
 --- a/fs/proc/generic.c
 +++ b/fs/proc/generic.c
 @@ -22,6 +22,7 @@
@@ -74395,7 +80748,7 @@ index be65b20..2998ba8 100644
  static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp)
  {
        int ret;
-@@ -441,6 +473,31 @@ struct proc_dir_entry *proc_mkdir_data(const char *name, umode_t mode,
+@@ -445,6 +477,31 @@ struct proc_dir_entry *proc_mkdir_data(const char *name, umode_t mode,
  }
  EXPORT_SYMBOL_GPL(proc_mkdir_data);
  
@@ -74427,7 +80780,7 @@ index be65b20..2998ba8 100644
  struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode,
                                       struct proc_dir_entry *parent)
  {
-@@ -455,6 +512,13 @@ struct proc_dir_entry *proc_mkdir(const char *name,
+@@ -459,6 +516,13 @@ struct proc_dir_entry *proc_mkdir(const char *name,
  }
  EXPORT_SYMBOL(proc_mkdir);
  
@@ -74438,11 +80791,11 @@ index be65b20..2998ba8 100644
 +}
 +EXPORT_SYMBOL(proc_mkdir_restrict);
 +
- struct proc_dir_entry *proc_create_data(const char *name, umode_t mode,
-                                       struct proc_dir_entry *parent,
-                                       const struct file_operations *proc_fops,
+ struct proc_dir_entry *proc_create_mount_point(const char *name)
+ {
+       umode_t mode = S_IFDIR | S_IRUGO | S_IXUGO;
 diff --git a/fs/proc/inode.c b/fs/proc/inode.c
-index 7697b66..8d8e541 100644
+index e3eb552..bcb0f25 100644
 --- a/fs/proc/inode.c
 +++ b/fs/proc/inode.c
 @@ -24,11 +24,17 @@
@@ -74477,7 +80830,7 @@ index 7697b66..8d8e541 100644
  }
  
  static struct kmem_cache * proc_inode_cachep;
-@@ -426,7 +439,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
+@@ -430,7 +443,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
                if (de->mode) {
                        inode->i_mode = de->mode;
                        inode->i_uid = de->uid;
@@ -74490,7 +80843,7 @@ index 7697b66..8d8e541 100644
                if (de->size)
                        inode->i_size = de->size;
 diff --git a/fs/proc/internal.h b/fs/proc/internal.h
-index c835b94..c9e01a3 100644
+index aa27810..9f2d3b2 100644
 --- a/fs/proc/internal.h
 +++ b/fs/proc/internal.h
 @@ -47,9 +47,10 @@ struct proc_dir_entry {
@@ -74649,7 +81002,7 @@ index d4a3574..b421ce9 100644
  
        seq_putc(m, '\n');
 diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
-index 1bde894..22ac7eb 100644
+index 350984a..0fb02a9 100644
 --- a/fs/proc/proc_net.c
 +++ b/fs/proc/proc_net.c
 @@ -23,9 +23,27 @@
@@ -74715,7 +81068,7 @@ index 1bde894..22ac7eb 100644
        net = get_proc_net(inode);
        if (net == NULL)
 diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
-index f92d5dd..26398ac 100644
+index fdda62e..cd7c75f 100644
 --- a/fs/proc/proc_sysctl.c
 +++ b/fs/proc/proc_sysctl.c
 @@ -11,13 +11,21 @@
@@ -74740,9 +81093,29 @@ index f92d5dd..26398ac 100644
 -static const struct inode_operations proc_sys_dir_operations;
 +const struct inode_operations proc_sys_dir_operations;
  
- void proc_sys_poll_notify(struct ctl_table_poll *poll)
+ /* Support for permanently empty directories */
+@@ -32,13 +40,17 @@ static bool is_empty_dir(struct ctl_table_header *head)
+ static void set_empty_dir(struct ctl_dir *dir)
+ {
+-      dir->header.ctl_table[0].child = sysctl_mount_point;
++      pax_open_kernel();
++      *(const void **)&dir->header.ctl_table[0].child = sysctl_mount_point;
++      pax_close_kernel();
+ }
+ static void clear_empty_dir(struct ctl_dir *dir)
  {
-@@ -467,6 +475,9 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
+-      dir->header.ctl_table[0].child = NULL;
++      pax_open_kernel();
++      *(void **)&dir->header.ctl_table[0].child = NULL;
++      pax_close_kernel();
+ }
+ void proc_sys_poll_notify(struct ctl_table_poll *poll)
+@@ -504,6 +516,9 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
  
        err = NULL;
        d_set_d_op(dentry, &proc_sys_dentry_operations);
@@ -74752,7 +81125,7 @@ index f92d5dd..26398ac 100644
        d_add(dentry, inode);
  
  out:
-@@ -482,6 +493,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+@@ -519,6 +534,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
        struct inode *inode = file_inode(filp);
        struct ctl_table_header *head = grab_header(inode);
        struct ctl_table *table = PROC_I(inode)->sysctl_entry;
@@ -74760,7 +81133,7 @@ index f92d5dd..26398ac 100644
        ssize_t error;
        size_t res;
  
-@@ -493,7 +505,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+@@ -530,7 +546,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
         * and won't be until we finish.
         */
        error = -EPERM;
@@ -74769,7 +81142,7 @@ index f92d5dd..26398ac 100644
                goto out;
  
        /* if that can happen at all, it should be -EINVAL, not -EISDIR */
-@@ -501,6 +513,27 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+@@ -538,6 +554,27 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
        if (!table->proc_handler)
                goto out;
  
@@ -74797,7 +81170,7 @@ index f92d5dd..26398ac 100644
        /* careful: calling conventions are nasty here */
        res = count;
        error = table->proc_handler(table, write, buf, &res, ppos);
-@@ -598,6 +631,9 @@ static bool proc_sys_fill_cache(struct file *file,
+@@ -635,6 +672,9 @@ static bool proc_sys_fill_cache(struct file *file,
                                return false;
                        } else {
                                d_set_d_op(child, &proc_sys_dentry_operations);
@@ -74807,7 +81180,7 @@ index f92d5dd..26398ac 100644
                                d_add(child, inode);
                        }
                } else {
-@@ -641,6 +677,9 @@ static int scan(struct ctl_table_header *head, struct ctl_table *table,
+@@ -678,6 +718,9 @@ static int scan(struct ctl_table_header *head, struct ctl_table *table,
        if ((*pos)++ < ctx->pos)
                return true;
  
@@ -74817,7 +81190,7 @@ index f92d5dd..26398ac 100644
        if (unlikely(S_ISLNK(table->mode)))
                res = proc_sys_link_fill_cache(file, ctx, head, table);
        else
-@@ -734,6 +773,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
+@@ -771,6 +814,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
        if (IS_ERR(head))
                return PTR_ERR(head);
  
@@ -74827,7 +81200,7 @@ index f92d5dd..26398ac 100644
        generic_fillattr(inode, stat);
        if (table)
                stat->mode = (stat->mode & S_IFMT) | table->mode;
-@@ -756,13 +798,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
+@@ -793,13 +839,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
        .llseek         = generic_file_llseek,
  };
  
@@ -74843,7 +81216,7 @@ index f92d5dd..26398ac 100644
        .lookup         = proc_sys_lookup,
        .permission     = proc_sys_permission,
        .setattr        = proc_sys_setattr,
-@@ -839,7 +881,7 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
+@@ -876,7 +922,7 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
  static struct ctl_dir *new_dir(struct ctl_table_set *set,
                               const char *name, int namelen)
  {
@@ -74852,7 +81225,7 @@ index f92d5dd..26398ac 100644
        struct ctl_dir *new;
        struct ctl_node *node;
        char *new_name;
-@@ -851,7 +893,7 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
+@@ -888,7 +934,7 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
                return NULL;
  
        node = (struct ctl_node *)(new + 1);
@@ -74861,7 +81234,7 @@ index f92d5dd..26398ac 100644
        new_name = (char *)(table + 2);
        memcpy(new_name, name, namelen);
        new_name[namelen] = '\0';
-@@ -1020,7 +1062,8 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
+@@ -1057,7 +1103,8 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
  static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table *table,
        struct ctl_table_root *link_root)
  {
@@ -74871,7 +81244,7 @@ index f92d5dd..26398ac 100644
        struct ctl_table_header *links;
        struct ctl_node *node;
        char *link_name;
-@@ -1043,7 +1086,7 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
+@@ -1080,7 +1127,7 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
                return NULL;
  
        node = (struct ctl_node *)(links + 1);
@@ -74880,7 +81253,7 @@ index f92d5dd..26398ac 100644
        link_name = (char *)&link_table[nr_entries + 1];
  
        for (link = link_table, entry = table; entry->procname; link++, entry++) {
-@@ -1291,8 +1334,8 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
+@@ -1328,8 +1375,8 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
        struct ctl_table_header ***subheader, struct ctl_table_set *set,
        struct ctl_table *table)
  {
@@ -74891,7 +81264,7 @@ index f92d5dd..26398ac 100644
        int nr_files = 0;
        int nr_dirs = 0;
        int err = -ENOMEM;
-@@ -1304,10 +1347,9 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
+@@ -1341,10 +1388,9 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
                        nr_files++;
        }
  
@@ -74903,7 +81276,7 @@ index f92d5dd..26398ac 100644
                files = kzalloc(sizeof(struct ctl_table) * (nr_files + 1),
                                GFP_KERNEL);
                if (!files)
-@@ -1325,7 +1367,7 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
+@@ -1362,7 +1408,7 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
        /* Register everything except a directory full of subdirectories */
        if (nr_files || !nr_dirs) {
                struct ctl_table_header *header;
@@ -74913,11 +81286,11 @@ index f92d5dd..26398ac 100644
                        kfree(ctl_table_arg);
                        goto out;
 diff --git a/fs/proc/root.c b/fs/proc/root.c
-index e74ac9f..35e89f4 100644
+index 68feb0f..2c04780 100644
 --- a/fs/proc/root.c
 +++ b/fs/proc/root.c
-@@ -188,7 +188,15 @@ void __init proc_root_init(void)
-       proc_mkdir("openprom", NULL);
+@@ -185,7 +185,15 @@ void __init proc_root_init(void)
+       proc_create_mount_point("openprom");
  #endif
        proc_tty_init();
 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
@@ -75354,10 +81727,10 @@ index bb2869f..d34ada8 100644
        if (!msg_head) {
                printk(KERN_ERR
 diff --git a/fs/read_write.c b/fs/read_write.c
-index 8e1b687..bad2eec 100644
+index 819ef3f..f07222d 100644
 --- a/fs/read_write.c
 +++ b/fs/read_write.c
-@@ -553,7 +553,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
+@@ -505,7 +505,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
  
        old_fs = get_fs();
        set_fs(get_ds());
@@ -75365,7 +81738,7 @@ index 8e1b687..bad2eec 100644
 +      p = (const char __force_user *)buf;
        if (count > MAX_RW_COUNT)
                count =  MAX_RW_COUNT;
-       if (file->f_op->write)
+       ret = __vfs_write(file, p, count, pos);
 diff --git a/fs/readdir.c b/fs/readdir.c
 index ced6791..936687b 100644
 --- a/fs/readdir.c
@@ -75520,7 +81893,7 @@ index 621b9f3..af527fd 100644
                   SF(s_do_balance), SF(s_unneeded_left_neighbor),
                   SF(s_good_search_by_key_reada), SF(s_bmaps),
 diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h
-index bb79cdd..fcf49ef 100644
+index 2adcde1..7d27bc8 100644
 --- a/fs/reiserfs/reiserfs.h
 +++ b/fs/reiserfs/reiserfs.h
 @@ -580,7 +580,7 @@ struct reiserfs_sb_info {
@@ -75532,7 +81905,7 @@ index bb79cdd..fcf49ef 100644
  
        /* File system properties. Currently holds on-disk FS format */
        unsigned long s_properties;
-@@ -2301,7 +2301,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
+@@ -2300,7 +2300,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
  #define REISERFS_USER_MEM             1       /* user memory mode */
  
  #define fs_generation(s) (REISERFS_SB(s)->s_generation_counter)
@@ -75542,7 +81915,7 @@ index bb79cdd..fcf49ef 100644
  #define __fs_changed(gen,s) (gen != get_generation (s))
  #define fs_changed(gen,s)             \
 diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
-index 71fbbe3..eff29ba 100644
+index 0111ad0..00f4749 100644
 --- a/fs/reiserfs/super.c
 +++ b/fs/reiserfs/super.c
 @@ -1868,6 +1868,10 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
@@ -75671,10 +82044,10 @@ index 555f821..34684d7 100644
  {
        const struct seq_operations *op = ((struct seq_file *)file->private_data)->op;
 diff --git a/fs/splice.c b/fs/splice.c
-index 7968da9..4ce985b 100644
+index bfe62ae..a84920d 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
-@@ -193,7 +193,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
+@@ -192,7 +192,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
        pipe_lock(pipe);
  
        for (;;) {
@@ -75683,7 +82056,7 @@ index 7968da9..4ce985b 100644
                        send_sig(SIGPIPE, current, 0);
                        if (!ret)
                                ret = -EPIPE;
-@@ -216,7 +216,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
+@@ -215,7 +215,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
                        page_nr++;
                        ret += buf->len;
  
@@ -75692,7 +82065,7 @@ index 7968da9..4ce985b 100644
                                do_wakeup = 1;
  
                        if (!--spd->nr_pages)
-@@ -247,9 +247,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
+@@ -246,9 +246,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
                        do_wakeup = 0;
                }
  
@@ -75704,7 +82077,7 @@ index 7968da9..4ce985b 100644
        }
  
        pipe_unlock(pipe);
-@@ -576,7 +576,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec,
+@@ -578,7 +578,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec,
        old_fs = get_fs();
        set_fs(get_ds());
        /* The cast to a user pointer is valid due to the set_fs() */
@@ -75713,7 +82086,7 @@ index 7968da9..4ce985b 100644
        set_fs(old_fs);
  
        return res;
-@@ -591,7 +591,7 @@ ssize_t kernel_write(struct file *file, const char *buf, size_t count,
+@@ -593,7 +593,7 @@ ssize_t kernel_write(struct file *file, const char *buf, size_t count,
        old_fs = get_fs();
        set_fs(get_ds());
        /* The cast to a user pointer is valid due to the set_fs() */
@@ -75722,7 +82095,7 @@ index 7968da9..4ce985b 100644
        set_fs(old_fs);
  
        return res;
-@@ -644,7 +644,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
+@@ -646,7 +646,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
                        goto err;
  
                this_len = min_t(size_t, len, PAGE_CACHE_SIZE - offset);
@@ -75731,7 +82104,7 @@ index 7968da9..4ce985b 100644
                vec[i].iov_len = this_len;
                spd.pages[i] = page;
                spd.nr_pages++;
-@@ -783,7 +783,7 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
+@@ -785,7 +785,7 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
                        ops->release(pipe, buf);
                        pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
                        pipe->nrbufs--;
@@ -75740,7 +82113,7 @@ index 7968da9..4ce985b 100644
                                sd->need_wakeup = true;
                }
  
-@@ -807,10 +807,10 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
+@@ -809,10 +809,10 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
  static int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd)
  {
        while (!pipe->nrbufs) {
@@ -75753,7 +82126,7 @@ index 7968da9..4ce985b 100644
                        return 0;
  
                if (sd->flags & SPLICE_F_NONBLOCK)
-@@ -1025,7 +1025,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
+@@ -1027,7 +1027,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
                                ops->release(pipe, buf);
                                pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
                                pipe->nrbufs--;
@@ -75762,16 +82135,7 @@ index 7968da9..4ce985b 100644
                                        sd.need_wakeup = true;
                        } else {
                                buf->offset += ret;
-@@ -1159,7 +1159,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
-       long ret, bytes;
-       umode_t i_mode;
-       size_t len;
--      int i, flags;
-+      int i, flags, more;
-       /*
-        * We require the input being a regular file, as we don't want to
-@@ -1185,7 +1185,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
+@@ -1187,7 +1187,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
                 * out of the pipe right after the splice_to_pipe(). So set
                 * PIPE_READERS appropriately.
                 */
@@ -75780,31 +82144,7 @@ index 7968da9..4ce985b 100644
  
                current->splice_pipe = pipe;
        }
-@@ -1202,6 +1202,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
-        * Don't block on output, we have to drain the direct pipe.
-        */
-       sd->flags &= ~SPLICE_F_NONBLOCK;
-+      more = sd->flags & SPLICE_F_MORE;
-       while (len) {
-               size_t read_len;
-@@ -1215,6 +1216,15 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
-               sd->total_len = read_len;
-               /*
-+               * If more data is pending, set SPLICE_F_MORE
-+               * If this is the last data and SPLICE_F_MORE was not set
-+               * initially, clears it.
-+               */
-+              if (read_len < len)
-+                      sd->flags |= SPLICE_F_MORE;
-+              else if (!more)
-+                      sd->flags &= ~SPLICE_F_MORE;
-+              /*
-                * NOTE: nonblocking mode only applies to the input. We
-                * must not do the output in nonblocking mode as then we
-                * could get stuck data in the internal pipe:
-@@ -1482,6 +1492,7 @@ static int get_iovec_page_array(const struct iovec __user *iov,
+@@ -1494,6 +1494,7 @@ static int get_iovec_page_array(const struct iovec __user *iov,
  
                        partial[buffers].offset = off;
                        partial[buffers].len = plen;
@@ -75812,7 +82152,7 @@ index 7968da9..4ce985b 100644
  
                        off = 0;
                        len -= plen;
-@@ -1718,9 +1729,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
+@@ -1725,9 +1726,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
                        ret = -ERESTARTSYS;
                        break;
                }
@@ -75824,7 +82164,7 @@ index 7968da9..4ce985b 100644
                        if (flags & SPLICE_F_NONBLOCK) {
                                ret = -EAGAIN;
                                break;
-@@ -1752,7 +1763,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
+@@ -1759,7 +1760,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
        pipe_lock(pipe);
  
        while (pipe->nrbufs >= pipe->buffers) {
@@ -75833,7 +82173,7 @@ index 7968da9..4ce985b 100644
                        send_sig(SIGPIPE, current, 0);
                        ret = -EPIPE;
                        break;
-@@ -1765,9 +1776,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
+@@ -1772,9 +1773,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
                        ret = -ERESTARTSYS;
                        break;
                }
@@ -75845,7 +82185,7 @@ index 7968da9..4ce985b 100644
        }
  
        pipe_unlock(pipe);
-@@ -1803,14 +1814,14 @@ retry:
+@@ -1810,14 +1811,14 @@ retry:
        pipe_double_lock(ipipe, opipe);
  
        do {
@@ -75862,7 +82202,7 @@ index 7968da9..4ce985b 100644
                        break;
  
                /*
-@@ -1907,7 +1918,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
+@@ -1914,7 +1915,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
        pipe_double_lock(ipipe, opipe);
  
        do {
@@ -75871,7 +82211,7 @@ index 7968da9..4ce985b 100644
                        send_sig(SIGPIPE, current, 0);
                        if (!ret)
                                ret = -EPIPE;
-@@ -1952,7 +1963,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
+@@ -1959,7 +1960,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
         * return EAGAIN if we have the potential of some data in the
         * future, otherwise just return 0
         */
@@ -75881,7 +82221,7 @@ index 7968da9..4ce985b 100644
  
        pipe_unlock(ipipe);
 diff --git a/fs/squashfs/xattr.c b/fs/squashfs/xattr.c
-index 92fcde7..1687329 100644
+index e5e0ddf..09598c4 100644
 --- a/fs/squashfs/xattr.c
 +++ b/fs/squashfs/xattr.c
 @@ -46,8 +46,8 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
@@ -75928,7 +82268,7 @@ index 92fcde7..1687329 100644
  failed:
        return err;
 diff --git a/fs/stat.c b/fs/stat.c
-index ae0c3ce..9ee641c 100644
+index cccc1aa..7fe8951 100644
 --- a/fs/stat.c
 +++ b/fs/stat.c
 @@ -28,8 +28,13 @@ void generic_fillattr(struct inode *inode, struct kstat *stat)
@@ -75950,7 +82290,7 @@ index ae0c3ce..9ee641c 100644
 @@ -52,9 +57,16 @@ EXPORT_SYMBOL(generic_fillattr);
  int vfs_getattr_nosec(struct path *path, struct kstat *stat)
  {
-       struct inode *inode = path->dentry->d_inode;
+       struct inode *inode = d_backing_inode(path->dentry);
 +      int retval;
  
 -      if (inode->i_op->getattr)
@@ -75967,7 +82307,7 @@ index ae0c3ce..9ee641c 100644
        generic_fillattr(inode, stat);
        return 0;
 diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
-index 0b45ff4..edf9d3a 100644
+index 94374e4..b5da3a1 100644
 --- a/fs/sysfs/dir.c
 +++ b/fs/sysfs/dir.c
 @@ -33,6 +33,10 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name)
@@ -76039,8 +82379,34 @@ index 69d4889..a810bd4 100644
  {
        if (sbi->s_bytesex == BYTESEX_PDP)
                return PDP_swab((__force __u32)n);
+diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
+index a43df11..c368e71 100644
+--- a/fs/tracefs/inode.c
++++ b/fs/tracefs/inode.c
+@@ -53,7 +53,7 @@ static const struct file_operations tracefs_file_operations = {
+ static struct tracefs_dir_ops {
+       int (*mkdir)(const char *name);
+       int (*rmdir)(const char *name);
+-} tracefs_ops;
++} __no_const tracefs_ops __read_only;
+ static char *get_dname(struct dentry *dentry)
+ {
+@@ -490,8 +490,10 @@ struct dentry *tracefs_create_instance_dir(const char *name, struct dentry *pare
+       if (!dentry)
+               return NULL;
+-      tracefs_ops.mkdir = mkdir;
+-      tracefs_ops.rmdir = rmdir;
++      pax_open_kernel();
++      *(void **)&tracefs_ops.mkdir = mkdir;
++      *(void **)&tracefs_ops.rmdir = rmdir;
++      pax_close_kernel();
+       return dentry;
+ }
 diff --git a/fs/ubifs/io.c b/fs/ubifs/io.c
-index fb08b0c..65fcc7e 100644
+index 97be412..974b37f 100644
 --- a/fs/ubifs/io.c
 +++ b/fs/ubifs/io.c
 @@ -155,7 +155,7 @@ int ubifs_leb_change(struct ubifs_info *c, int lnum, const void *buf, int len)
@@ -76053,10 +82419,10 @@ index fb08b0c..65fcc7e 100644
        int err;
  
 diff --git a/fs/udf/misc.c b/fs/udf/misc.c
-index c175b4d..8f36a16 100644
+index 71d1c25..084e2ad 100644
 --- a/fs/udf/misc.c
 +++ b/fs/udf/misc.c
-@@ -289,7 +289,7 @@ void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum,
+@@ -288,7 +288,7 @@ void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum,
  
  u8 udf_tag_checksum(const struct tag *t)
  {
@@ -76234,10 +82600,10 @@ index 4ef6985..a6cd6567 100644
        }
        fdput(f);
 diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
-index 61ec015..7c18807 100644
+index f1026e8..a0fbe4f 100644
 --- a/fs/xfs/libxfs/xfs_bmap.c
 +++ b/fs/xfs/libxfs/xfs_bmap.c
-@@ -580,7 +580,7 @@ xfs_bmap_validate_ret(
+@@ -554,7 +554,7 @@ xfs_bmap_validate_ret(
  
  #else
  #define xfs_bmap_check_leaf_extents(cur, ip, whichfork)               do { } while (0)
@@ -76265,7 +82631,7 @@ index 098cd78..724d3f8 100644
                        return 0;
                sfep = dp->d_ops->sf_nextentry(sfp, sfep);
 diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
-index ac4feae..386d551 100644
+index 87f67c6..7e335bf 100644
 --- a/fs/xfs/xfs_ioctl.c
 +++ b/fs/xfs/xfs_ioctl.c
 @@ -120,7 +120,7 @@ xfs_find_handle(
@@ -76278,10 +82644,10 @@ index ac4feae..386d551 100644
                goto out_put;
  
 diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
-index c31d2c2..6ec8f62 100644
+index 7c7842c..ce15222 100644
 --- a/fs/xfs/xfs_linux.h
 +++ b/fs/xfs/xfs_linux.h
-@@ -234,7 +234,7 @@ static inline kgid_t xfs_gid_to_kgid(__uint32_t gid)
+@@ -225,7 +225,7 @@ static inline kgid_t xfs_gid_to_kgid(__uint32_t gid)
   * of the compiler which do not like us using do_div in the middle
   * of large functions.
   */
@@ -76290,7 +82656,7 @@ index c31d2c2..6ec8f62 100644
  {
        __u32   mod;
  
-@@ -290,7 +290,7 @@ static inline __u32 xfs_do_mod(void *a, __u32 b, int n)
+@@ -281,7 +281,7 @@ static inline __u32 xfs_do_mod(void *a, __u32 b, int n)
        return 0;
  }
  #else
@@ -77549,10 +83915,10 @@ index 0000000..30ababb
 +endif
 diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c
 new file mode 100644
-index 0000000..811af1f
+index 0000000..7ad630a
 --- /dev/null
 +++ b/grsecurity/gracl.c
-@@ -0,0 +1,2749 @@
+@@ -0,0 +1,2757 @@
 +#include <linux/kernel.h>
 +#include <linux/module.h>
 +#include <linux/sched.h>
@@ -77652,22 +84018,26 @@ index 0000000..811af1f
 +
 +static inline dev_t __get_dev(const struct dentry *dentry)
 +{
++      struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
++
 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
-+      if (dentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
-+              return BTRFS_I(dentry->d_inode)->root->anon_dev;
++      if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
++              return BTRFS_I(d_inode(ldentry))->root->anon_dev;
 +      else
 +#endif
-+              return dentry->d_sb->s_dev;
++              return d_inode(ldentry)->i_sb->s_dev;
 +}
 +
 +static inline u64 __get_ino(const struct dentry *dentry)
 +{
++      struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
++
 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
-+      if (dentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
-+              return btrfs_ino(dentry->d_inode);
++      if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
++              return btrfs_ino(d_inode(dentry));
 +      else
 +#endif
-+              return dentry->d_inode->i_ino;
++              return d_inode(ldentry)->i_ino;
 +}
 +
 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
@@ -78454,6 +84824,7 @@ index 0000000..811af1f
 +{
 +      struct dentry *dentry = (struct dentry *) l_dentry;
 +      struct vfsmount *mnt = (struct vfsmount *) l_mnt;
++      struct inode * inode = d_backing_inode(dentry);
 +      struct mount *real_mnt = real_mount(mnt);
 +      struct acl_object_label *retval;
 +      struct dentry *parent;
@@ -78461,15 +84832,15 @@ index 0000000..811af1f
 +      read_seqlock_excl(&mount_lock);
 +      write_seqlock(&rename_lock);
 +
-+      if (unlikely((mnt == shm_mnt && dentry->d_inode->i_nlink == 0) || mnt == pipe_mnt ||
++      if (unlikely((mnt == shm_mnt && inode->i_nlink == 0) || mnt == pipe_mnt ||
 +#ifdef CONFIG_NET
 +          mnt == sock_mnt ||
 +#endif
 +#ifdef CONFIG_HUGETLBFS
-+          (is_hugetlbfs_mnt(mnt) && dentry->d_inode->i_nlink == 0) ||
++          (is_hugetlbfs_mnt(mnt) && inode->i_nlink == 0) ||
 +#endif
 +              /* ignore Eric Biederman */
-+          IS_PRIVATE(l_dentry->d_inode))) {
++          IS_PRIVATE(inode))) {
 +              retval = (subj->mode & GR_SHMEXEC) ? fakefs_obj_rwx : fakefs_obj_rw;
 +              goto out;
 +      }
@@ -79699,7 +86070,8 @@ index 0000000..811af1f
 +      struct name_entry *matchn;
 +      struct name_entry *matchn2 = NULL;
 +      struct inodev_entry *inodev;
-+      struct inode *inode = new_dentry->d_inode;
++      struct inode *inode = d_backing_inode(new_dentry);
++      struct inode *old_inode = d_backing_inode(old_dentry);
 +      u64 old_ino = __get_ino(old_dentry);
 +      dev_t old_dev = __get_dev(old_dentry);
 +      unsigned int exchange = flags & RENAME_EXCHANGE;
@@ -79746,12 +86118,12 @@ index 0000000..811af1f
 +              dev_t new_dev = __get_dev(new_dentry);
 +
 +              inodev = lookup_inodev_entry(new_ino, new_dev);
-+              if (inodev != NULL && ((inode->i_nlink <= 1) || S_ISDIR(inode->i_mode)))
++              if (inodev != NULL && ((inode->i_nlink <= 1) || d_is_dir(new_dentry)))
 +                      do_handle_delete(inodev, new_ino, new_dev);
 +      }
 +
 +      inodev = lookup_inodev_entry(old_ino, old_dev);
-+      if (inodev != NULL && ((old_dentry->d_inode->i_nlink <= 1) || S_ISDIR(old_dentry->d_inode->i_mode)))
++      if (inodev != NULL && ((old_inode->i_nlink <= 1) || d_is_dir(old_dentry)))
 +              do_handle_delete(inodev, old_ino, old_dev);
 +
 +      if (unlikely(matchn != NULL))
@@ -80025,14 +86397,16 @@ index 0000000..811af1f
 +{
 +      struct task_struct *task = current;
 +      struct acl_object_label *obj, *obj2;
++      struct dentry *dentry = filp->f_path.dentry;
++      struct vfsmount *mnt = filp->f_path.mnt;
++      struct inode *inode = d_backing_inode(dentry);
 +
 +      if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) &&
-+          !task->is_writable && S_ISREG(filp->f_path.dentry->d_inode->i_mode) && (filp->f_path.mnt != shm_mnt || (filp->f_path.dentry->d_inode->i_nlink > 0))) {
-+              obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, running_polstate.default_role->root_label);
-+              obj2 = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt,
-+                                   task->role->root_label);
++          !task->is_writable && d_is_reg(dentry) && (mnt != shm_mnt || (inode->i_nlink > 0))) {
++              obj = chk_obj_label(dentry, mnt, running_polstate.default_role->root_label);
++              obj2 = chk_obj_label(dentry, mnt, task->role->root_label);
 +              if (unlikely((obj->mode & GR_WRITE) || (obj2->mode & GR_WRITE))) {
-+                      gr_log_fs_generic(GR_DONT_AUDIT, GR_WRITLIB_ACL_MSG, filp->f_path.dentry, filp->f_path.mnt);
++                      gr_log_fs_generic(GR_DONT_AUDIT, GR_WRITLIB_ACL_MSG, dentry, mnt);
 +                      return 1;
 +              }
 +      }
@@ -80222,7 +86596,7 @@ index 0000000..811af1f
 +              return 1;
 +
 +      /* ignore Eric Biederman */
-+      if (IS_PRIVATE(dentry->d_inode))
++      if (IS_PRIVATE(d_backing_inode(dentry)))
 +              return 1;
 +
 +      subj = task->acl;
@@ -80823,10 +87197,10 @@ index 0000000..a43dd06
 +
 diff --git a/grsecurity/gracl_fs.c b/grsecurity/gracl_fs.c
 new file mode 100644
-index 0000000..8ee8e4f
+index 0000000..fce7f71
 --- /dev/null
 +++ b/grsecurity/gracl_fs.c
-@@ -0,0 +1,447 @@
+@@ -0,0 +1,448 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/types.h>
@@ -80884,7 +87258,7 @@ index 0000000..8ee8e4f
 +              reqmode |= GR_APPEND;
 +      else if (acc_mode & MAY_WRITE)
 +              reqmode |= GR_WRITE;
-+      if ((acc_mode & MAY_READ) && !S_ISDIR(dentry->d_inode->i_mode))
++      if ((acc_mode & MAY_READ) && !d_is_dir(dentry))
 +              reqmode |= GR_READ;
 +
 +      mode =
@@ -80925,7 +87299,7 @@ index 0000000..8ee8e4f
 +      // if a directory was required or the directory already exists, then
 +      // don't count this open as a read
 +      if ((acc_mode & MAY_READ) &&
-+          !((open_flags & O_DIRECTORY) || (dentry->d_inode && S_ISDIR(dentry->d_inode->i_mode))))
++          !((open_flags & O_DIRECTORY) || d_is_dir(dentry)))
 +              reqmode |= GR_READ;
 +      if ((open_flags & O_CREAT) &&
 +          ((imode & S_ISUID) || ((imode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))
@@ -80961,7 +87335,7 @@ index 0000000..8ee8e4f
 +{
 +      __u32 mode, reqmode = GR_FIND;
 +
-+      if ((fmode & S_IXOTH) && !S_ISDIR(dentry->d_inode->i_mode))
++      if ((fmode & S_IXOTH) && !d_is_dir(dentry))
 +              reqmode |= GR_EXEC;
 +      if (fmode & S_IWOTH)
 +              reqmode |= GR_WRITE;
@@ -81039,14 +87413,15 @@ index 0000000..8ee8e4f
 +                   umode_t *modeptr)
 +{
 +      umode_t mode;
++      struct inode *inode = d_backing_inode(dentry);
 +
 +      *modeptr &= ~gr_acl_umask();
 +      mode = *modeptr;
 +
-+      if (unlikely(dentry->d_inode && S_ISSOCK(dentry->d_inode->i_mode)))
++      if (unlikely(inode && S_ISSOCK(inode->i_mode)))
 +              return 1;
 +
-+      if (unlikely(dentry->d_inode && !S_ISDIR(dentry->d_inode->i_mode) &&
++      if (unlikely(!d_is_dir(dentry) &&
 +                   ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))) {
 +              return generic_fs_handler(dentry, mnt, GR_WRITE | GR_SETID,
 +                                 GR_CHMOD_ACL_MSG);
@@ -81276,7 +87651,7 @@ index 0000000..8ee8e4f
 +}
 diff --git a/grsecurity/gracl_ip.c b/grsecurity/gracl_ip.c
 new file mode 100644
-index 0000000..f056b81
+index 0000000..ed6ee43
 --- /dev/null
 +++ b/grsecurity/gracl_ip.c
 @@ -0,0 +1,386 @@
@@ -81350,7 +87725,7 @@ index 0000000..f056b81
 +      "unspec", "unix", "inet", "ax25", "ipx", "appletalk", "netrom", "bridge", "atmpvc", "x25",
 +      "inet6", "rose", "decnet", "netbeui", "security", "key", "netlink", "packet", "ash",
 +      "econet", "atmsvc", "rds", "sna", "irda", "ppox", "wanpipe", "llc", "fam_27", "fam_28",
-+      "tipc", "bluetooth", "iucv", "rxrpc", "isdn", "phonet", "ieee802154", "ciaf"
++      "tipc", "bluetooth", "iucv", "rxrpc", "isdn", "phonet", "ieee802154", "ciaf", "alg", "nfc", "vsock"
 +      };
 +
 +const char *
@@ -81881,10 +88256,10 @@ index 0000000..25f54ef
 +};
 diff --git a/grsecurity/gracl_policy.c b/grsecurity/gracl_policy.c
 new file mode 100644
-index 0000000..fd26052
+index 0000000..0773423
 --- /dev/null
 +++ b/grsecurity/gracl_policy.c
-@@ -0,0 +1,1781 @@
+@@ -0,0 +1,1786 @@
 +#include <linux/kernel.h>
 +#include <linux/module.h>
 +#include <linux/sched.h>
@@ -82340,7 +88715,7 @@ index 0000000..fd26052
 +              get_fs_root(reaper->fs, &gr_real_root);
 +      
 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
-+      printk(KERN_ALERT "Obtained real root device=%d, inode=%lu\n", __get_dev(gr_real_root.dentry), gr_real_root.dentry->d_inode->i_ino);
++      printk(KERN_ALERT "Obtained real root device=%d, inode=%lu\n", gr_get_dev_from_dentry(gr_real_root.dentry), gr_get_ino_from_dentry(gr_real_root.dentry));
 +#endif
 +
 +              fakefs_obj_rw = kzalloc(sizeof(struct acl_object_label), GFP_KERNEL);
@@ -83279,6 +89654,7 @@ index 0000000..fd26052
 +      struct files_struct *files;
 +      struct fdtable *fdt;
 +      struct file *our_file = NULL, *file;
++      struct inode *our_inode = NULL;
 +      int i;
 +
 +      if (task->signal->tty == NULL)
@@ -83302,6 +89678,8 @@ index 0000000..fd26052
 +      if (our_file == NULL)
 +              return 1;
 +
++      our_inode = d_backing_inode(our_file->f_path.dentry);
++
 +      read_lock(&tasklist_lock);
 +      do_each_thread(p2, p) {
 +              files = get_files_struct(p);
@@ -83314,9 +89692,11 @@ index 0000000..fd26052
 +              rcu_read_lock();
 +              fdt = files_fdtable(files);
 +              for (i=0; i < fdt->max_fds; i++) {
++                      struct inode *inode = NULL;
 +                      file = fcheck_files(files, i);
-+                      if (file && S_ISCHR(file->f_path.dentry->d_inode->i_mode) &&
-+                          file->f_path.dentry->d_inode->i_rdev == our_file->f_path.dentry->d_inode->i_rdev) {
++                      if (file)
++                              inode = d_backing_inode(file->f_path.dentry);
++                      if (inode && S_ISCHR(inode->i_mode) && inode->i_rdev == our_inode->i_rdev) {
 +                              p3 = task;
 +                              while (task_pid_nr(p3) > 0) {
 +                                      if (p3 == p)
@@ -83742,10 +90122,10 @@ index 0000000..39645c9
 +}
 diff --git a/grsecurity/gracl_segv.c b/grsecurity/gracl_segv.c
 new file mode 100644
-index 0000000..35d9e65
+index 0000000..21646aa
 --- /dev/null
 +++ b/grsecurity/gracl_segv.c
-@@ -0,0 +1,324 @@
+@@ -0,0 +1,304 @@
 +#include <linux/kernel.h>
 +#include <linux/mm.h>
 +#include <asm/uaccess.h>
@@ -83779,26 +90159,6 @@ index 0000000..35d9e65
 +      lookup_acl_subj_label(const u64 inode, const dev_t dev,
 +                            struct acl_role_label *role);
 +
-+static inline dev_t __get_dev(const struct dentry *dentry)
-+{
-+#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
-+      if (dentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
-+              return BTRFS_I(dentry->d_inode)->root->anon_dev;
-+      else
-+#endif
-+              return dentry->d_sb->s_dev;
-+}
-+
-+static inline u64 __get_ino(const struct dentry *dentry)
-+{
-+#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
-+      if (dentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
-+              return btrfs_ino(dentry->d_inode);
-+      else
-+#endif
-+              return dentry->d_inode->i_ino;
-+}
-+
 +int
 +gr_init_uidset(void)
 +{
@@ -84026,7 +90386,7 @@ index 0000000..35d9e65
 +
 +      read_lock(&gr_inode_lock);
 +      dentry = filp->f_path.dentry;
-+      curr = lookup_acl_subj_label(__get_ino(dentry), __get_dev(dentry),
++      curr = lookup_acl_subj_label(gr_get_ino_from_dentry(dentry), gr_get_dev_from_dentry(dentry),
 +                                   current->role);
 +      read_unlock(&gr_inode_lock);
 +
@@ -84143,7 +90503,7 @@ index 0000000..bc0be01
 +}
 diff --git a/grsecurity/grsec_chroot.c b/grsecurity/grsec_chroot.c
 new file mode 100644
-index 0000000..114ea4f
+index 0000000..652ab45
 --- /dev/null
 +++ b/grsecurity/grsec_chroot.c
 @@ -0,0 +1,467 @@
@@ -84605,7 +90965,7 @@ index 0000000..114ea4f
 +{
 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
 +      /* allow chmod +s on directories, but not files */
-+      if (grsec_enable_chroot_chmod && !S_ISDIR(dentry->d_inode->i_mode) &&
++      if (grsec_enable_chroot_chmod && !d_is_dir(dentry) &&
 +          ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))) &&
 +          proc_is_chrooted(current)) {
 +              gr_log_fs_generic(GR_DONT_AUDIT, GR_CHMOD_CHROOT_MSG, dentry, mnt);
@@ -84616,7 +90976,7 @@ index 0000000..114ea4f
 +}
 diff --git a/grsecurity/grsec_disabled.c b/grsecurity/grsec_disabled.c
 new file mode 100644
-index 0000000..946f750
+index 0000000..e723c08
 --- /dev/null
 +++ b/grsecurity/grsec_disabled.c
 @@ -0,0 +1,445 @@
@@ -85048,12 +91408,12 @@ index 0000000..946f750
 +
 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
 +{
-+      return dentry->d_sb->s_dev;
++      return d_backing_inode(dentry)->i_sb->s_dev;
 +}
 +
 +u64 gr_get_ino_from_dentry(struct dentry *dentry)
 +{
-+      return dentry->d_inode->i_ino;
++      return d_backing_inode(dentry)->i_ino;
 +}
 +
 +void gr_put_exec_file(struct task_struct *task)
@@ -85262,10 +91622,10 @@ index 0000000..fb7531e
 +EXPORT_SYMBOL_GPL(gr_task_is_capable_nolog);
 diff --git a/grsecurity/grsec_fifo.c b/grsecurity/grsec_fifo.c
 new file mode 100644
-index 0000000..06cc6ea
+index 0000000..cdec49b
 --- /dev/null
 +++ b/grsecurity/grsec_fifo.c
-@@ -0,0 +1,24 @@
+@@ -0,0 +1,26 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/fs.h>
@@ -85278,13 +91638,15 @@ index 0000000..06cc6ea
 +{
 +#ifdef CONFIG_GRKERNSEC_FIFO
 +      const struct cred *cred = current_cred();
-+
-+      if (grsec_enable_fifo && S_ISFIFO(dentry->d_inode->i_mode) &&
-+          !(flag & O_EXCL) && (dir->d_inode->i_mode & S_ISVTX) &&
-+          !uid_eq(dentry->d_inode->i_uid, dir->d_inode->i_uid) &&
-+          !uid_eq(cred->fsuid, dentry->d_inode->i_uid)) {
-+              if (!inode_permission(dentry->d_inode, acc_mode))
-+                      gr_log_fs_int2(GR_DONT_AUDIT, GR_FIFO_MSG, dentry, mnt, GR_GLOBAL_UID(dentry->d_inode->i_uid), GR_GLOBAL_GID(dentry->d_inode->i_gid));
++      struct inode *inode = d_backing_inode(dentry);
++      struct inode *dir_inode = d_backing_inode(dir);
++
++      if (grsec_enable_fifo && S_ISFIFO(inode->i_mode) &&
++          !(flag & O_EXCL) && (dir_inode->i_mode & S_ISVTX) &&
++          !uid_eq(inode->i_uid, dir_inode->i_uid) &&
++          !uid_eq(cred->fsuid, inode->i_uid)) {
++              if (!inode_permission(inode, acc_mode))
++                      gr_log_fs_int2(GR_DONT_AUDIT, GR_FIFO_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid));
 +              return -EACCES;
 +      }
 +#endif
@@ -85321,7 +91683,7 @@ index 0000000..8ca18bf
 +}
 diff --git a/grsecurity/grsec_init.c b/grsecurity/grsec_init.c
 new file mode 100644
-index 0000000..4ed9e7d
+index 0000000..a364c58
 --- /dev/null
 +++ b/grsecurity/grsec_init.c
 @@ -0,0 +1,290 @@
@@ -85334,61 +91696,61 @@ index 0000000..4ed9e7d
 +#include <linux/percpu.h>
 +#include <linux/module.h>
 +
-+int grsec_enable_ptrace_readexec;
-+int grsec_enable_setxid;
-+int grsec_enable_symlinkown;
-+kgid_t grsec_symlinkown_gid;
-+int grsec_enable_brute;
-+int grsec_enable_link;
-+int grsec_enable_dmesg;
-+int grsec_enable_harden_ptrace;
-+int grsec_enable_harden_ipc;
-+int grsec_enable_fifo;
-+int grsec_enable_execlog;
-+int grsec_enable_signal;
-+int grsec_enable_forkfail;
-+int grsec_enable_audit_ptrace;
-+int grsec_enable_time;
-+int grsec_enable_group;
-+kgid_t grsec_audit_gid;
-+int grsec_enable_chdir;
-+int grsec_enable_mount;
-+int grsec_enable_rofs;
-+int grsec_deny_new_usb;
-+int grsec_enable_chroot_findtask;
-+int grsec_enable_chroot_mount;
-+int grsec_enable_chroot_shmat;
-+int grsec_enable_chroot_fchdir;
-+int grsec_enable_chroot_double;
-+int grsec_enable_chroot_pivot;
-+int grsec_enable_chroot_chdir;
-+int grsec_enable_chroot_chmod;
-+int grsec_enable_chroot_mknod;
-+int grsec_enable_chroot_nice;
-+int grsec_enable_chroot_execlog;
-+int grsec_enable_chroot_caps;
-+int grsec_enable_chroot_rename;
-+int grsec_enable_chroot_sysctl;
-+int grsec_enable_chroot_unix;
-+int grsec_enable_tpe;
-+kgid_t grsec_tpe_gid;
-+int grsec_enable_blackhole;
++int grsec_enable_ptrace_readexec __read_only;
++int grsec_enable_setxid __read_only;
++int grsec_enable_symlinkown __read_only;
++kgid_t grsec_symlinkown_gid __read_only;
++int grsec_enable_brute __read_only;
++int grsec_enable_link __read_only;
++int grsec_enable_dmesg __read_only;
++int grsec_enable_harden_ptrace __read_only;
++int grsec_enable_harden_ipc __read_only;
++int grsec_enable_fifo __read_only;
++int grsec_enable_execlog __read_only;
++int grsec_enable_signal __read_only;
++int grsec_enable_forkfail __read_only;
++int grsec_enable_audit_ptrace __read_only;
++int grsec_enable_time __read_only;
++int grsec_enable_group __read_only;
++kgid_t grsec_audit_gid __read_only;
++int grsec_enable_chdir __read_only;
++int grsec_enable_mount __read_only;
++int grsec_enable_rofs __read_only;
++int grsec_deny_new_usb __read_only;
++int grsec_enable_chroot_findtask __read_only;
++int grsec_enable_chroot_mount __read_only;
++int grsec_enable_chroot_shmat __read_only;
++int grsec_enable_chroot_fchdir __read_only;
++int grsec_enable_chroot_double __read_only;
++int grsec_enable_chroot_pivot __read_only;
++int grsec_enable_chroot_chdir __read_only;
++int grsec_enable_chroot_chmod __read_only;
++int grsec_enable_chroot_mknod __read_only;
++int grsec_enable_chroot_nice __read_only;
++int grsec_enable_chroot_execlog __read_only;
++int grsec_enable_chroot_caps __read_only;
++int grsec_enable_chroot_rename __read_only;
++int grsec_enable_chroot_sysctl __read_only;
++int grsec_enable_chroot_unix __read_only;
++int grsec_enable_tpe __read_only;
++kgid_t grsec_tpe_gid __read_only;
++int grsec_enable_blackhole __read_only;
 +#ifdef CONFIG_IPV6_MODULE
 +EXPORT_SYMBOL_GPL(grsec_enable_blackhole);
 +#endif
-+int grsec_lastack_retries;
-+int grsec_enable_tpe_all;
-+int grsec_enable_tpe_invert;
-+int grsec_enable_socket_all;
-+kgid_t grsec_socket_all_gid;
-+int grsec_enable_socket_client;
-+kgid_t grsec_socket_client_gid;
-+int grsec_enable_socket_server;
-+kgid_t grsec_socket_server_gid;
-+int grsec_resource_logging;
-+int grsec_disable_privio;
-+int grsec_enable_log_rwxmaps;
-+int grsec_lock;
++int grsec_lastack_retries __read_only;
++int grsec_enable_tpe_all __read_only;
++int grsec_enable_tpe_invert __read_only;
++int grsec_enable_socket_all __read_only;
++kgid_t grsec_socket_all_gid __read_only;
++int grsec_enable_socket_client __read_only;
++kgid_t grsec_socket_client_gid __read_only;
++int grsec_enable_socket_server __read_only;
++kgid_t grsec_socket_server_gid __read_only;
++int grsec_resource_logging __read_only;
++int grsec_disable_privio __read_only;
++int grsec_enable_log_rwxmaps __read_only;
++int grsec_lock __read_only;
 +
 +DEFINE_SPINLOCK(grsec_alert_lock);
 +unsigned long grsec_alert_wtime = 0;
@@ -85671,10 +92033,10 @@ index 0000000..1773300
 +}
 diff --git a/grsecurity/grsec_link.c b/grsecurity/grsec_link.c
 new file mode 100644
-index 0000000..5e05e20
+index 0000000..8ef2b75
 --- /dev/null
 +++ b/grsecurity/grsec_link.c
-@@ -0,0 +1,58 @@
+@@ -0,0 +1,59 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/fs.h>
@@ -85684,7 +92046,7 @@ index 0000000..5e05e20
 +int gr_handle_symlink_owner(const struct path *link, const struct inode *target)
 +{
 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
-+      const struct inode *link_inode = link->dentry->d_inode;
++      const struct inode *link_inode = d_backing_inode(link->dentry);
 +
 +      if (grsec_enable_symlinkown && in_group_p(grsec_symlinkown_gid) &&
 +         /* ignore root-owned links, e.g. /proc/self */
@@ -85698,14 +92060,14 @@ index 0000000..5e05e20
 +}
 +
 +int
-+gr_handle_follow_link(const struct inode *parent,
-+                    const struct inode *inode,
-+                    const struct dentry *dentry, const struct vfsmount *mnt)
++gr_handle_follow_link(const struct dentry *dentry, const struct vfsmount *mnt)
 +{
 +#ifdef CONFIG_GRKERNSEC_LINK
++      struct inode *inode = d_backing_inode(dentry);
++      struct inode *parent = d_backing_inode(dentry->d_parent);
 +      const struct cred *cred = current_cred();
 +
-+      if (grsec_enable_link && S_ISLNK(inode->i_mode) &&
++      if (grsec_enable_link && d_is_symlink(dentry) &&
 +          (parent->i_mode & S_ISVTX) && !uid_eq(parent->i_uid, inode->i_uid) &&
 +          (parent->i_mode & S_IWOTH) && !uid_eq(cred->fsuid, inode->i_uid)) {
 +              gr_log_fs_int2(GR_DONT_AUDIT, GR_SYMLINK_MSG, dentry, mnt, inode->i_uid, inode->i_gid);
@@ -85718,13 +92080,14 @@ index 0000000..5e05e20
 +int
 +gr_handle_hardlink(const struct dentry *dentry,
 +                 const struct vfsmount *mnt,
-+                 struct inode *inode, const int mode, const struct filename *to)
++                 const struct filename *to)
 +{
 +#ifdef CONFIG_GRKERNSEC_LINK
++      struct inode *inode = d_backing_inode(dentry);
 +      const struct cred *cred = current_cred();
 +
 +      if (grsec_enable_link && !uid_eq(cred->fsuid, inode->i_uid) &&
-+          (!S_ISREG(mode) || is_privileged_binary(dentry) || 
++          (!d_is_reg(dentry) || is_privileged_binary(dentry) || 
 +           (inode_permission(inode, MAY_READ | MAY_WRITE))) &&
 +          !capable(CAP_FOWNER) && gr_is_global_nonroot(cred->uid)) {
 +              gr_log_fs_int2_str(GR_DONT_AUDIT, GR_HARDLINK_MSG, dentry, mnt, inode->i_uid, inode->i_gid, to->name);
@@ -86136,7 +92499,7 @@ index 0000000..0e39d8c
 +}
 diff --git a/grsecurity/grsec_mount.c b/grsecurity/grsec_mount.c
 new file mode 100644
-index 0000000..6f9eb73
+index 0000000..fe02bf4
 --- /dev/null
 +++ b/grsecurity/grsec_mount.c
 @@ -0,0 +1,65 @@
@@ -86194,7 +92557,7 @@ index 0000000..6f9eb73
 +gr_handle_rofs_blockwrite(struct dentry *dentry, struct vfsmount *mnt, int acc_mode)
 +{
 +#ifdef CONFIG_GRKERNSEC_ROFS
-+      struct inode *inode = dentry->d_inode;
++      struct inode *inode = d_backing_inode(dentry);
 +
 +      if (grsec_enable_rofs && (acc_mode & MAY_WRITE) &&
 +          inode && (S_ISBLK(inode->i_mode) || (S_ISCHR(inode->i_mode) && imajor(inode) == RAW_MAJOR))) {
@@ -86284,7 +92647,7 @@ index 0000000..2005a3a
 +}
 diff --git a/grsecurity/grsec_ptrace.c b/grsecurity/grsec_ptrace.c
 new file mode 100644
-index 0000000..f7f29aa
+index 0000000..304c518
 --- /dev/null
 +++ b/grsecurity/grsec_ptrace.c
 @@ -0,0 +1,30 @@
@@ -86311,7 +92674,7 @@ index 0000000..f7f29aa
 +      const struct vfsmount *mnt = file->f_path.mnt;
 +
 +      if (grsec_enable_ptrace_readexec && (unsafe_flags & LSM_UNSAFE_PTRACE) && 
-+          (inode_permission(dentry->d_inode, MAY_READ) || !gr_acl_handle_open(dentry, mnt, MAY_READ))) {
++          (inode_permission(d_backing_inode(dentry), MAY_READ) || !gr_acl_handle_open(dentry, mnt, MAY_READ))) {
 +              gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_READEXEC_MSG, dentry, mnt);
 +              return -EACCES;
 +      }
@@ -86812,7 +93175,7 @@ index 0000000..a523bd2
 +}
 diff --git a/grsecurity/grsec_sysctl.c b/grsecurity/grsec_sysctl.c
 new file mode 100644
-index 0000000..cce889e
+index 0000000..aaec43c
 --- /dev/null
 +++ b/grsecurity/grsec_sysctl.c
 @@ -0,0 +1,488 @@
@@ -86851,7 +93214,7 @@ index 0000000..cce889e
 +              .data           = &grsec_disable_privio,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#endif
@@ -86861,7 +93224,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_link,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
@@ -86870,14 +93233,14 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_symlinkown,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +      {
 +              .procname       = "symlinkown_gid",
 +              .data           = &grsec_symlinkown_gid,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_BRUTE
@@ -86886,7 +93249,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_brute,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_FIFO
@@ -86895,7 +93258,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_fifo,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
@@ -86904,7 +93267,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_ptrace_readexec,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_SETXID
@@ -86913,7 +93276,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_setxid,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
@@ -86922,14 +93285,14 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_blackhole,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +      {
 +              .procname       = "lastack_retries",
 +              .data           = &grsec_lastack_retries,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_EXECLOG
@@ -86938,7 +93301,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_execlog,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
@@ -86947,7 +93310,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_log_rwxmaps,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_SIGNAL
@@ -86956,7 +93319,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_signal,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
@@ -86965,7 +93328,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_forkfail,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_TIME
@@ -86974,7 +93337,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_time,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
@@ -86983,7 +93346,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_shmat,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
@@ -86992,7 +93355,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_unix,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
@@ -87001,7 +93364,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_mount,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
@@ -87010,7 +93373,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_fchdir,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
@@ -87019,7 +93382,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_double,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
@@ -87028,7 +93391,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_pivot,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
@@ -87037,7 +93400,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_chdir,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
@@ -87046,7 +93409,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_chmod,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
@@ -87055,7 +93418,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_mknod,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
@@ -87064,7 +93427,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_nice,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
@@ -87073,7 +93436,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_execlog,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
@@ -87082,7 +93445,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_caps,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
@@ -87091,7 +93454,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_rename,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
@@ -87100,7 +93463,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_sysctl,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_TPE
@@ -87109,14 +93472,14 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_tpe,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +      {
 +              .procname       = "tpe_gid",
 +              .data           = &grsec_tpe_gid,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
@@ -87125,7 +93488,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_tpe_invert,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
@@ -87134,7 +93497,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_tpe_all,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
@@ -87143,14 +93506,14 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_socket_all,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +      {
 +              .procname       = "socket_all_gid",
 +              .data           = &grsec_socket_all_gid,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
@@ -87159,14 +93522,14 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_socket_client,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +      {
 +              .procname       = "socket_client_gid",
 +              .data           = &grsec_socket_client_gid,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
@@ -87175,14 +93538,14 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_socket_server,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +      {
 +              .procname       = "socket_server_gid",
 +              .data           = &grsec_socket_server_gid,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_AUDIT_GROUP
@@ -87191,14 +93554,14 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_group,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +      {
 +              .procname       = "audit_gid",
 +              .data           = &grsec_audit_gid,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
@@ -87207,7 +93570,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chdir,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
@@ -87216,7 +93579,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_mount,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_DMESG
@@ -87225,7 +93588,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_dmesg,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
@@ -87234,7 +93597,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_chroot_findtask,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_RESLOG
@@ -87243,7 +93606,7 @@ index 0000000..cce889e
 +              .data           = &grsec_resource_logging,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
@@ -87252,7 +93615,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_audit_ptrace,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
@@ -87261,7 +93624,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_harden_ptrace,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
@@ -87270,7 +93633,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_harden_ipc,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +      {
@@ -87278,7 +93641,7 @@ index 0000000..cce889e
 +              .data           = &grsec_lock,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +#ifdef CONFIG_GRKERNSEC_ROFS
@@ -87287,7 +93650,7 @@ index 0000000..cce889e
 +              .data           = &grsec_enable_rofs,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec_minmax,
++              .proc_handler   = &proc_dointvec_minmax_secure,
 +              .extra1         = &one,
 +              .extra2         = &one,
 +      },
@@ -87298,7 +93661,7 @@ index 0000000..cce889e
 +              .data           = &grsec_deny_new_usb,
 +              .maxlen         = sizeof(int),
 +              .mode           = 0600,
-+              .proc_handler   = &proc_dointvec,
++              .proc_handler   = &proc_dointvec_secure,
 +      },
 +#endif
 +      { }
@@ -87328,7 +93691,7 @@ index 0000000..61b514e
 +EXPORT_SYMBOL_GPL(gr_log_timechange);
 diff --git a/grsecurity/grsec_tpe.c b/grsecurity/grsec_tpe.c
 new file mode 100644
-index 0000000..d1953de
+index 0000000..9786671
 --- /dev/null
 +++ b/grsecurity/grsec_tpe.c
 @@ -0,0 +1,78 @@
@@ -87344,8 +93707,8 @@ index 0000000..d1953de
 +gr_tpe_allow(const struct file *file)
 +{
 +#ifdef CONFIG_GRKERNSEC
-+      struct inode *inode = file->f_path.dentry->d_parent->d_inode;
-+      struct inode *file_inode = file->f_path.dentry->d_inode;
++      struct inode *inode = d_backing_inode(file->f_path.dentry->d_parent);
++      struct inode *file_inode = d_backing_inode(file->f_path.dentry);
 +      const struct cred *cred = current_cred();
 +      char *msg = NULL;
 +      char *msg2 = NULL;
@@ -88155,10 +94518,10 @@ index 810431d..0ec4804f 100644
   * (puds are folded into pgds so this doesn't get actually called,
   * but the define is needed for a generic inline function.)
 diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
-index 4d46085..f4e92ef 100644
+index 39f1d6a..7dae6fb 100644
 --- a/include/asm-generic/pgtable.h
 +++ b/include/asm-generic/pgtable.h
-@@ -689,6 +689,22 @@ static inline int pmd_protnone(pmd_t pmd)
+@@ -695,6 +695,22 @@ static inline int pmd_protnone(pmd_t pmd)
  }
  #endif /* CONFIG_NUMA_BALANCING */
  
@@ -88180,7 +94543,7 @@ index 4d46085..f4e92ef 100644
 +
  #endif /* CONFIG_MMU */
  
- #endif /* !__ASSEMBLY__ */
+ #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
 diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h
 index 72d8803..cb9749c 100644
 --- a/include/asm-generic/uaccess.h
@@ -88207,10 +94570,10 @@ index 72d8803..cb9749c 100644
 +
  #endif /* __ASM_GENERIC_UACCESS_H */
 diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
-index ac78910..8b5f068 100644
+index 8bd374d..9590e70 100644
 --- a/include/asm-generic/vmlinux.lds.h
 +++ b/include/asm-generic/vmlinux.lds.h
-@@ -234,6 +234,7 @@
+@@ -246,6 +246,7 @@
        .rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {           \
                VMLINUX_SYMBOL(__start_rodata) = .;                     \
                *(.rodata) *(.rodata.*)                                 \
@@ -88218,7 +94581,7 @@ index ac78910..8b5f068 100644
                *(__vermagic)           /* Kernel version magic */      \
                . = ALIGN(8);                                           \
                VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .;         \
-@@ -492,6 +493,7 @@
+@@ -504,6 +505,7 @@
        KERNEL_CTORS()                                                  \
        MCOUNT_REC()                                                    \
        *(.init.rodata)                                                 \
@@ -88226,7 +94589,7 @@ index ac78910..8b5f068 100644
        FTRACE_EVENTS()                                                 \
        TRACE_SYSCALLS()                                                \
        KPROBE_BLACKLIST()                                              \
-@@ -511,6 +513,8 @@
+@@ -525,6 +527,8 @@
  
  #define EXIT_DATA                                                     \
        *(.exit.data)                                                   \
@@ -88235,7 +94598,7 @@ index ac78910..8b5f068 100644
        MEM_DISCARD(exit.data)                                          \
        MEM_DISCARD(exit.rodata)
  
-@@ -727,17 +731,18 @@
+@@ -741,17 +745,18 @@
   * section in the linker script will go there too.  @phdr should have
   * a leading colon.
   *
@@ -88259,7 +94622,7 @@ index ac78910..8b5f068 100644
  /**
   * PERCPU_SECTION - define output section for percpu area, simple version
 diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
-index 623a59c..1e79ab9 100644
+index 0ecb768..f910132 100644
 --- a/include/crypto/algapi.h
 +++ b/include/crypto/algapi.h
 @@ -34,7 +34,7 @@ struct crypto_type {
@@ -88272,7 +94635,7 @@ index 623a59c..1e79ab9 100644
  struct crypto_instance {
        struct crypto_alg alg;
 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
-index e928625..ff97886 100644
+index 62c40777..f980496 100644
 --- a/include/drm/drmP.h
 +++ b/include/drm/drmP.h
 @@ -59,6 +59,7 @@
@@ -88283,7 +94646,7 @@ index e928625..ff97886 100644
  #include <asm/uaccess.h>
  
  #include <uapi/drm/drm.h>
-@@ -133,17 +134,18 @@ void drm_err(const char *format, ...);
+@@ -137,17 +138,18 @@ void drm_err(const char *format, ...);
  /*@{*/
  
  /* driver capabilities and requirements mask */
@@ -88313,7 +94676,7 @@ index e928625..ff97886 100644
  
  /***********************************************************************/
  /** \name Macros to make printk easier */
-@@ -224,10 +226,12 @@ void drm_err(const char *format, ...);
+@@ -233,10 +235,12 @@ void drm_err(const char *format, ...);
   * \param cmd command.
   * \param arg argument.
   */
@@ -88328,20 +94691,19 @@ index e928625..ff97886 100644
                               unsigned long arg);
  
  #define DRM_IOCTL_NR(n)                _IOC_NR(n)
-@@ -243,10 +247,10 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
+@@ -252,9 +256,9 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
  struct drm_ioctl_desc {
        unsigned int cmd;
        int flags;
 -      drm_ioctl_t *func;
 +      drm_ioctl_t func;
-       unsigned int cmd_drv;
        const char *name;
 -};
 +} __do_const;
  
  /**
   * Creates a driver or general drm_ioctl_desc array entry for the given
-@@ -632,7 +636,8 @@ struct drm_info_list {
+@@ -645,7 +649,8 @@ struct drm_info_list {
        int (*show)(struct seq_file*, void*); /** show callback */
        u32 driver_features; /**< Required driver features for this entry */
        void *data;
@@ -88351,7 +94713,7 @@ index e928625..ff97886 100644
  
  /**
   * debugfs node structure. This structure represents a debugfs file.
-@@ -716,7 +721,7 @@ struct drm_device {
+@@ -729,7 +734,7 @@ struct drm_device {
  
        /** \name Usage Counters */
        /*@{ */
@@ -88361,10 +94723,10 @@ index e928625..ff97886 100644
        int buf_use;                    /**< Buffers in use -- cannot alloc */
        atomic_t buf_alloc;             /**< Buffer allocation in progress */
 diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
-index c250a22..59d2094 100644
+index c8fc187..079d4c2 100644
 --- a/include/drm/drm_crtc_helper.h
 +++ b/include/drm/drm_crtc_helper.h
-@@ -160,7 +160,7 @@ struct drm_encoder_helper_funcs {
+@@ -161,7 +161,7 @@ struct drm_encoder_helper_funcs {
        int (*atomic_check)(struct drm_encoder *encoder,
                            struct drm_crtc_state *crtc_state,
                            struct drm_connector_state *conn_state);
@@ -88374,7 +94736,7 @@ index c250a22..59d2094 100644
  /**
   * struct drm_connector_helper_funcs - helper operations for connectors
 diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h
-index d016dc5..3951fe0 100644
+index 6133723..4c1fccb 100644
 --- a/include/drm/i915_pciids.h
 +++ b/include/drm/i915_pciids.h
 @@ -37,7 +37,7 @@
@@ -88498,11 +94860,11 @@ index 576e463..28fd926 100644
  extern void __register_binfmt(struct linux_binfmt *fmt, int insert);
  
 diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h
-index dbfbf49..10be372 100644
+index ea17cca..dd56e56 100644
 --- a/include/linux/bitmap.h
 +++ b/include/linux/bitmap.h
-@@ -299,7 +299,7 @@ static inline int bitmap_full(const unsigned long *src, unsigned int nbits)
-               return __bitmap_full(src, nbits);
+@@ -295,7 +295,7 @@ static inline int bitmap_full(const unsigned long *src, unsigned int nbits)
+       return find_first_zero_bit(src, nbits) == nbits;
  }
  
 -static inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
@@ -88511,7 +94873,7 @@ index dbfbf49..10be372 100644
        if (small_const_nbits(nbits))
                return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
 diff --git a/include/linux/bitops.h b/include/linux/bitops.h
-index 5d858e0..336c1d9 100644
+index 297f5bd..0b6d1e8 100644
 --- a/include/linux/bitops.h
 +++ b/include/linux/bitops.h
 @@ -105,7 +105,7 @@ static inline __u64 ror64(__u64 word, unsigned int shift)
@@ -88542,10 +94904,10 @@ index 5d858e0..336c1d9 100644
        if (sizeof(l) == 4)
                return fls(l);
 diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index 7f9a516..8889453 100644
+index 5d93a66..978c4a0 100644
 --- a/include/linux/blkdev.h
 +++ b/include/linux/blkdev.h
-@@ -1616,7 +1616,7 @@ struct block_device_operations {
+@@ -1614,7 +1614,7 @@ struct block_device_operations {
        /* this callback is with swap_lock and sometimes page table lock held */
        void (*swap_slot_free_notify) (struct block_device *, unsigned long);
        struct module *owner;
@@ -88587,12 +94949,26 @@ index 17e7e82..1d7da26 100644
  #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
  #endif
 diff --git a/include/linux/capability.h b/include/linux/capability.h
-index aa93e5e..985a1b0 100644
+index af9f0b9..71a5e5c 100644
 --- a/include/linux/capability.h
 +++ b/include/linux/capability.h
-@@ -214,9 +214,14 @@ extern bool has_ns_capability_noaudit(struct task_struct *t,
- extern bool capable(int cap);
- extern bool ns_capable(struct user_namespace *ns, int cap);
+@@ -237,15 +237,28 @@ static inline bool capable(int cap)
+ {
+       return true;
+ }
++static inline bool capable_nolog(int cap)
++{
++      return true;
++}
+ static inline bool ns_capable(struct user_namespace *ns, int cap)
+ {
+       return true;
+ }
++static inline bool ns_capable_nolog(struct user_namespace *ns, int cap)
++{
++      return true;
++}
+ #endif /* CONFIG_MULTIUSER */
  extern bool capable_wrt_inode_uidgid(const struct inode *inode, int cap);
 +extern bool capable_wrt_inode_uidgid_nolog(const struct inode *inode, int cap);
  extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
@@ -88618,20 +94994,20 @@ index 8609d57..86e4d79 100644
        int (*generic_packet) (struct cdrom_device_info *,
                               struct packet_command *);
 diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
-index 4ce9056..86caac6 100644
+index bda5ec0b4..51d8ea1 100644
 --- a/include/linux/cleancache.h
 +++ b/include/linux/cleancache.h
-@@ -31,7 +31,7 @@ struct cleancache_ops {
+@@ -35,7 +35,7 @@ struct cleancache_ops {
        void (*invalidate_page)(int, struct cleancache_filekey, pgoff_t);
        void (*invalidate_inode)(int, struct cleancache_filekey);
        void (*invalidate_fs)(int);
 -};
 +} __no_const;
  
- extern struct cleancache_ops *
      cleancache_register_ops(struct cleancache_ops *ops);
+ extern int cleancache_register_ops(struct cleancache_ops *ops);
extern void __cleancache_init_fs(struct super_block *);
 diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
-index 5591ea7..61b77ce 100644
+index df69531..0180e68 100644
 --- a/include/linux/clk-provider.h
 +++ b/include/linux/clk-provider.h
 @@ -195,6 +195,7 @@ struct clk_ops {
@@ -88642,8 +95018,55 @@ index 5591ea7..61b77ce 100644
  
  /**
   * struct clk_init_data - holds init data that's common to all clocks and is
+@@ -209,7 +210,7 @@ struct clk_ops {
+ struct clk_init_data {
+       const char              *name;
+       const struct clk_ops    *ops;
+-      const char              **parent_names;
++      const char              * const *parent_names;
+       u8                      num_parents;
+       unsigned long           flags;
+ };
+@@ -426,12 +427,12 @@ extern const struct clk_ops clk_mux_ops;
+ extern const struct clk_ops clk_mux_ro_ops;
+ struct clk *clk_register_mux(struct device *dev, const char *name,
+-              const char **parent_names, u8 num_parents, unsigned long flags,
++              const char * const *parent_names, u8 num_parents, unsigned long flags,
+               void __iomem *reg, u8 shift, u8 width,
+               u8 clk_mux_flags, spinlock_t *lock);
+ struct clk *clk_register_mux_table(struct device *dev, const char *name,
+-              const char **parent_names, u8 num_parents, unsigned long flags,
++              const char * const *parent_names, u8 num_parents, unsigned long flags,
+               void __iomem *reg, u8 shift, u32 mask,
+               u8 clk_mux_flags, u32 *table, spinlock_t *lock);
+diff --git a/include/linux/clkdev.h b/include/linux/clkdev.h
+index 94bad77..a39e810 100644
+--- a/include/linux/clkdev.h
++++ b/include/linux/clkdev.h
+@@ -32,7 +32,7 @@ struct clk_lookup {
+       }
+ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
+-      const char *dev_fmt, ...);
++      const char *dev_fmt, ...) __printf(3, 4);
+ void clkdev_add(struct clk_lookup *cl);
+ void clkdev_drop(struct clk_lookup *cl);
+@@ -40,7 +40,8 @@ void clkdev_drop(struct clk_lookup *cl);
+ void clkdev_add_table(struct clk_lookup *, size_t);
+ int clk_add_alias(const char *, const char *, char *, struct device *);
+-int clk_register_clkdev(struct clk *, const char *, const char *, ...);
++int clk_register_clkdev(struct clk *, const char *, const char *, ...)
++      __printf(3, 4);
+ int clk_register_clkdevs(struct clk *, struct clk_lookup *, size_t);
+ #ifdef CONFIG_COMMON_CLK
 diff --git a/include/linux/compat.h b/include/linux/compat.h
-index ab25814..d1540d1 100644
+index ab25814..63b52db 100644
 --- a/include/linux/compat.h
 +++ b/include/linux/compat.h
 @@ -316,7 +316,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
@@ -88664,6 +95087,15 @@ index ab25814..d1540d1 100644
  asmlinkage long compat_sys_keyctl(u32 option,
                              u32 arg2, u32 arg3, u32 arg4, u32 arg5);
  asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32);
+@@ -424,7 +424,7 @@ asmlinkage long compat_sys_settimeofday(struct compat_timeval __user *tv,
+ asmlinkage long compat_sys_adjtimex(struct compat_timex __user *utp);
+-extern int compat_printk(const char *fmt, ...);
++extern __printf(1, 2) int compat_printk(const char *fmt, ...);
+ extern void sigset_from_compat(sigset_t *set, const compat_sigset_t *compat);
+ extern void sigset_to_compat(compat_sigset_t *compat, const sigset_t *set);
 @@ -439,7 +439,7 @@ extern int compat_ptrace_request(struct task_struct *child,
  extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
                               compat_ulong_t addr, compat_ulong_t data);
@@ -88674,10 +95106,10 @@ index ab25814..d1540d1 100644
  asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t);
  /*
 diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
-index cdf13ca..ba5e086 100644
+index 371e560..e2e4e3e 100644
 --- a/include/linux/compiler-gcc.h
 +++ b/include/linux/compiler-gcc.h
-@@ -94,8 +94,8 @@
+@@ -108,8 +108,8 @@
   */
  #define __pure                                __attribute__((pure))
  #define __aligned(x)                  __attribute__((aligned(x)))
@@ -88771,7 +95203,7 @@ index efee493..8aa8f6b 100644
   * Mark a position in code as unreachable.  This can be used to
   * suppress control flow warnings after asm blocks that transfer
 diff --git a/include/linux/compiler.h b/include/linux/compiler.h
-index 1b45e4a..eff29a7 100644
+index 8677225..2d49df1 100644
 --- a/include/linux/compiler.h
 +++ b/include/linux/compiler.h
 @@ -5,11 +5,14 @@
@@ -88839,25 +95271,22 @@ index 1b45e4a..eff29a7 100644
  #endif
  
  /* Indirect macros required for expanded argument pasting, eg. __LINE__. */
-@@ -205,32 +227,32 @@ static __always_inline void data_access_exceeds_word_size(void)
+@@ -199,27 +221,27 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
  static __always_inline void __read_once_size(const volatile void *p, void *res, int size)
  {
        switch (size) {
 -      case 1: *(__u8 *)res = *(volatile __u8 *)p; break;
 -      case 2: *(__u16 *)res = *(volatile __u16 *)p; break;
 -      case 4: *(__u32 *)res = *(volatile __u32 *)p; break;
+-      case 8: *(__u64 *)res = *(volatile __u64 *)p; break;
 +      case 1: *(__u8 *)res = *(const volatile __u8 *)p; break;
 +      case 2: *(__u16 *)res = *(const volatile __u16 *)p; break;
 +      case 4: *(__u32 *)res = *(const volatile __u32 *)p; break;
- #ifdef CONFIG_64BIT
--      case 8: *(__u64 *)res = *(volatile __u64 *)p; break;
 +      case 8: *(__u64 *)res = *(const volatile __u64 *)p; break;
- #endif
        default:
                barrier();
 -              __builtin_memcpy((void *)res, (const void *)p, size);
 +              __builtin_memcpy(res, (const void *)p, size);
-               data_access_exceeds_word_size();
                barrier();
        }
  }
@@ -88869,21 +95298,19 @@ index 1b45e4a..eff29a7 100644
 -      case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
 -      case 2: *(volatile __u16 *)p = *(__u16 *)res; break;
 -      case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
+-      case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
 +      case 1: *(volatile __u8 *)p = *(const __u8 *)res; break;
 +      case 2: *(volatile __u16 *)p = *(const __u16 *)res; break;
 +      case 4: *(volatile __u32 *)p = *(const __u32 *)res; break;
- #ifdef CONFIG_64BIT
--      case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
 +      case 8: *(volatile __u64 *)p = *(const __u64 *)res; break;
- #endif
        default:
                barrier();
 -              __builtin_memcpy((void *)p, (const void *)res, size);
 +              __builtin_memcpy((void *)p, res, size);
-               data_access_exceeds_word_size();
                barrier();
        }
-@@ -364,6 +386,38 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
+ }
+@@ -352,6 +374,38 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
  # define __attribute_const__  /* unimplemented */
  #endif
  
@@ -88922,7 +95349,7 @@ index 1b45e4a..eff29a7 100644
  /*
   * Tell gcc if a function is cold. The compiler will assume any path
   * directly leading to the call is unlikely.
-@@ -373,6 +427,22 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
+@@ -361,6 +415,22 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
  #define __cold
  #endif
  
@@ -88945,7 +95372,7 @@ index 1b45e4a..eff29a7 100644
  /* Simple shorthand for a section definition */
  #ifndef __section
  # define __section(S) __attribute__ ((__section__(#S)))
-@@ -387,6 +457,8 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
+@@ -375,6 +445,8 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
  # define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
  #endif
  
@@ -88954,7 +95381,7 @@ index 1b45e4a..eff29a7 100644
  /* Is this type a native word size -- useful for atomic operations */
  #ifndef __native_word
  # define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
-@@ -466,8 +538,9 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
+@@ -454,8 +526,9 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
   */
  #define __ACCESS_ONCE(x) ({ \
         __maybe_unused typeof(x) __var = (__force typeof(x)) 0; \
@@ -88993,10 +95420,20 @@ index 5d5aaae..0ea9b84 100644
  extern bool completion_done(struct completion *x);
  
 diff --git a/include/linux/configfs.h b/include/linux/configfs.h
-index 34025df..d94bbbc 100644
+index 34025df..9c263df 100644
 --- a/include/linux/configfs.h
 +++ b/include/linux/configfs.h
-@@ -125,7 +125,7 @@ struct configfs_attribute {
+@@ -64,7 +64,8 @@ struct config_item {
+       struct dentry           *ci_dentry;
+ };
+-extern int config_item_set_name(struct config_item *, const char *, ...);
++extern __printf(2, 3)
++int config_item_set_name(struct config_item *, const char *, ...);
+ static inline char *config_item_name(struct config_item * item)
+ {
+@@ -125,7 +126,7 @@ struct configfs_attribute {
        const char              *ca_name;
        struct module           *ca_owner;
        umode_t                 ca_mode;
@@ -89005,6 +95442,24 @@ index 34025df..d94bbbc 100644
  
  /*
   * Users often need to create attribute structures for their configurable
+diff --git a/include/linux/cpu.h b/include/linux/cpu.h
+index c0fb6b1..23c30bd 100644
+--- a/include/linux/cpu.h
++++ b/include/linux/cpu.h
+@@ -40,9 +40,10 @@ extern void cpu_remove_dev_attr(struct device_attribute *attr);
+ extern int cpu_add_dev_attr_group(struct attribute_group *attrs);
+ extern void cpu_remove_dev_attr_group(struct attribute_group *attrs);
+-extern struct device *cpu_device_create(struct device *parent, void *drvdata,
+-                                      const struct attribute_group **groups,
+-                                      const char *fmt, ...);
++extern __printf(4, 5)
++struct device *cpu_device_create(struct device *parent, void *drvdata,
++                               const struct attribute_group **groups,
++                               const char *fmt, ...);
+ #ifdef CONFIG_HOTPLUG_CPU
+ extern void unregister_cpu(struct cpu *cpu);
+ extern ssize_t arch_cpu_probe(const char *, size_t);
 diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
 index 2ee4888..0451f5e 100644
 --- a/include/linux/cpufreq.h
@@ -89050,10 +95505,10 @@ index 9c5e892..feb34e0 100644
  #ifdef CONFIG_CPU_IDLE
  extern int cpuidle_register_governor(struct cpuidle_governor *gov);
 diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
-index 086549a..a572d94 100644
+index 59915ea..81ebec0 100644
 --- a/include/linux/cpumask.h
 +++ b/include/linux/cpumask.h
-@@ -126,17 +126,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
+@@ -127,17 +127,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
  }
  
  /* Valid inputs for n are -1 and 0. */
@@ -89074,7 +95529,7 @@ index 086549a..a572d94 100644
                                            const struct cpumask *srcp,
                                            const struct cpumask *andp)
  {
-@@ -182,7 +182,7 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
+@@ -181,7 +181,7 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
   *
   * Returns >= nr_cpu_ids if no further cpus set.
   */
@@ -89083,7 +95538,7 @@ index 086549a..a572d94 100644
  {
        /* -1 is a legal arg here. */
        if (n != -1)
-@@ -197,7 +197,7 @@ static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
+@@ -196,7 +196,7 @@ static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
   *
   * Returns >= nr_cpu_ids if no further cpus unset.
   */
@@ -89092,16 +95547,16 @@ index 086549a..a572d94 100644
  {
        /* -1 is a legal arg here. */
        if (n != -1)
-@@ -205,7 +205,7 @@ static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
+@@ -204,7 +204,7 @@ static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
        return find_next_zero_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
  }
  
 -int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *);
 +int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *) __intentional_overflow(-1);
  int cpumask_any_but(const struct cpumask *mask, unsigned int cpu);
int cpumask_set_cpu_local_first(int i, int numa_node, cpumask_t *dstp);
unsigned int cpumask_local_spread(unsigned int i, int node);
  
-@@ -472,7 +472,7 @@ static inline bool cpumask_full(const struct cpumask *srcp)
+@@ -471,7 +471,7 @@ static inline bool cpumask_full(const struct cpumask *srcp)
   * cpumask_weight - Count of bits in *srcp
   * @srcp: the cpumask to count bits (< nr_cpu_ids) in.
   */
@@ -89111,7 +95566,7 @@ index 086549a..a572d94 100644
        return bitmap_weight(cpumask_bits(srcp), nr_cpumask_bits);
  }
 diff --git a/include/linux/cred.h b/include/linux/cred.h
-index 2fb2ca2..d6a3340 100644
+index 8b6c083..51cb9f5 100644
 --- a/include/linux/cred.h
 +++ b/include/linux/cred.h
 @@ -35,7 +35,7 @@ struct group_info {
@@ -89123,7 +95578,7 @@ index 2fb2ca2..d6a3340 100644
  
  /**
   * get_group_info - Get a reference to a group info structure
-@@ -137,7 +137,7 @@ struct cred {
+@@ -152,7 +152,7 @@ struct cred {
        struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */
        struct group_info *group_info;  /* supplementary groups for euid/fsgid */
        struct rcu_head rcu;            /* RCU deletion hook */
@@ -89132,7 +95587,7 @@ index 2fb2ca2..d6a3340 100644
  
  extern void __put_cred(struct cred *);
  extern void exit_creds(struct task_struct *);
-@@ -195,6 +195,9 @@ static inline void validate_creds_for_do_exit(struct task_struct *tsk)
+@@ -210,6 +210,9 @@ static inline void validate_creds_for_do_exit(struct task_struct *tsk)
  static inline void validate_process_creds(void)
  {
  }
@@ -89142,7 +95597,7 @@ index 2fb2ca2..d6a3340 100644
  #endif
  
  /**
-@@ -332,6 +335,7 @@ static inline void put_cred(const struct cred *_cred)
+@@ -347,6 +350,7 @@ static inline void put_cred(const struct cred *_cred)
  
  #define task_uid(task)                (task_cred_xxx((task), uid))
  #define task_euid(task)               (task_cred_xxx((task), euid))
@@ -89151,10 +95606,10 @@ index 2fb2ca2..d6a3340 100644
  #define current_cred_xxx(xxx)                 \
  ({                                            \
 diff --git a/include/linux/crypto.h b/include/linux/crypto.h
-index fb5ef16..05d1e59 100644
+index 10df5d2..503d678 100644
 --- a/include/linux/crypto.h
 +++ b/include/linux/crypto.h
-@@ -626,7 +626,7 @@ struct cipher_tfm {
+@@ -632,7 +632,7 @@ struct cipher_tfm {
                          const u8 *key, unsigned int keylen);
        void (*cit_encrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
        void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
@@ -89163,7 +95618,7 @@ index fb5ef16..05d1e59 100644
  
  struct hash_tfm {
        int (*init)(struct hash_desc *desc);
-@@ -647,13 +647,13 @@ struct compress_tfm {
+@@ -653,13 +653,13 @@ struct compress_tfm {
        int (*cot_decompress)(struct crypto_tfm *tfm,
                              const u8 *src, unsigned int slen,
                              u8 *dst, unsigned int *dlen);
@@ -89193,7 +95648,7 @@ index 653589e..4ef254a 100644
        return c | 0x20;
  }
 diff --git a/include/linux/dcache.h b/include/linux/dcache.h
-index d835879..c8e5b92 100644
+index df334cb..e730faa 100644
 --- a/include/linux/dcache.h
 +++ b/include/linux/dcache.h
 @@ -123,6 +123,9 @@ struct dentry {
@@ -89215,7 +95670,7 @@ index d835879..c8e5b92 100644
  
  /*
   * dentry->d_lock spinlock nesting subclasses:
-@@ -319,7 +322,7 @@ extern struct dentry *__d_lookup_rcu(const struct dentry *parent,
+@@ -319,13 +322,14 @@ extern struct dentry *__d_lookup_rcu(const struct dentry *parent,
  
  static inline unsigned d_count(const struct dentry *dentry)
  {
@@ -89224,7 +95679,15 @@ index d835879..c8e5b92 100644
  }
  
  /*
-@@ -347,7 +350,7 @@ extern char *dentry_path(struct dentry *, char *, int);
+  * helper function for dentry_operations.d_dname() members
+  */
+-extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...);
++extern __printf(4, 5)
++char *dynamic_dname(struct dentry *, char *, int, const char *, ...);
+ extern char *simple_dname(struct dentry *, char *, int);
+ extern char *__d_path(const struct path *, const struct path *, char *, int);
+@@ -347,7 +351,7 @@ extern char *dentry_path(struct dentry *, char *, int);
  static inline struct dentry *dget_dlock(struct dentry *dentry)
  {
        if (dentry)
@@ -89260,10 +95723,10 @@ index ce447f0..83c66bd 100644
  /**
   * struct devfreq - Device devfreq structure
 diff --git a/include/linux/device.h b/include/linux/device.h
-index 0eb8ee2..c603b6a 100644
+index 6558af9..48bce1a 100644
 --- a/include/linux/device.h
 +++ b/include/linux/device.h
-@@ -311,7 +311,7 @@ struct subsys_interface {
+@@ -312,7 +312,7 @@ struct subsys_interface {
        struct list_head node;
        int (*add_dev)(struct device *dev, struct subsys_interface *sif);
        int (*remove_dev)(struct device *dev, struct subsys_interface *sif);
@@ -89272,7 +95735,7 @@ index 0eb8ee2..c603b6a 100644
  
  int subsys_interface_register(struct subsys_interface *sif);
  void subsys_interface_unregister(struct subsys_interface *sif);
-@@ -507,7 +507,7 @@ struct device_type {
+@@ -508,7 +508,7 @@ struct device_type {
        void (*release)(struct device *dev);
  
        const struct dev_pm_ops *pm;
@@ -89281,7 +95744,7 @@ index 0eb8ee2..c603b6a 100644
  
  /* interface for exporting device attributes */
  struct device_attribute {
-@@ -517,11 +517,12 @@ struct device_attribute {
+@@ -518,11 +518,12 @@ struct device_attribute {
        ssize_t (*store)(struct device *dev, struct device_attribute *attr,
                         const char *buf, size_t count);
  };
@@ -89295,11 +95758,40 @@ index 0eb8ee2..c603b6a 100644
  
  ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr,
                          char *buf);
+@@ -607,8 +608,9 @@ extern int devres_release_group(struct device *dev, void *id);
+ /* managed devm_k.alloc/kfree for device drivers */
+ extern void *devm_kmalloc(struct device *dev, size_t size, gfp_t gfp);
+-extern char *devm_kvasprintf(struct device *dev, gfp_t gfp, const char *fmt,
+-                           va_list ap);
++extern __printf(3, 0)
++char *devm_kvasprintf(struct device *dev, gfp_t gfp, const char *fmt,
++                    va_list ap);
+ extern __printf(3, 4)
+ char *devm_kasprintf(struct device *dev, gfp_t gfp, const char *fmt, ...);
+ static inline void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp)
+@@ -980,12 +982,10 @@ extern int __must_check device_reprobe(struct device *dev);
+ /*
+  * Easy functions for dynamically creating devices on the fly
+  */
+-extern struct device *device_create_vargs(struct class *cls,
+-                                        struct device *parent,
+-                                        dev_t devt,
+-                                        void *drvdata,
+-                                        const char *fmt,
+-                                        va_list vargs);
++extern __printf(5, 0)
++struct device *device_create_vargs(struct class *cls, struct device *parent,
++                                 dev_t devt, void *drvdata,
++                                 const char *fmt, va_list vargs);
+ extern __printf(5, 6)
+ struct device *device_create(struct class *cls, struct device *parent,
+                            dev_t devt, void *drvdata,
 diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
-index c3007cb..43efc8c 100644
+index ac07ff0..edff186 100644
 --- a/include/linux/dma-mapping.h
 +++ b/include/linux/dma-mapping.h
-@@ -60,7 +60,7 @@ struct dma_map_ops {
+@@ -64,7 +64,7 @@ struct dma_map_ops {
        u64 (*get_required_mask)(struct device *dev);
  #endif
        int is_phys;
@@ -89308,27 +95800,11 @@ index c3007cb..43efc8c 100644
  
  #define DMA_BIT_MASK(n)       (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
  
-diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
-index b6997a0..108be6c 100644
---- a/include/linux/dmaengine.h
-+++ b/include/linux/dmaengine.h
-@@ -1133,9 +1133,9 @@ struct dma_pinned_list {
- struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len);
- void dma_unpin_iovec_pages(struct dma_pinned_list* pinned_list);
--dma_cookie_t dma_memcpy_to_iovec(struct dma_chan *chan, struct iovec *iov,
-+dma_cookie_t __intentional_overflow(0) dma_memcpy_to_iovec(struct dma_chan *chan, struct iovec *iov,
-       struct dma_pinned_list *pinned_list, unsigned char *kdata, size_t len);
--dma_cookie_t dma_memcpy_pg_to_iovec(struct dma_chan *chan, struct iovec *iov,
-+dma_cookie_t __intentional_overflow(0) dma_memcpy_pg_to_iovec(struct dma_chan *chan, struct iovec *iov,
-       struct dma_pinned_list *pinned_list, struct page *page,
-       unsigned int offset, size_t len);
 diff --git a/include/linux/efi.h b/include/linux/efi.h
-index cf7e431..d239dce 100644
+index af5be03..d8a6ae2 100644
 --- a/include/linux/efi.h
 +++ b/include/linux/efi.h
-@@ -1056,6 +1056,7 @@ struct efivar_operations {
+@@ -1057,6 +1057,7 @@ struct efivar_operations {
        efi_set_variable_nonblocking_t *set_variable_nonblocking;
        efi_query_variable_store_t *query_variable_store;
  };
@@ -89429,10 +95905,10 @@ index 8293262..2b3b8bd 100644
  extern bool frontswap_enabled;
  extern struct frontswap_ops *
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 52cc449..31f35cb 100644
+index 571aab9..03a5b06 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -410,7 +410,7 @@ struct address_space {
+@@ -437,7 +437,7 @@ struct address_space {
        spinlock_t              private_lock;   /* for use by the address_space */
        struct list_head        private_list;   /* ditto */
        void                    *private_data;  /* ditto */
@@ -89441,7 +95917,7 @@ index 52cc449..31f35cb 100644
        /*
         * On most architectures that alignment is already the case; but
         * must be enforced here for CRIS, to let the least significant bit
-@@ -453,7 +453,7 @@ struct block_device {
+@@ -480,7 +480,7 @@ struct block_device {
        int                     bd_fsfreeze_count;
        /* Mutex for freeze */
        struct mutex            bd_fsfreeze_mutex;
@@ -89450,7 +95926,7 @@ index 52cc449..31f35cb 100644
  
  /*
   * Radix-tree tags, for tagging dirty and writeback pages within the pagecache
-@@ -639,7 +639,7 @@ struct inode {
+@@ -666,7 +666,7 @@ struct inode {
  #endif
  
        void                    *i_private; /* fs or device private pointer */
@@ -89459,7 +95935,7 @@ index 52cc449..31f35cb 100644
  
  static inline int inode_unhashed(struct inode *inode)
  {
-@@ -834,7 +834,7 @@ struct file {
+@@ -861,7 +861,7 @@ struct file {
        struct list_head        f_tfile_llink;
  #endif /* #ifdef CONFIG_EPOLL */
        struct address_space    *f_mapping;
@@ -89468,7 +95944,7 @@ index 52cc449..31f35cb 100644
  
  struct file_handle {
        __u32 handle_bytes;
-@@ -962,7 +962,7 @@ struct file_lock {
+@@ -990,7 +990,7 @@ struct file_lock {
                        int state;              /* state of grant or error if -ve */
                } afs;
        } fl_u;
@@ -89477,7 +95953,7 @@ index 52cc449..31f35cb 100644
  
  struct file_lock_context {
        spinlock_t              flc_lock;
-@@ -1316,7 +1316,7 @@ struct super_block {
+@@ -1351,7 +1351,7 @@ struct super_block {
         * Indicates how deep in a filesystem stack this SB is
         */
        int s_stack_depth;
@@ -89486,7 +95962,7 @@ index 52cc449..31f35cb 100644
  
  extern struct timespec current_fs_time(struct super_block *sb);
  
-@@ -1570,7 +1570,8 @@ struct file_operations {
+@@ -1603,7 +1603,8 @@ struct file_operations {
  #ifndef CONFIG_MMU
        unsigned (*mmap_capabilities)(struct file *);
  #endif
@@ -89496,7 +95972,7 @@ index 52cc449..31f35cb 100644
  
  struct inode_operations {
        struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
-@@ -2269,7 +2270,7 @@ extern int register_chrdev_region(dev_t, unsigned, const char *);
+@@ -2303,7 +2304,7 @@ extern int register_chrdev_region(dev_t, unsigned, const char *);
  extern int __register_chrdev(unsigned int major, unsigned int baseminor,
                             unsigned int count, const char *name,
                             const struct file_operations *fops);
@@ -89505,7 +95981,7 @@ index 52cc449..31f35cb 100644
                                unsigned int count, const char *name);
  extern void unregister_chrdev_region(dev_t, unsigned);
  extern void chrdev_show(struct seq_file *,off_t);
-@@ -2918,4 +2919,14 @@ static inline bool dir_relax(struct inode *inode)
+@@ -2989,4 +2990,14 @@ static inline bool dir_relax(struct inode *inode)
        return !IS_DEADDIR(inode);
  }
  
@@ -89644,10 +96120,10 @@ index 667c311..abac2a7 100644
  };
  
 diff --git a/include/linux/gfp.h b/include/linux/gfp.h
-index 51bd1e7..0486343 100644
+index 15928f0..90b31d7 100644
 --- a/include/linux/gfp.h
 +++ b/include/linux/gfp.h
-@@ -34,6 +34,13 @@ struct vm_area_struct;
+@@ -35,6 +35,13 @@ struct vm_area_struct;
  #define ___GFP_NO_KSWAPD      0x400000u
  #define ___GFP_OTHER_NODE     0x800000u
  #define ___GFP_WRITE          0x1000000u
@@ -89661,7 +96137,7 @@ index 51bd1e7..0486343 100644
  /* If the above are modified, __GFP_BITS_SHIFT may need updating */
  
  /*
-@@ -90,6 +97,7 @@ struct vm_area_struct;
+@@ -94,6 +101,7 @@ struct vm_area_struct;
  #define __GFP_NO_KSWAPD       ((__force gfp_t)___GFP_NO_KSWAPD)
  #define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE) /* On behalf of other node */
  #define __GFP_WRITE   ((__force gfp_t)___GFP_WRITE)   /* Allocator intends to dirty page */
@@ -89669,7 +96145,7 @@ index 51bd1e7..0486343 100644
  
  /*
   * This may seem redundant, but it's a way of annotating false positives vs.
-@@ -97,7 +105,7 @@ struct vm_area_struct;
+@@ -101,7 +109,7 @@ struct vm_area_struct;
   */
  #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK)
  
@@ -89678,7 +96154,7 @@ index 51bd1e7..0486343 100644
  #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
  
  /* This equals 0, but use constants in case they ever change */
-@@ -152,6 +160,8 @@ struct vm_area_struct;
+@@ -146,6 +154,8 @@ struct vm_area_struct;
  /* 4GB DMA on some platforms */
  #define GFP_DMA32     __GFP_DMA32
  
@@ -90720,10 +97196,10 @@ index 0000000..26ef560
 +#define GR_MSRWRITE_MSG "denied write to CPU MSR by "
 diff --git a/include/linux/grsecurity.h b/include/linux/grsecurity.h
 new file mode 100644
-index 0000000..63c1850
+index 0000000..085a746
 --- /dev/null
 +++ b/include/linux/grsecurity.h
-@@ -0,0 +1,250 @@
+@@ -0,0 +1,247 @@
 +#ifndef GR_SECURITY_H
 +#define GR_SECURITY_H
 +#include <linux/fs.h>
@@ -90816,9 +97292,7 @@ index 0000000..63c1850
 +void gr_log_rwxmmap(struct file *file);
 +void gr_log_rwxmprotect(struct vm_area_struct *vma);
 +
-+int gr_handle_follow_link(const struct inode *parent,
-+                               const struct inode *inode,
-+                               const struct dentry *dentry,
++int gr_handle_follow_link(const struct dentry *dentry,
 +                               const struct vfsmount *mnt);
 +int gr_handle_fifo(const struct dentry *dentry,
 +                        const struct vfsmount *mnt,
@@ -90826,8 +97300,7 @@ index 0000000..63c1850
 +                        const int acc_mode);
 +int gr_handle_hardlink(const struct dentry *dentry,
 +                            const struct vfsmount *mnt,
-+                            struct inode *inode,
-+                            const int mode, const struct filename *to);
++                            const struct filename *to);
 +
 +int gr_is_capable(const int cap);
 +int gr_is_capable_nolog(const int cap);
@@ -91047,7 +97520,7 @@ index 1c7b89a..7dda400 100644
        container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
  
 diff --git a/include/linux/i2c.h b/include/linux/i2c.h
-index f17da50..2f8b203 100644
+index e83a738..8b323fa 100644
 --- a/include/linux/i2c.h
 +++ b/include/linux/i2c.h
 @@ -409,6 +409,7 @@ struct i2c_algorithm {
@@ -91059,10 +97532,10 @@ index f17da50..2f8b203 100644
  /**
   * struct i2c_bus_recovery_info - I2C bus recovery information
 diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h
-index aff7ad8..3942bbd 100644
+index 66a7d76..5e68d20 100644
 --- a/include/linux/if_pppox.h
 +++ b/include/linux/if_pppox.h
-@@ -76,7 +76,7 @@ struct pppox_proto {
+@@ -78,7 +78,7 @@ struct pppox_proto {
        int             (*ioctl)(struct socket *sock, unsigned int cmd,
                                 unsigned long arg);
        struct module   *owner;
@@ -91072,7 +97545,7 @@ index aff7ad8..3942bbd 100644
  extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
  extern void unregister_pppox_proto(int proto_num);
 diff --git a/include/linux/init.h b/include/linux/init.h
-index 2df8e8d..3e1280d 100644
+index 21b6d76..4a6775c 100644
 --- a/include/linux/init.h
 +++ b/include/linux/init.h
 @@ -37,9 +37,17 @@
@@ -91129,10 +97602,10 @@ index 696d223..6d6b39f 100644
        .files          = &init_files,                                  \
        .signal         = &init_signals,                                \
 diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
-index 2e88580..f6a99a0 100644
+index 950ae45..df6ac60 100644
 --- a/include/linux/interrupt.h
 +++ b/include/linux/interrupt.h
-@@ -420,8 +420,8 @@ extern const char * const softirq_to_name[NR_SOFTIRQS];
+@@ -432,8 +432,8 @@ extern const char * const softirq_to_name[NR_SOFTIRQS];
  
  struct softirq_action
  {
@@ -91143,7 +97616,7 @@ index 2e88580..f6a99a0 100644
  
  asmlinkage void do_softirq(void);
  asmlinkage void __do_softirq(void);
-@@ -435,7 +435,7 @@ static inline void do_softirq_own_stack(void)
+@@ -447,7 +447,7 @@ static inline void do_softirq_own_stack(void)
  }
  #endif
  
@@ -91153,10 +97626,10 @@ index 2e88580..f6a99a0 100644
  extern void __raise_softirq_irqoff(unsigned int nr);
  
 diff --git a/include/linux/iommu.h b/include/linux/iommu.h
-index 38daa45..4de4317 100644
+index 0546b87..46fd5b6 100644
 --- a/include/linux/iommu.h
 +++ b/include/linux/iommu.h
-@@ -147,7 +147,7 @@ struct iommu_ops {
+@@ -174,7 +174,7 @@ struct iommu_ops {
  
        unsigned long pgsize_bitmap;
        void *priv;
@@ -91165,8 +97638,17 @@ index 38daa45..4de4317 100644
  
  #define IOMMU_GROUP_NOTIFY_ADD_DEVICE         1 /* Device added */
  #define IOMMU_GROUP_NOTIFY_DEL_DEVICE         2 /* Pre Device removed */
+@@ -234,7 +234,7 @@ extern int iommu_domain_set_attr(struct iommu_domain *domain, enum iommu_attr,
+                                void *data);
+ struct device *iommu_device_create(struct device *parent, void *drvdata,
+                                  const struct attribute_group **groups,
+-                                 const char *fmt, ...);
++                                 const char *fmt, ...) __printf(4, 5);
+ void iommu_device_destroy(struct device *dev);
+ int iommu_device_link(struct device *dev, struct device *link);
+ void iommu_device_unlink(struct device *dev, struct device *link);
 diff --git a/include/linux/ioport.h b/include/linux/ioport.h
-index 2c525022..345b106 100644
+index 388e3ae..d7e45a1 100644
 --- a/include/linux/ioport.h
 +++ b/include/linux/ioport.h
 @@ -161,7 +161,7 @@ struct resource *lookup_resource(struct resource *root, resource_size_t start);
@@ -91192,11 +97674,11 @@ index 1eee6bc..9cf4912 100644
  extern struct ipc_namespace init_ipc_ns;
  extern atomic_t nr_ipc_ns;
 diff --git a/include/linux/irq.h b/include/linux/irq.h
-index d09ec7a..f373eb5 100644
+index 62c6901..827f8f6 100644
 --- a/include/linux/irq.h
 +++ b/include/linux/irq.h
-@@ -364,7 +364,8 @@ struct irq_chip {
-       void            (*irq_write_msi_msg)(struct irq_data *data, struct msi_msg *msg);
+@@ -370,7 +370,8 @@ struct irq_chip {
+       int             (*irq_set_irqchip_state)(struct irq_data *data, enum irqchip_irq_state which, bool state);
  
        unsigned long   flags;
 -};
@@ -91205,19 +97687,6 @@ index d09ec7a..f373eb5 100644
  
  /*
   * irq_chip specific flags
-diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h
-index 71d706d..817cdec 100644
---- a/include/linux/irqchip/arm-gic.h
-+++ b/include/linux/irqchip/arm-gic.h
-@@ -95,7 +95,7 @@
- struct device_node;
--extern struct irq_chip gic_arch_extn;
-+extern irq_chip_no_const gic_arch_extn;
- void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *,
-                   u32 offset, struct device_node *);
 diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
 index dd1109f..4f4fdda 100644
 --- a/include/linux/irqdesc.h
@@ -91312,10 +97781,10 @@ index 6883e19..e854fcb 100644
  /* This macro allows us to keep printk typechecking */
  static __printf(1, 2)
 diff --git a/include/linux/kernel.h b/include/linux/kernel.h
-index d6d630d..feea1f5 100644
+index 3a5b48e..240107b 100644
 --- a/include/linux/kernel.h
 +++ b/include/linux/kernel.h
-@@ -378,7 +378,7 @@ static inline int __must_check kstrtos32_from_user(const char __user *s, size_t
+@@ -390,7 +390,7 @@ static inline int __must_check kstrtos32_from_user(const char __user *s, size_t
  /* Obsolete, do not use.  Use kstrto<foo> instead */
  
  extern unsigned long simple_strtoul(const char *,char **,unsigned int);
@@ -91324,6 +97793,38 @@ index d6d630d..feea1f5 100644
  extern unsigned long long simple_strtoull(const char *,char **,unsigned int);
  extern long long simple_strtoll(const char *,char **,unsigned int);
  
+@@ -410,7 +410,8 @@ extern __printf(3, 0)
+ int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
+ extern __printf(2, 3)
+ char *kasprintf(gfp_t gfp, const char *fmt, ...);
+-extern char *kvasprintf(gfp_t gfp, const char *fmt, va_list args);
++extern __printf(2, 0)
++char *kvasprintf(gfp_t gfp, const char *fmt, va_list args);
+ extern __scanf(2, 3)
+ int sscanf(const char *, const char *, ...);
+@@ -681,10 +682,10 @@ do {                                                                     \
+               __ftrace_vprintk(_THIS_IP_, fmt, vargs);                \
+ } while (0)
+-extern int
++extern __printf(2, 0) int
+ __ftrace_vbprintk(unsigned long ip, const char *fmt, va_list ap);
+-extern int
++extern __printf(2, 0) int
+ __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap);
+ extern void ftrace_dump(enum ftrace_dump_mode oops_dump_mode);
+@@ -704,7 +705,7 @@ int trace_printk(const char *fmt, ...)
+ {
+       return 0;
+ }
+-static inline int
++static __printf(1, 0) inline int
+ ftrace_vprintk(const char *fmt, va_list ap)
+ {
+       return 0;
 diff --git a/include/linux/key-type.h b/include/linux/key-type.h
 index ff9f1d3..6712be5 100644
 --- a/include/linux/key-type.h
@@ -91369,7 +97870,7 @@ index e465bb1..19f605fd 100644
  extern struct kgdb_arch               arch_kgdb_ops;
  
 diff --git a/include/linux/kmemleak.h b/include/linux/kmemleak.h
-index e705467..a92471d 100644
+index d0a1f99..0bd8b7c 100644
 --- a/include/linux/kmemleak.h
 +++ b/include/linux/kmemleak.h
 @@ -27,7 +27,7 @@
@@ -91378,10 +97879,10 @@ index e705467..a92471d 100644
  extern void kmemleak_alloc(const void *ptr, size_t size, int min_count,
 -                         gfp_t gfp) __ref;
 +                         gfp_t gfp) __ref __size_overflow(2);
- extern void kmemleak_alloc_percpu(const void __percpu *ptr, size_t size) __ref;
+ extern void kmemleak_alloc_percpu(const void __percpu *ptr, size_t size,
+                                 gfp_t gfp) __ref;
  extern void kmemleak_free(const void *ptr) __ref;
- extern void kmemleak_free_part(const void *ptr, size_t size) __ref;
-@@ -62,7 +62,7 @@ static inline void kmemleak_erase(void **ptr)
+@@ -63,7 +63,7 @@ static inline void kmemleak_erase(void **ptr)
  static inline void kmemleak_init(void)
  {
  }
@@ -91414,10 +97915,22 @@ index 0555cc6..40116ce 100644
        char **envp;
        int wait;
 diff --git a/include/linux/kobject.h b/include/linux/kobject.h
-index 2d61b90..a1d0a13 100644
+index 2d61b90..3d69945 100644
 --- a/include/linux/kobject.h
 +++ b/include/linux/kobject.h
-@@ -118,7 +118,7 @@ struct kobj_type {
+@@ -80,8 +80,9 @@ struct kobject {
+ extern __printf(2, 3)
+ int kobject_set_name(struct kobject *kobj, const char *name, ...);
+-extern int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
+-                                va_list vargs);
++extern __printf(2, 0)
++int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
++                         va_list vargs);
+ static inline const char *kobject_name(const struct kobject *kobj)
+ {
+@@ -118,7 +119,7 @@ struct kobj_type {
        struct attribute **default_attrs;
        const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
        const void *(*namespace)(struct kobject *kobj);
@@ -91426,7 +97939,7 @@ index 2d61b90..a1d0a13 100644
  
  struct kobj_uevent_env {
        char *argv[3];
-@@ -142,6 +142,7 @@ struct kobj_attribute {
+@@ -142,6 +143,7 @@ struct kobj_attribute {
        ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
                         const char *buf, size_t count);
  };
@@ -91434,7 +97947,7 @@ index 2d61b90..a1d0a13 100644
  
  extern const struct sysfs_ops kobj_sysfs_ops;
  
-@@ -169,7 +170,7 @@ struct kset {
+@@ -169,7 +171,7 @@ struct kset {
        spinlock_t list_lock;
        struct kobject kobj;
        const struct kset_uevent_ops *uevent_ops;
@@ -91470,7 +97983,7 @@ index 484604d..0f6c5b6 100644
        if (atomic_sub_and_test((int) count, &kref->refcount)) {
                release(kref);
 diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
-index d12b210..d91fd76 100644
+index ad45054..7c54663 100644
 --- a/include/linux/kvm_host.h
 +++ b/include/linux/kvm_host.h
 @@ -455,7 +455,7 @@ static inline void kvm_irqfd_exit(void)
@@ -91492,10 +98005,10 @@ index d12b210..d91fd76 100644
  
  int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
 diff --git a/include/linux/libata.h b/include/linux/libata.h
-index 6b08cc1..248c5e9 100644
+index 28aeae4..320b3bf6 100644
 --- a/include/linux/libata.h
 +++ b/include/linux/libata.h
-@@ -980,7 +980,7 @@ struct ata_port_operations {
+@@ -988,7 +988,7 @@ struct ata_port_operations {
         * fields must be pointers.
         */
        const struct ata_port_operations        *inherits;
@@ -91669,7 +98182,7 @@ index 3d385c8..deacb6a 100644
  static inline int
  vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst)
 diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 47a9392..ef645bc 100644
+index 0755b9f..2960e96 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
 @@ -135,6 +135,11 @@ extern unsigned int kobjsize(const void *objp);
@@ -91684,7 +98197,7 @@ index 47a9392..ef645bc 100644
  #define VM_ACCOUNT    0x00100000      /* Is a VM accounted object */
  #define VM_NORESERVE  0x00200000      /* should the VM suppress accounting */
  #define VM_HUGETLB    0x00400000      /* Huge TLB Page VM */
-@@ -254,8 +259,8 @@ struct vm_operations_struct {
+@@ -257,8 +262,8 @@ struct vm_operations_struct {
        /* called by access_process_vm when get_user_pages() fails, typically
         * for use by special VMAs that can switch between memory and hardware
         */
@@ -91695,7 +98208,7 @@ index 47a9392..ef645bc 100644
  
        /* Called by the /proc/PID/maps code to ask the vma whether it
         * has a special name.  Returning non-NULL will also cause this
-@@ -293,6 +298,7 @@ struct vm_operations_struct {
+@@ -296,6 +301,7 @@ struct vm_operations_struct {
        struct page *(*find_special_page)(struct vm_area_struct *vma,
                                          unsigned long addr);
  };
@@ -91703,7 +98216,7 @@ index 47a9392..ef645bc 100644
  
  struct mmu_gather;
  struct inode;
-@@ -1213,8 +1219,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address,
+@@ -1131,8 +1137,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address,
        unsigned long *pfn);
  int follow_phys(struct vm_area_struct *vma, unsigned long address,
                unsigned int flags, unsigned long *prot, resource_size_t *phys);
@@ -91714,7 +98227,7 @@ index 47a9392..ef645bc 100644
  
  static inline void unmap_shared_mapping_range(struct address_space *mapping,
                loff_t const holebegin, loff_t const holelen)
-@@ -1254,9 +1260,9 @@ static inline int fixup_user_fault(struct task_struct *tsk,
+@@ -1172,9 +1178,9 @@ static inline int fixup_user_fault(struct task_struct *tsk,
  }
  #endif
  
@@ -91727,8 +98240,8 @@ index 47a9392..ef645bc 100644
  
  long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
                      unsigned long start, unsigned long nr_pages,
-@@ -1299,34 +1305,6 @@ int set_page_dirty_lock(struct page *page);
- int clear_page_dirty_for_io(struct page *page);
+@@ -1219,34 +1225,6 @@ int clear_page_dirty_for_io(struct page *page);
  int get_cmdline(struct task_struct *task, char *buffer, int buflen);
  
 -/* Is the vma a continuation of the stack vma above it? */
@@ -91762,7 +98275,7 @@ index 47a9392..ef645bc 100644
  extern struct task_struct *task_of_stack(struct task_struct *task,
                                struct vm_area_struct *vma, bool in_group);
  
-@@ -1449,8 +1427,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
+@@ -1369,8 +1347,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
  {
        return 0;
  }
@@ -91778,7 +98291,7 @@ index 47a9392..ef645bc 100644
  #endif
  
  #if defined(__PAGETABLE_PMD_FOLDED) || !defined(CONFIG_MMU)
-@@ -1460,6 +1445,12 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
+@@ -1380,6 +1365,12 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
        return 0;
  }
  
@@ -91791,7 +98304,7 @@ index 47a9392..ef645bc 100644
  static inline void mm_nr_pmds_init(struct mm_struct *mm) {}
  
  static inline unsigned long mm_nr_pmds(struct mm_struct *mm)
-@@ -1472,6 +1463,7 @@ static inline void mm_dec_nr_pmds(struct mm_struct *mm) {}
+@@ -1392,6 +1383,7 @@ static inline void mm_dec_nr_pmds(struct mm_struct *mm) {}
  
  #else
  int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
@@ -91799,7 +98312,7 @@ index 47a9392..ef645bc 100644
  
  static inline void mm_nr_pmds_init(struct mm_struct *mm)
  {
-@@ -1509,11 +1501,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
+@@ -1429,11 +1421,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
                NULL: pud_offset(pgd, address);
  }
  
@@ -91823,7 +98336,7 @@ index 47a9392..ef645bc 100644
  #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
  
  #if USE_SPLIT_PTE_PTLOCKS
-@@ -1890,12 +1894,23 @@ extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
+@@ -1810,12 +1814,23 @@ extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
        bool *need_rmap_locks);
  extern void exit_mmap(struct mm_struct *);
  
@@ -91847,7 +98360,7 @@ index 47a9392..ef645bc 100644
        if (rlim < RLIM_INFINITY) {
                if (((new - start) + (end_data - start_data)) > rlim)
                        return -ENOSPC;
-@@ -1920,7 +1935,7 @@ extern int install_special_mapping(struct mm_struct *mm,
+@@ -1840,7 +1855,7 @@ extern int install_special_mapping(struct mm_struct *mm,
                                   unsigned long addr, unsigned long len,
                                   unsigned long flags, struct page **pages);
  
@@ -91856,7 +98369,7 @@ index 47a9392..ef645bc 100644
  
  extern unsigned long mmap_region(struct file *file, unsigned long addr,
        unsigned long len, vm_flags_t vm_flags, unsigned long pgoff);
-@@ -1928,6 +1943,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
+@@ -1848,6 +1863,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
        unsigned long len, unsigned long prot, unsigned long flags,
        unsigned long pgoff, unsigned long *populate);
  extern int do_munmap(struct mm_struct *, unsigned long, size_t);
@@ -91864,7 +98377,7 @@ index 47a9392..ef645bc 100644
  
  #ifdef CONFIG_MMU
  extern int __mm_populate(unsigned long addr, unsigned long len,
-@@ -1956,10 +1972,11 @@ struct vm_unmapped_area_info {
+@@ -1876,10 +1892,11 @@ struct vm_unmapped_area_info {
        unsigned long high_limit;
        unsigned long align_mask;
        unsigned long align_offset;
@@ -91878,16 +98391,16 @@ index 47a9392..ef645bc 100644
  
  /*
   * Search for an unmapped address range.
-@@ -1971,7 +1988,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
+@@ -1891,7 +1908,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
   * - satisfies (begin_addr & align_mask) == (align_offset & align_mask)
   */
  static inline unsigned long
 -vm_unmapped_area(struct vm_unmapped_area_info *info)
 +vm_unmapped_area(const struct vm_unmapped_area_info *info)
  {
-       if (!(info->flags & VM_UNMAPPED_AREA_TOPDOWN))
-               return unmapped_area(info);
-@@ -2033,6 +2050,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
+       if (info->flags & VM_UNMAPPED_AREA_TOPDOWN)
+               return unmapped_area_topdown(info);
+@@ -1953,6 +1970,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
  extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
                                             struct vm_area_struct **pprev);
  
@@ -91898,7 +98411,7 @@ index 47a9392..ef645bc 100644
  /* Look up the first VMA which intersects the interval start_addr..end_addr-1,
     NULL if none.  Assume start_addr < end_addr. */
  static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
-@@ -2062,10 +2083,10 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
+@@ -1982,10 +2003,10 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
  }
  
  #ifdef CONFIG_MMU
@@ -91911,7 +98424,7 @@ index 47a9392..ef645bc 100644
  {
        return __pgprot(0);
  }
-@@ -2127,6 +2148,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
+@@ -2047,6 +2068,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
  static inline void vm_stat_account(struct mm_struct *mm,
                        unsigned long flags, struct file *file, long pages)
  {
@@ -91923,7 +98436,7 @@ index 47a9392..ef645bc 100644
        mm->total_vm += pages;
  }
  #endif /* CONFIG_PROC_FS */
-@@ -2229,7 +2255,7 @@ extern int unpoison_memory(unsigned long pfn);
+@@ -2149,7 +2175,7 @@ extern int unpoison_memory(unsigned long pfn);
  extern int sysctl_memory_failure_early_kill;
  extern int sysctl_memory_failure_recovery;
  extern void shake_page(struct page *p, int access);
@@ -91932,7 +98445,7 @@ index 47a9392..ef645bc 100644
  extern int soft_offline_page(struct page *page, int flags);
  
  #if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_HUGETLBFS)
-@@ -2280,5 +2306,11 @@ void __init setup_nr_node_ids(void);
+@@ -2200,5 +2226,11 @@ void __init setup_nr_node_ids(void);
  static inline void setup_nr_node_ids(void) {}
  #endif
  
@@ -91945,7 +98458,7 @@ index 47a9392..ef645bc 100644
  #endif /* __KERNEL__ */
  #endif /* _LINUX_MM_H */
 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 199a03a..7328440 100644
+index 8d37e26..6a6f55b 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
 @@ -313,7 +313,9 @@ struct vm_area_struct {
@@ -91959,7 +98472,7 @@ index 199a03a..7328440 100644
  
  struct core_thread {
        struct task_struct *task;
-@@ -464,7 +466,25 @@ struct mm_struct {
+@@ -466,7 +468,25 @@ struct mm_struct {
        /* address of the bounds directory */
        void __user *bd_addr;
  #endif
@@ -91986,21 +98499,8 @@ index 199a03a..7328440 100644
  
  static inline void mm_init_cpumask(struct mm_struct *mm)
  {
-diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h
-index 160448f..7b332b7 100644
---- a/include/linux/mmc/core.h
-+++ b/include/linux/mmc/core.h
-@@ -79,7 +79,7 @@ struct mmc_command {
- #define mmc_cmd_type(cmd)     ((cmd)->flags & MMC_CMD_MASK)
-       unsigned int            retries;        /* max number of retries */
--      unsigned int            error;          /* command error */
-+      int                     error;          /* command error */
- /*
-  * Standard errno values are used for errors, but some have specific
 diff --git a/include/linux/mmiotrace.h b/include/linux/mmiotrace.h
-index c5d5278..f0b68c8 100644
+index c5d5278..85cd5ce 100644
 --- a/include/linux/mmiotrace.h
 +++ b/include/linux/mmiotrace.h
 @@ -46,7 +46,7 @@ extern int kmmio_handler(struct pt_regs *regs, unsigned long addr);
@@ -92021,8 +98521,16 @@ index c5d5278..f0b68c8 100644
  {
  }
  
+@@ -106,6 +106,6 @@ extern void enable_mmiotrace(void);
+ extern void disable_mmiotrace(void);
+ extern void mmio_trace_rw(struct mmiotrace_rw *rw);
+ extern void mmio_trace_mapping(struct mmiotrace_map *map);
+-extern int mmio_trace_printk(const char *fmt, va_list args);
++extern __printf(1, 0) int mmio_trace_printk(const char *fmt, va_list args);
+ #endif /* _LINUX_MMIOTRACE_H */
 diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
-index 2782df4..abe756e 100644
+index 54d74f6..0728424 100644
 --- a/include/linux/mmzone.h
 +++ b/include/linux/mmzone.h
 @@ -526,7 +526,7 @@ struct zone {
@@ -92035,7 +98543,7 @@ index 2782df4..abe756e 100644
  
  enum zone_flags {
 diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
-index e530533..c9620c7 100644
+index 3bfd567..72e7d8f 100644
 --- a/include/linux/mod_devicetable.h
 +++ b/include/linux/mod_devicetable.h
 @@ -139,7 +139,7 @@ struct usb_device_id {
@@ -92057,7 +98565,7 @@ index e530533..c9620c7 100644
   * struct dmi_device_id appears during expansion of
   * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
 diff --git a/include/linux/module.h b/include/linux/module.h
-index b03485b..a26974f 100644
+index c883b86..516812e 100644
 --- a/include/linux/module.h
 +++ b/include/linux/module.h
 @@ -17,9 +17,11 @@
@@ -92129,10 +98637,10 @@ index b03485b..a26974f 100644
  
        /* Arch-specific module values */
        struct mod_arch_specific arch;
-@@ -338,6 +338,10 @@ struct module {
- #ifdef CONFIG_EVENT_TRACING
-       struct ftrace_event_call **trace_events;
+@@ -340,6 +340,10 @@ struct module {
        unsigned int num_trace_events;
+       struct trace_enum_map **trace_enums;
+       unsigned int num_trace_enums;
 +      struct file_operations trace_id;
 +      struct file_operations trace_enable;
 +      struct file_operations trace_format;
@@ -92140,7 +98648,7 @@ index b03485b..a26974f 100644
  #endif
  #ifdef CONFIG_FTRACE_MCOUNT_RECORD
        unsigned int num_ftrace_callsites;
-@@ -365,7 +369,7 @@ struct module {
+@@ -367,7 +371,7 @@ struct module {
        ctor_fn_t *ctors;
        unsigned int num_ctors;
  #endif
@@ -92149,7 +98657,7 @@ index b03485b..a26974f 100644
  #ifndef MODULE_ARCH_INIT
  #define MODULE_ARCH_INIT {}
  #endif
-@@ -386,18 +390,48 @@ bool is_module_address(unsigned long addr);
+@@ -388,18 +392,48 @@ bool is_module_address(unsigned long addr);
  bool is_module_percpu_address(unsigned long addr);
  bool is_module_text_address(unsigned long addr);
  
@@ -92273,7 +98781,7 @@ index 1c9effa..1160bdd 100644
            .ops = &param_ops_##type,                                   \
            .elemsize = sizeof(array[0]), .elem = array };              \
 diff --git a/include/linux/mount.h b/include/linux/mount.h
-index 564beee..653be6f 100644
+index f822c3c..958ca0a 100644
 --- a/include/linux/mount.h
 +++ b/include/linux/mount.h
 @@ -67,7 +67,7 @@ struct vfsmount {
@@ -92301,10 +98809,10 @@ index c899077..b9a2010 100644
  static inline void nd_terminate_link(void *name, size_t len, size_t maxlen)
  {
 diff --git a/include/linux/net.h b/include/linux/net.h
-index 17d8339..81656c0 100644
+index 738ea48..409dc09 100644
 --- a/include/linux/net.h
 +++ b/include/linux/net.h
-@@ -192,7 +192,7 @@ struct net_proto_family {
+@@ -190,7 +190,7 @@ struct net_proto_family {
        int             (*create)(struct net *net, struct socket *sock,
                                  int protocol, int kern);
        struct module   *owner;
@@ -92314,18 +98822,27 @@ index 17d8339..81656c0 100644
  struct iovec;
  struct kvec;
 diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index 2787388..1dd8e88 100644
+index 05b9a69..4d7e300 100644
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1198,6 +1198,7 @@ struct net_device_ops {
-                                                             u8 state);
- #endif
+@@ -1208,6 +1208,7 @@ struct net_device_ops {
+                                                     u32 maxrate);
+       int                     (*ndo_get_iflink)(const struct net_device *dev);
  };
 +typedef struct net_device_ops __no_const net_device_ops_no_const;
  
  /**
   * enum net_device_priv_flags - &struct net_device priv_flags
-@@ -1546,10 +1547,10 @@ struct net_device {
+@@ -1515,7 +1516,7 @@ struct net_device {
+       unsigned long           base_addr;
+       int                     irq;
+-      atomic_t                carrier_changes;
++      atomic_unchecked_t      carrier_changes;
+       /*
+        *      Some hardware also needs these fields (state,dev_list,
+@@ -1554,8 +1555,8 @@ struct net_device {
  
        struct net_device_stats stats;
  
@@ -92334,16 +98851,13 @@ index 2787388..1dd8e88 100644
 +      atomic_long_unchecked_t rx_dropped;
 +      atomic_long_unchecked_t tx_dropped;
  
--      atomic_t                carrier_changes;
-+      atomic_unchecked_t      carrier_changes;
  #ifdef CONFIG_WIRELESS_EXT
        const struct iw_handler_def *   wireless_handlers;
 diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
-index 2517ece..0bbfcfb 100644
+index 63560d0..64aba5c 100644
 --- a/include/linux/netfilter.h
 +++ b/include/linux/netfilter.h
-@@ -85,7 +85,7 @@ struct nf_sockopt_ops {
+@@ -113,7 +113,7 @@ struct nf_sockopt_ops {
  #endif
        /* Use the module struct to lock set/get code in place */
        struct module *owner;
@@ -92494,10 +99008,10 @@ index caebf2a..4c3ae9d 100644
  
  /*
 diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
-index 2b62198..2b74233 100644
+index d8a82a8..8b580f0 100644
 --- a/include/linux/perf_event.h
 +++ b/include/linux/perf_event.h
-@@ -343,8 +343,8 @@ struct perf_event {
+@@ -379,8 +379,8 @@ struct perf_event {
  
        enum perf_event_active_state    state;
        unsigned int                    attach_state;
@@ -92508,7 +99022,7 @@ index 2b62198..2b74233 100644
  
        /*
         * These are the total time in nanoseconds that the event
-@@ -395,8 +395,8 @@ struct perf_event {
+@@ -431,8 +431,8 @@ struct perf_event {
         * These accumulate total time (in nanoseconds) that children
         * events have been enabled and running, respectively.
         */
@@ -92519,7 +99033,16 @@ index 2b62198..2b74233 100644
  
        /*
         * Protect attach/detach and child_list:
-@@ -752,7 +752,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64
+@@ -812,7 +812,7 @@ static inline void perf_event_task_sched_out(struct task_struct *prev,
+ static inline u64 __perf_event_count(struct perf_event *event)
+ {
+-      return local64_read(&event->count) + atomic64_read(&event->child_count);
++      return local64_read(&event->count) + atomic64_read_unchecked(&event->child_count);
+ }
+ extern void perf_event_mmap(struct vm_area_struct *vma);
+@@ -836,7 +836,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64
                entry->ip[entry->nr++] = ip;
  }
  
@@ -92528,7 +99051,7 @@ index 2b62198..2b74233 100644
  extern int sysctl_perf_event_mlock;
  extern int sysctl_perf_event_sample_rate;
  extern int sysctl_perf_cpu_time_max_percent;
-@@ -767,19 +767,24 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
+@@ -851,19 +851,24 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
                loff_t *ppos);
  
  
@@ -92556,7 +99079,7 @@ index 2b62198..2b74233 100644
  }
  
  extern void perf_event_init(void);
-@@ -912,7 +917,7 @@ struct perf_pmu_events_attr {
+@@ -1017,7 +1022,7 @@ struct perf_pmu_events_attr {
        struct device_attribute attr;
        u64 id;
        const char *event_str;
@@ -92598,19 +99121,19 @@ index eb8b8ac..62649e1 100644
        unsigned int w_counter;
        struct page *tmp_page;
 diff --git a/include/linux/pm.h b/include/linux/pm.h
-index e2f1be6..78a0506 100644
+index 2d29c64..1b25b2a 100644
 --- a/include/linux/pm.h
 +++ b/include/linux/pm.h
-@@ -608,6 +608,7 @@ struct dev_pm_domain {
-       struct dev_pm_ops       ops;
-       void (*detach)(struct device *dev, bool power_off);
+@@ -616,6 +616,7 @@ struct dev_pm_domain {
+       void (*sync)(struct device *dev);
+       void (*dismiss)(struct device *dev);
  };
 +typedef struct dev_pm_domain __no_const dev_pm_domain_no_const;
  
  /*
   * The PM_EVENT_ messages are also used by drivers implementing the legacy
 diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
-index 080e778..cbdaef7 100644
+index 681ccb0..a90e0b7 100644
 --- a/include/linux/pm_domain.h
 +++ b/include/linux/pm_domain.h
 @@ -39,11 +39,11 @@ struct gpd_dev_ops {
@@ -92641,7 +99164,7 @@ index 30e84d4..22278b4 100644
  
  static inline bool pm_runtime_is_irq_safe(struct device *dev)
 diff --git a/include/linux/pnp.h b/include/linux/pnp.h
-index 6512e9c..ec27fa2 100644
+index 5df733b..d55f252 100644
 --- a/include/linux/pnp.h
 +++ b/include/linux/pnp.h
 @@ -298,7 +298,7 @@ static inline void pnp_set_drvdata(struct pnp_dev *pdev, void *data)
@@ -92767,13 +99290,15 @@ index de83b4e..c4b997d 100644
  #define preempt_set_need_resched() \
  do { \
 diff --git a/include/linux/printk.h b/include/linux/printk.h
-index baa3f97..168cff1 100644
+index 9b30871..1aebc2d 100644
 --- a/include/linux/printk.h
 +++ b/include/linux/printk.h
-@@ -121,6 +121,7 @@ void early_printk(const char *s, ...) { }
+@@ -120,7 +120,8 @@ static inline __printf(1, 2) __cold
+ void early_printk(const char *s, ...) { }
  #endif
  
- typedef int(*printk_func_t)(const char *fmt, va_list args);
+-typedef int(*printk_func_t)(const char *fmt, va_list args);
++typedef __printf(1, 0) int (*printk_func_t)(const char *fmt, va_list args);
 +extern int kptr_restrict;
  
  #ifdef CONFIG_PRINTK
@@ -92786,6 +99311,24 @@ index baa3f97..168cff1 100644
  
  extern void wake_up_klogd(void);
  
+@@ -164,7 +164,7 @@ char *log_buf_addr_get(void);
+ u32 log_buf_len_get(void);
+ void log_buf_kexec_setup(void);
+ void __init setup_log_buf(int early);
+-void dump_stack_set_arch_desc(const char *fmt, ...);
++__printf(1, 2) void dump_stack_set_arch_desc(const char *fmt, ...);
+ void dump_stack_print_info(const char *log_lvl);
+ void show_regs_print_info(const char *log_lvl);
+ #else
+@@ -215,7 +215,7 @@ static inline void setup_log_buf(int early)
+ {
+ }
+-static inline void dump_stack_set_arch_desc(const char *fmt, ...)
++static inline __printf(1, 2) void dump_stack_set_arch_desc(const char *fmt, ...)
+ {
+ }
 diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
 index b97bf2e..f14c92d4 100644
 --- a/include/linux/proc_fs.h
@@ -92858,10 +99401,10 @@ index 42dfc61..8113a99 100644
  extern const struct proc_ns_operations netns_operations;
  extern const struct proc_ns_operations utsns_operations;
 diff --git a/include/linux/quota.h b/include/linux/quota.h
-index d534e8e..782e604 100644
+index b2505ac..5f7ab55 100644
 --- a/include/linux/quota.h
 +++ b/include/linux/quota.h
-@@ -75,7 +75,7 @@ struct kqid {                        /* Type in which we store the quota identifier */
+@@ -76,7 +76,7 @@ struct kqid {                        /* Type in which we store the quota identifier */
  
  extern bool qid_eq(struct kqid left, struct kqid right);
  extern bool qid_lt(struct kqid left, struct kqid right);
@@ -93005,10 +99548,10 @@ index a18b16f..2683096 100644
   * hlist_del_init_rcu - deletes entry from hash list with re-initialization
   * @n: the element to delete from the hash list.
 diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
-index 7809749..1cd9315 100644
+index 573a5af..de97a14 100644
 --- a/include/linux/rcupdate.h
 +++ b/include/linux/rcupdate.h
-@@ -333,7 +333,7 @@ extern struct srcu_struct tasks_rcu_exit_srcu;
+@@ -365,7 +365,7 @@ extern struct srcu_struct tasks_rcu_exit_srcu;
        do { \
                rcu_all_qs(); \
                if (ACCESS_ONCE((t)->rcu_tasks_holdout)) \
@@ -93018,7 +99561,7 @@ index 7809749..1cd9315 100644
  #else /* #ifdef CONFIG_TASKS_RCU */
  #define TASKS_RCU(x) do { } while (0)
 diff --git a/include/linux/reboot.h b/include/linux/reboot.h
-index 67fc8fc..a90f7d8 100644
+index a7ff409..03e2fa8 100644
 --- a/include/linux/reboot.h
 +++ b/include/linux/reboot.h
 @@ -47,9 +47,9 @@ extern void do_kernel_restart(char *cmd);
@@ -93047,7 +99590,7 @@ index 67fc8fc..a90f7d8 100644
  
  extern int C_A_D; /* for sysctl */
  void ctrl_alt_del(void);
-@@ -76,7 +76,7 @@ extern int orderly_poweroff(bool force);
+@@ -77,7 +77,7 @@ extern void orderly_reboot(void);
   * Emergency restart, callable from an interrupt handler.
   */
  
@@ -93097,10 +99640,10 @@ index 6bda06f..bf39a9b 100644
  #define RIO_RESOURCE_MEM      0x00000100
  #define RIO_RESOURCE_DOORBELL 0x00000200
 diff --git a/include/linux/rmap.h b/include/linux/rmap.h
-index c4c559a..6ba9a26 100644
+index c89c53a..aa0a65a 100644
 --- a/include/linux/rmap.h
 +++ b/include/linux/rmap.h
-@@ -154,8 +154,8 @@ static inline void anon_vma_unlock_read(struct anon_vma *anon_vma)
+@@ -146,8 +146,8 @@ static inline void anon_vma_unlock_read(struct anon_vma *anon_vma)
  void anon_vma_init(void);     /* create anon_vma_cachep */
  int  anon_vma_prepare(struct vm_area_struct *);
  void unlink_anon_vmas(struct vm_area_struct *);
@@ -93112,7 +99655,7 @@ index c4c559a..6ba9a26 100644
  static inline void anon_vma_merge(struct vm_area_struct *vma,
                                  struct vm_area_struct *next)
 diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
-index ed8f9e70..999bc96 100644
+index ed8f9e70..2e627f2 100644
 --- a/include/linux/scatterlist.h
 +++ b/include/linux/scatterlist.h
 @@ -1,6 +1,7 @@
@@ -93123,24 +99666,31 @@ index ed8f9e70..999bc96 100644
  #include <linux/string.h>
  #include <linux/bug.h>
  #include <linux/mm.h>
-@@ -114,6 +115,12 @@ static inline void sg_set_buf(struct scatterlist *sg, const void *buf,
- #ifdef CONFIG_DEBUG_SG
-       BUG_ON(!virt_addr_valid(buf));
- #endif
+@@ -111,10 +112,17 @@ static inline struct page *sg_page(struct scatterlist *sg)
+ static inline void sg_set_buf(struct scatterlist *sg, const void *buf,
+                             unsigned int buflen)
+ {
++      const void *realbuf = buf;
++
 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
-+      if (object_starts_on_stack(buf)) {
-+              void *adjbuf = buf - current->stack + current->lowmem_stack;
-+              sg_set_page(sg, virt_to_page(adjbuf), buflen, offset_in_page(adjbuf));
-+      } else
++      if (object_starts_on_stack(buf))
++              realbuf = buf - current->stack + current->lowmem_stack;
 +#endif
-       sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf));
++
+ #ifdef CONFIG_DEBUG_SG
+-      BUG_ON(!virt_addr_valid(buf));
++      BUG_ON(!virt_addr_valid(realbuf));
+ #endif
+-      sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf));
++      sg_set_page(sg, virt_to_page(realbuf), buflen, offset_in_page(realbuf));
  }
  
+ /*
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 51348f7..8c8b0ba 100644
+index 26a2e61..36bbf4b 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -133,6 +133,7 @@ struct fs_struct;
+@@ -132,6 +132,7 @@ struct fs_struct;
  struct perf_event_context;
  struct blk_plug;
  struct filename;
@@ -93148,7 +99698,7 @@ index 51348f7..8c8b0ba 100644
  
  #define VMACACHE_BITS 2
  #define VMACACHE_SIZE (1U << VMACACHE_BITS)
-@@ -420,7 +421,7 @@ extern char __sched_text_start[], __sched_text_end[];
+@@ -413,7 +414,7 @@ extern char __sched_text_start[], __sched_text_end[];
  extern int in_sched_functions(unsigned long addr);
  
  #define       MAX_SCHEDULE_TIMEOUT    LONG_MAX
@@ -93157,7 +99707,7 @@ index 51348f7..8c8b0ba 100644
  extern signed long schedule_timeout_interruptible(signed long timeout);
  extern signed long schedule_timeout_killable(signed long timeout);
  extern signed long schedule_timeout_uninterruptible(signed long timeout);
-@@ -438,6 +439,19 @@ struct nsproxy;
+@@ -431,6 +432,19 @@ struct nsproxy;
  struct user_namespace;
  
  #ifdef CONFIG_MMU
@@ -93177,7 +99727,7 @@ index 51348f7..8c8b0ba 100644
  extern void arch_pick_mmap_layout(struct mm_struct *mm);
  extern unsigned long
  arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
-@@ -736,6 +750,17 @@ struct signal_struct {
+@@ -729,6 +743,17 @@ struct signal_struct {
  #ifdef CONFIG_TASKSTATS
        struct taskstats *stats;
  #endif
@@ -93195,7 +99745,7 @@ index 51348f7..8c8b0ba 100644
  #ifdef CONFIG_AUDIT
        unsigned audit_tty;
        unsigned audit_tty_log_passwd;
-@@ -762,7 +787,7 @@ struct signal_struct {
+@@ -755,7 +780,7 @@ struct signal_struct {
        struct mutex cred_guard_mutex;  /* guard against foreign influences on
                                         * credential calculations
                                         * (notably. ptrace) */
@@ -93204,7 +99754,7 @@ index 51348f7..8c8b0ba 100644
  
  /*
   * Bits in flags field of signal_struct.
-@@ -815,6 +840,14 @@ struct user_struct {
+@@ -808,6 +833,14 @@ struct user_struct {
        struct key *session_keyring;    /* UID's default session keyring */
  #endif
  
@@ -93219,7 +99769,7 @@ index 51348f7..8c8b0ba 100644
        /* Hash table maintenance information */
        struct hlist_node uidhash_node;
        kuid_t uid;
-@@ -822,7 +855,7 @@ struct user_struct {
+@@ -815,7 +848,7 @@ struct user_struct {
  #ifdef CONFIG_PERF_EVENTS
        atomic_long_t locked_vm;
  #endif
@@ -93228,7 +99778,7 @@ index 51348f7..8c8b0ba 100644
  
  extern int uids_sysfs_init(void);
  
-@@ -1286,6 +1319,9 @@ enum perf_event_task_context {
+@@ -1292,6 +1325,9 @@ enum perf_event_task_context {
  struct task_struct {
        volatile long state;    /* -1 unrunnable, 0 runnable, >0 stopped */
        void *stack;
@@ -93238,7 +99788,7 @@ index 51348f7..8c8b0ba 100644
        atomic_t usage;
        unsigned int flags;     /* per process flags, defined below */
        unsigned int ptrace;
-@@ -1419,8 +1455,8 @@ struct task_struct {
+@@ -1425,8 +1461,8 @@ struct task_struct {
        struct list_head thread_node;
  
        struct completion *vfork_done;          /* for vfork() */
@@ -93249,7 +99799,7 @@ index 51348f7..8c8b0ba 100644
  
        cputime_t utime, stime, utimescaled, stimescaled;
        cputime_t gtime;
-@@ -1445,11 +1481,6 @@ struct task_struct {
+@@ -1451,11 +1487,6 @@ struct task_struct {
        struct task_cputime cputime_expires;
        struct list_head cpu_timers[3];
  
@@ -93261,7 +99811,7 @@ index 51348f7..8c8b0ba 100644
        char comm[TASK_COMM_LEN]; /* executable name excluding path
                                     - access with [gs]et_task_comm (which lock
                                       it with task_lock())
-@@ -1467,6 +1498,10 @@ struct task_struct {
+@@ -1473,6 +1504,10 @@ struct task_struct {
  #endif
  /* CPU-specific state of this task */
        struct thread_struct thread;
@@ -93272,7 +99822,7 @@ index 51348f7..8c8b0ba 100644
  /* filesystem information */
        struct fs_struct *fs;
  /* open file information */
-@@ -1541,6 +1576,10 @@ struct task_struct {
+@@ -1547,6 +1582,10 @@ struct task_struct {
        gfp_t lockdep_reclaim_gfp;
  #endif
  
@@ -93283,7 +99833,7 @@ index 51348f7..8c8b0ba 100644
  /* journalling filesystem info */
        void *journal_info;
  
-@@ -1579,6 +1618,10 @@ struct task_struct {
+@@ -1585,6 +1624,10 @@ struct task_struct {
        /* cg_list protected by css_set_lock and tsk->alloc_lock */
        struct list_head cg_list;
  #endif
@@ -93294,7 +99844,7 @@ index 51348f7..8c8b0ba 100644
  #ifdef CONFIG_FUTEX
        struct robust_list_head __user *robust_list;
  #ifdef CONFIG_COMPAT
-@@ -1690,7 +1733,7 @@ struct task_struct {
+@@ -1696,7 +1739,7 @@ struct task_struct {
         * Number of functions that haven't been traced
         * because of depth overrun.
         */
@@ -93303,7 +99853,7 @@ index 51348f7..8c8b0ba 100644
        /* Pause for the tracing */
        atomic_t tracing_graph_pause;
  #endif
-@@ -1718,7 +1761,78 @@ struct task_struct {
+@@ -1724,7 +1767,78 @@ struct task_struct {
  #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
        unsigned long   task_state_change;
  #endif
@@ -93383,7 +99933,7 @@ index 51348f7..8c8b0ba 100644
  
  /* Future-safe accessor for struct task_struct's cpus_allowed. */
  #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
-@@ -1801,7 +1915,7 @@ struct pid_namespace;
+@@ -1807,7 +1921,7 @@ struct pid_namespace;
  pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
                        struct pid_namespace *ns);
  
@@ -93392,7 +99942,7 @@ index 51348f7..8c8b0ba 100644
  {
        return tsk->pid;
  }
-@@ -2169,6 +2283,25 @@ extern u64 sched_clock_cpu(int cpu);
+@@ -2175,6 +2289,25 @@ extern u64 sched_clock_cpu(int cpu);
  
  extern void sched_clock_init(void);
  
@@ -93418,8 +99968,8 @@ index 51348f7..8c8b0ba 100644
  #ifndef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
  static inline void sched_clock_tick(void)
  {
-@@ -2302,7 +2435,9 @@ void yield(void);
extern struct exec_domain     default_exec_domain;
+@@ -2303,7 +2436,9 @@ extern void set_curr_task(int cpu, struct task_struct *p);
void yield(void);
  
  union thread_union {
 +#ifndef CONFIG_X86
@@ -93428,7 +99978,7 @@ index 51348f7..8c8b0ba 100644
        unsigned long stack[THREAD_SIZE/sizeof(long)];
  };
  
-@@ -2335,6 +2470,7 @@ extern struct pid_namespace init_pid_ns;
+@@ -2336,6 +2471,7 @@ extern struct pid_namespace init_pid_ns;
   */
  
  extern struct task_struct *find_task_by_vpid(pid_t nr);
@@ -93436,7 +99986,7 @@ index 51348f7..8c8b0ba 100644
  extern struct task_struct *find_task_by_pid_ns(pid_t nr,
                struct pid_namespace *ns);
  
-@@ -2499,7 +2635,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
+@@ -2500,7 +2636,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
  extern void exit_itimers(struct signal_struct *);
  extern void flush_itimer_signals(void);
  
@@ -93445,7 +99995,7 @@ index 51348f7..8c8b0ba 100644
  
  extern int do_execve(struct filename *,
                     const char __user * const __user *,
-@@ -2720,9 +2856,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
+@@ -2721,9 +2857,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
  #define task_stack_end_corrupted(task) \
                (*(end_of_stack(task)) != STACK_END_MAGIC)
  
@@ -93470,7 +100020,7 @@ index 596a0e0..bea77ec 100644
  extern unsigned int sysctl_sched_latency;
  extern unsigned int sysctl_sched_min_granularity;
 diff --git a/include/linux/security.h b/include/linux/security.h
-index a1b7dbd..036f47f 100644
+index 18264ea..e0238e4 100644
 --- a/include/linux/security.h
 +++ b/include/linux/security.h
 @@ -27,6 +27,7 @@
@@ -93490,7 +100040,7 @@ index a1b7dbd..036f47f 100644
  #ifdef CONFIG_MMU
  extern unsigned long mmap_min_addr;
  extern unsigned long dac_mmap_min_addr;
-@@ -1756,7 +1755,7 @@ struct security_operations {
+@@ -1755,7 +1754,7 @@ struct security_operations {
                                 struct audit_context *actx);
        void (*audit_rule_free) (void *lsmrule);
  #endif /* CONFIG_AUDIT */
@@ -93579,10 +100129,10 @@ index ab1e039..ad4229e 100644
  
  static inline void disallow_signal(int sig)
 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index bdccc4b..e9f8670 100644
+index f15154a..72cf02c 100644
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -771,7 +771,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t priority, int flags,
+@@ -776,7 +776,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t priority, int flags,
                            int node);
  struct sk_buff *__build_skb(void *data, unsigned int frag_size);
  struct sk_buff *build_skb(void *data, unsigned int frag_size);
@@ -93591,7 +100141,7 @@ index bdccc4b..e9f8670 100644
                                        gfp_t priority)
  {
        return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
-@@ -1967,7 +1967,7 @@ static inline u32 skb_inner_network_header_len(const struct sk_buff *skb)
+@@ -1971,7 +1971,7 @@ static inline u32 skb_inner_network_header_len(const struct sk_buff *skb)
        return skb->inner_transport_header - skb->inner_network_header;
  }
  
@@ -93600,7 +100150,7 @@ index bdccc4b..e9f8670 100644
  {
        return skb_network_header(skb) - skb->data;
  }
-@@ -2027,7 +2027,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
+@@ -2031,7 +2031,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
@@ -93609,7 +100159,7 @@ index bdccc4b..e9f8670 100644
  #endif
  
  int ___pskb_trim(struct sk_buff *skb, unsigned int len);
-@@ -2669,9 +2669,9 @@ struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock,
+@@ -2673,9 +2673,9 @@ struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock,
                                  int *err);
  unsigned int datagram_poll(struct file *file, struct socket *sock,
                           struct poll_table_struct *wait);
@@ -93621,7 +100171,7 @@ index bdccc4b..e9f8670 100644
                                        struct msghdr *msg, int size)
  {
        return skb_copy_datagram_iter(from, offset, &msg->msg_iter, size);
-@@ -3193,6 +3193,9 @@ static inline void nf_reset(struct sk_buff *skb)
+@@ -3197,6 +3197,9 @@ static inline void nf_reset(struct sk_buff *skb)
        nf_bridge_put(skb->nf_bridge);
        skb->nf_bridge = NULL;
  #endif
@@ -93632,19 +100182,18 @@ index bdccc4b..e9f8670 100644
  
  static inline void nf_reset_trace(struct sk_buff *skb)
 diff --git a/include/linux/slab.h b/include/linux/slab.h
-index 76f1fee..d95e6d2 100644
+index ffd24c8..cbbe7de 100644
 --- a/include/linux/slab.h
 +++ b/include/linux/slab.h
-@@ -14,15 +14,29 @@
- #include <linux/gfp.h>
+@@ -15,14 +15,29 @@
  #include <linux/types.h>
  #include <linux/workqueue.h>
--
 +#include <linux/err.h>
  
  /*
   * Flags to pass to kmem_cache_create().
-  * The ones marked DEBUG are only valid if CONFIG_SLAB_DEBUG is set.
+  * The ones marked DEBUG are only valid if CONFIG_DEBUG_SLAB is set.
   */
  #define SLAB_DEBUG_FREE               0x00000100UL    /* DEBUG: Perform (expensive) checks on free */
 +
@@ -93666,7 +100215,7 @@ index 76f1fee..d95e6d2 100644
  #define SLAB_HWCACHE_ALIGN    0x00002000UL    /* Align objs on cache lines */
  #define SLAB_CACHE_DMA                0x00004000UL    /* Use GFP_DMA memory */
  #define SLAB_STORE_USER               0x00010000UL    /* DEBUG: Store the last owner for bug hunting */
-@@ -98,10 +112,13 @@
+@@ -98,10 +113,13 @@
   * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
   * Both make kfree a no-op.
   */
@@ -93683,7 +100232,7 @@ index 76f1fee..d95e6d2 100644
  
  #include <linux/kmemleak.h>
  #include <linux/kasan.h>
-@@ -143,6 +160,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
+@@ -143,6 +161,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
  void kfree(const void *);
  void kzfree(const void *);
  size_t ksize(const void *);
@@ -93692,7 +100241,7 @@ index 76f1fee..d95e6d2 100644
  
  /*
   * Some archs want to perform DMA into kmalloc caches and need a guaranteed
-@@ -235,6 +254,10 @@ extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
+@@ -235,6 +255,10 @@ extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
  extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
  #endif
  
@@ -93703,7 +100252,7 @@ index 76f1fee..d95e6d2 100644
  /*
   * Figure out which kmalloc slab an allocation of a certain size
   * belongs to.
-@@ -243,7 +266,7 @@ extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
+@@ -243,7 +267,7 @@ extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
   * 2 = 120 .. 192 bytes
   * n = 2^(n-1) .. 2^n -1
   */
@@ -93712,7 +100261,7 @@ index 76f1fee..d95e6d2 100644
  {
        if (!size)
                return 0;
-@@ -286,15 +309,15 @@ static __always_inline int kmalloc_index(size_t size)
+@@ -286,15 +310,15 @@ static __always_inline int kmalloc_index(size_t size)
  }
  #endif /* !CONFIG_SLOB */
  
@@ -93777,7 +100326,7 @@ index 3388511..6252f90 100644
        int inuse;              /* Offset to metadata */
        int align;              /* Alignment */
 diff --git a/include/linux/smp.h b/include/linux/smp.h
-index be91db2..3f23232 100644
+index c441407..f487b83 100644
 --- a/include/linux/smp.h
 +++ b/include/linux/smp.h
 @@ -183,7 +183,9 @@ static inline void smp_init(void) { }
@@ -93791,7 +100340,7 @@ index be91db2..3f23232 100644
  /*
   * Callback to arch code if there's nosmp or maxcpus=0 on the
 diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h
-index 46cca4c..3323536 100644
+index 083ac38..b23e3e8 100644
 --- a/include/linux/sock_diag.h
 +++ b/include/linux/sock_diag.h
 @@ -11,7 +11,7 @@ struct sock;
@@ -94002,10 +100551,10 @@ index 27b3b0b..e093dd9 100644
  extern void register_syscore_ops(struct syscore_ops *ops);
  extern void unregister_syscore_ops(struct syscore_ops *ops);
 diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
-index b7361f8..341a15a 100644
+index fa7bc29..0d96561 100644
 --- a/include/linux/sysctl.h
 +++ b/include/linux/sysctl.h
-@@ -39,6 +39,8 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
+@@ -39,10 +39,16 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
  
  extern int proc_dostring(struct ctl_table *, int,
                         void __user *, size_t *, loff_t *);
@@ -94013,8 +100562,16 @@ index b7361f8..341a15a 100644
 +                       void __user *, size_t *, loff_t *);
  extern int proc_dointvec(struct ctl_table *, int,
                         void __user *, size_t *, loff_t *);
++extern int proc_dointvec_secure(struct ctl_table *, int,
++                              void __user *, size_t *, loff_t *);
  extern int proc_dointvec_minmax(struct ctl_table *, int,
-@@ -113,7 +115,8 @@ struct ctl_table
+                               void __user *, size_t *, loff_t *);
++extern int proc_dointvec_minmax_secure(struct ctl_table *, int,
++                                     void __user *, size_t *, loff_t *);
+ extern int proc_dointvec_jiffies(struct ctl_table *, int,
+                                void __user *, size_t *, loff_t *);
+ extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int,
+@@ -113,7 +119,8 @@ struct ctl_table
        struct ctl_table_poll *poll;
        void *extra1;
        void *extra2;
@@ -94025,7 +100582,7 @@ index b7361f8..341a15a 100644
  struct ctl_node {
        struct rb_node node;
 diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
-index ddad161..a3efd26 100644
+index 9f65758..487a6f1 100644
 --- a/include/linux/sysfs.h
 +++ b/include/linux/sysfs.h
 @@ -34,7 +34,8 @@ struct attribute {
@@ -94038,7 +100595,7 @@ index ddad161..a3efd26 100644
  
  /**
   *    sysfs_attr_init - initialize a dynamically allocated sysfs attribute
-@@ -63,7 +64,8 @@ struct attribute_group {
+@@ -78,7 +79,8 @@ struct attribute_group {
                                              struct attribute *, int);
        struct attribute        **attrs;
        struct bin_attribute    **bin_attrs;
@@ -94048,7 +100605,7 @@ index ddad161..a3efd26 100644
  
  /**
   * Use these macros to make defining attributes easier. See include/linux/device.h
-@@ -137,7 +139,8 @@ struct bin_attribute {
+@@ -152,7 +154,8 @@ struct bin_attribute {
                         char *, loff_t, size_t);
        int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr,
                    struct vm_area_struct *vma);
@@ -94098,7 +100655,7 @@ index ff307b5..f1a4468 100644
  
  #endif /* _LINUX_THREAD_INFO_H */
 diff --git a/include/linux/tty.h b/include/linux/tty.h
-index 358a337..8829c1f 100644
+index d76631f..de91e82 100644
 --- a/include/linux/tty.h
 +++ b/include/linux/tty.h
 @@ -225,7 +225,7 @@ struct tty_port {
@@ -94119,7 +100676,7 @@ index 358a337..8829c1f 100644
  
  /* Each of a tty's open files has private_data pointing to tty_file_private */
  struct tty_file_private {
-@@ -572,7 +572,7 @@ extern int tty_port_open(struct tty_port *port,
+@@ -573,7 +573,7 @@ extern int tty_port_open(struct tty_port *port,
                                struct tty_struct *tty, struct file *filp);
  static inline int tty_port_users(struct tty_port *port)
  {
@@ -94164,10 +100721,10 @@ index 00c9d68..bc0188b 100644
  
  struct tty_ldisc {
 diff --git a/include/linux/types.h b/include/linux/types.h
-index 6747247..fc7ec8b 100644
+index 8715287..1be77ee 100644
 --- a/include/linux/types.h
 +++ b/include/linux/types.h
-@@ -174,10 +174,26 @@ typedef struct {
+@@ -176,10 +176,26 @@ typedef struct {
        int counter;
  } atomic_t;
  
@@ -94214,10 +100771,10 @@ index ecd3319..8a36ded 100644
        })
  
 diff --git a/include/linux/uidgid.h b/include/linux/uidgid.h
-index 2d1f9b6..d7a9fce 100644
+index 0383552..a0125dd 100644
 --- a/include/linux/uidgid.h
 +++ b/include/linux/uidgid.h
-@@ -175,4 +175,9 @@ static inline bool kgid_has_mapping(struct user_namespace *ns, kgid_t gid)
+@@ -187,4 +187,9 @@ static inline bool kgid_has_mapping(struct user_namespace *ns, kgid_t gid)
  
  #endif /* CONFIG_USER_NS */
  
@@ -94314,7 +100871,7 @@ index 447fe29..9fc875f 100644
        void *data, int len, int *actual_length, int timeout);
  extern int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe,
 diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h
-index 9fd9e48..e2c5f35 100644
+index f06529c..dfeabd8 100644
 --- a/include/linux/usb/renesas_usbhs.h
 +++ b/include/linux/usb/renesas_usbhs.h
 @@ -39,7 +39,7 @@ enum {
@@ -94578,10 +101135,10 @@ index 92dbbd3..13ab0b3 100644
     Returns the number of bytes that needs to be allocated for a per-
     stream workspace with the specified parameters.  A pointer to this
 diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
-index 3e4fddf..5ec9104 100644
+index acbcd2f..c3abe84 100644
 --- a/include/media/v4l2-dev.h
 +++ b/include/media/v4l2-dev.h
-@@ -75,7 +75,7 @@ struct v4l2_file_operations {
+@@ -74,7 +74,7 @@ struct v4l2_file_operations {
        int (*mmap) (struct file *, struct vm_area_struct *);
        int (*open) (struct file *);
        int (*release) (struct file *);
@@ -94591,10 +101148,10 @@ index 3e4fddf..5ec9104 100644
  /*
   * Newer version of video_device, handled by videodev2.c
 diff --git a/include/media/v4l2-device.h b/include/media/v4l2-device.h
-index ffb69da..040393e 100644
+index 9c58157..d86ebf5 100644
 --- a/include/media/v4l2-device.h
 +++ b/include/media/v4l2-device.h
-@@ -95,7 +95,7 @@ int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4
+@@ -93,7 +93,7 @@ int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4
     this function returns 0. If the name ends with a digit (e.g. cx18),
     then the name will be set to cx18-0 since cx180 looks really odd. */
  int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
@@ -94604,13 +101161,13 @@ index ffb69da..040393e 100644
  /* Set v4l2_dev->dev to NULL. Call when the USB parent disconnects.
     Since the parent disappears this ensures that v4l2_dev doesn't have an
 diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h
-index 2a25dec..bf6dd8a 100644
+index 5122b5e..598b440 100644
 --- a/include/net/9p/transport.h
 +++ b/include/net/9p/transport.h
 @@ -62,7 +62,7 @@ struct p9_trans_module {
        int (*cancelled)(struct p9_client *, struct p9_req_t *req);
        int (*zc_request)(struct p9_client *, struct p9_req_t *,
-                         char *, char *, int , int, int, int);
+                         struct iov_iter *, struct iov_iter *, int , int, int);
 -};
 +} __do_const;
  
@@ -94643,10 +101200,10 @@ index 2239a37..a83461f 100644
  struct l2cap_conn {
        struct hci_conn         *hcon;
 diff --git a/include/net/bonding.h b/include/net/bonding.h
-index fda6fee..dbdf83c 100644
+index 78ed135..2f53667 100644
 --- a/include/net/bonding.h
 +++ b/include/net/bonding.h
-@@ -665,7 +665,7 @@ extern struct rtnl_link_ops bond_link_ops;
+@@ -658,7 +658,7 @@ extern struct rtnl_link_ops bond_link_ops;
  
  static inline void bond_tx_drop(struct net_device *dev, struct sk_buff *skb)
  {
@@ -94692,10 +101249,10 @@ index 8109a15..504466d 100644
  
  #endif
 diff --git a/include/net/genetlink.h b/include/net/genetlink.h
-index 0574abd..0f16881 100644
+index a9af1cc..1f3fa7b 100644
 --- a/include/net/genetlink.h
 +++ b/include/net/genetlink.h
-@@ -130,7 +130,7 @@ struct genl_ops {
+@@ -128,7 +128,7 @@ struct genl_ops {
        u8                      cmd;
        u8                      internal_flags;
        u8                      flags;
@@ -94718,7 +101275,7 @@ index 0f712c0..cd762c4 100644
                return;
        }
 diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
-index 5976bde..3a81660 100644
+index 0320bbb..938789c 100644
 --- a/include/net/inet_connection_sock.h
 +++ b/include/net/inet_connection_sock.h
 @@ -63,7 +63,7 @@ struct inet_connection_sock_af_ops {
@@ -94731,10 +101288,10 @@ index 5976bde..3a81660 100644
  /** inet_connection_sock - INET connection oriented sock
   *
 diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h
-index 80479ab..0c3f647 100644
+index d5332dd..10a5c3c 100644
 --- a/include/net/inetpeer.h
 +++ b/include/net/inetpeer.h
-@@ -47,7 +47,7 @@ struct inet_peer {
+@@ -48,7 +48,7 @@ struct inet_peer {
         */
        union {
                struct {
@@ -94744,20 +101301,20 @@ index 80479ab..0c3f647 100644
                struct rcu_head         rcu;
                struct inet_peer        *gc_next;
 diff --git a/include/net/ip.h b/include/net/ip.h
-index 6cc1eaf..14059b0 100644
+index d14af7e..52816c2 100644
 --- a/include/net/ip.h
 +++ b/include/net/ip.h
-@@ -317,7 +317,7 @@ static inline unsigned int ip_skb_dst_mtu(const struct sk_buff *skb)
+@@ -318,7 +318,7 @@ static inline unsigned int ip_skb_dst_mtu(const struct sk_buff *skb)
        }
  }
  
 -u32 ip_idents_reserve(u32 hash, int segs);
 +u32 ip_idents_reserve(u32 hash, int segs) __intentional_overflow(-1);
- void __ip_select_ident(struct iphdr *iph, int segs);
+ void __ip_select_ident(struct net *net, struct iphdr *iph, int segs);
  
- static inline void ip_select_ident_segs(struct sk_buff *skb, struct sock *sk, int segs)
+ static inline void ip_select_ident_segs(struct net *net, struct sk_buff *skb,
 diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
-index 5bd120e4..03fb812 100644
+index 54271ed..eb7e0e6 100644
 --- a/include/net/ip_fib.h
 +++ b/include/net/ip_fib.h
 @@ -170,7 +170,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
@@ -94770,10 +101327,10 @@ index 5bd120e4..03fb812 100644
         fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
  #define FIB_RES_GW(res)                       (FIB_RES_NH(res).nh_gw)
 diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
-index 615b20b..fd4cbd8 100644
+index 4e3731e..a242e28 100644
 --- a/include/net/ip_vs.h
 +++ b/include/net/ip_vs.h
-@@ -534,7 +534,7 @@ struct ip_vs_conn {
+@@ -551,7 +551,7 @@ struct ip_vs_conn {
        struct ip_vs_conn       *control;       /* Master control connection */
        atomic_t                n_control;      /* Number of controlled ones */
        struct ip_vs_dest       *dest;          /* real server */
@@ -94782,7 +101339,7 @@ index 615b20b..fd4cbd8 100644
  
        /* Packet transmitter for different forwarding methods.  If it
         * mangles the packet, it must return NF_DROP or better NF_STOLEN,
-@@ -682,7 +682,7 @@ struct ip_vs_dest {
+@@ -699,7 +699,7 @@ struct ip_vs_dest {
        __be16                  port;           /* port number of the server */
        union nf_inet_addr      addr;           /* IP address of the server */
        volatile unsigned int   flags;          /* dest status flags */
@@ -94791,7 +101348,7 @@ index 615b20b..fd4cbd8 100644
        atomic_t                weight;         /* server weight */
  
        atomic_t                refcnt;         /* reference counter */
-@@ -928,11 +928,11 @@ struct netns_ipvs {
+@@ -946,11 +946,11 @@ struct netns_ipvs {
        /* ip_vs_lblc */
        int                     sysctl_lblc_expiration;
        struct ctl_table_header *lblc_ctl_header;
@@ -94898,10 +101455,10 @@ index c4359e2..76dbc4a 100644
  struct llc_sap_state {
        u8                         curr_state;
 diff --git a/include/net/mac80211.h b/include/net/mac80211.h
-index d52914b..2b13cec 100644
+index fc57f6b..9c1fdb2 100644
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -4915,7 +4915,7 @@ struct rate_control_ops {
+@@ -5104,7 +5104,7 @@ struct rate_control_ops {
        void (*remove_sta_debugfs)(void *priv, void *priv_sta);
  
        u32 (*get_expected_throughput)(void *priv_sta);
@@ -94911,10 +101468,10 @@ index d52914b..2b13cec 100644
  static inline int rate_supported(struct ieee80211_sta *sta,
                                 enum ieee80211_band band,
 diff --git a/include/net/neighbour.h b/include/net/neighbour.h
-index 76f7084..8f36e39 100644
+index bd33e66..6508d00 100644
 --- a/include/net/neighbour.h
 +++ b/include/net/neighbour.h
-@@ -163,7 +163,7 @@ struct neigh_ops {
+@@ -162,7 +162,7 @@ struct neigh_ops {
        void                    (*error_report)(struct neighbour *, struct sk_buff *);
        int                     (*output)(struct neighbour *, struct sk_buff *);
        int                     (*connected_output)(struct neighbour *, struct sk_buff *);
@@ -94923,7 +101480,7 @@ index 76f7084..8f36e39 100644
  
  struct pneigh_entry {
        struct pneigh_entry     *next;
-@@ -217,7 +217,7 @@ struct neigh_table {
+@@ -216,7 +216,7 @@ struct neigh_table {
        struct neigh_statistics __percpu *stats;
        struct neigh_hash_table __rcu *nht;
        struct pneigh_entry     **phash_buckets;
@@ -94933,11 +101490,11 @@ index 76f7084..8f36e39 100644
  enum {
        NEIGH_ARP_TABLE = 0,
 diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
-index 36faf49..6927638 100644
+index f733656..54053db 100644
 --- a/include/net/net_namespace.h
 +++ b/include/net/net_namespace.h
-@@ -131,8 +131,8 @@ struct net {
-       struct netns_ipvs       *ipvs;
+@@ -132,8 +132,8 @@ struct net {
+       struct netns_mpls       mpls;
  #endif
        struct sock             *diag_nlsk;
 -      atomic_t                fnhe_genid;
@@ -94947,7 +101504,7 @@ index 36faf49..6927638 100644
  
  #include <linux/seq_file_net.h>
  
-@@ -288,7 +288,11 @@ static inline struct net *read_pnet(struct net * const *pnet)
+@@ -268,7 +268,11 @@ static inline struct net *read_pnet(const possible_net_t *pnet)
  #define __net_init    __init
  #define __net_exit    __exit_refok
  #define __net_initdata        __initdata
@@ -94959,7 +101516,7 @@ index 36faf49..6927638 100644
  #endif
  
  int peernet2id(struct net *net, struct net *peer);
-@@ -301,7 +305,7 @@ struct pernet_operations {
+@@ -281,7 +285,7 @@ struct pernet_operations {
        void (*exit_batch)(struct list_head *net_exit_list);
        int *id;
        size_t size;
@@ -94968,7 +101525,7 @@ index 36faf49..6927638 100644
  
  /*
   * Use these carefully.  If you implement a network device and it
-@@ -349,12 +353,12 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
+@@ -329,12 +333,12 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
  
  static inline int rt_genid_ipv4(struct net *net)
  {
@@ -94983,7 +101540,7 @@ index 36faf49..6927638 100644
  }
  
  extern void (*__fib6_flush_trees)(struct net *net);
-@@ -381,12 +385,12 @@ static inline void rt_genid_bump_all(struct net *net)
+@@ -361,12 +365,12 @@ static inline void rt_genid_bump_all(struct net *net)
  
  static inline int fnhe_genid(struct net *net)
  {
@@ -94999,10 +101556,10 @@ index 36faf49..6927638 100644
  
  #endif /* __NET_NET_NAMESPACE_H */
 diff --git a/include/net/netlink.h b/include/net/netlink.h
-index e010ee8..405b9f4 100644
+index 2a5dbcc..8243656 100644
 --- a/include/net/netlink.h
 +++ b/include/net/netlink.h
-@@ -518,7 +518,7 @@ static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
+@@ -521,7 +521,7 @@ static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
  {
        if (mark) {
                WARN_ON((unsigned char *) mark < skb->data);
@@ -95038,10 +101595,10 @@ index 29d6a94..235d3d84 100644
  };
  
 diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
-index dbe2254..ed0c151 100644
+index 614a49b..0b94386 100644
 --- a/include/net/netns/ipv4.h
 +++ b/include/net/netns/ipv4.h
-@@ -87,7 +87,7 @@ struct netns_ipv4 {
+@@ -90,7 +90,7 @@ struct netns_ipv4 {
  
        struct ping_group_range ping_group_range;
  
@@ -95050,7 +101607,7 @@ index dbe2254..ed0c151 100644
  
  #ifdef CONFIG_SYSCTL
        unsigned long *sysctl_local_reserved_ports;
-@@ -101,6 +101,6 @@ struct netns_ipv4 {
+@@ -104,6 +104,6 @@ struct netns_ipv4 {
        struct fib_rules_ops    *mr_rules_ops;
  #endif
  #endif
@@ -95059,10 +101616,10 @@ index dbe2254..ed0c151 100644
  };
  #endif
 diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
-index 69ae41f..4f94868 100644
+index d2527bf..2c802d5 100644
 --- a/include/net/netns/ipv6.h
 +++ b/include/net/netns/ipv6.h
-@@ -75,8 +75,8 @@ struct netns_ipv6 {
+@@ -78,8 +78,8 @@ struct netns_ipv6 {
        struct fib_rules_ops    *mr6_rules_ops;
  #endif
  #endif
@@ -95087,7 +101644,7 @@ index 730d82a..045f2c4 100644
        spinlock_t              flow_cache_gc_lock;
        struct work_struct      flow_cache_gc_work;
 diff --git a/include/net/ping.h b/include/net/ping.h
-index cc16d41..664f40b 100644
+index ac80cb4..ec1ed09 100644
 --- a/include/net/ping.h
 +++ b/include/net/ping.h
 @@ -54,7 +54,7 @@ struct ping_iter_state {
@@ -95122,7 +101679,7 @@ index d6fcc1f..ca277058 100644
  #define INET6_PROTO_NOPOLICY  0x1
  #define INET6_PROTO_FINAL     0x2
 diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
-index 6c6d539..af70817 100644
+index 343d922..7959cde 100644
 --- a/include/net/rtnetlink.h
 +++ b/include/net/rtnetlink.h
 @@ -95,7 +95,7 @@ struct rtnl_link_ops {
@@ -95172,10 +101729,10 @@ index 487ef34..d457f98 100644
  
  /* Get the size of a DATA chunk payload. */
 diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
-index 2bb2fcf..d17c291 100644
+index 495c87e..5b327ff 100644
 --- a/include/net/sctp/structs.h
 +++ b/include/net/sctp/structs.h
-@@ -509,7 +509,7 @@ struct sctp_pf {
+@@ -513,7 +513,7 @@ struct sctp_pf {
        void (*to_sk_saddr)(union sctp_addr *, struct sock *sk);
        void (*to_sk_daddr)(union sctp_addr *, struct sock *sk);
        struct sctp_af *af;
@@ -95185,10 +101742,10 @@ index 2bb2fcf..d17c291 100644
  
  /* Structure to track chunk fragments that have been acked, but peer
 diff --git a/include/net/sock.h b/include/net/sock.h
-index e4079c2..79c5d3a 100644
+index 3a4898e..67456ac 100644
 --- a/include/net/sock.h
 +++ b/include/net/sock.h
-@@ -362,7 +362,7 @@ struct sock {
+@@ -363,7 +363,7 @@ struct sock {
        unsigned int            sk_napi_id;
        unsigned int            sk_ll_usec;
  #endif
@@ -95215,7 +101772,7 @@ index e4079c2..79c5d3a 100644
  sk_memory_allocated(const struct sock *sk)
  {
        struct proto *prot = sk->sk_prot;
-@@ -1778,7 +1778,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
+@@ -1777,7 +1777,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
  }
  
  static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
@@ -95224,7 +101781,7 @@ index e4079c2..79c5d3a 100644
                                           int copy, int offset)
  {
        if (skb->ip_summed == CHECKSUM_NONE) {
-@@ -2025,7 +2025,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
+@@ -2024,7 +2024,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
        }
  }
  
@@ -95233,11 +101790,20 @@ index e4079c2..79c5d3a 100644
  
  /**
   * sk_page_frag - return an appropriate page_frag
+@@ -2099,7 +2099,7 @@ struct sock_skb_cb {
+ static inline void
+ sock_skb_set_dropcount(const struct sock *sk, struct sk_buff *skb)
+ {
+-      SOCK_SKB_CB(skb)->dropcount = atomic_read(&sk->sk_drops);
++      SOCK_SKB_CB(skb)->dropcount = atomic_read_unchecked(&sk->sk_drops);
+ }
+ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
 diff --git a/include/net/tcp.h b/include/net/tcp.h
-index 8d6b983..5813205 100644
+index 6d204f3..d5a8ff0 100644
 --- a/include/net/tcp.h
 +++ b/include/net/tcp.h
-@@ -516,7 +516,7 @@ void tcp_retransmit_timer(struct sock *sk);
+@@ -523,7 +523,7 @@ void tcp_retransmit_timer(struct sock *sk);
  void tcp_xmit_retransmit_queue(struct sock *);
  void tcp_simple_retransmit(struct sock *);
  int tcp_trim_head(struct sock *, struct sk_buff *, u32);
@@ -95246,7 +101812,7 @@ index 8d6b983..5813205 100644
  
  void tcp_send_probe0(struct sock *);
  void tcp_send_partial(struct sock *);
-@@ -694,8 +694,8 @@ static inline u32 tcp_skb_timestamp(const struct sk_buff *skb)
+@@ -699,8 +699,8 @@ static inline u32 tcp_skb_timestamp(const struct sk_buff *skb)
   * If this grows please adjust skbuff.h:skbuff->cb[xxx] size appropriately.
   */
  struct tcp_skb_cb {
@@ -95257,7 +101823,7 @@ index 8d6b983..5813205 100644
        union {
                /* Note : tcp_tw_isn is used in input path only
                 *        (isn chosen by tcp_timewait_state_process())
-@@ -720,7 +720,7 @@ struct tcp_skb_cb {
+@@ -725,7 +725,7 @@ struct tcp_skb_cb {
  
        __u8            ip_dsfield;     /* IPv4 tos or IPv6 dsfield     */
        /* 1 byte hole */
@@ -95267,10 +101833,10 @@ index 8d6b983..5813205 100644
                struct inet_skb_parm    h4;
  #if IS_ENABLED(CONFIG_IPV6)
 diff --git a/include/net/xfrm.h b/include/net/xfrm.h
-index dc4865e..152ee4c 100644
+index 36ac102..6e8b34b 100644
 --- a/include/net/xfrm.h
 +++ b/include/net/xfrm.h
-@@ -285,7 +285,6 @@ struct xfrm_dst;
+@@ -283,7 +283,6 @@ struct xfrm_dst;
  struct xfrm_policy_afinfo {
        unsigned short          family;
        struct dst_ops          *dst_ops;
@@ -95278,7 +101844,7 @@ index dc4865e..152ee4c 100644
        struct dst_entry        *(*dst_lookup)(struct net *net, int tos,
                                               const xfrm_address_t *saddr,
                                               const xfrm_address_t *daddr);
-@@ -303,7 +302,7 @@ struct xfrm_policy_afinfo {
+@@ -301,7 +300,7 @@ struct xfrm_policy_afinfo {
                                            struct net_device *dev,
                                            const struct flowi *fl);
        struct dst_entry        *(*blackhole_route)(struct net *net, struct dst_entry *orig);
@@ -95287,7 +101853,7 @@ index dc4865e..152ee4c 100644
  
  int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
  int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo);
-@@ -342,7 +341,7 @@ struct xfrm_state_afinfo {
+@@ -340,7 +339,7 @@ struct xfrm_state_afinfo {
        int                     (*transport_finish)(struct sk_buff *skb,
                                                    int async);
        void                    (*local_error)(struct sk_buff *skb, u32 mtu);
@@ -95296,7 +101862,7 @@ index dc4865e..152ee4c 100644
  
  int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo);
  int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
-@@ -437,7 +436,7 @@ struct xfrm_mode {
+@@ -435,7 +434,7 @@ struct xfrm_mode {
        struct module *owner;
        unsigned int encap;
        int flags;
@@ -95305,7 +101871,7 @@ index dc4865e..152ee4c 100644
  
  /* Flags for xfrm_mode. */
  enum {
-@@ -534,7 +533,7 @@ struct xfrm_policy {
+@@ -530,7 +529,7 @@ struct xfrm_policy {
        struct timer_list       timer;
  
        struct flow_cache_object flo;
@@ -95314,7 +101880,7 @@ index dc4865e..152ee4c 100644
        u32                     priority;
        u32                     index;
        struct xfrm_mark        mark;
-@@ -1167,6 +1166,7 @@ static inline void xfrm_sk_free_policy(struct sock *sk)
+@@ -1163,6 +1162,7 @@ static inline void xfrm_sk_free_policy(struct sock *sk)
  }
  
  void xfrm_garbage_collect(struct net *net);
@@ -95322,7 +101888,7 @@ index dc4865e..152ee4c 100644
  
  #else
  
-@@ -1205,6 +1205,9 @@ static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
+@@ -1201,6 +1201,9 @@ static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
  static inline void xfrm_garbage_collect(struct net *net)
  {
  }
@@ -95383,11 +101949,24 @@ index a4c9336..d6f8f34 100644
  
        struct device           sdev_gendev,
                                sdev_dev;
+diff --git a/include/scsi/scsi_driver.h b/include/scsi/scsi_driver.h
+index 891a658..fcd68df 100644
+--- a/include/scsi/scsi_driver.h
++++ b/include/scsi/scsi_driver.h
+@@ -14,7 +14,7 @@ struct scsi_driver {
+       void (*rescan)(struct device *);
+       int (*init_command)(struct scsi_cmnd *);
+       void (*uninit_command)(struct scsi_cmnd *);
+-      int (*done)(struct scsi_cmnd *);
++      unsigned int (*done)(struct scsi_cmnd *);
+       int (*eh_action)(struct scsi_cmnd *, int);
+ };
+ #define to_scsi_driver(drv) \
 diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
-index 007a0bc..7188db8 100644
+index 784bc2c..855a04c 100644
 --- a/include/scsi/scsi_transport_fc.h
 +++ b/include/scsi/scsi_transport_fc.h
-@@ -756,7 +756,8 @@ struct fc_function_template {
+@@ -757,7 +757,8 @@ struct fc_function_template {
        unsigned long   show_host_system_hostname:1;
  
        unsigned long   disable_target_scan:1;
@@ -95398,7 +101977,7 @@ index 007a0bc..7188db8 100644
  
  /**
 diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
-index f48089d..73abe48 100644
+index fa1d055..3647940 100644
 --- a/include/sound/compress_driver.h
 +++ b/include/sound/compress_driver.h
 @@ -130,7 +130,7 @@ struct snd_compr_ops {
@@ -95411,10 +101990,10 @@ index f48089d..73abe48 100644
  /**
   * struct snd_compr: Compressed device
 diff --git a/include/sound/soc.h b/include/sound/soc.h
-index 0d1ade1..34e77d3 100644
+index f6226914..e919a2e 100644
 --- a/include/sound/soc.h
 +++ b/include/sound/soc.h
-@@ -856,7 +856,7 @@ struct snd_soc_codec_driver {
+@@ -870,7 +870,7 @@ struct snd_soc_codec_driver {
                             enum snd_soc_dapm_type, int);
  
        bool ignore_pmdown_time;  /* Doesn't benefit from pmdown delay */
@@ -95423,7 +102002,7 @@ index 0d1ade1..34e77d3 100644
  
  /* SoC platform interface */
  struct snd_soc_platform_driver {
-@@ -883,7 +883,7 @@ struct snd_soc_platform_driver {
+@@ -897,7 +897,7 @@ struct snd_soc_platform_driver {
        const struct snd_compr_ops *compr_ops;
  
        int (*bespoke_trigger)(struct snd_pcm_substream *, int);
@@ -95433,7 +102012,7 @@ index 0d1ade1..34e77d3 100644
  struct snd_soc_dai_link_component {
        const char *name;
 diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
-index 985ca4c..b55b54a 100644
+index 480e9f8..2d59c93 100644
 --- a/include/target/target_core_base.h
 +++ b/include/target/target_core_base.h
 @@ -767,7 +767,7 @@ struct se_device {
@@ -95505,10 +102084,10 @@ index 0000000..fb634b7
 +/* This part must be outside protection */
 +#include <trace/define_trace.h>
 diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
-index 3608beb..df39d8a 100644
+index ff8f6c0..6b6bae3 100644
 --- a/include/trace/events/irq.h
 +++ b/include/trace/events/irq.h
-@@ -36,7 +36,7 @@ struct softirq_action;
+@@ -51,7 +51,7 @@ SOFTIRQ_NAME_LIST
   */
  TRACE_EVENT(irq_handler_entry,
  
@@ -95517,7 +102096,7 @@ index 3608beb..df39d8a 100644
  
        TP_ARGS(irq, action),
  
-@@ -66,7 +66,7 @@ TRACE_EVENT(irq_handler_entry,
+@@ -81,7 +81,7 @@ TRACE_EVENT(irq_handler_entry,
   */
  TRACE_EVENT(irq_handler_exit,
  
@@ -95527,13 +102106,13 @@ index 3608beb..df39d8a 100644
        TP_ARGS(irq, action, ret),
  
 diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
-index 6eed16b..3e05750 100644
+index 551b673..9c680df 100644
 --- a/include/uapi/drm/i915_drm.h
 +++ b/include/uapi/drm/i915_drm.h
-@@ -347,6 +347,7 @@ typedef struct drm_i915_irq_wait {
- #define I915_PARAM_HAS_COHERENT_PHYS_GTT 29
- #define I915_PARAM_MMAP_VERSION          30
- #define I915_PARAM_HAS_BSD2            31
+@@ -350,6 +350,7 @@ typedef struct drm_i915_irq_wait {
+ #define I915_PARAM_REVISION              32
+ #define I915_PARAM_SUBSLICE_TOTAL      33
+ #define I915_PARAM_EU_TOTAL            34
 +#define I915_PARAM_HAS_LEGACY_CONTEXT  35
  
  typedef struct drm_i915_getparam {
@@ -95813,10 +102392,10 @@ index 30f5362..8ed8ac9 100644
        void *pmi_pal;
        u8 *vbe_state_orig;             /*
 diff --git a/init/Kconfig b/init/Kconfig
-index f5dbc6d..8259396 100644
+index dc24dec..b77638f 100644
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1136,6 +1136,7 @@ endif # CGROUPS
+@@ -1145,6 +1145,7 @@ endif # CGROUPS
  
  config CHECKPOINT_RESTORE
        bool "Checkpoint/restore support" if EXPERT
@@ -95824,7 +102403,7 @@ index f5dbc6d..8259396 100644
        default n
        help
          Enables additional kernel features in a sake of checkpoint/restore.
-@@ -1646,7 +1647,7 @@ config SLUB_DEBUG
+@@ -1670,7 +1671,7 @@ config SLUB_DEBUG
  
  config COMPAT_BRK
        bool "Disable heap randomization"
@@ -95833,7 +102412,7 @@ index f5dbc6d..8259396 100644
        help
          Randomizing heap placement makes heap exploits harder, but it
          also breaks ancient binaries (including anything libc5 based).
-@@ -1977,7 +1978,7 @@ config INIT_ALL_POSSIBLE
+@@ -2001,7 +2002,7 @@ config INIT_ALL_POSSIBLE
  config STOP_MACHINE
        bool
        default y
@@ -95857,10 +102436,10 @@ index 7bc47ee..6da2dc7 100644
  ifneq ($(CONFIG_BLK_DEV_INITRD),y)
  obj-y                          += noinitramfs.o
 diff --git a/init/do_mounts.c b/init/do_mounts.c
-index eb41008..f5dbbf9 100644
+index a95bbdb..82c48fd 100644
 --- a/init/do_mounts.c
 +++ b/init/do_mounts.c
-@@ -360,11 +360,11 @@ static void __init get_fs_names(char *page)
+@@ -363,11 +363,11 @@ static void __init get_fs_names(char *page)
  static int __init do_mount_root(char *name, char *fs, int flags, void *data)
  {
        struct super_block *s;
@@ -95874,7 +102453,7 @@ index eb41008..f5dbbf9 100644
        s = current->fs->pwd.dentry->d_sb;
        ROOT_DEV = s->s_dev;
        printk(KERN_INFO
-@@ -487,18 +487,18 @@ void __init change_floppy(char *fmt, ...)
+@@ -490,18 +490,18 @@ void __init change_floppy(char *fmt, ...)
        va_start(args, fmt);
        vsprintf(buf, fmt, args);
        va_end(args);
@@ -95896,7 +102475,7 @@ index eb41008..f5dbbf9 100644
                termios.c_lflag |= ICANON;
                sys_ioctl(fd, TCSETSF, (long)&termios);
                sys_close(fd);
-@@ -592,8 +592,8 @@ void __init prepare_namespace(void)
+@@ -595,8 +595,8 @@ void __init prepare_namespace(void)
        mount_root();
  out:
        devtmpfs_mount("dev");
@@ -96182,10 +102761,10 @@ index ad1bd77..dca2c1b 100644
        next_state = Reset;
        return 0;
 diff --git a/init/main.c b/init/main.c
-index 6f0f1c5f..a542824 100644
+index 2a89545..eb9203f 100644
 --- a/init/main.c
 +++ b/init/main.c
-@@ -96,6 +96,8 @@ extern void radix_tree_init(void);
+@@ -97,6 +97,8 @@ extern void radix_tree_init(void);
  static inline void mark_rodata_ro(void) { }
  #endif
  
@@ -96194,7 +102773,7 @@ index 6f0f1c5f..a542824 100644
  /*
   * Debug helper: via this flag we know that we are in 'early bootup code'
   * where only the boot processor is running with IRQ disabled.  This means
-@@ -157,6 +159,85 @@ static int __init set_reset_devices(char *str)
+@@ -158,6 +160,84 @@ static int __init set_reset_devices(char *str)
  
  __setup("reset_devices", set_reset_devices);
  
@@ -96247,8 +102826,7 @@ index 6f0f1c5f..a542824 100644
 +      memcpy(pax_exit_kernel_user, (unsigned char []){0xc3}, 1);
 +      clone_pgd_mask = ~(pgdval_t)0UL;
 +      pax_user_shadow_base = 0UL;
-+      setup_clear_cpu_cap(X86_FEATURE_PCID);
-+      setup_clear_cpu_cap(X86_FEATURE_INVPCID);
++      setup_clear_cpu_cap(X86_FEATURE_PCIDUDEREF);
 +#endif
 +
 +      return 0;
@@ -96280,7 +102858,7 @@ index 6f0f1c5f..a542824 100644
  static const char *argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
  const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
  static const char *panic_later, *panic_param;
-@@ -722,7 +803,7 @@ static bool __init_or_module initcall_blacklisted(initcall_t fn)
+@@ -726,7 +806,7 @@ static bool __init_or_module initcall_blacklisted(initcall_t fn)
        struct blacklist_entry *entry;
        char *fn_name;
  
@@ -96289,7 +102867,7 @@ index 6f0f1c5f..a542824 100644
        if (!fn_name)
                return false;
  
-@@ -774,7 +855,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
+@@ -778,7 +858,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
  {
        int count = preempt_count();
        int ret;
@@ -96298,7 +102876,7 @@ index 6f0f1c5f..a542824 100644
  
        if (initcall_blacklisted(fn))
                return -EPERM;
-@@ -784,18 +865,17 @@ int __init_or_module do_one_initcall(initcall_t fn)
+@@ -788,18 +868,17 @@ int __init_or_module do_one_initcall(initcall_t fn)
        else
                ret = fn();
  
@@ -96321,7 +102899,7 @@ index 6f0f1c5f..a542824 100644
        return ret;
  }
  
-@@ -901,8 +981,8 @@ static int run_init_process(const char *init_filename)
+@@ -905,8 +984,8 @@ static int run_init_process(const char *init_filename)
  {
        argv_init[0] = init_filename;
        return do_execve(getname_kernel(init_filename),
@@ -96332,7 +102910,7 @@ index 6f0f1c5f..a542824 100644
  }
  
  static int try_to_run_init_process(const char *init_filename)
-@@ -919,6 +999,10 @@ static int try_to_run_init_process(const char *init_filename)
+@@ -923,6 +1002,10 @@ static int try_to_run_init_process(const char *init_filename)
        return ret;
  }
  
@@ -96343,7 +102921,7 @@ index 6f0f1c5f..a542824 100644
  static noinline void __init kernel_init_freeable(void);
  
  static int __ref kernel_init(void *unused)
-@@ -943,6 +1027,11 @@ static int __ref kernel_init(void *unused)
+@@ -947,6 +1030,11 @@ static int __ref kernel_init(void *unused)
                       ramdisk_execute_command, ret);
        }
  
@@ -96355,7 +102933,7 @@ index 6f0f1c5f..a542824 100644
        /*
         * We try each of these until one succeeds.
         *
-@@ -998,7 +1087,7 @@ static noinline void __init kernel_init_freeable(void)
+@@ -1002,7 +1090,7 @@ static noinline void __init kernel_init_freeable(void)
        do_basic_setup();
  
        /* Open the /dev/console on the rootfs, this should never fail */
@@ -96364,7 +102942,7 @@ index 6f0f1c5f..a542824 100644
                pr_err("Warning: unable to open an initial console.\n");
  
        (void) sys_dup(0);
-@@ -1011,11 +1100,13 @@ static noinline void __init kernel_init_freeable(void)
+@@ -1015,11 +1103,13 @@ static noinline void __init kernel_init_freeable(void)
        if (!ramdisk_execute_command)
                ramdisk_execute_command = "/init";
  
@@ -96464,7 +103042,7 @@ index 68d4e95..1477ded 100644
        mq_table.data = get_mq(table);
  
 diff --git a/ipc/mqueue.c b/ipc/mqueue.c
-index 7635a1c..7432cb6 100644
+index 3aaea7f..e8a13d6 100644
 --- a/ipc/mqueue.c
 +++ b/ipc/mqueue.c
 @@ -278,6 +278,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
@@ -96476,7 +103054,7 @@ index 7635a1c..7432cb6 100644
                if (u->mq_bytes + mq_bytes < u->mq_bytes ||
                    u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) {
 diff --git a/ipc/sem.c b/ipc/sem.c
-index 9284211..bca5b1b 100644
+index d1a6edd..ef08b40 100644
 --- a/ipc/sem.c
 +++ b/ipc/sem.c
 @@ -1780,7 +1780,7 @@ static int get_queue_result(struct sem_queue *q)
@@ -96498,7 +103076,7 @@ index 9284211..bca5b1b 100644
        return sys_semtimedop(semid, tsops, nsops, NULL);
  }
 diff --git a/ipc/shm.c b/ipc/shm.c
-index 19633b4..d454904 100644
+index 6d76707..b646bbe 100644
 --- a/ipc/shm.c
 +++ b/ipc/shm.c
 @@ -72,6 +72,14 @@ static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp);
@@ -96562,11 +103140,11 @@ index 19633b4..d454904 100644
 +#ifdef CONFIG_GRKERNSEC
 +      shp->shm_lapid = current->pid;
 +#endif
-       size = i_size_read(path.dentry->d_inode);
+       size = i_size_read(d_inode(path.dentry));
        ipc_unlock_object(&shp->shm_perm);
        rcu_read_unlock();
 diff --git a/ipc/util.c b/ipc/util.c
-index 106bed0..f851429 100644
+index ff3323e..d6d63d1 100644
 --- a/ipc/util.c
 +++ b/ipc/util.c
 @@ -71,6 +71,8 @@ struct ipc_proc_iface {
@@ -96590,10 +103168,10 @@ index 106bed0..f851429 100644
        if ((requested_mode & ~granted_mode & 0007) &&
            !ns_capable(ns->user_ns, CAP_IPC_OWNER))
 diff --git a/kernel/audit.c b/kernel/audit.c
-index 72ab759..757deba 100644
+index 1c13e42..6c171ab 100644
 --- a/kernel/audit.c
 +++ b/kernel/audit.c
-@@ -122,7 +122,7 @@ u32                audit_sig_sid = 0;
+@@ -124,7 +124,7 @@ u32                audit_sig_sid = 0;
     3) suppressed due to audit_rate_limit
     4) suppressed due to audit_backlog_limit
  */
@@ -96602,7 +103180,7 @@ index 72ab759..757deba 100644
  
  /* The netlink socket. */
  static struct sock *audit_sock;
-@@ -256,7 +256,7 @@ void audit_log_lost(const char *message)
+@@ -258,7 +258,7 @@ void audit_log_lost(const char *message)
        unsigned long           now;
        int                     print;
  
@@ -96611,7 +103189,7 @@ index 72ab759..757deba 100644
  
        print = (audit_failure == AUDIT_FAIL_PANIC || !audit_rate_limit);
  
-@@ -273,7 +273,7 @@ void audit_log_lost(const char *message)
+@@ -275,7 +275,7 @@ void audit_log_lost(const char *message)
        if (print) {
                if (printk_ratelimit())
                        pr_warn("audit_lost=%u audit_rate_limit=%u audit_backlog_limit=%u\n",
@@ -96620,7 +103198,7 @@ index 72ab759..757deba 100644
                                audit_rate_limit,
                                audit_backlog_limit);
                audit_panic(message);
-@@ -831,7 +831,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
+@@ -833,7 +833,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
                s.pid                   = audit_pid;
                s.rate_limit            = audit_rate_limit;
                s.backlog_limit         = audit_backlog_limit;
@@ -96628,11 +103206,20 @@ index 72ab759..757deba 100644
 +              s.lost                  = atomic_read_unchecked(&audit_lost);
                s.backlog               = skb_queue_len(&audit_skb_queue);
                s.feature_bitmap        = AUDIT_FEATURE_BITMAP_ALL;
-               s.backlog_wait_time     = audit_backlog_wait_time;
+               s.backlog_wait_time     = audit_backlog_wait_time_master;
 diff --git a/kernel/auditsc.c b/kernel/auditsc.c
-index dc4ae70..2a2bddc 100644
+index 9fb9d1c..afb1610 100644
 --- a/kernel/auditsc.c
 +++ b/kernel/auditsc.c
+@@ -1023,7 +1023,7 @@ static int audit_log_single_execve_arg(struct audit_context *context,
+        * for strings that are too long, we should not have created
+        * any.
+        */
+-      if (unlikely((len == -1) || len > MAX_ARG_STRLEN - 1)) {
++      if (unlikely(len > MAX_ARG_STRLEN - 1)) {
+               WARN_ON(1);
+               send_sig(SIGKILL, current, 0);
+               return -1;
 @@ -1955,7 +1955,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
  }
  
@@ -96652,7 +103239,7 @@ index dc4ae70..2a2bddc 100644
        task->sessionid = sessionid;
        task->loginuid = loginuid;
 diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
-index 0c5796e..a9414e2 100644
+index 54f0e7f..fed997b 100644
 --- a/kernel/bpf/core.c
 +++ b/kernel/bpf/core.c
 @@ -143,14 +143,17 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr,
@@ -96684,10 +103271,10 @@ index 0c5796e..a9414e2 100644
  #endif /* CONFIG_BPF_JIT */
  
 diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
-index 536edc2..d28c85d 100644
+index 3bae6c5..59ea175 100644
 --- a/kernel/bpf/syscall.c
 +++ b/kernel/bpf/syscall.c
-@@ -548,11 +548,15 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, siz
+@@ -554,11 +554,15 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, siz
        int err;
  
        /* the syscall is limited to root temporarily. This restriction will be
@@ -96706,10 +103293,10 @@ index 536edc2..d28c85d 100644
        if (!access_ok(VERIFY_READ, uattr, 1))
                return -EFAULT;
 diff --git a/kernel/capability.c b/kernel/capability.c
-index 989f5bf..d317ca0 100644
+index 45432b5..988f1e4 100644
 --- a/kernel/capability.c
 +++ b/kernel/capability.c
-@@ -192,6 +192,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
+@@ -193,6 +193,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
                 * before modification is attempted and the application
                 * fails.
                 */
@@ -96719,7 +103306,7 @@ index 989f5bf..d317ca0 100644
                if (copy_to_user(dataptr, kdata, tocopy
                                 * sizeof(struct __user_cap_data_struct))) {
                        return -EFAULT;
-@@ -297,10 +300,11 @@ bool has_ns_capability(struct task_struct *t,
+@@ -298,10 +301,11 @@ bool has_ns_capability(struct task_struct *t,
        int ret;
  
        rcu_read_lock();
@@ -96733,7 +103320,7 @@ index 989f5bf..d317ca0 100644
  }
  
  /**
-@@ -337,10 +341,10 @@ bool has_ns_capability_noaudit(struct task_struct *t,
+@@ -338,10 +342,10 @@ bool has_ns_capability_noaudit(struct task_struct *t,
        int ret;
  
        rcu_read_lock();
@@ -96746,7 +103333,7 @@ index 989f5bf..d317ca0 100644
  }
  
  /**
-@@ -378,7 +382,7 @@ bool ns_capable(struct user_namespace *ns, int cap)
+@@ -379,7 +383,7 @@ bool ns_capable(struct user_namespace *ns, int cap)
                BUG();
        }
  
@@ -96755,14 +103342,14 @@ index 989f5bf..d317ca0 100644
                current->flags |= PF_SUPERPRIV;
                return true;
        }
-@@ -386,6 +390,21 @@ bool ns_capable(struct user_namespace *ns, int cap)
+@@ -387,6 +391,20 @@ bool ns_capable(struct user_namespace *ns, int cap)
  }
  EXPORT_SYMBOL(ns_capable);
  
 +bool ns_capable_nolog(struct user_namespace *ns, int cap)
 +{
 +      if (unlikely(!cap_valid(cap))) {
-+              printk(KERN_CRIT "capable_nolog() called with invalid cap=%u\n", cap);
++              pr_crit("capable_nolog() called with invalid cap=%u\n", cap);
 +              BUG();
 +      }
 +
@@ -96773,24 +103360,24 @@ index 989f5bf..d317ca0 100644
 +      return false;
 +}
 +EXPORT_SYMBOL(ns_capable_nolog);
-+
  /**
-  * file_ns_capable - Determine if the file's opener had a capability in effect
-  * @file:  The file we want to check
-@@ -427,6 +446,12 @@ bool capable(int cap)
+  * capable - Determine if the current task has a superior capability in effect
+@@ -403,6 +421,13 @@ bool capable(int cap)
+       return ns_capable(&init_user_ns, cap);
  }
  EXPORT_SYMBOL(capable);
++
 +bool capable_nolog(int cap)
 +{
 +      return ns_capable_nolog(&init_user_ns, cap);
 +}
 +EXPORT_SYMBOL(capable_nolog);
 +
+ #endif /* CONFIG_MULTIUSER */
  /**
-  * capable_wrt_inode_uidgid - Check nsown_capable and uid and gid mapped
-  * @inode: The inode in question
-@@ -444,3 +469,12 @@ bool capable_wrt_inode_uidgid(const struct inode *inode, int cap)
+@@ -447,3 +472,12 @@ bool capable_wrt_inode_uidgid(const struct inode *inode, int cap)
                kgid_has_mapping(ns, inode->i_gid);
  }
  EXPORT_SYMBOL(capable_wrt_inode_uidgid);
@@ -96804,7 +103391,7 @@ index 989f5bf..d317ca0 100644
 +}
 +EXPORT_SYMBOL(capable_wrt_inode_uidgid_nolog);
 diff --git a/kernel/cgroup.c b/kernel/cgroup.c
-index 29a7b2c..a64e30a 100644
+index e8a5491..ab4bfa3 100644
 --- a/kernel/cgroup.c
 +++ b/kernel/cgroup.c
 @@ -5347,6 +5347,9 @@ static void cgroup_release_agent(struct work_struct *work)
@@ -96827,7 +103414,7 @@ index 29a7b2c..a64e30a 100644
                list_for_each_entry(task, &cset->tasks, cg_list) {
                        if (count++ > MAX_TASKS_SHOWN_PER_CSS)
 diff --git a/kernel/compat.c b/kernel/compat.c
-index 24f0061..ea80802 100644
+index 333d364..762ec00 100644
 --- a/kernel/compat.c
 +++ b/kernel/compat.c
 @@ -13,6 +13,7 @@
@@ -96972,7 +103559,7 @@ index 24f0061..ea80802 100644
        set_fs(oldfs);
  
        if ((err == -ERESTART_RESTARTBLOCK) && rmtp &&
-@@ -1145,7 +1146,7 @@ COMPAT_SYSCALL_DEFINE2(sched_rr_get_interval,
+@@ -1147,7 +1148,7 @@ COMPAT_SYSCALL_DEFINE2(sched_rr_get_interval,
        mm_segment_t old_fs = get_fs();
  
        set_fs(KERNEL_DS);
@@ -97006,10 +103593,10 @@ index c18b1f1..b9a0132 100644
                return -ENOMEM;
  
 diff --git a/kernel/cred.c b/kernel/cred.c
-index e0573a4..26c0fd3 100644
+index ec1c076..7da8a0e 100644
 --- a/kernel/cred.c
 +++ b/kernel/cred.c
-@@ -164,6 +164,16 @@ void exit_creds(struct task_struct *tsk)
+@@ -167,6 +167,15 @@ void exit_creds(struct task_struct *tsk)
        validate_creds(cred);
        alter_cred_subscribers(cred, -1);
        put_cred(cred);
@@ -97019,14 +103606,13 @@ index e0573a4..26c0fd3 100644
 +      if (cred != NULL) {
 +              tsk->delayed_cred = NULL;
 +              validate_creds(cred);
-+              alter_cred_subscribers(cred, -1);
 +              put_cred(cred);
 +      }
 +#endif
  }
  
  /**
-@@ -411,7 +421,7 @@ static bool cred_cap_issubset(const struct cred *set, const struct cred *subset)
+@@ -414,7 +423,7 @@ static bool cred_cap_issubset(const struct cred *set, const struct cred *subset)
   * Always returns 0 thus allowing this function to be tail-called at the end
   * of, say, sys_setgid().
   */
@@ -97035,7 +103621,7 @@ index e0573a4..26c0fd3 100644
  {
        struct task_struct *task = current;
        const struct cred *old = task->real_cred;
-@@ -430,6 +440,8 @@ int commit_creds(struct cred *new)
+@@ -433,6 +442,8 @@ int commit_creds(struct cred *new)
  
        get_cred(new); /* we will require a ref for the subj creds too */
  
@@ -97044,7 +103630,7 @@ index e0573a4..26c0fd3 100644
        /* dumpability changes */
        if (!uid_eq(old->euid, new->euid) ||
            !gid_eq(old->egid, new->egid) ||
-@@ -479,6 +491,105 @@ int commit_creds(struct cred *new)
+@@ -482,6 +493,105 @@ int commit_creds(struct cred *new)
        put_cred(old);
        return 0;
  }
@@ -97237,10 +103823,10 @@ index 41213454..861e178 100644
  #ifdef CONFIG_MODULE_UNLOAD
                {
 diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 2fabc06..79cceec 100644
+index 0ceb386..ddaf008 100644
 --- a/kernel/events/core.c
 +++ b/kernel/events/core.c
-@@ -170,8 +170,15 @@ static struct srcu_struct pmus_srcu;
+@@ -172,8 +172,15 @@ static struct srcu_struct pmus_srcu;
   *   0 - disallow raw tracepoint access for unpriv
   *   1 - disallow cpu events for unpriv
   *   2 - disallow kernel profiling for unpriv
@@ -97248,16 +103834,16 @@ index 2fabc06..79cceec 100644
   */
 -int sysctl_perf_event_paranoid __read_mostly = 1;
 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
-+int sysctl_perf_event_legitimately_concerned __read_mostly = 3;
++int sysctl_perf_event_legitimately_concerned __read_only = 3;
 +#elif defined(CONFIG_GRKERNSEC_HIDESYM)
-+int sysctl_perf_event_legitimately_concerned __read_mostly = 2;
++int sysctl_perf_event_legitimately_concerned __read_only = 2;
 +#else
-+int sysctl_perf_event_legitimately_concerned __read_mostly = 1;
++int sysctl_perf_event_legitimately_concerned __read_only = 1;
 +#endif
  
  /* Minimum for 512 kiB + 1 user control page */
  int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
-@@ -197,7 +204,7 @@ void update_perf_cpu_limits(void)
+@@ -199,7 +206,7 @@ void update_perf_cpu_limits(void)
  
        tmp *= sysctl_perf_cpu_time_max_percent;
        do_div(tmp, 100);
@@ -97266,7 +103852,7 @@ index 2fabc06..79cceec 100644
  }
  
  static int perf_rotate_context(struct perf_cpu_context *cpuctx);
-@@ -303,7 +310,7 @@ void perf_sample_event_took(u64 sample_len_ns)
+@@ -305,7 +312,7 @@ void perf_sample_event_took(u64 sample_len_ns)
        }
  }
  
@@ -97275,16 +103861,7 @@ index 2fabc06..79cceec 100644
  
  static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx,
                              enum event_type_t event_type);
-@@ -3220,7 +3227,7 @@ static void __perf_event_read(void *info)
- static inline u64 perf_event_count(struct perf_event *event)
- {
--      return local64_read(&event->count) + atomic64_read(&event->child_count);
-+      return local64_read(&event->count) + atomic64_read_unchecked(&event->child_count);
- }
- static u64 perf_event_read(struct perf_event *event)
-@@ -3656,9 +3663,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
+@@ -3771,9 +3778,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
        mutex_lock(&event->child_mutex);
        total += perf_event_read(event);
        *enabled += event->total_time_enabled +
@@ -97296,7 +103873,7 @@ index 2fabc06..79cceec 100644
  
        list_for_each_entry(child, &event->child_list, child_list) {
                total += perf_event_read(child);
-@@ -4147,10 +4154,10 @@ void perf_event_update_userpage(struct perf_event *event)
+@@ -4268,10 +4275,10 @@ void perf_event_update_userpage(struct perf_event *event)
                userpg->offset -= local64_read(&event->hw.prev_count);
  
        userpg->time_enabled = enabled +
@@ -97309,7 +103886,7 @@ index 2fabc06..79cceec 100644
  
        arch_perf_update_userpage(event, userpg, now);
  
-@@ -4740,7 +4747,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size,
+@@ -4946,7 +4953,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size,
  
                /* Data. */
                sp = perf_user_stack_pointer(regs);
@@ -97318,7 +103895,7 @@ index 2fabc06..79cceec 100644
                dyn_size = dump_size - rem;
  
                perf_output_skip(handle, rem);
-@@ -4831,11 +4838,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
+@@ -5037,11 +5044,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
        values[n++] = perf_event_count(event);
        if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
                values[n++] = enabled +
@@ -97332,7 +103909,7 @@ index 2fabc06..79cceec 100644
        }
        if (read_format & PERF_FORMAT_ID)
                values[n++] = primary_event_id(event);
-@@ -7180,7 +7187,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
+@@ -7533,7 +7540,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
        event->parent           = parent_event;
  
        event->ns               = get_pid_ns(task_active_pid_ns(current));
@@ -97341,7 +103918,7 @@ index 2fabc06..79cceec 100644
  
        event->state            = PERF_EVENT_STATE_INACTIVE;
  
-@@ -7470,6 +7477,11 @@ SYSCALL_DEFINE5(perf_event_open,
+@@ -7892,6 +7899,11 @@ SYSCALL_DEFINE5(perf_event_open,
        if (flags & ~PERF_FLAG_ALL)
                return -EINVAL;
  
@@ -97353,7 +103930,7 @@ index 2fabc06..79cceec 100644
        err = perf_copy_attr(attr_uptr, &attr);
        if (err)
                return err;
-@@ -7892,10 +7904,10 @@ static void sync_child_event(struct perf_event *child_event,
+@@ -8340,10 +8352,10 @@ static void sync_child_event(struct perf_event *child_event,
        /*
         * Add back the child's count to the parent's count:
         */
@@ -97368,11 +103945,11 @@ index 2fabc06..79cceec 100644
  
        /*
 diff --git a/kernel/events/internal.h b/kernel/events/internal.h
-index 569b2187..19940d9 100644
+index 9f6ce9b..e4f2cbb 100644
 --- a/kernel/events/internal.h
 +++ b/kernel/events/internal.h
-@@ -81,10 +81,10 @@ static inline unsigned long perf_data_size(struct ring_buffer *rb)
-       return rb->nr_pages << (PAGE_SHIFT + page_order(rb));
+@@ -114,10 +114,10 @@ static inline unsigned long perf_aux_size(struct ring_buffer *rb)
+       return rb->aux_nr_pages << PAGE_SHIFT;
  }
  
 -#define DEFINE_OUTPUT_COPY(func_name, memcpy_func)                    \
@@ -97384,7 +103961,7 @@ index 569b2187..19940d9 100644
  {                                                                     \
        unsigned long size, written;                                    \
                                                                        \
-@@ -117,7 +117,7 @@ memcpy_common(void *dst, const void *src, unsigned long n)
+@@ -150,7 +150,7 @@ memcpy_common(void *dst, const void *src, unsigned long n)
        return 0;
  }
  
@@ -97393,7 +103970,7 @@ index 569b2187..19940d9 100644
  
  static inline unsigned long
  memcpy_skip(void *dst, const void *src, unsigned long n)
-@@ -125,7 +125,7 @@ memcpy_skip(void *dst, const void *src, unsigned long n)
+@@ -158,7 +158,7 @@ memcpy_skip(void *dst, const void *src, unsigned long n)
        return 0;
  }
  
@@ -97402,7 +103979,7 @@ index 569b2187..19940d9 100644
  
  #ifndef arch_perf_out_copy_user
  #define arch_perf_out_copy_user arch_perf_out_copy_user
-@@ -143,7 +143,7 @@ arch_perf_out_copy_user(void *dst, const void *src, unsigned long n)
+@@ -176,7 +176,7 @@ arch_perf_out_copy_user(void *dst, const void *src, unsigned long n)
  }
  #endif
  
@@ -97425,7 +104002,7 @@ index cb346f2..e4dc317 100644
        pagefault_disable();
        result = __copy_from_user_inatomic(&opcode, (void __user*)vaddr,
 diff --git a/kernel/exit.c b/kernel/exit.c
-index feff10b..f623dd5 100644
+index 22fcc05..5f07dbc 100644
 --- a/kernel/exit.c
 +++ b/kernel/exit.c
 @@ -171,6 +171,10 @@ void release_task(struct task_struct *p)
@@ -97466,7 +104043,7 @@ index feff10b..f623dd5 100644
        exit_mm(tsk);
  
        if (group_dead)
-@@ -849,7 +857,7 @@ SYSCALL_DEFINE1(exit, int, error_code)
+@@ -847,7 +855,7 @@ SYSCALL_DEFINE1(exit, int, error_code)
   * Take down every thread in the group.  This is called by fatal signals
   * as well as by sys_exit_group (below).
   */
@@ -97476,10 +104053,10 @@ index feff10b..f623dd5 100644
  {
        struct signal_struct *sig = current->signal;
 diff --git a/kernel/fork.c b/kernel/fork.c
-index cf65139..704476e 100644
+index 03c1eaa..461be4c 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -177,12 +177,54 @@ static void free_thread_info(struct thread_info *ti)
+@@ -188,12 +188,54 @@ static void free_thread_info(struct thread_info *ti)
  void thread_info_cache_init(void)
  {
        thread_info_cache = kmem_cache_create("thread_info", THREAD_SIZE,
@@ -97535,7 +104112,7 @@ index cf65139..704476e 100644
  /* SLAB cache for signal_struct structures (tsk->signal) */
  static struct kmem_cache *signal_cachep;
  
-@@ -201,18 +243,22 @@ struct kmem_cache *vm_area_cachep;
+@@ -212,18 +254,22 @@ struct kmem_cache *vm_area_cachep;
  /* SLAB cache for mm_struct structures (tsk->mm) */
  static struct kmem_cache *mm_cachep;
  
@@ -97561,7 +104138,7 @@ index cf65139..704476e 100644
        rt_mutex_debug_task_free(tsk);
        ftrace_graph_exit_task(tsk);
        put_seccomp_filter(tsk);
-@@ -306,6 +352,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
+@@ -329,6 +375,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
  {
        struct task_struct *tsk;
        struct thread_info *ti;
@@ -97569,7 +104146,7 @@ index cf65139..704476e 100644
        int node = tsk_fork_get_node(orig);
        int err;
  
-@@ -313,7 +360,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
+@@ -336,7 +383,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
        if (!tsk)
                return NULL;
  
@@ -97578,7 +104155,7 @@ index cf65139..704476e 100644
        if (!ti)
                goto free_tsk;
  
-@@ -322,6 +369,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
+@@ -345,6 +392,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
                goto free_ti;
  
        tsk->stack = ti;
@@ -97588,7 +104165,7 @@ index cf65139..704476e 100644
  #ifdef CONFIG_SECCOMP
        /*
         * We must handle setting up seccomp filters once we're under
-@@ -338,7 +388,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
+@@ -361,7 +411,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
        set_task_stack_end_magic(tsk);
  
  #ifdef CONFIG_CC_STACKPROTECTOR
@@ -97597,7 +104174,7 @@ index cf65139..704476e 100644
  #endif
  
        /*
-@@ -352,24 +402,89 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
+@@ -375,24 +425,89 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
        tsk->splice_pipe = NULL;
        tsk->task_frag.page = NULL;
  
@@ -97691,7 +104268,7 @@ index cf65139..704476e 100644
  
        uprobe_start_dup_mmap();
        down_write(&oldmm->mmap_sem);
-@@ -397,51 +512,15 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -423,51 +538,15 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
  
        prev = NULL;
        for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) {
@@ -97747,7 +104324,7 @@ index cf65139..704476e 100644
                }
  
                /*
-@@ -473,6 +552,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -499,6 +578,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
                if (retval)
                        goto out;
        }
@@ -97779,7 +104356,7 @@ index cf65139..704476e 100644
        /* a new mm has just been created */
        arch_dup_mmap(oldmm, mm);
        retval = 0;
-@@ -482,14 +586,6 @@ out:
+@@ -508,14 +612,6 @@ out:
        up_write(&oldmm->mmap_sem);
        uprobe_end_dup_mmap();
        return retval;
@@ -97794,7 +104371,7 @@ index cf65139..704476e 100644
  }
  
  static inline int mm_alloc_pgd(struct mm_struct *mm)
-@@ -739,8 +835,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
+@@ -790,8 +886,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
                return ERR_PTR(err);
  
        mm = get_task_mm(task);
@@ -97805,7 +104382,7 @@ index cf65139..704476e 100644
                mmput(mm);
                mm = ERR_PTR(-EACCES);
        }
-@@ -943,13 +1039,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
+@@ -992,13 +1088,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
                        spin_unlock(&fs->lock);
                        return -EAGAIN;
                }
@@ -97827,7 +104404,7 @@ index cf65139..704476e 100644
        return 0;
  }
  
-@@ -1187,7 +1290,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
+@@ -1236,7 +1339,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
   * parts of the process environment (as per the clone
   * flags). The actual kick-off is left to the caller.
   */
@@ -97836,7 +104413,7 @@ index cf65139..704476e 100644
                                        unsigned long stack_start,
                                        unsigned long stack_size,
                                        int __user *child_tidptr,
-@@ -1258,6 +1361,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1307,6 +1410,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
        DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
  #endif
        retval = -EAGAIN;
@@ -97846,7 +104423,7 @@ index cf65139..704476e 100644
        if (atomic_read(&p->real_cred->user->processes) >=
                        task_rlimit(p, RLIMIT_NPROC)) {
                if (p->real_cred->user != INIT_USER &&
-@@ -1507,6 +1613,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1554,6 +1660,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
                goto bad_fork_free_pid;
        }
  
@@ -97858,7 +104435,7 @@ index cf65139..704476e 100644
        if (likely(p->pid)) {
                ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace);
  
-@@ -1597,6 +1708,8 @@ bad_fork_cleanup_count:
+@@ -1643,6 +1754,8 @@ bad_fork_cleanup_count:
  bad_fork_free:
        free_task(p);
  fork_out:
@@ -97867,7 +104444,7 @@ index cf65139..704476e 100644
        return ERR_PTR(retval);
  }
  
-@@ -1658,6 +1771,7 @@ long do_fork(unsigned long clone_flags,
+@@ -1704,6 +1817,7 @@ long do_fork(unsigned long clone_flags,
  
        p = copy_process(clone_flags, stack_start, stack_size,
                         child_tidptr, NULL, trace);
@@ -97875,7 +104452,7 @@ index cf65139..704476e 100644
        /*
         * Do this prior waking up the new thread - the thread pointer
         * might get invalid after that point, if the thread exits quickly.
-@@ -1674,6 +1788,8 @@ long do_fork(unsigned long clone_flags,
+@@ -1720,6 +1834,8 @@ long do_fork(unsigned long clone_flags,
                if (clone_flags & CLONE_PARENT_SETTID)
                        put_user(nr, parent_tidptr);
  
@@ -97884,7 +104461,7 @@ index cf65139..704476e 100644
                if (clone_flags & CLONE_VFORK) {
                        p->vfork_done = &vfork;
                        init_completion(&vfork);
-@@ -1792,7 +1908,7 @@ void __init proc_caches_init(void)
+@@ -1838,7 +1954,7 @@ void __init proc_caches_init(void)
        mm_cachep = kmem_cache_create("mm_struct",
                        sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
                        SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK, NULL);
@@ -97893,7 +104470,7 @@ index cf65139..704476e 100644
        mmap_init();
        nsproxy_cache_init();
  }
-@@ -1832,7 +1948,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
+@@ -1878,7 +1994,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
                return 0;
  
        /* don't need lock here; in the worst case we'll do useless copy */
@@ -97902,7 +104479,7 @@ index cf65139..704476e 100644
                return 0;
  
        *new_fsp = copy_fs_struct(fs);
-@@ -1944,7 +2060,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
+@@ -1990,7 +2106,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
                        fs = current->fs;
                        spin_lock(&fs->lock);
                        current->fs = new_fs;
@@ -97912,8 +104489,17 @@ index cf65139..704476e 100644
                                new_fs = NULL;
                        else
                                new_fs = fs;
+@@ -2054,7 +2171,7 @@ int unshare_files(struct files_struct **displaced)
+ int sysctl_max_threads(struct ctl_table *table, int write,
+                      void __user *buffer, size_t *lenp, loff_t *ppos)
+ {
+-      struct ctl_table t;
++      ctl_table_no_const t;
+       int ret;
+       int threads = max_threads;
+       int min = MIN_THREADS;
 diff --git a/kernel/futex.c b/kernel/futex.c
-index 2a5e383..878bac6 100644
+index 2579e40..c33f33e 100644
 --- a/kernel/futex.c
 +++ b/kernel/futex.c
 @@ -201,7 +201,7 @@ struct futex_pi_state {
@@ -97989,10 +104575,10 @@ index 55c8c93..9ba7ad6 100644
  {
        compat_uptr_t base = ptr_to_compat(entry);
 diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c
-index b358a80..fc25240 100644
+index a744098..539f7b6 100644
 --- a/kernel/gcov/base.c
 +++ b/kernel/gcov/base.c
-@@ -114,11 +114,6 @@ void gcov_enable_events(void)
+@@ -117,11 +117,6 @@ void gcov_enable_events(void)
  }
  
  #ifdef CONFIG_MODULES
@@ -98004,7 +104590,7 @@ index b358a80..fc25240 100644
  /* Update list and generate events when modules are unloaded. */
  static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
                                void *data)
-@@ -133,7 +128,7 @@ static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
+@@ -136,7 +131,7 @@ static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
  
        /* Remove entries located in module from linked list. */
        while ((info = gcov_info_next(info))) {
@@ -98014,10 +104600,10 @@ index b358a80..fc25240 100644
                        if (gcov_events_enabled)
                                gcov_event(GCOV_REMOVE, info);
 diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index 886d09e..c7ff4e5 100644
+index e68932b..2247e06 100644
 --- a/kernel/irq/manage.c
 +++ b/kernel/irq/manage.c
-@@ -874,7 +874,7 @@ static int irq_thread(void *data)
+@@ -906,7 +906,7 @@ static int irq_thread(void *data)
  
                action_ret = handler_fn(desc, action);
                if (action_ret == IRQ_HANDLED)
@@ -98195,9 +104781,18 @@ index 0aa69ea..a7fcafb 100644
  
        /*
 diff --git a/kernel/kexec.c b/kernel/kexec.c
-index 38c25b1..12b3f69 100644
+index 7a36fdc..de8c4ed 100644
 --- a/kernel/kexec.c
 +++ b/kernel/kexec.c
+@@ -1232,7 +1232,7 @@ static int kimage_load_segment(struct kimage *image,
+  */
+ struct kimage *kexec_image;
+ struct kimage *kexec_crash_image;
+-int kexec_load_disabled;
++int kexec_load_disabled __read_only;
+ static DEFINE_MUTEX(kexec_mutex);
 @@ -1348,7 +1348,8 @@ COMPAT_SYSCALL_DEFINE4(kexec_load, compat_ulong_t, entry,
                       compat_ulong_t, flags)
  {
@@ -98476,10 +105071,10 @@ index 6683cce..daf8999 100644
                .name = "notes",
                .mode = S_IRUGO,
 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index ba77ab5..d6a3e20 100644
+index aaeae88..10f3663 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
-@@ -599,6 +599,10 @@ static int static_obj(void *obj)
+@@ -613,6 +613,10 @@ static int static_obj(void *obj)
                      end   = (unsigned long) &_end,
                      addr  = (unsigned long) obj;
  
@@ -98490,7 +105085,7 @@ index ba77ab5..d6a3e20 100644
        /*
         * static variable?
         */
-@@ -743,6 +747,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
+@@ -757,6 +761,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
        if (!static_obj(lock->key)) {
                debug_locks_off();
                printk("INFO: trying to register non-static key.\n");
@@ -98498,7 +105093,7 @@ index ba77ab5..d6a3e20 100644
                printk("the code is fine but needs lockdep annotation.\n");
                printk("turning off the locking correctness validator.\n");
                dump_stack();
-@@ -3088,7 +3093,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
+@@ -3102,7 +3107,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
                if (!class)
                        return 0;
        }
@@ -98508,7 +105103,7 @@ index ba77ab5..d6a3e20 100644
                printk("\nacquire class [%p] %s", class->key, class->name);
                if (class->name_version > 1)
 diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
-index ef43ac4..2720dfa 100644
+index d83d798..ea3120d 100644
 --- a/kernel/locking/lockdep_proc.c
 +++ b/kernel/locking/lockdep_proc.c
 @@ -65,7 +65,7 @@ static int l_show(struct seq_file *m, void *v)
@@ -98538,7 +105133,7 @@ index ef43ac4..2720dfa 100644
                print_name(m, class);
                seq_puts(m, "\n");
        }
-@@ -496,7 +496,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
+@@ -508,7 +508,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
                if (!i)
                        seq_line(m, '-', 40-namelen, namelen);
  
@@ -98547,7 +105142,7 @@ index ef43ac4..2720dfa 100644
                                (void *)class->contention_point[i]);
                seq_printf(m, "%40s %14lu %29s %pS\n",
                           name, stats->contention_point[i],
-@@ -511,7 +511,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
+@@ -523,7 +523,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
                if (!i)
                        seq_line(m, '-', 40-namelen, namelen);
  
@@ -98556,19 +105151,6 @@ index ef43ac4..2720dfa 100644
                                (void *)class->contending_point[i]);
                seq_printf(m, "%40s %14lu %29s %pS\n",
                           name, stats->contending_point[i],
-diff --git a/kernel/locking/mcs_spinlock.h b/kernel/locking/mcs_spinlock.h
-index d1fe2ba..180cd65e 100644
---- a/kernel/locking/mcs_spinlock.h
-+++ b/kernel/locking/mcs_spinlock.h
-@@ -78,7 +78,7 @@ void mcs_spin_lock(struct mcs_spinlock **lock, struct mcs_spinlock *node)
-                */
-               return;
-       }
--      ACCESS_ONCE(prev->next) = node;
-+      ACCESS_ONCE_RW(prev->next) = node;
-       /* Wait until the lock holder passes the lock down. */
-       arch_mcs_spin_lock_contended(&node->locked);
 diff --git a/kernel/locking/mutex-debug.c b/kernel/locking/mutex-debug.c
 index 3ef3736..9c951fa 100644
 --- a/kernel/locking/mutex-debug.c
@@ -98618,10 +105200,10 @@ index 0799fd3..d06ae3b 100644
  extern void debug_mutex_init(struct mutex *lock, const char *name,
                             struct lock_class_key *key);
 diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
-index 94674e5..de4966f 100644
+index 4cccea6..4382db9 100644
 --- a/kernel/locking/mutex.c
 +++ b/kernel/locking/mutex.c
-@@ -542,7 +542,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
+@@ -533,7 +533,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
                goto skip_wait;
  
        debug_mutex_lock_common(lock, &waiter);
@@ -98630,7 +105212,7 @@ index 94674e5..de4966f 100644
  
        /* add waiting tasks to the end of the waitqueue (FIFO): */
        list_add_tail(&waiter.list, &lock->wait_list);
-@@ -589,7 +589,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
+@@ -580,7 +580,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
        }
        __set_task_state(task, TASK_RUNNING);
  
@@ -98639,7 +105221,7 @@ index 94674e5..de4966f 100644
        /* set it to 0 if there are no waiters left: */
        if (likely(list_empty(&lock->wait_list)))
                atomic_set(&lock->count, 0);
-@@ -610,7 +610,7 @@ skip_wait:
+@@ -601,7 +601,7 @@ skip_wait:
        return 0;
  
  err:
@@ -98648,44 +105230,6 @@ index 94674e5..de4966f 100644
        spin_unlock_mutex(&lock->wait_lock, flags);
        debug_mutex_free_waiter(&waiter);
        mutex_release(&lock->dep_map, 1, ip);
-diff --git a/kernel/locking/osq_lock.c b/kernel/locking/osq_lock.c
-index c112d00..1946ad9 100644
---- a/kernel/locking/osq_lock.c
-+++ b/kernel/locking/osq_lock.c
-@@ -98,7 +98,7 @@ bool osq_lock(struct optimistic_spin_queue *lock)
-       prev = decode_cpu(old);
-       node->prev = prev;
--      ACCESS_ONCE(prev->next) = node;
-+      ACCESS_ONCE_RW(prev->next) = node;
-       /*
-        * Normally @prev is untouchable after the above store; because at that
-@@ -170,8 +170,8 @@ unqueue:
-        * it will wait in Step-A.
-        */
--      ACCESS_ONCE(next->prev) = prev;
--      ACCESS_ONCE(prev->next) = next;
-+      ACCESS_ONCE_RW(next->prev) = prev;
-+      ACCESS_ONCE_RW(prev->next) = next;
-       return false;
- }
-@@ -193,11 +193,11 @@ void osq_unlock(struct optimistic_spin_queue *lock)
-       node = this_cpu_ptr(&osq_node);
-       next = xchg(&node->next, NULL);
-       if (next) {
--              ACCESS_ONCE(next->locked) = 1;
-+              ACCESS_ONCE_RW(next->locked) = 1;
-               return;
-       }
-       next = osq_wait_next(lock, node, NULL);
-       if (next)
--              ACCESS_ONCE(next->locked) = 1;
-+              ACCESS_ONCE_RW(next->locked) = 1;
- }
 diff --git a/kernel/locking/rtmutex-tester.c b/kernel/locking/rtmutex-tester.c
 index 1d96dd0..994ff19 100644
 --- a/kernel/locking/rtmutex-tester.c
@@ -98781,7 +105325,7 @@ index 1d96dd0..994ff19 100644
  
        default:
 diff --git a/kernel/module.c b/kernel/module.c
-index ec53f59..67d9655 100644
+index cfc9e84..a058697 100644
 --- a/kernel/module.c
 +++ b/kernel/module.c
 @@ -59,6 +59,7 @@
@@ -98792,6 +105336,15 @@ index ec53f59..67d9655 100644
  #include <uapi/linux/module.h>
  #include "module-internal.h"
  
+@@ -145,7 +146,7 @@ module_param(sig_enforce, bool_enable_only, 0644);
+ #endif /* CONFIG_MODULE_SIG */
+ /* Block module loading/unloading? */
+-int modules_disabled = 0;
++int modules_disabled __read_only = 0;
+ core_param(nomodule, modules_disabled, bint, 0);
+ /* Waiting for a module to finish initializing? */
 @@ -155,7 +156,8 @@ static BLOCKING_NOTIFIER_HEAD(module_notify_list);
  
  /* Bounds of module allocation, for speeding __module_address.
@@ -99232,7 +105785,7 @@ index ec53f59..67d9655 100644
                mutex_unlock(&module_mutex);
        }
        return ret;
-@@ -2665,7 +2728,15 @@ static struct module *setup_load_info(struct load_info *info, int flags)
+@@ -2666,7 +2729,15 @@ static struct module *setup_load_info(struct load_info *info, int flags)
        mod = (void *)info->sechdrs[info->index.mod].sh_addr;
  
        if (info->index.sym == 0) {
@@ -99248,7 +105801,7 @@ index ec53f59..67d9655 100644
                return ERR_PTR(-ENOEXEC);
        }
  
-@@ -2681,8 +2752,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
+@@ -2682,8 +2753,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
  static int check_modinfo(struct module *mod, struct load_info *info, int flags)
  {
        const char *modmagic = get_modinfo(info, "vermagic");
@@ -99263,7 +105816,7 @@ index ec53f59..67d9655 100644
        if (flags & MODULE_INIT_IGNORE_VERMAGIC)
                modmagic = NULL;
  
-@@ -2707,7 +2784,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
+@@ -2708,7 +2785,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
        }
  
        /* Set up license info based on the info section */
@@ -99272,7 +105825,7 @@ index ec53f59..67d9655 100644
  
        return 0;
  }
-@@ -2801,7 +2878,7 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2805,7 +2882,7 @@ static int move_module(struct module *mod, struct load_info *info)
        void *ptr;
  
        /* Do the allocs. */
@@ -99281,7 +105834,7 @@ index ec53f59..67d9655 100644
        /*
         * The pointer to this block is stored in the module structure
         * which is inside the block. Just mark it as not being a
-@@ -2811,11 +2888,11 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2815,11 +2892,11 @@ static int move_module(struct module *mod, struct load_info *info)
        if (!ptr)
                return -ENOMEM;
  
@@ -99297,7 +105850,7 @@ index ec53f59..67d9655 100644
                /*
                 * The pointer to this block is stored in the module structure
                 * which is inside the block. This block doesn't need to be
-@@ -2824,13 +2901,45 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2828,13 +2905,45 @@ static int move_module(struct module *mod, struct load_info *info)
                 */
                kmemleak_ignore(ptr);
                if (!ptr) {
@@ -99347,7 +105900,7 @@ index ec53f59..67d9655 100644
  
        /* Transfer each section which specifies SHF_ALLOC */
        pr_debug("final section addresses:\n");
-@@ -2841,16 +2950,45 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2845,16 +2954,45 @@ static int move_module(struct module *mod, struct load_info *info)
                if (!(shdr->sh_flags & SHF_ALLOC))
                        continue;
  
@@ -99400,7 +105953,7 @@ index ec53f59..67d9655 100644
                pr_debug("\t0x%lx %s\n",
                         (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
        }
-@@ -2907,12 +3045,12 @@ static void flush_module_icache(const struct module *mod)
+@@ -2911,12 +3049,12 @@ static void flush_module_icache(const struct module *mod)
         * Do it before processing of module parameters, so the module
         * can provide parameter accessor functions of its own.
         */
@@ -99419,7 +105972,7 @@ index ec53f59..67d9655 100644
  
        set_fs(old_fs);
  }
-@@ -2970,8 +3108,10 @@ static void module_deallocate(struct module *mod, struct load_info *info)
+@@ -2974,8 +3112,10 @@ static void module_deallocate(struct module *mod, struct load_info *info)
  {
        percpu_modfree(mod);
        module_arch_freeing_init(mod);
@@ -99432,7 +105985,7 @@ index ec53f59..67d9655 100644
  }
  
  int __weak module_finalize(const Elf_Ehdr *hdr,
-@@ -2984,7 +3124,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
+@@ -2988,7 +3128,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
  static int post_relocation(struct module *mod, const struct load_info *info)
  {
        /* Sort exception table now relocations are done. */
@@ -99442,7 +105995,7 @@ index ec53f59..67d9655 100644
  
        /* Copy relocated percpu area over. */
        percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr,
-@@ -3032,13 +3174,15 @@ static void do_mod_ctors(struct module *mod)
+@@ -3036,13 +3178,15 @@ static void do_mod_ctors(struct module *mod)
  /* For freeing module_init on success, in case kallsyms traversing */
  struct mod_initfree {
        struct rcu_head rcu;
@@ -99460,7 +106013,7 @@ index ec53f59..67d9655 100644
        kfree(m);
  }
  
-@@ -3058,7 +3202,8 @@ static noinline int do_init_module(struct module *mod)
+@@ -3062,7 +3206,8 @@ static noinline int do_init_module(struct module *mod)
                ret = -ENOMEM;
                goto fail;
        }
@@ -99470,7 +106023,7 @@ index ec53f59..67d9655 100644
  
        /*
         * We want to find out whether @mod uses async during init.  Clear
-@@ -3117,10 +3262,10 @@ static noinline int do_init_module(struct module *mod)
+@@ -3121,10 +3266,10 @@ static noinline int do_init_module(struct module *mod)
  #endif
        unset_module_init_ro_nx(mod);
        module_arch_freeing_init(mod);
@@ -99485,7 +106038,7 @@ index ec53f59..67d9655 100644
        /*
         * We want to free module_init, but be aware that kallsyms may be
         * walking this with preempt disabled.  In all the failure paths,
-@@ -3208,16 +3353,16 @@ static int complete_formation(struct module *mod, struct load_info *info)
+@@ -3212,16 +3357,16 @@ static int complete_formation(struct module *mod, struct load_info *info)
        module_bug_finalize(info->hdr, info->sechdrs, mod);
  
        /* Set RO and NX regions for core */
@@ -99510,7 +106063,7 @@ index ec53f59..67d9655 100644
  
        /* Mark state as coming so strong_try_module_get() ignores us,
         * but kallsyms etc. can see us. */
-@@ -3301,9 +3446,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
+@@ -3305,9 +3450,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
        if (err)
                goto free_unload;
  
@@ -99549,7 +106102,7 @@ index ec53f59..67d9655 100644
        /* Fix up syms, so that st_value is a pointer to location. */
        err = simplify_symbols(mod, info);
        if (err < 0)
-@@ -3319,13 +3493,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
+@@ -3323,13 +3497,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
  
        flush_module_icache(mod);
  
@@ -99563,7 +106116,7 @@ index ec53f59..67d9655 100644
        dynamic_debug_setup(info->debug, info->num_debug);
  
        /* Ftrace init must be called in the MODULE_STATE_UNFORMED state */
-@@ -3373,11 +3540,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
+@@ -3380,11 +3547,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
   ddebug_cleanup:
        dynamic_debug_remove(info->debug);
        synchronize_sched();
@@ -99576,7 +106129,7 @@ index ec53f59..67d9655 100644
   free_unload:
        module_unload_free(mod);
   unlink_mod:
-@@ -3390,7 +3556,8 @@ static int load_module(struct load_info *info, const char __user *uargs,
+@@ -3397,7 +3563,8 @@ static int load_module(struct load_info *info, const char __user *uargs,
        mutex_unlock(&module_mutex);
   free_module:
        /* Free lock-classes; relies on the preceding sync_rcu() */
@@ -99586,7 +106139,7 @@ index ec53f59..67d9655 100644
  
        module_deallocate(mod, info);
   free_copy:
-@@ -3467,10 +3634,16 @@ static const char *get_ksymbol(struct module *mod,
+@@ -3474,10 +3641,16 @@ static const char *get_ksymbol(struct module *mod,
        unsigned long nextval;
  
        /* At worse, next value is at end of module */
@@ -99606,7 +106159,7 @@ index ec53f59..67d9655 100644
  
        /* Scan for closest preceding symbol, and next symbol. (ELF
           starts real symbols at 1). */
-@@ -3718,7 +3891,7 @@ static int m_show(struct seq_file *m, void *p)
+@@ -3725,7 +3898,7 @@ static int m_show(struct seq_file *m, void *p)
                return 0;
  
        seq_printf(m, "%s %u",
@@ -99615,7 +106168,7 @@ index ec53f59..67d9655 100644
        print_unload_info(m, mod);
  
        /* Informative for users. */
-@@ -3727,7 +3900,7 @@ static int m_show(struct seq_file *m, void *p)
+@@ -3734,7 +3907,7 @@ static int m_show(struct seq_file *m, void *p)
                   mod->state == MODULE_STATE_COMING ? "Loading" :
                   "Live");
        /* Used by oprofile and other similar tools. */
@@ -99624,7 +106177,7 @@ index ec53f59..67d9655 100644
  
        /* Taints info */
        if (mod->taints)
-@@ -3763,7 +3936,17 @@ static const struct file_operations proc_modules_operations = {
+@@ -3770,7 +3943,17 @@ static const struct file_operations proc_modules_operations = {
  
  static int __init proc_modules_init(void)
  {
@@ -99642,7 +106195,7 @@ index ec53f59..67d9655 100644
        return 0;
  }
  module_init(proc_modules_init);
-@@ -3824,7 +4007,8 @@ struct module *__module_address(unsigned long addr)
+@@ -3831,7 +4014,8 @@ struct module *__module_address(unsigned long addr)
  {
        struct module *mod;
  
@@ -99652,7 +106205,7 @@ index ec53f59..67d9655 100644
                return NULL;
  
        list_for_each_entry_rcu(mod, &modules, list) {
-@@ -3865,11 +4049,20 @@ bool is_module_text_address(unsigned long addr)
+@@ -3872,11 +4056,20 @@ bool is_module_text_address(unsigned long addr)
   */
  struct module *__module_text_address(unsigned long addr)
  {
@@ -99787,7 +106340,7 @@ index 8136ad7..15c857b 100644
  }
  EXPORT_SYMBOL(__stack_chk_fail);
 diff --git a/kernel/pid.c b/kernel/pid.c
-index cd36a5e..11f185d 100644
+index 4fd07d5..02bce4f 100644
 --- a/kernel/pid.c
 +++ b/kernel/pid.c
 @@ -33,6 +33,7 @@
@@ -99807,7 +106360,7 @@ index cd36a5e..11f185d 100644
  
  int pid_max_min = RESERVED_PIDS + 1;
  int pid_max_max = PID_MAX_LIMIT;
-@@ -450,10 +451,18 @@ EXPORT_SYMBOL(pid_task);
+@@ -451,10 +452,18 @@ EXPORT_SYMBOL(pid_task);
   */
  struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
  {
@@ -99827,7 +106380,7 @@ index cd36a5e..11f185d 100644
  }
  
  struct task_struct *find_task_by_vpid(pid_t vnr)
-@@ -461,6 +470,14 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
+@@ -462,6 +471,14 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
        return find_task_by_pid_ns(vnr, task_active_pid_ns(current));
  }
  
@@ -99912,9 +106465,18 @@ index 564f786..361a18e 100644
  
                if (pm_wakeup_pending()) {
 diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
-index bb0635b..9aff9f3 100644
+index c099b08..54bcfe8 100644
 --- a/kernel/printk/printk.c
 +++ b/kernel/printk/printk.c
+@@ -463,7 +463,7 @@ static int log_store(int facility, int level,
+       return msg->text_len;
+ }
+-int dmesg_restrict = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
++int dmesg_restrict __read_only = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
+ static int syslog_action_restricted(int type)
+ {
 @@ -486,6 +486,11 @@ int check_syslog_permissions(int type, bool from_file)
        if (from_file && type != SYSLOG_ACTION_OPEN)
                return 0;
@@ -99989,7 +106551,7 @@ index a7bcd28..5b368fa 100644
  }
  
 diff --git a/kernel/ptrace.c b/kernel/ptrace.c
-index 9a34bd8..38d90e5 100644
+index c8e0e05..2be5614 100644
 --- a/kernel/ptrace.c
 +++ b/kernel/ptrace.c
 @@ -321,7 +321,7 @@ static int ptrace_attach(struct task_struct *task, long request,
@@ -100001,7 +106563,7 @@ index 9a34bd8..38d90e5 100644
                flags |= PT_PTRACE_CAP;
        rcu_read_unlock();
        task->ptrace = flags;
-@@ -515,7 +515,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
+@@ -514,7 +514,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
                                break;
                        return -EIO;
                }
@@ -100010,7 +106572,7 @@ index 9a34bd8..38d90e5 100644
                        return -EFAULT;
                copied += retval;
                src += retval;
-@@ -803,7 +803,7 @@ int ptrace_request(struct task_struct *child, long request,
+@@ -802,7 +802,7 @@ int ptrace_request(struct task_struct *child, long request,
        bool seized = child->ptrace & PT_SEIZED;
        int ret = -EIO;
        siginfo_t siginfo, *si;
@@ -100019,7 +106581,7 @@ index 9a34bd8..38d90e5 100644
        unsigned long __user *datalp = datavp;
        unsigned long flags;
  
-@@ -1049,14 +1049,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
+@@ -1048,14 +1048,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
                goto out;
        }
  
@@ -100042,7 +106604,7 @@ index 9a34bd8..38d90e5 100644
                goto out_put_task_struct;
        }
  
-@@ -1084,7 +1091,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
+@@ -1083,7 +1090,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
        copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0);
        if (copied != sizeof(tmp))
                return -EIO;
@@ -100051,7 +106613,7 @@ index 9a34bd8..38d90e5 100644
  }
  
  int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
-@@ -1177,7 +1184,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
+@@ -1176,7 +1183,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
  }
  
  COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
@@ -100060,7 +106622,7 @@ index 9a34bd8..38d90e5 100644
  {
        struct task_struct *child;
        long ret;
-@@ -1193,14 +1200,21 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
+@@ -1192,14 +1199,21 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
                goto out;
        }
  
@@ -100084,7 +106646,7 @@ index 9a34bd8..38d90e5 100644
        }
  
 diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
-index 30d42aa..cac5d66 100644
+index 8dbe276..8e87dbd 100644
 --- a/kernel/rcu/rcutorture.c
 +++ b/kernel/rcu/rcutorture.c
 @@ -134,12 +134,12 @@ static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1],
@@ -100156,7 +106718,7 @@ index 30d42aa..cac5d66 100644
                WARN_ON(signal_pending(current));
                for (i = 0; i < cbflood_n_burst; i++) {
                        for (j = 0; j < cbflood_n_per_burst; j++) {
-@@ -915,7 +915,7 @@ rcu_torture_writer(void *arg)
+@@ -923,7 +923,7 @@ rcu_torture_writer(void *arg)
                        i = old_rp->rtort_pipe_count;
                        if (i > RCU_TORTURE_PIPE_LEN)
                                i = RCU_TORTURE_PIPE_LEN;
@@ -100165,7 +106727,7 @@ index 30d42aa..cac5d66 100644
                        old_rp->rtort_pipe_count++;
                        switch (synctype[torture_random(&rand) % nsynctypes]) {
                        case RTWS_DEF_FREE:
-@@ -1036,7 +1036,7 @@ static void rcu_torture_timer(unsigned long unused)
+@@ -1061,7 +1061,7 @@ static void rcu_torture_timer(unsigned long unused)
                return;
        }
        if (p->rtort_mbtest == 0)
@@ -100174,7 +106736,7 @@ index 30d42aa..cac5d66 100644
        spin_lock(&rand_lock);
        cur_ops->read_delay(&rand);
        n_rcu_torture_timers++;
-@@ -1111,7 +1111,7 @@ rcu_torture_reader(void *arg)
+@@ -1136,7 +1136,7 @@ rcu_torture_reader(void *arg)
                        continue;
                }
                if (p->rtort_mbtest == 0)
@@ -100183,7 +106745,7 @@ index 30d42aa..cac5d66 100644
                cur_ops->read_delay(&rand);
                preempt_disable();
                pipe_count = p->rtort_pipe_count;
-@@ -1180,11 +1180,11 @@ rcu_torture_stats_print(void)
+@@ -1205,11 +1205,11 @@ rcu_torture_stats_print(void)
                rcu_torture_current,
                rcu_torture_current_version,
                list_empty(&rcu_torture_freelist),
@@ -100199,7 +106761,7 @@ index 30d42aa..cac5d66 100644
                n_rcu_torture_boost_ktrerror,
                n_rcu_torture_boost_rterror);
        pr_cont("rtbf: %ld rtb: %ld nt: %ld ",
-@@ -1196,17 +1196,17 @@ rcu_torture_stats_print(void)
+@@ -1221,17 +1221,17 @@ rcu_torture_stats_print(void)
                n_barrier_successes,
                n_barrier_attempts,
                n_rcu_torture_barrier_error);
@@ -100220,7 +106782,7 @@ index 30d42aa..cac5d66 100644
                WARN_ON_ONCE(1);
        }
        pr_cont("Reader Pipe: ");
-@@ -1223,7 +1223,7 @@ rcu_torture_stats_print(void)
+@@ -1248,7 +1248,7 @@ rcu_torture_stats_print(void)
        pr_alert("%s%s ", torture_type, TORTURE_FLAG);
        pr_cont("Free-Block Circulation: ");
        for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
@@ -100229,7 +106791,7 @@ index 30d42aa..cac5d66 100644
        }
        pr_cont("\n");
  
-@@ -1570,7 +1570,7 @@ rcu_torture_cleanup(void)
+@@ -1595,7 +1595,7 @@ rcu_torture_cleanup(void)
  
        rcu_torture_stats_print();  /* -After- the stats thread is stopped! */
  
@@ -100238,7 +106800,7 @@ index 30d42aa..cac5d66 100644
                rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
        else if (torture_onoff_failures())
                rcu_torture_print_module_parms(cur_ops,
-@@ -1695,18 +1695,18 @@ rcu_torture_init(void)
+@@ -1720,18 +1720,18 @@ rcu_torture_init(void)
  
        rcu_torture_current = NULL;
        rcu_torture_current_version = 0;
@@ -100264,7 +106826,7 @@ index 30d42aa..cac5d66 100644
                for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
                        per_cpu(rcu_torture_count, cpu)[i] = 0;
 diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
-index cc9ceca..ce075a6 100644
+index ec30868..89752ff 100644
 --- a/kernel/rcu/tiny.c
 +++ b/kernel/rcu/tiny.c
 @@ -42,7 +42,7 @@
@@ -100276,7 +106838,7 @@ index cc9ceca..ce075a6 100644
  static void __call_rcu(struct rcu_head *head,
                       void (*func)(struct rcu_head *rcu),
                       struct rcu_ctrlblk *rcp);
-@@ -210,7 +210,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
+@@ -203,7 +203,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
                                      false));
  }
  
@@ -100312,10 +106874,10 @@ index f94e209..d2985bd 100644
  
  static void check_cpu_stalls(void)
 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
-index 48d640c..9401d30 100644
+index 8cf7304..953f8ad 100644
 --- a/kernel/rcu/tree.c
 +++ b/kernel/rcu/tree.c
-@@ -268,7 +268,7 @@ static void rcu_momentary_dyntick_idle(void)
+@@ -290,7 +290,7 @@ static void rcu_momentary_dyntick_idle(void)
                 */
                rdtp = this_cpu_ptr(&rcu_dynticks);
                smp_mb__before_atomic(); /* Earlier stuff before QS. */
@@ -100324,7 +106886,7 @@ index 48d640c..9401d30 100644
                smp_mb__after_atomic(); /* Later stuff after QS. */
                break;
        }
-@@ -580,9 +580,9 @@ static void rcu_eqs_enter_common(long long oldval, bool user)
+@@ -602,9 +602,9 @@ static void rcu_eqs_enter_common(long long oldval, bool user)
        rcu_prepare_for_idle();
        /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
        smp_mb__before_atomic();  /* See above. */
@@ -100336,7 +106898,7 @@ index 48d640c..9401d30 100644
        rcu_dynticks_task_enter();
  
        /*
-@@ -703,10 +703,10 @@ static void rcu_eqs_exit_common(long long oldval, int user)
+@@ -725,10 +725,10 @@ static void rcu_eqs_exit_common(long long oldval, int user)
  
        rcu_dynticks_task_exit();
        smp_mb__before_atomic();  /* Force ordering w/previous sojourn. */
@@ -100349,7 +106911,7 @@ index 48d640c..9401d30 100644
        rcu_cleanup_after_idle();
        trace_rcu_dyntick(TPS("End"), oldval, rdtp->dynticks_nesting);
        if (!user && !is_idle_task(current)) {
-@@ -840,12 +840,12 @@ void rcu_nmi_enter(void)
+@@ -862,12 +862,12 @@ void rcu_nmi_enter(void)
         * to be in the outermost NMI handler that interrupted an RCU-idle
         * period (observation due to Andy Lutomirski).
         */
@@ -100365,7 +106927,7 @@ index 48d640c..9401d30 100644
                incby = 1;
        }
        rdtp->dynticks_nmi_nesting += incby;
-@@ -870,7 +870,7 @@ void rcu_nmi_exit(void)
+@@ -892,7 +892,7 @@ void rcu_nmi_exit(void)
         * to us!)
         */
        WARN_ON_ONCE(rdtp->dynticks_nmi_nesting <= 0);
@@ -100374,7 +106936,7 @@ index 48d640c..9401d30 100644
  
        /*
         * If the nesting level is not 1, the CPU wasn't RCU-idle, so
-@@ -885,9 +885,9 @@ void rcu_nmi_exit(void)
+@@ -907,9 +907,9 @@ void rcu_nmi_exit(void)
        rdtp->dynticks_nmi_nesting = 0;
        /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
        smp_mb__before_atomic();  /* See above. */
@@ -100386,7 +106948,7 @@ index 48d640c..9401d30 100644
  }
  
  /**
-@@ -900,7 +900,7 @@ void rcu_nmi_exit(void)
+@@ -922,7 +922,7 @@ void rcu_nmi_exit(void)
   */
  bool notrace __rcu_is_watching(void)
  {
@@ -100395,7 +106957,7 @@ index 48d640c..9401d30 100644
  }
  
  /**
-@@ -983,7 +983,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)
+@@ -1005,7 +1005,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)
  static int dyntick_save_progress_counter(struct rcu_data *rdp,
                                         bool *isidle, unsigned long *maxj)
  {
@@ -100404,7 +106966,7 @@ index 48d640c..9401d30 100644
        rcu_sysidle_check_cpu(rdp, isidle, maxj);
        if ((rdp->dynticks_snap & 0x1) == 0) {
                trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("dti"));
-@@ -991,7 +991,7 @@ static int dyntick_save_progress_counter(struct rcu_data *rdp,
+@@ -1013,7 +1013,7 @@ static int dyntick_save_progress_counter(struct rcu_data *rdp,
        } else {
                if (ULONG_CMP_LT(ACCESS_ONCE(rdp->gpnum) + ULONG_MAX / 4,
                                 rdp->mynode->gpnum))
@@ -100413,7 +106975,7 @@ index 48d640c..9401d30 100644
                return 0;
        }
  }
-@@ -1009,7 +1009,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
+@@ -1031,7 +1031,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
        int *rcrmp;
        unsigned int snap;
  
@@ -100422,7 +106984,7 @@ index 48d640c..9401d30 100644
        snap = (unsigned int)rdp->dynticks_snap;
  
        /*
-@@ -1072,10 +1072,10 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
+@@ -1094,10 +1094,10 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
                         rdp->rsp->gp_start + jiffies_till_sched_qs) ||
            ULONG_CMP_GE(jiffies, rdp->rsp->jiffies_resched)) {
                if (!(ACCESS_ONCE(*rcrmp) & rdp->rsp->flavor_mask)) {
@@ -100435,7 +106997,7 @@ index 48d640c..9401d30 100644
                                ACCESS_ONCE(*rcrmp) + rdp->rsp->flavor_mask;
                        resched_cpu(rdp->cpu);  /* Force CPU into scheduler. */
                        rdp->rsp->jiffies_resched += 5; /* Enable beating. */
-@@ -1097,7 +1097,7 @@ static void record_gp_stall_check_time(struct rcu_state *rsp)
+@@ -1119,7 +1119,7 @@ static void record_gp_stall_check_time(struct rcu_state *rsp)
        rsp->gp_start = j;
        smp_wmb(); /* Record start time before stall time. */
        j1 = rcu_jiffies_till_stall_check();
@@ -100444,7 +107006,7 @@ index 48d640c..9401d30 100644
        rsp->jiffies_resched = j + j1 / 2;
        rsp->n_force_qs_gpstart = ACCESS_ONCE(rsp->n_force_qs);
  }
-@@ -1156,7 +1156,7 @@ static void print_other_cpu_stall(struct rcu_state *rsp, unsigned long gpnum)
+@@ -1178,7 +1178,7 @@ static void print_other_cpu_stall(struct rcu_state *rsp, unsigned long gpnum)
                raw_spin_unlock_irqrestore(&rnp->lock, flags);
                return;
        }
@@ -100453,7 +107015,7 @@ index 48d640c..9401d30 100644
        raw_spin_unlock_irqrestore(&rnp->lock, flags);
  
        /*
-@@ -1240,7 +1240,7 @@ static void print_cpu_stall(struct rcu_state *rsp)
+@@ -1263,7 +1263,7 @@ static void print_cpu_stall(struct rcu_state *rsp)
  
        raw_spin_lock_irqsave(&rnp->lock, flags);
        if (ULONG_CMP_GE(jiffies, ACCESS_ONCE(rsp->jiffies_stall)))
@@ -100462,7 +107024,7 @@ index 48d640c..9401d30 100644
                                     3 * rcu_jiffies_till_stall_check() + 3;
        raw_spin_unlock_irqrestore(&rnp->lock, flags);
  
-@@ -1324,7 +1324,7 @@ void rcu_cpu_stall_reset(void)
+@@ -1347,7 +1347,7 @@ void rcu_cpu_stall_reset(void)
        struct rcu_state *rsp;
  
        for_each_rcu_flavor(rsp)
@@ -100471,7 +107033,7 @@ index 48d640c..9401d30 100644
  }
  
  /*
-@@ -1671,7 +1671,7 @@ static bool __note_gp_changes(struct rcu_state *rsp, struct rcu_node *rnp,
+@@ -1704,7 +1704,7 @@ static bool __note_gp_changes(struct rcu_state *rsp, struct rcu_node *rnp,
                rdp->rcu_qs_ctr_snap = __this_cpu_read(rcu_qs_ctr);
                rdp->qs_pending = !!(rnp->qsmask & rdp->grpmask);
                zero_cpu_stall_ticks(rdp);
@@ -100480,16 +107042,16 @@ index 48d640c..9401d30 100644
        }
        return ret;
  }
-@@ -1706,7 +1706,7 @@ static int rcu_gp_init(struct rcu_state *rsp)
+@@ -1740,7 +1740,7 @@ static int rcu_gp_init(struct rcu_state *rsp)
        struct rcu_data *rdp;
        struct rcu_node *rnp = rcu_get_root(rsp);
  
 -      ACCESS_ONCE(rsp->gp_activity) = jiffies;
 +      ACCESS_ONCE_RW(rsp->gp_activity) = jiffies;
-       rcu_bind_gp_kthread();
        raw_spin_lock_irq(&rnp->lock);
        smp_mb__after_unlock_lock();
-@@ -1715,7 +1715,7 @@ static int rcu_gp_init(struct rcu_state *rsp)
+       if (!ACCESS_ONCE(rsp->gp_flags)) {
+@@ -1748,7 +1748,7 @@ static int rcu_gp_init(struct rcu_state *rsp)
                raw_spin_unlock_irq(&rnp->lock);
                return 0;
        }
@@ -100498,28 +107060,28 @@ index 48d640c..9401d30 100644
  
        if (WARN_ON_ONCE(rcu_gp_in_progress(rsp))) {
                /*
-@@ -1756,9 +1756,9 @@ static int rcu_gp_init(struct rcu_state *rsp)
+@@ -1834,9 +1834,9 @@ static int rcu_gp_init(struct rcu_state *rsp)
                rdp = this_cpu_ptr(rsp->rda);
                rcu_preempt_check_blocked_tasks(rnp);
                rnp->qsmask = rnp->qsmaskinit;
 -              ACCESS_ONCE(rnp->gpnum) = rsp->gpnum;
 +              ACCESS_ONCE_RW(rnp->gpnum) = rsp->gpnum;
-               WARN_ON_ONCE(rnp->completed != rsp->completed);
--              ACCESS_ONCE(rnp->completed) = rsp->completed;
-+              ACCESS_ONCE_RW(rnp->completed) = rsp->completed;
+               if (WARN_ON_ONCE(rnp->completed != rsp->completed))
+-                      ACCESS_ONCE(rnp->completed) = rsp->completed;
++                      ACCESS_ONCE_RW(rnp->completed) = rsp->completed;
                if (rnp == rdp->mynode)
                        (void)__note_gp_changes(rsp, rnp, rdp);
                rcu_preempt_boost_start_gp(rnp);
-@@ -1767,7 +1767,7 @@ static int rcu_gp_init(struct rcu_state *rsp)
+@@ -1845,7 +1845,7 @@ static int rcu_gp_init(struct rcu_state *rsp)
                                            rnp->grphi, rnp->qsmask);
                raw_spin_unlock_irq(&rnp->lock);
                cond_resched_rcu_qs();
 -              ACCESS_ONCE(rsp->gp_activity) = jiffies;
 +              ACCESS_ONCE_RW(rsp->gp_activity) = jiffies;
-       }
-       mutex_unlock(&rsp->onoff_mutex);
-@@ -1784,7 +1784,7 @@ static int rcu_gp_fqs(struct rcu_state *rsp, int fqs_state_in)
+               if (gp_init_delay > 0 &&
+                   !(rsp->gpnum % (rcu_num_nodes * PER_RCU_NODE_PERIOD)))
+                       schedule_timeout_uninterruptible(gp_init_delay);
+@@ -1864,7 +1864,7 @@ static int rcu_gp_fqs(struct rcu_state *rsp, int fqs_state_in)
        unsigned long maxj;
        struct rcu_node *rnp = rcu_get_root(rsp);
  
@@ -100528,7 +107090,7 @@ index 48d640c..9401d30 100644
        rsp->n_force_qs++;
        if (fqs_state == RCU_SAVE_DYNTICK) {
                /* Collect dyntick-idle snapshots. */
-@@ -1805,7 +1805,7 @@ static int rcu_gp_fqs(struct rcu_state *rsp, int fqs_state_in)
+@@ -1885,7 +1885,7 @@ static int rcu_gp_fqs(struct rcu_state *rsp, int fqs_state_in)
        if (ACCESS_ONCE(rsp->gp_flags) & RCU_GP_FLAG_FQS) {
                raw_spin_lock_irq(&rnp->lock);
                smp_mb__after_unlock_lock();
@@ -100537,7 +107099,7 @@ index 48d640c..9401d30 100644
                        ACCESS_ONCE(rsp->gp_flags) & ~RCU_GP_FLAG_FQS;
                raw_spin_unlock_irq(&rnp->lock);
        }
-@@ -1823,7 +1823,7 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
+@@ -1903,7 +1903,7 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
        struct rcu_data *rdp;
        struct rcu_node *rnp = rcu_get_root(rsp);
  
@@ -100546,16 +107108,16 @@ index 48d640c..9401d30 100644
        raw_spin_lock_irq(&rnp->lock);
        smp_mb__after_unlock_lock();
        gp_duration = jiffies - rsp->gp_start;
-@@ -1852,7 +1852,7 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
-       rcu_for_each_node_breadth_first(rsp, rnp) {
-               raw_spin_lock_irq(&rnp->lock);
+@@ -1934,7 +1934,7 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
                smp_mb__after_unlock_lock();
+               WARN_ON_ONCE(rcu_preempt_blocked_readers_cgp(rnp));
+               WARN_ON_ONCE(rnp->qsmask);
 -              ACCESS_ONCE(rnp->completed) = rsp->gpnum;
 +              ACCESS_ONCE_RW(rnp->completed) = rsp->gpnum;
                rdp = this_cpu_ptr(rsp->rda);
                if (rnp == rdp->mynode)
                        needgp = __note_gp_changes(rsp, rnp, rdp) || needgp;
-@@ -1860,7 +1860,7 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
+@@ -1942,7 +1942,7 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
                nocb += rcu_future_gp_cleanup(rsp, rnp);
                raw_spin_unlock_irq(&rnp->lock);
                cond_resched_rcu_qs();
@@ -100564,7 +107126,7 @@ index 48d640c..9401d30 100644
        }
        rnp = rcu_get_root(rsp);
        raw_spin_lock_irq(&rnp->lock);
-@@ -1868,14 +1868,14 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
+@@ -1950,14 +1950,14 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
        rcu_nocb_gp_set(rnp, nocb);
  
        /* Declare grace period done. */
@@ -100581,7 +107143,7 @@ index 48d640c..9401d30 100644
                trace_rcu_grace_period(rsp->name,
                                       ACCESS_ONCE(rsp->gpnum),
                                       TPS("newreq"));
-@@ -1910,7 +1910,7 @@ static int __noreturn rcu_gp_kthread(void *arg)
+@@ -1993,7 +1993,7 @@ static int __noreturn rcu_gp_kthread(void *arg)
                        if (rcu_gp_init(rsp))
                                break;
                        cond_resched_rcu_qs();
@@ -100590,7 +107152,7 @@ index 48d640c..9401d30 100644
                        WARN_ON(signal_pending(current));
                        trace_rcu_grace_period(rsp->name,
                                               ACCESS_ONCE(rsp->gpnum),
-@@ -1954,11 +1954,11 @@ static int __noreturn rcu_gp_kthread(void *arg)
+@@ -2037,11 +2037,11 @@ static int __noreturn rcu_gp_kthread(void *arg)
                                                       ACCESS_ONCE(rsp->gpnum),
                                                       TPS("fqsend"));
                                cond_resched_rcu_qs();
@@ -100604,7 +107166,7 @@ index 48d640c..9401d30 100644
                                WARN_ON(signal_pending(current));
                                trace_rcu_grace_period(rsp->name,
                                                       ACCESS_ONCE(rsp->gpnum),
-@@ -2003,7 +2003,7 @@ rcu_start_gp_advanced(struct rcu_state *rsp, struct rcu_node *rnp,
+@@ -2086,7 +2086,7 @@ rcu_start_gp_advanced(struct rcu_state *rsp, struct rcu_node *rnp,
                 */
                return false;
        }
@@ -100613,7 +107175,7 @@ index 48d640c..9401d30 100644
        trace_rcu_grace_period(rsp->name, ACCESS_ONCE(rsp->gpnum),
                               TPS("newreq"));
  
-@@ -2228,7 +2228,7 @@ rcu_send_cbs_to_orphanage(int cpu, struct rcu_state *rsp,
+@@ -2359,7 +2359,7 @@ rcu_send_cbs_to_orphanage(int cpu, struct rcu_state *rsp,
                rsp->qlen += rdp->qlen;
                rdp->n_cbs_orphaned += rdp->qlen;
                rdp->qlen_lazy = 0;
@@ -100622,7 +107184,7 @@ index 48d640c..9401d30 100644
        }
  
        /*
-@@ -2490,7 +2490,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
+@@ -2636,7 +2636,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
        }
        smp_mb(); /* List handling before counting for rcu_barrier(). */
        rdp->qlen_lazy -= count_lazy;
@@ -100631,7 +107193,7 @@ index 48d640c..9401d30 100644
        rdp->n_cbs_invoked += count;
  
        /* Reinstate batch limit if we have worked down the excess. */
-@@ -2647,7 +2647,7 @@ static void force_quiescent_state(struct rcu_state *rsp)
+@@ -2814,7 +2814,7 @@ static void force_quiescent_state(struct rcu_state *rsp)
                raw_spin_unlock_irqrestore(&rnp_old->lock, flags);
                return;  /* Someone beat us to it. */
        }
@@ -100640,7 +107202,7 @@ index 48d640c..9401d30 100644
                ACCESS_ONCE(rsp->gp_flags) | RCU_GP_FLAG_FQS;
        raw_spin_unlock_irqrestore(&rnp_old->lock, flags);
        rcu_gp_kthread_wake(rsp);
-@@ -2693,7 +2693,7 @@ __rcu_process_callbacks(struct rcu_state *rsp)
+@@ -2860,7 +2860,7 @@ __rcu_process_callbacks(struct rcu_state *rsp)
  /*
   * Do RCU core processing for the current CPU.
   */
@@ -100649,7 +107211,7 @@ index 48d640c..9401d30 100644
  {
        struct rcu_state *rsp;
  
-@@ -2805,7 +2805,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
+@@ -2972,7 +2972,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
        WARN_ON_ONCE((unsigned long)head & 0x1); /* Misaligned rcu_head! */
        if (debug_rcu_head_queue(head)) {
                /* Probable double call_rcu(), so leak the callback. */
@@ -100658,16 +107220,16 @@ index 48d640c..9401d30 100644
                WARN_ONCE(1, "__call_rcu(): Leaked duplicate callback\n");
                return;
        }
-@@ -2833,7 +2833,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
-               local_irq_restore(flags);
-               return;
+@@ -3011,7 +3011,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
+               if (!likely(rdp->nxtlist))
+                       init_default_callback_list(rdp);
        }
 -      ACCESS_ONCE(rdp->qlen) = rdp->qlen + 1;
 +      ACCESS_ONCE_RW(rdp->qlen) = rdp->qlen + 1;
        if (lazy)
                rdp->qlen_lazy++;
        else
-@@ -3106,11 +3106,11 @@ void synchronize_sched_expedited(void)
+@@ -3284,11 +3284,11 @@ void synchronize_sched_expedited(void)
         * counter wrap on a 32-bit system.  Quite a few more CPUs would of
         * course be required on a 64-bit system.
         */
@@ -100681,7 +107243,7 @@ index 48d640c..9401d30 100644
                return;
        }
  
-@@ -3118,12 +3118,12 @@ void synchronize_sched_expedited(void)
+@@ -3296,12 +3296,12 @@ void synchronize_sched_expedited(void)
         * Take a ticket.  Note that atomic_inc_return() implies a
         * full memory barrier.
         */
@@ -100696,7 +107258,7 @@ index 48d640c..9401d30 100644
                return;
        }
        WARN_ON_ONCE(cpu_is_offline(raw_smp_processor_id()));
-@@ -3136,7 +3136,7 @@ void synchronize_sched_expedited(void)
+@@ -3314,7 +3314,7 @@ void synchronize_sched_expedited(void)
                for_each_cpu(cpu, cm) {
                        struct rcu_dynticks *rdtp = &per_cpu(rcu_dynticks, cpu);
  
@@ -100705,7 +107267,7 @@ index 48d640c..9401d30 100644
                                cpumask_clear_cpu(cpu, cm);
                }
                if (cpumask_weight(cm) == 0)
-@@ -3151,14 +3151,14 @@ void synchronize_sched_expedited(void)
+@@ -3329,14 +3329,14 @@ void synchronize_sched_expedited(void)
                             synchronize_sched_expedited_cpu_stop,
                             NULL) == -EAGAIN) {
                put_online_cpus();
@@ -100722,7 +107284,7 @@ index 48d640c..9401d30 100644
                        free_cpumask_var(cm);
                        return;
                }
-@@ -3168,7 +3168,7 @@ void synchronize_sched_expedited(void)
+@@ -3346,7 +3346,7 @@ void synchronize_sched_expedited(void)
                        udelay(trycount * num_online_cpus());
                } else {
                        wait_rcu_gp(call_rcu_sched);
@@ -100731,7 +107293,7 @@ index 48d640c..9401d30 100644
                        free_cpumask_var(cm);
                        return;
                }
-@@ -3178,7 +3178,7 @@ void synchronize_sched_expedited(void)
+@@ -3356,7 +3356,7 @@ void synchronize_sched_expedited(void)
                if (ULONG_CMP_GE((ulong)s, (ulong)firstsnap)) {
                        /* ensure test happens before caller kfree */
                        smp_mb__before_atomic(); /* ^^^ */
@@ -100740,7 +107302,7 @@ index 48d640c..9401d30 100644
                        free_cpumask_var(cm);
                        return;
                }
-@@ -3193,14 +3193,14 @@ void synchronize_sched_expedited(void)
+@@ -3371,14 +3371,14 @@ void synchronize_sched_expedited(void)
                if (!try_get_online_cpus()) {
                        /* CPU hotplug operation in flight, use normal GP. */
                        wait_rcu_gp(call_rcu_sched);
@@ -100758,7 +107320,7 @@ index 48d640c..9401d30 100644
  
  all_cpus_idle:
        free_cpumask_var(cm);
-@@ -3212,16 +3212,16 @@ all_cpus_idle:
+@@ -3390,16 +3390,16 @@ all_cpus_idle:
         * than we did already did their update.
         */
        do {
@@ -100778,7 +107340,7 @@ index 48d640c..9401d30 100644
  
        put_online_cpus();
  }
-@@ -3431,7 +3431,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
+@@ -3609,7 +3609,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
         * ACCESS_ONCE() to prevent the compiler from speculating
         * the increment to precede the early-exit check.
         */
@@ -100787,7 +107349,7 @@ index 48d640c..9401d30 100644
        WARN_ON_ONCE((rsp->n_barrier_done & 0x1) != 1);
        _rcu_barrier_trace(rsp, "Inc1", -1, rsp->n_barrier_done);
        smp_mb(); /* Order ->n_barrier_done increment with below mechanism. */
-@@ -3487,7 +3487,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
+@@ -3665,7 +3665,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
  
        /* Increment ->n_barrier_done to prevent duplicate work. */
        smp_mb(); /* Keep increment after above mechanism. */
@@ -100796,7 +107358,7 @@ index 48d640c..9401d30 100644
        WARN_ON_ONCE((rsp->n_barrier_done & 0x1) != 0);
        _rcu_barrier_trace(rsp, "Inc2", -1, rsp->n_barrier_done);
        smp_mb(); /* Keep increment before caller's subsequent code. */
-@@ -3532,7 +3532,7 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
+@@ -3732,7 +3732,7 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
        rdp->grpmask = 1UL << (cpu - rdp->mynode->grplo);
        rdp->dynticks = &per_cpu(rcu_dynticks, cpu);
        WARN_ON_ONCE(rdp->dynticks->dynticks_nesting != DYNTICK_TASK_EXIT_IDLE);
@@ -100805,8 +107367,8 @@ index 48d640c..9401d30 100644
        rdp->cpu = cpu;
        rdp->rsp = rsp;
        rcu_boot_init_nocb_percpu_data(rdp);
-@@ -3565,8 +3565,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp)
-       init_callback_list(rdp);  /* Re-enable callbacks on this CPU. */
+@@ -3763,8 +3763,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp)
+               init_callback_list(rdp);  /* Re-enable callbacks on this CPU. */
        rdp->dynticks->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
        rcu_sysidle_init_percpu_data(rdp->dynticks);
 -      atomic_set(&rdp->dynticks->dynticks,
@@ -100815,9 +107377,9 @@ index 48d640c..9401d30 100644
 +                 (atomic_read_unchecked(&rdp->dynticks->dynticks) & ~0x1) + 1);
        raw_spin_unlock(&rnp->lock);            /* irqs remain disabled. */
  
-       /* Add CPU to rcu_node bitmasks. */
+       /*
 diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
-index 119de39..f07d31a 100644
+index a69d3da..51993c4 100644
 --- a/kernel/rcu/tree.h
 +++ b/kernel/rcu/tree.h
 @@ -86,11 +86,11 @@ struct rcu_dynticks {
@@ -100834,7 +107396,7 @@ index 119de39..f07d31a 100644
                                    /*  "Idle" excludes userspace execution. */
        unsigned long dynticks_idle_jiffies;
                                    /* End of last non-NMI non-idle period. */
-@@ -457,17 +457,17 @@ struct rcu_state {
+@@ -463,17 +463,17 @@ struct rcu_state {
                                                /*  _rcu_barrier(). */
        /* End of fields guarded by barrier_mutex. */
  
@@ -100864,10 +107426,10 @@ index 119de39..f07d31a 100644
        unsigned long jiffies_force_qs;         /* Time at which to invoke */
                                                /*  force_quiescent_state(). */
 diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
-index 0a571e9..fbfd611 100644
+index 8c0ec0f..99d52c5 100644
 --- a/kernel/rcu/tree_plugin.h
 +++ b/kernel/rcu/tree_plugin.h
-@@ -619,7 +619,7 @@ static int rcu_preempted_readers_exp(struct rcu_node *rnp)
+@@ -570,7 +570,7 @@ static int rcu_preempted_readers_exp(struct rcu_node *rnp)
  static int sync_rcu_preempt_exp_done(struct rcu_node *rnp)
  {
        return !rcu_preempted_readers_exp(rnp) &&
@@ -100885,7 +107447,7 @@ index 0a571e9..fbfd611 100644
                                        sync_rcu_preempt_exp_count + 1;
  unlock_mb_ret:
        mutex_unlock(&sync_rcu_preempt_exp_mutex);
-@@ -1290,7 +1290,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
+@@ -1286,7 +1286,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
        free_cpumask_var(cm);
  }
  
@@ -100894,7 +107456,7 @@ index 0a571e9..fbfd611 100644
        .store                  = &rcu_cpu_kthread_task,
        .thread_should_run      = rcu_cpu_kthread_should_run,
        .thread_fn              = rcu_cpu_kthread,
-@@ -1761,7 +1761,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
+@@ -1757,7 +1757,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
        print_cpu_stall_fast_no_hz(fast_no_hz, cpu);
        pr_err("\t%d: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u fqs=%ld %s\n",
               cpu, ticks_value, ticks_title,
@@ -100903,7 +107465,7 @@ index 0a571e9..fbfd611 100644
               rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting,
               rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu),
               ACCESS_ONCE(rsp->n_force_qs) - rsp->n_force_qs_gpstart,
-@@ -1906,7 +1906,7 @@ static void wake_nocb_leader(struct rcu_data *rdp, bool force)
+@@ -1902,7 +1902,7 @@ static void wake_nocb_leader(struct rcu_data *rdp, bool force)
                return;
        if (ACCESS_ONCE(rdp_leader->nocb_leader_sleep) || force) {
                /* Prior smp_mb__after_atomic() orders against prior enqueue. */
@@ -100912,7 +107474,7 @@ index 0a571e9..fbfd611 100644
                wake_up(&rdp_leader->nocb_wq);
        }
  }
-@@ -1978,7 +1978,7 @@ static void __call_rcu_nocb_enqueue(struct rcu_data *rdp,
+@@ -1975,7 +1975,7 @@ static void __call_rcu_nocb_enqueue(struct rcu_data *rdp,
        atomic_long_add(rhcount, &rdp->nocb_q_count);
        /* rcu_barrier() relies on ->nocb_q_count add before xchg. */
        old_rhpp = xchg(&rdp->nocb_tail, rhtp);
@@ -100921,7 +107483,7 @@ index 0a571e9..fbfd611 100644
        atomic_long_add(rhcount_lazy, &rdp->nocb_q_count_lazy);
        smp_mb__after_atomic(); /* Store *old_rhpp before _wake test. */
  
-@@ -2167,7 +2167,7 @@ wait_again:
+@@ -2164,7 +2164,7 @@ wait_again:
                        continue;  /* No CBs here, try next follower. */
  
                /* Move callbacks to wait-for-GP list, which is empty. */
@@ -100930,7 +107492,7 @@ index 0a571e9..fbfd611 100644
                rdp->nocb_gp_tail = xchg(&rdp->nocb_tail, &rdp->nocb_head);
                gotcbs = true;
        }
-@@ -2288,7 +2288,7 @@ static int rcu_nocb_kthread(void *arg)
+@@ -2285,7 +2285,7 @@ static int rcu_nocb_kthread(void *arg)
                list = ACCESS_ONCE(rdp->nocb_follower_head);
                BUG_ON(!list);
                trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu, "WokeNonEmpty");
@@ -100939,7 +107501,7 @@ index 0a571e9..fbfd611 100644
                tail = xchg(&rdp->nocb_follower_tail, &rdp->nocb_follower_head);
  
                /* Each pass through the following loop invokes a callback. */
-@@ -2338,7 +2338,7 @@ static void do_nocb_deferred_wakeup(struct rcu_data *rdp)
+@@ -2335,7 +2335,7 @@ static void do_nocb_deferred_wakeup(struct rcu_data *rdp)
        if (!rcu_nocb_need_deferred_wakeup(rdp))
                return;
        ndw = ACCESS_ONCE(rdp->nocb_defer_wakeup);
@@ -100948,7 +107510,7 @@ index 0a571e9..fbfd611 100644
        wake_nocb_leader(rdp, ndw == RCU_NOGP_WAKE_FORCE);
        trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu, TPS("DeferredWake"));
  }
-@@ -2461,7 +2461,7 @@ static void rcu_spawn_one_nocb_kthread(struct rcu_state *rsp, int cpu)
+@@ -2448,7 +2448,7 @@ static void rcu_spawn_one_nocb_kthread(struct rcu_state *rsp, int cpu)
        t = kthread_run(rcu_nocb_kthread, rdp_spawn,
                        "rcuo%c/%d", rsp->abbr, cpu);
        BUG_ON(IS_ERR(t));
@@ -100957,7 +107519,7 @@ index 0a571e9..fbfd611 100644
  }
  
  /*
-@@ -2666,11 +2666,11 @@ static void rcu_sysidle_enter(int irq)
+@@ -2663,11 +2663,11 @@ static void rcu_sysidle_enter(int irq)
  
        /* Record start of fully idle period. */
        j = jiffies;
@@ -100972,7 +107534,7 @@ index 0a571e9..fbfd611 100644
  }
  
  /*
-@@ -2741,9 +2741,9 @@ static void rcu_sysidle_exit(int irq)
+@@ -2738,9 +2738,9 @@ static void rcu_sysidle_exit(int irq)
  
        /* Record end of idle period. */
        smp_mb__before_atomic();
@@ -100984,8 +107546,8 @@ index 0a571e9..fbfd611 100644
  
        /*
         * If we are the timekeeping CPU, we are permitted to be non-idle
-@@ -2788,7 +2788,7 @@ static void rcu_sysidle_check_cpu(struct rcu_data *rdp, bool *isidle,
-               WARN_ON_ONCE(smp_processor_id() != tick_do_timer_cpu);
+@@ -2786,7 +2786,7 @@ static void rcu_sysidle_check_cpu(struct rcu_data *rdp, bool *isidle,
+       WARN_ON_ONCE(smp_processor_id() != tick_do_timer_cpu);
  
        /* Pick up current idle and NMI-nesting counter and check. */
 -      cur = atomic_read(&rdtp->dynticks_idle);
@@ -100993,7 +107555,7 @@ index 0a571e9..fbfd611 100644
        if (cur & 0x1) {
                *isidle = false; /* We are not idle! */
                return;
-@@ -2837,7 +2837,7 @@ static void rcu_sysidle(unsigned long j)
+@@ -2835,7 +2835,7 @@ static void rcu_sysidle(unsigned long j)
        case RCU_SYSIDLE_NOT:
  
                /* First time all are idle, so note a short idle period. */
@@ -101002,7 +107564,7 @@ index 0a571e9..fbfd611 100644
                break;
  
        case RCU_SYSIDLE_SHORT:
-@@ -2875,7 +2875,7 @@ static void rcu_sysidle_cancel(void)
+@@ -2873,7 +2873,7 @@ static void rcu_sysidle_cancel(void)
  {
        smp_mb();
        if (full_sysidle_state > RCU_SYSIDLE_SHORT)
@@ -101011,7 +107573,7 @@ index 0a571e9..fbfd611 100644
  }
  
  /*
-@@ -2927,7 +2927,7 @@ static void rcu_sysidle_cb(struct rcu_head *rhp)
+@@ -2925,7 +2925,7 @@ static void rcu_sysidle_cb(struct rcu_head *rhp)
        smp_mb();  /* grace period precedes setting inuse. */
  
        rshp = container_of(rhp, struct rcu_sysidle_head, rh);
@@ -101020,7 +107582,7 @@ index 0a571e9..fbfd611 100644
  }
  
  /*
-@@ -3080,7 +3080,7 @@ static void rcu_bind_gp_kthread(void)
+@@ -3077,7 +3077,7 @@ static void rcu_bind_gp_kthread(void)
  static void rcu_dynticks_task_enter(void)
  {
  #if defined(CONFIG_TASKS_RCU) && defined(CONFIG_NO_HZ_FULL)
@@ -101029,7 +107591,7 @@ index 0a571e9..fbfd611 100644
  #endif /* #if defined(CONFIG_TASKS_RCU) && defined(CONFIG_NO_HZ_FULL) */
  }
  
-@@ -3088,6 +3088,6 @@ static void rcu_dynticks_task_enter(void)
+@@ -3085,6 +3085,6 @@ static void rcu_dynticks_task_enter(void)
  static void rcu_dynticks_task_exit(void)
  {
  #if defined(CONFIG_TASKS_RCU) && defined(CONFIG_NO_HZ_FULL)
@@ -101038,7 +107600,7 @@ index 0a571e9..fbfd611 100644
  #endif /* #if defined(CONFIG_TASKS_RCU) && defined(CONFIG_NO_HZ_FULL) */
  }
 diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
-index fbb6240..f6c5097 100644
+index f92361e..0052f88 100644
 --- a/kernel/rcu/tree_trace.c
 +++ b/kernel/rcu/tree_trace.c
 @@ -125,7 +125,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
@@ -101079,10 +107641,10 @@ index fbb6240..f6c5097 100644
  }
  
 diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
-index e0d31a3..f4dafe3 100644
+index 1f13335..77ebb7f 100644
 --- a/kernel/rcu/update.c
 +++ b/kernel/rcu/update.c
-@@ -342,10 +342,10 @@ int rcu_jiffies_till_stall_check(void)
+@@ -396,10 +396,10 @@ int rcu_jiffies_till_stall_check(void)
         * for CONFIG_RCU_CPU_STALL_TIMEOUT.
         */
        if (till_stall_check < 3) {
@@ -101095,7 +107657,7 @@ index e0d31a3..f4dafe3 100644
                till_stall_check = 300;
        }
        return till_stall_check * HZ + RCU_STALL_DELAY_DELTA;
-@@ -501,7 +501,7 @@ static void check_holdout_task(struct task_struct *t,
+@@ -555,7 +555,7 @@ static void check_holdout_task(struct task_struct *t,
            !ACCESS_ONCE(t->on_rq) ||
            (IS_ENABLED(CONFIG_NO_HZ_FULL) &&
             !is_idle_task(t) && t->rcu_tasks_idle_cpu >= 0)) {
@@ -101104,7 +107666,7 @@ index e0d31a3..f4dafe3 100644
                list_del_init(&t->rcu_tasks_holdout_list);
                put_task_struct(t);
                return;
-@@ -589,7 +589,7 @@ static int __noreturn rcu_tasks_kthread(void *arg)
+@@ -643,7 +643,7 @@ static int __noreturn rcu_tasks_kthread(void *arg)
                            !is_idle_task(t)) {
                                get_task_struct(t);
                                t->rcu_tasks_nvcsw = ACCESS_ONCE(t->nvcsw);
@@ -101113,7 +107675,7 @@ index e0d31a3..f4dafe3 100644
                                list_add(&t->rcu_tasks_holdout_list,
                                         &rcu_tasks_holdouts);
                        }
-@@ -686,7 +686,7 @@ static void rcu_spawn_tasks_kthread(void)
+@@ -740,7 +740,7 @@ static void rcu_spawn_tasks_kthread(void)
        t = kthread_run(rcu_tasks_kthread, NULL, "rcu_tasks_kthread");
        BUG_ON(IS_ERR(t));
        smp_mb(); /* Ensure others see full kthread. */
@@ -101123,7 +107685,7 @@ index e0d31a3..f4dafe3 100644
  }
  
 diff --git a/kernel/resource.c b/kernel/resource.c
-index 19f2357..ebe7f35 100644
+index 90552aa..8c02098 100644
 --- a/kernel/resource.c
 +++ b/kernel/resource.c
 @@ -162,8 +162,18 @@ static const struct file_operations proc_iomem_operations = {
@@ -101199,10 +107761,10 @@ index 8d0f35d..c16360d 100644
                                     unsigned long timeout)
  {
 diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 3d5f6f6..a94298f 100644
+index 1236732..df281d6 100644
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -1862,7 +1862,7 @@ void set_numabalancing_state(bool enabled)
+@@ -1867,7 +1867,7 @@ void set_numabalancing_state(bool enabled)
  int sysctl_numa_balancing(struct ctl_table *table, int write,
                         void __user *buffer, size_t *lenp, loff_t *ppos)
  {
@@ -101211,7 +107773,7 @@ index 3d5f6f6..a94298f 100644
        int err;
        int state = numabalancing_enabled;
  
-@@ -2312,8 +2312,10 @@ context_switch(struct rq *rq, struct task_struct *prev,
+@@ -2317,8 +2317,10 @@ context_switch(struct rq *rq, struct task_struct *prev,
                next->active_mm = oldmm;
                atomic_inc(&oldmm->mm_count);
                enter_lazy_tlb(oldmm, next);
@@ -101223,7 +107785,7 @@ index 3d5f6f6..a94298f 100644
  
        if (!prev->mm) {
                prev->active_mm = NULL;
-@@ -3124,6 +3126,8 @@ int can_nice(const struct task_struct *p, const int nice)
+@@ -3129,6 +3131,8 @@ int can_nice(const struct task_struct *p, const int nice)
        /* convert nice value [19,-20] to rlimit style value [1,40] */
        int nice_rlim = nice_to_rlimit(nice);
  
@@ -101232,7 +107794,7 @@ index 3d5f6f6..a94298f 100644
        return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
                capable(CAP_SYS_NICE));
  }
-@@ -3150,7 +3154,8 @@ SYSCALL_DEFINE1(nice, int, increment)
+@@ -3155,7 +3159,8 @@ SYSCALL_DEFINE1(nice, int, increment)
        nice = task_nice(current) + increment;
  
        nice = clamp_val(nice, MIN_NICE, MAX_NICE);
@@ -101242,7 +107804,7 @@ index 3d5f6f6..a94298f 100644
                return -EPERM;
  
        retval = security_task_setnice(current, nice);
-@@ -3459,6 +3464,7 @@ recheck:
+@@ -3467,6 +3472,7 @@ recheck:
                        if (policy != p->policy && !rlim_rtprio)
                                return -EPERM;
  
@@ -101250,7 +107812,7 @@ index 3d5f6f6..a94298f 100644
                        /* can't increase priority */
                        if (attr->sched_priority > p->rt_priority &&
                            attr->sched_priority > rlim_rtprio)
-@@ -4946,6 +4952,7 @@ void idle_task_exit(void)
+@@ -4950,6 +4956,7 @@ void idle_task_exit(void)
  
        if (mm != &init_mm) {
                switch_mm(mm, &init_mm, current);
@@ -101258,7 +107820,7 @@ index 3d5f6f6..a94298f 100644
                finish_arch_post_lock_switch();
        }
        mmdrop(mm);
-@@ -5041,7 +5048,7 @@ static void migrate_tasks(unsigned int dead_cpu)
+@@ -5045,7 +5052,7 @@ static void migrate_tasks(unsigned int dead_cpu)
  
  #if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL)
  
@@ -101267,7 +107829,7 @@ index 3d5f6f6..a94298f 100644
        {
                .procname       = "sched_domain",
                .mode           = 0555,
-@@ -5058,17 +5065,17 @@ static struct ctl_table sd_ctl_root[] = {
+@@ -5062,17 +5069,17 @@ static struct ctl_table sd_ctl_root[] = {
        {}
  };
  
@@ -101289,7 +107851,7 @@ index 3d5f6f6..a94298f 100644
  
        /*
         * In the intermediate directories, both the child directory and
-@@ -5076,22 +5083,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
+@@ -5080,22 +5087,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
         * will always be set. In the lowest directory the names are
         * static strings and all have proc handlers.
         */
@@ -101321,7 +107883,7 @@ index 3d5f6f6..a94298f 100644
                const char *procname, void *data, int maxlen,
                umode_t mode, proc_handler *proc_handler,
                bool load_idx)
-@@ -5111,7 +5121,7 @@ set_table_entry(struct ctl_table *entry,
+@@ -5115,7 +5125,7 @@ set_table_entry(struct ctl_table *entry,
  static struct ctl_table *
  sd_alloc_ctl_domain_table(struct sched_domain *sd)
  {
@@ -101330,7 +107892,7 @@ index 3d5f6f6..a94298f 100644
  
        if (table == NULL)
                return NULL;
-@@ -5149,9 +5159,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
+@@ -5153,9 +5163,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
        return table;
  }
  
@@ -101342,7 +107904,7 @@ index 3d5f6f6..a94298f 100644
        struct sched_domain *sd;
        int domain_num = 0, i;
        char buf[32];
-@@ -5178,11 +5188,13 @@ static struct ctl_table_header *sd_sysctl_header;
+@@ -5182,11 +5192,13 @@ static struct ctl_table_header *sd_sysctl_header;
  static void register_sched_domain_sysctl(void)
  {
        int i, cpu_num = num_possible_cpus();
@@ -101357,7 +107919,7 @@ index 3d5f6f6..a94298f 100644
  
        if (entry == NULL)
                return;
-@@ -5205,8 +5217,12 @@ static void unregister_sched_domain_sysctl(void)
+@@ -5209,8 +5221,12 @@ static void unregister_sched_domain_sysctl(void)
        if (sd_sysctl_header)
                unregister_sysctl_table(sd_sysctl_header);
        sd_sysctl_header = NULL;
@@ -101373,10 +107935,10 @@ index 3d5f6f6..a94298f 100644
  #else
  static void register_sched_domain_sysctl(void)
 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index 241213b..6a64c91 100644
+index c2980e8..4737a6d 100644
 --- a/kernel/sched/fair.c
 +++ b/kernel/sched/fair.c
-@@ -2092,7 +2092,7 @@ void task_numa_fault(int last_cpupid, int mem_node, int pages, int flags)
+@@ -2107,7 +2107,7 @@ void task_numa_fault(int last_cpupid, int mem_node, int pages, int flags)
  
  static void reset_ptenuma_scan(struct task_struct *p)
  {
@@ -101385,7 +107947,7 @@ index 241213b..6a64c91 100644
        p->mm->numa_scan_offset = 0;
  }
  
-@@ -7656,7 +7656,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { }
+@@ -7753,7 +7753,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { }
   * run_rebalance_domains is triggered when needed from the scheduler tick.
   * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
   */
@@ -101395,10 +107957,10 @@ index 241213b..6a64c91 100644
        struct rq *this_rq = this_rq();
        enum cpu_idle_type idle = this_rq->idle_balance ?
 diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
-index dc0f435..ae2e085 100644
+index e0e1299..e1e896b 100644
 --- a/kernel/sched/sched.h
 +++ b/kernel/sched/sched.h
-@@ -1200,7 +1200,7 @@ struct sched_class {
+@@ -1219,7 +1219,7 @@ struct sched_class {
  #ifdef CONFIG_FAIR_GROUP_SCHED
        void (*task_move_group) (struct task_struct *p, int on_rq);
  #endif
@@ -101408,7 +107970,7 @@ index dc0f435..ae2e085 100644
  static inline void put_prev_task(struct rq *rq, struct task_struct *prev)
  {
 diff --git a/kernel/signal.c b/kernel/signal.c
-index a390499..ebe9a21 100644
+index d51c5dd..065c4c8 100644
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
 @@ -53,12 +53,12 @@ static struct kmem_cache *sigqueue_cachep;
@@ -101534,7 +108096,7 @@ index a390499..ebe9a21 100644
        if (p && (tgid <= 0 || task_tgid_vnr(p) == tgid)) {
                error = check_kill_permission(sig, info, p);
                /*
-@@ -3248,8 +3279,8 @@ COMPAT_SYSCALL_DEFINE2(sigaltstack,
+@@ -3244,8 +3275,8 @@ COMPAT_SYSCALL_DEFINE2(sigaltstack,
        }
        seg = get_fs();
        set_fs(KERNEL_DS);
@@ -101546,10 +108108,10 @@ index a390499..ebe9a21 100644
        set_fs(seg);
        if (ret >= 0 && uoss_ptr)  {
 diff --git a/kernel/smpboot.c b/kernel/smpboot.c
-index 40190f2..8861d40 100644
+index c697f73..4ef1c25 100644
 --- a/kernel/smpboot.c
 +++ b/kernel/smpboot.c
-@@ -290,7 +290,7 @@ int smpboot_register_percpu_thread(struct smp_hotplug_thread *plug_thread)
+@@ -291,7 +291,7 @@ int smpboot_register_percpu_thread(struct smp_hotplug_thread *plug_thread)
                }
                smpboot_unpark_thread(plug_thread, cpu);
        }
@@ -101558,7 +108120,7 @@ index 40190f2..8861d40 100644
  out:
        mutex_unlock(&smpboot_threads_lock);
        put_online_cpus();
-@@ -308,7 +308,7 @@ void smpboot_unregister_percpu_thread(struct smp_hotplug_thread *plug_thread)
+@@ -309,7 +309,7 @@ void smpboot_unregister_percpu_thread(struct smp_hotplug_thread *plug_thread)
  {
        get_online_cpus();
        mutex_lock(&smpboot_threads_lock);
@@ -101626,7 +108188,7 @@ index 479e443..66d845e1 100644
        .thread_should_run      = ksoftirqd_should_run,
        .thread_fn              = run_ksoftirqd,
 diff --git a/kernel/sys.c b/kernel/sys.c
-index a03d9cd..55dbe9c 100644
+index a4e372b..766810e 100644
 --- a/kernel/sys.c
 +++ b/kernel/sys.c
 @@ -160,6 +160,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
@@ -101642,7 +108204,7 @@ index a03d9cd..55dbe9c 100644
        no_nice = security_task_setnice(p, niceval);
        if (no_nice) {
                error = no_nice;
-@@ -365,6 +371,20 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
+@@ -366,6 +372,20 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
                        goto error;
        }
  
@@ -101663,7 +108225,7 @@ index a03d9cd..55dbe9c 100644
        if (rgid != (gid_t) -1 ||
            (egid != (gid_t) -1 && !gid_eq(kegid, old->gid)))
                new->sgid = new->egid;
-@@ -400,6 +420,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
+@@ -401,6 +421,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
        old = current_cred();
  
        retval = -EPERM;
@@ -101674,7 +108236,7 @@ index a03d9cd..55dbe9c 100644
        if (ns_capable(old->user_ns, CAP_SETGID))
                new->gid = new->egid = new->sgid = new->fsgid = kgid;
        else if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->sgid))
-@@ -417,7 +441,7 @@ error:
+@@ -418,7 +442,7 @@ error:
  /*
   * change the user struct in a credentials set to match the new UID
   */
@@ -101683,7 +108245,7 @@ index a03d9cd..55dbe9c 100644
  {
        struct user_struct *new_user;
  
-@@ -497,7 +521,18 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
+@@ -498,7 +522,18 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
                        goto error;
        }
  
@@ -101702,7 +108264,7 @@ index a03d9cd..55dbe9c 100644
                retval = set_user(new);
                if (retval < 0)
                        goto error;
-@@ -547,6 +582,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
+@@ -548,6 +583,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
        old = current_cred();
  
        retval = -EPERM;
@@ -101715,7 +108277,7 @@ index a03d9cd..55dbe9c 100644
        if (ns_capable(old->user_ns, CAP_SETUID)) {
                new->suid = new->uid = kuid;
                if (!uid_eq(kuid, old->uid)) {
-@@ -616,6 +657,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
+@@ -617,6 +658,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
                        goto error;
        }
  
@@ -101725,7 +108287,7 @@ index a03d9cd..55dbe9c 100644
        if (ruid != (uid_t) -1) {
                new->uid = kruid;
                if (!uid_eq(kruid, old->uid)) {
-@@ -700,6 +744,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
+@@ -701,6 +745,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
                        goto error;
        }
  
@@ -101735,7 +108297,7 @@ index a03d9cd..55dbe9c 100644
        if (rgid != (gid_t) -1)
                new->gid = krgid;
        if (egid != (gid_t) -1)
-@@ -764,12 +811,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
+@@ -765,12 +812,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
            uid_eq(kuid, old->suid) || uid_eq(kuid, old->fsuid) ||
            ns_capable(old->user_ns, CAP_SETUID)) {
                if (!uid_eq(kuid, old->fsuid)) {
@@ -101752,7 +108314,7 @@ index a03d9cd..55dbe9c 100644
        abort_creds(new);
        return old_fsuid;
  
-@@ -802,12 +853,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
+@@ -803,12 +854,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
        if (gid_eq(kgid, old->gid)  || gid_eq(kgid, old->egid)  ||
            gid_eq(kgid, old->sgid) || gid_eq(kgid, old->fsgid) ||
            ns_capable(old->user_ns, CAP_SETGID)) {
@@ -101769,7 +108331,7 @@ index a03d9cd..55dbe9c 100644
        abort_creds(new);
        return old_fsgid;
  
-@@ -1185,19 +1240,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
+@@ -1187,19 +1242,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
                return -EFAULT;
  
        down_read(&uts_sem);
@@ -101794,7 +108356,7 @@ index a03d9cd..55dbe9c 100644
                                __OLD_UTS_LEN);
        error |= __put_user(0, name->machine + __OLD_UTS_LEN);
        up_read(&uts_sem);
-@@ -1398,6 +1453,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
+@@ -1400,6 +1455,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
                         */
                        new_rlim->rlim_cur = 1;
                }
@@ -101809,18 +108371,22 @@ index a03d9cd..55dbe9c 100644
        if (!retval) {
                if (old_rlim)
 diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index ce410bb..cd276f0 100644
+index c3eee4c..586e4a0 100644
 --- a/kernel/sysctl.c
 +++ b/kernel/sysctl.c
 @@ -94,7 +94,6 @@
+ #endif
  
  #if defined(CONFIG_SYSCTL)
 -
  /* External variables not in a header file. */
- extern int max_threads;
  extern int suid_dumpable;
-@@ -115,19 +114,20 @@ extern int sysctl_nr_trim_pages;
+ #ifdef CONFIG_COREDUMP
+@@ -111,22 +110,24 @@ extern int sysctl_nr_open_min, sysctl_nr_open_max;
+ #ifndef CONFIG_MMU
+ extern int sysctl_nr_trim_pages;
+ #endif
++extern int sysctl_modify_ldt;
  
  /* Constants used for minimum and  maximum */
  #ifdef CONFIG_LOCKUP_DETECTOR
@@ -101850,18 +108416,19 @@ index ce410bb..cd276f0 100644
  #endif
  
  /* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
-@@ -181,10 +181,8 @@ static int proc_taint(struct ctl_table *table, int write,
+@@ -180,10 +181,8 @@ static int proc_taint(struct ctl_table *table, int write,
                               void __user *buffer, size_t *lenp, loff_t *ppos);
  #endif
  
 -#ifdef CONFIG_PRINTK
- static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
+-static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
++static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
                                void __user *buffer, size_t *lenp, loff_t *ppos);
 -#endif
  
  static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
                void __user *buffer, size_t *lenp, loff_t *ppos);
-@@ -215,6 +213,8 @@ static int sysrq_sysctl_handler(struct ctl_table *table, int write,
+@@ -214,6 +213,8 @@ static int sysrq_sysctl_handler(struct ctl_table *table, int write,
  
  #endif
  
@@ -101870,7 +108437,7 @@ index ce410bb..cd276f0 100644
  static struct ctl_table kern_table[];
  static struct ctl_table vm_table[];
  static struct ctl_table fs_table[];
-@@ -229,6 +229,20 @@ extern struct ctl_table epoll_table[];
+@@ -228,6 +229,20 @@ extern struct ctl_table epoll_table[];
  int sysctl_legacy_va_layout;
  #endif
  
@@ -101891,7 +108458,7 @@ index ce410bb..cd276f0 100644
  /* The default sysctl tables: */
  
  static struct ctl_table sysctl_base_table[] = {
-@@ -277,6 +291,22 @@ static int max_extfrag_threshold = 1000;
+@@ -276,6 +291,22 @@ static int max_extfrag_threshold = 1000;
  #endif
  
  static struct ctl_table kern_table[] = {
@@ -101914,7 +108481,16 @@ index ce410bb..cd276f0 100644
        {
                .procname       = "sched_child_runs_first",
                .data           = &sysctl_sched_child_runs_first,
-@@ -649,7 +679,7 @@ static struct ctl_table kern_table[] = {
+@@ -637,7 +668,7 @@ static struct ctl_table kern_table[] = {
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               /* only handle a transition from default "0" to "1" */
+-              .proc_handler   = proc_dointvec_minmax,
++              .proc_handler   = proc_dointvec_minmax_secure,
+               .extra1         = &one,
+               .extra2         = &one,
+       },
+@@ -648,7 +679,7 @@ static struct ctl_table kern_table[] = {
                .data           = &modprobe_path,
                .maxlen         = KMOD_PATH_LEN,
                .mode           = 0644,
@@ -101923,7 +108499,21 @@ index ce410bb..cd276f0 100644
        },
        {
                .procname       = "modules_disabled",
-@@ -816,16 +846,20 @@ static struct ctl_table kern_table[] = {
+@@ -656,7 +687,7 @@ static struct ctl_table kern_table[] = {
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               /* only handle a transition from default "0" to "1" */
+-              .proc_handler   = proc_dointvec_minmax,
++              .proc_handler   = proc_dointvec_minmax_secure,
+               .extra1         = &one,
+               .extra2         = &one,
+       },
+@@ -811,20 +842,24 @@ static struct ctl_table kern_table[] = {
+               .data           = &dmesg_restrict,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+-              .proc_handler   = proc_dointvec_minmax_sysadmin,
++              .proc_handler   = proc_dointvec_minmax_secure_sysadmin,
                .extra1         = &zero,
                .extra2         = &one,
        },
@@ -101933,7 +108523,8 @@ index ce410bb..cd276f0 100644
                .data           = &kptr_restrict,
                .maxlen         = sizeof(int),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec_minmax_sysadmin,
+-              .proc_handler   = proc_dointvec_minmax_sysadmin,
++              .proc_handler   = proc_dointvec_minmax_secure_sysadmin,
 +#ifdef CONFIG_GRKERNSEC_HIDESYM
 +              .extra1         = &two,
 +#else
@@ -101945,7 +108536,23 @@ index ce410bb..cd276f0 100644
        {
                .procname       = "ngroups_max",
                .data           = &ngroups_max,
-@@ -1072,10 +1106,17 @@ static struct ctl_table kern_table[] = {
+@@ -962,6 +997,15 @@ static struct ctl_table kern_table[] = {
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec,
+       },
++      {
++              .procname       = "modify_ldt",
++              .data           = &sysctl_modify_ldt,
++              .maxlen         = sizeof(int),
++              .mode           = 0644,
++              .proc_handler   = proc_dointvec_minmax_secure_sysadmin,
++              .extra1         = &zero,
++              .extra2         = &one,
++      },
+ #endif
+ #if defined(CONFIG_MMU)
+       {
+@@ -1084,10 +1128,17 @@ static struct ctl_table kern_table[] = {
         */
        {
                .procname       = "perf_event_paranoid",
@@ -101956,7 +108563,7 @@ index ce410bb..cd276f0 100644
                .mode           = 0644,
 -              .proc_handler   = proc_dointvec,
 +              /* go ahead, be a hero */
-+              .proc_handler   = proc_dointvec_minmax_sysadmin,
++              .proc_handler   = proc_dointvec_minmax_secure_sysadmin,
 +              .extra1         = &neg_one,
 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
 +              .extra2         = &three,
@@ -101966,7 +108573,7 @@ index ce410bb..cd276f0 100644
        },
        {
                .procname       = "perf_event_mlock_kb",
-@@ -1348,6 +1389,13 @@ static struct ctl_table vm_table[] = {
+@@ -1369,6 +1420,13 @@ static struct ctl_table vm_table[] = {
                .proc_handler   = proc_dointvec_minmax,
                .extra1         = &zero,
        },
@@ -101980,7 +108587,7 @@ index ce410bb..cd276f0 100644
  #else
        {
                .procname       = "nr_trim_pages",
-@@ -1830,6 +1878,16 @@ int proc_dostring(struct ctl_table *table, int write,
+@@ -1845,6 +1903,16 @@ int proc_dostring(struct ctl_table *table, int write,
                               (char __user *)buffer, lenp, ppos);
  }
  
@@ -101997,7 +108604,7 @@ index ce410bb..cd276f0 100644
  static size_t proc_skip_spaces(char **buf)
  {
        size_t ret;
-@@ -1935,6 +1993,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
+@@ -1950,6 +2018,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
        len = strlen(tmp);
        if (len > *size)
                len = *size;
@@ -102006,7 +108613,52 @@ index ce410bb..cd276f0 100644
        if (copy_to_user(*buf, tmp, len))
                return -EFAULT;
        *size -= len;
-@@ -2112,7 +2172,7 @@ int proc_dointvec(struct ctl_table *table, int write,
+@@ -2128,6 +2198,44 @@ int proc_dointvec(struct ctl_table *table, int write,
+                           NULL,NULL);
+ }
++static int do_proc_dointvec_conv_secure(bool *negp, unsigned long *lvalp,
++                               int *valp,
++                               int write, void *data)
++{
++      if (write) {
++              if (*negp) {
++                      if (*lvalp > (unsigned long) INT_MAX + 1)
++                              return -EINVAL;
++                      pax_open_kernel();
++                      *valp = -*lvalp;
++                      pax_close_kernel();
++              } else {
++                      if (*lvalp > (unsigned long) INT_MAX)
++                              return -EINVAL;
++                      pax_open_kernel();
++                      *valp = *lvalp;
++                      pax_close_kernel();
++              }
++      } else {
++              int val = *valp;
++              if (val < 0) {
++                      *negp = true;
++                      *lvalp = (unsigned long)-val;
++              } else {
++                      *negp = false;
++                      *lvalp = (unsigned long)val;
++              }
++      }
++      return 0;
++}
++
++int proc_dointvec_secure(struct ctl_table *table, int write,
++                   void __user *buffer, size_t *lenp, loff_t *ppos)
++{
++    return do_proc_dointvec(table,write,buffer,lenp,ppos,
++                          do_proc_dointvec_conv_secure,NULL);
++}
++
+ /*
+  * Taint values can only be increased
+  * This means we can safely use a temporary.
+@@ -2135,7 +2243,7 @@ int proc_dointvec(struct ctl_table *table, int write,
  static int proc_taint(struct ctl_table *table, int write,
                               void __user *buffer, size_t *lenp, loff_t *ppos)
  {
@@ -102015,23 +108667,77 @@ index ce410bb..cd276f0 100644
        unsigned long tmptaint = get_taint();
        int err;
  
-@@ -2140,7 +2200,6 @@ static int proc_taint(struct ctl_table *table, int write,
+@@ -2163,16 +2271,14 @@ static int proc_taint(struct ctl_table *table, int write,
        return err;
  }
  
 -#ifdef CONFIG_PRINTK
- static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
+-static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
++static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
                                void __user *buffer, size_t *lenp, loff_t *ppos)
  {
-@@ -2149,7 +2208,6 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
+       if (write && !capable(CAP_SYS_ADMIN))
+               return -EPERM;
  
-       return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
+-      return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
++      return proc_dointvec_minmax_secure(table, write, buffer, lenp, ppos);
  }
 -#endif
  
  struct do_proc_dointvec_minmax_conv_param {
        int *min;
-@@ -2709,6 +2767,12 @@ int proc_dostring(struct ctl_table *table, int write,
+@@ -2203,6 +2309,32 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp,
+       return 0;
+ }
++static int do_proc_dointvec_minmax_conv_secure(bool *negp, unsigned long *lvalp,
++                                      int *valp,
++                                      int write, void *data)
++{
++      struct do_proc_dointvec_minmax_conv_param *param = data;
++      if (write) {
++              int val = *negp ? -*lvalp : *lvalp;
++              if ((param->min && *param->min > val) ||
++                  (param->max && *param->max < val))
++                      return -EINVAL;
++              pax_open_kernel();
++              *valp = val;
++              pax_close_kernel();
++      } else {
++              int val = *valp;
++              if (val < 0) {
++                      *negp = true;
++                      *lvalp = (unsigned long)-val;
++              } else {
++                      *negp = false;
++                      *lvalp = (unsigned long)val;
++              }
++      }
++      return 0;
++}
++
+ /**
+  * proc_dointvec_minmax - read a vector of integers with min/max values
+  * @table: the sysctl table
+@@ -2230,6 +2362,17 @@ int proc_dointvec_minmax(struct ctl_table *table, int write,
+                               do_proc_dointvec_minmax_conv, &param);
+ }
++int proc_dointvec_minmax_secure(struct ctl_table *table, int write,
++                void __user *buffer, size_t *lenp, loff_t *ppos)
++{
++      struct do_proc_dointvec_minmax_conv_param param = {
++              .min = (int *) table->extra1,
++              .max = (int *) table->extra2,
++      };
++      return do_proc_dointvec(table, write, buffer, lenp, ppos,
++                              do_proc_dointvec_minmax_conv_secure, &param);
++}
++
+ static void validate_coredump_safety(void)
+ {
+ #ifdef CONFIG_COREDUMP
+@@ -2732,6 +2875,12 @@ int proc_dostring(struct ctl_table *table, int write,
        return -ENOSYS;
  }
  
@@ -102044,7 +108750,7 @@ index ce410bb..cd276f0 100644
  int proc_dointvec(struct ctl_table *table, int write,
                  void __user *buffer, size_t *lenp, loff_t *ppos)
  {
-@@ -2765,5 +2829,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
+@@ -2788,5 +2937,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
  EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
  EXPORT_SYMBOL(proc_dointvec_ms_jiffies);
  EXPORT_SYMBOL(proc_dostring);
@@ -102092,10 +108798,10 @@ index 1b001ed..55ef9e4 100644
                .clock_get      = alarm_clock_get,
                .timer_create   = alarm_timer_create,
 diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index bee0c1f..a23fe2d 100644
+index 93ef7190..7c85701 100644
 --- a/kernel/time/hrtimer.c
 +++ b/kernel/time/hrtimer.c
-@@ -1391,7 +1391,7 @@ void hrtimer_peek_ahead_timers(void)
+@@ -1393,7 +1393,7 @@ void hrtimer_peek_ahead_timers(void)
        local_irq_restore(flags);
  }
  
@@ -102258,7 +108964,7 @@ index 2c85b77..6530536 100644
                update_vsyscall_tz();
                if (firsttime) {
 diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 91db941..a371671 100644
+index 946acb7..1e13c0f 100644
 --- a/kernel/time/timekeeping.c
 +++ b/kernel/time/timekeeping.c
 @@ -15,6 +15,7 @@
@@ -102269,7 +108975,7 @@ index 91db941..a371671 100644
  #include <linux/syscore_ops.h>
  #include <linux/clocksource.h>
  #include <linux/jiffies.h>
-@@ -802,6 +803,8 @@ int do_settimeofday64(const struct timespec64 *ts)
+@@ -915,6 +916,8 @@ int do_settimeofday64(const struct timespec64 *ts)
        if (!timespec64_valid_strict(ts))
                return -EINVAL;
  
@@ -102279,10 +108985,10 @@ index 91db941..a371671 100644
        write_seqcount_begin(&tk_core.seq);
  
 diff --git a/kernel/time/timer.c b/kernel/time/timer.c
-index 2d3f5c5..7ed7dc5 100644
+index 2ece3aa..055a295 100644
 --- a/kernel/time/timer.c
 +++ b/kernel/time/timer.c
-@@ -1393,7 +1393,7 @@ void update_process_times(int user_tick)
+@@ -1405,7 +1405,7 @@ void update_process_times(int user_tick)
  /*
   * This function runs timers and the timer-tq in bottom half context.
   */
@@ -102291,7 +108997,7 @@ index 2d3f5c5..7ed7dc5 100644
  {
        struct tvec_base *base = __this_cpu_read(tvec_bases);
  
-@@ -1456,7 +1456,7 @@ static void process_timeout(unsigned long __data)
+@@ -1468,7 +1468,7 @@ static void process_timeout(unsigned long __data)
   *
   * In all cases the return value is guaranteed to be non-negative.
   */
@@ -102301,7 +109007,7 @@ index 2d3f5c5..7ed7dc5 100644
        struct timer_list timer;
        unsigned long expire;
 diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
-index 61ed862..3b52c65 100644
+index e878c2e..cf1546bb 100644
 --- a/kernel/time/timer_list.c
 +++ b/kernel/time/timer_list.c
 @@ -45,12 +45,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases);
@@ -102333,7 +109039,7 @@ index 61ed862..3b52c65 100644
        SEQ_printf(m, "  .index:      %d\n",
                        base->index);
        SEQ_printf(m, "  .resolution: %Lu nsecs\n",
-@@ -362,7 +370,11 @@ static int __init init_timer_list_procfs(void)
+@@ -388,7 +396,11 @@ static int __init init_timer_list_procfs(void)
  {
        struct proc_dir_entry *pe;
  
@@ -102489,10 +109195,10 @@ index 483cecf..ac46091 100644
  
        ret = -EIO;
 diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
-index 4f22802..bd268b1 100644
+index 02bece4..f9b05af 100644
 --- a/kernel/trace/ftrace.c
 +++ b/kernel/trace/ftrace.c
-@@ -2382,12 +2382,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
+@@ -2395,12 +2395,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
        if (unlikely(ftrace_disabled))
                return 0;
  
@@ -102512,7 +109218,7 @@ index 4f22802..bd268b1 100644
  }
  
  /*
-@@ -4776,8 +4781,10 @@ static int ftrace_process_locs(struct module *mod,
+@@ -4789,8 +4794,10 @@ static int ftrace_process_locs(struct module *mod,
        if (!count)
                return 0;
  
@@ -102523,7 +109229,7 @@ index 4f22802..bd268b1 100644
  
        start_pg = ftrace_allocate_pages(count);
        if (!start_pg)
-@@ -5653,7 +5660,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
+@@ -5659,7 +5666,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
  
                if (t->ret_stack == NULL) {
                        atomic_set(&t->tracing_graph_pause, 0);
@@ -102532,7 +109238,7 @@ index 4f22802..bd268b1 100644
                        t->curr_ret_stack = -1;
                        /* Make sure the tasks see the -1 first: */
                        smp_wmb();
-@@ -5876,7 +5883,7 @@ static void
+@@ -5882,7 +5889,7 @@ static void
  graph_init_task(struct task_struct *t, struct ftrace_ret_stack *ret_stack)
  {
        atomic_set(&t->tracing_graph_pause, 0);
@@ -102542,7 +109248,7 @@ index 4f22802..bd268b1 100644
        /* make curr_ret_stack visible before we add the ret_stack */
        smp_wmb();
 diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
-index 922048a..bb71a55 100644
+index 0315d43..2e5e9a2 100644
 --- a/kernel/trace/ring_buffer.c
 +++ b/kernel/trace/ring_buffer.c
 @@ -348,9 +348,9 @@ struct buffer_data_page {
@@ -102754,7 +109460,7 @@ index 922048a..bb71a55 100644
                return NULL;
        }
  #endif
-@@ -2901,7 +2901,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
+@@ -2898,7 +2898,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
  
        /* Do the likely case first */
        if (likely(bpage->page == (void *)addr)) {
@@ -102763,7 +109469,7 @@ index 922048a..bb71a55 100644
                return;
        }
  
-@@ -2913,7 +2913,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
+@@ -2910,7 +2910,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
        start = bpage;
        do {
                if (bpage->page == (void *)addr) {
@@ -102772,7 +109478,7 @@ index 922048a..bb71a55 100644
                        return;
                }
                rb_inc_page(cpu_buffer, &bpage);
-@@ -3197,7 +3197,7 @@ static inline unsigned long
+@@ -3194,7 +3194,7 @@ static inline unsigned long
  rb_num_of_entries(struct ring_buffer_per_cpu *cpu_buffer)
  {
        return local_read(&cpu_buffer->entries) -
@@ -102781,7 +109487,7 @@ index 922048a..bb71a55 100644
  }
  
  /**
-@@ -3286,7 +3286,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu)
+@@ -3283,7 +3283,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu)
                return 0;
  
        cpu_buffer = buffer->buffers[cpu];
@@ -102790,7 +109496,7 @@ index 922048a..bb71a55 100644
  
        return ret;
  }
-@@ -3309,7 +3309,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu)
+@@ -3306,7 +3306,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu)
                return 0;
  
        cpu_buffer = buffer->buffers[cpu];
@@ -102799,7 +109505,7 @@ index 922048a..bb71a55 100644
  
        return ret;
  }
-@@ -3331,7 +3331,7 @@ ring_buffer_dropped_events_cpu(struct ring_buffer *buffer, int cpu)
+@@ -3328,7 +3328,7 @@ ring_buffer_dropped_events_cpu(struct ring_buffer *buffer, int cpu)
                return 0;
  
        cpu_buffer = buffer->buffers[cpu];
@@ -102808,7 +109514,7 @@ index 922048a..bb71a55 100644
  
        return ret;
  }
-@@ -3394,7 +3394,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer)
+@@ -3391,7 +3391,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer)
        /* if you care about this being correct, lock the buffer */
        for_each_buffer_cpu(buffer, cpu) {
                cpu_buffer = buffer->buffers[cpu];
@@ -102817,7 +109523,7 @@ index 922048a..bb71a55 100644
        }
  
        return overruns;
-@@ -3565,8 +3565,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
+@@ -3562,8 +3562,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
        /*
         * Reset the reader page to size zero.
         */
@@ -102828,7 +109534,7 @@ index 922048a..bb71a55 100644
        local_set(&cpu_buffer->reader_page->page->commit, 0);
        cpu_buffer->reader_page->real_end = 0;
  
-@@ -3600,7 +3600,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
+@@ -3597,7 +3597,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
         * want to compare with the last_overrun.
         */
        smp_mb();
@@ -102837,7 +109543,7 @@ index 922048a..bb71a55 100644
  
        /*
         * Here's the tricky part.
-@@ -4172,8 +4172,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
+@@ -4169,8 +4169,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
  
        cpu_buffer->head_page
                = list_entry(cpu_buffer->pages, struct buffer_page, list);
@@ -102848,7 +109554,7 @@ index 922048a..bb71a55 100644
        local_set(&cpu_buffer->head_page->page->commit, 0);
  
        cpu_buffer->head_page->read = 0;
-@@ -4183,18 +4183,18 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
+@@ -4180,18 +4180,18 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
  
        INIT_LIST_HEAD(&cpu_buffer->reader_page->list);
        INIT_LIST_HEAD(&cpu_buffer->new_pages);
@@ -102873,7 +109579,7 @@ index 922048a..bb71a55 100644
        cpu_buffer->read = 0;
        cpu_buffer->read_bytes = 0;
  
-@@ -4595,8 +4595,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
+@@ -4592,8 +4592,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
                rb_init_page(bpage);
                bpage = reader->page;
                reader->page = *data_page;
@@ -102885,10 +109591,10 @@ index 922048a..bb71a55 100644
                *data_page = bpage;
  
 diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 62c6506..5c25989 100644
+index 0533049..85e27f0 100644
 --- a/kernel/trace/trace.c
 +++ b/kernel/trace/trace.c
-@@ -3500,7 +3500,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
+@@ -3538,7 +3538,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
        return 0;
  }
  
@@ -102898,7 +109604,7 @@ index 62c6506..5c25989 100644
        /* do nothing if flag is already set */
        if (!!(trace_flags & mask) == !!enabled)
 diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
-index dd8205a..1aae87a 100644
+index d261201..da10429 100644
 --- a/kernel/trace/trace.h
 +++ b/kernel/trace/trace.h
 @@ -1271,7 +1271,7 @@ extern const char *__stop___tracepoint_str[];
@@ -102931,10 +109637,10 @@ index 57b67b1..66082a9 100644
 +      return atomic64_inc_return_unchecked(&trace_counter);
  }
 diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
-index a9c10a3..1864f6b 100644
+index c4de47f..5f134b8 100644
 --- a/kernel/trace/trace_events.c
 +++ b/kernel/trace/trace_events.c
-@@ -1762,7 +1762,6 @@ __trace_early_add_new_event(struct ftrace_event_call *call,
+@@ -1887,7 +1887,6 @@ __trace_early_add_new_event(struct ftrace_event_call *call,
        return 0;
  }
  
@@ -102942,11 +109648,35 @@ index a9c10a3..1864f6b 100644
  static void __add_event_to_tracers(struct ftrace_event_call *call);
  
  /* Add an additional event_call dynamically */
+diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
+index 7f2e97c..085a257 100644
+--- a/kernel/trace/trace_events_filter.c
++++ b/kernel/trace/trace_events_filter.c
+@@ -1056,6 +1056,9 @@ static void parse_init(struct filter_parse_state *ps,
+ static char infix_next(struct filter_parse_state *ps)
+ {
++      if (!ps->infix.cnt)
++              return 0;
++
+       ps->infix.cnt--;
+       return ps->infix.string[ps->infix.tail++];
+@@ -1071,6 +1074,9 @@ static char infix_peek(struct filter_parse_state *ps)
+ static void infix_advance(struct filter_parse_state *ps)
+ {
++      if (!ps->infix.cnt)
++              return;
++
+       ps->infix.cnt--;
+       ps->infix.tail++;
+ }
 diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
-index b6fce36..d9f11a3 100644
+index a51e796..1f32ebd 100644
 --- a/kernel/trace/trace_functions_graph.c
 +++ b/kernel/trace/trace_functions_graph.c
-@@ -133,7 +133,7 @@ ftrace_push_return_trace(unsigned long ret, unsigned long func, int *depth,
+@@ -132,7 +132,7 @@ ftrace_push_return_trace(unsigned long ret, unsigned long func, int *depth,
  
        /* The return trace stack is full */
        if (current->curr_ret_stack == FTRACE_RETFUNC_DEPTH - 1) {
@@ -102955,7 +109685,7 @@ index b6fce36..d9f11a3 100644
                return -EBUSY;
        }
  
-@@ -230,7 +230,7 @@ ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret,
+@@ -229,7 +229,7 @@ ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret,
        *ret = current->ret_stack[index].ret;
        trace->func = current->ret_stack[index].func;
        trace->calltime = current->ret_stack[index].calltime;
@@ -103005,10 +109735,10 @@ index 7a9ba62..2e0e4a1 100644
        }
        entry   = ring_buffer_event_data(event);
 diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
-index 692bf71..6d9a9cd 100644
+index 25a086b..a918131 100644
 --- a/kernel/trace/trace_output.c
 +++ b/kernel/trace/trace_output.c
-@@ -751,14 +751,16 @@ int register_ftrace_event(struct trace_event *event)
+@@ -752,14 +752,16 @@ int register_ftrace_event(struct trace_event *event)
                        goto out;
        }
  
@@ -103043,7 +109773,7 @@ index e694c9f..6775a38 100644
        if (unlikely(seq_buf_has_overflowed(&s->seq))) {
                s->seq.len = save_len;
 diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
-index c3e4fcf..ef6cc43 100644
+index 3f34496..0492d95 100644
 --- a/kernel/trace/trace_stack.c
 +++ b/kernel/trace/trace_stack.c
 @@ -88,7 +88,7 @@ check_stack(unsigned long ip, unsigned long *stack)
@@ -103144,11 +109874,11 @@ index c8eac43..4b5f08f 100644
        memcpy(&uts_table, table, sizeof(uts_table));
        uts_table.data = get_uts(table, write);
 diff --git a/kernel/watchdog.c b/kernel/watchdog.c
-index 3174bf8..3553520 100644
+index 581a68a..7ff6a89 100644
 --- a/kernel/watchdog.c
 +++ b/kernel/watchdog.c
-@@ -572,7 +572,7 @@ static int watchdog_nmi_enable(unsigned int cpu) { return 0; }
static void watchdog_nmi_disable(unsigned int cpu) { return; }
+@@ -648,7 +648,7 @@ void watchdog_nmi_enable_all(void) {}
void watchdog_nmi_disable_all(void) {}
  #endif /* CONFIG_HARDLOCKUP_DETECTOR */
  
 -static struct smp_hotplug_thread watchdog_threads = {
@@ -103157,10 +109887,10 @@ index 3174bf8..3553520 100644
        .thread_should_run      = watchdog_should_run,
        .thread_fn              = watchdog,
 diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 41ff75b..5ad683a 100644
+index 586ad91..5f8844a 100644
 --- a/kernel/workqueue.c
 +++ b/kernel/workqueue.c
-@@ -4564,7 +4564,7 @@ static void rebind_workers(struct worker_pool *pool)
+@@ -4428,7 +4428,7 @@ static void rebind_workers(struct worker_pool *pool)
                WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
                worker_flags |= WORKER_REBOUND;
                worker_flags &= ~WORKER_UNBOUND;
@@ -103170,10 +109900,10 @@ index 41ff75b..5ad683a 100644
  
        spin_unlock_irq(&pool->lock);
 diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
-index c5cefb3..a4241e3 100644
+index ba2b0c8..a571efc 100644
 --- a/lib/Kconfig.debug
 +++ b/lib/Kconfig.debug
-@@ -923,7 +923,7 @@ config DEBUG_MUTEXES
+@@ -936,7 +936,7 @@ config DEBUG_MUTEXES
  
  config DEBUG_WW_MUTEX_SLOWPATH
        bool "Wait/wound mutex debugging: Slowpath testing"
@@ -103182,7 +109912,7 @@ index c5cefb3..a4241e3 100644
        select DEBUG_LOCK_ALLOC
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
-@@ -940,7 +940,7 @@ config DEBUG_WW_MUTEX_SLOWPATH
+@@ -953,7 +953,7 @@ config DEBUG_WW_MUTEX_SLOWPATH
  
  config DEBUG_LOCK_ALLOC
        bool "Lock debugging: detect incorrect freeing of live locks"
@@ -103191,7 +109921,7 @@ index c5cefb3..a4241e3 100644
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
        select LOCKDEP
-@@ -954,7 +954,7 @@ config DEBUG_LOCK_ALLOC
+@@ -967,7 +967,7 @@ config DEBUG_LOCK_ALLOC
  
  config PROVE_LOCKING
        bool "Lock debugging: prove locking correctness"
@@ -103200,7 +109930,7 @@ index c5cefb3..a4241e3 100644
        select LOCKDEP
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
-@@ -1005,7 +1005,7 @@ config LOCKDEP
+@@ -1018,7 +1018,7 @@ config LOCKDEP
  
  config LOCK_STAT
        bool "Lock usage statistics"
@@ -103209,7 +109939,7 @@ index c5cefb3..a4241e3 100644
        select LOCKDEP
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
-@@ -1467,6 +1467,7 @@ config LATENCYTOP
+@@ -1496,6 +1496,7 @@ config LATENCYTOP
        depends on DEBUG_KERNEL
        depends on STACKTRACE_SUPPORT
        depends on PROC_FS
@@ -103217,7 +109947,7 @@ index c5cefb3..a4241e3 100644
        select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC
        select KALLSYMS
        select KALLSYMS_ALL
-@@ -1483,7 +1484,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
+@@ -1512,7 +1513,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
  config DEBUG_STRICT_USER_COPY_CHECKS
        bool "Strict user copy size checks"
        depends on ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
@@ -103226,7 +109956,7 @@ index c5cefb3..a4241e3 100644
        help
          Enabling this option turns a certain set of sanity checks for user
          copy operations into compile time failures.
-@@ -1614,7 +1615,7 @@ endmenu # runtime tests
+@@ -1643,7 +1644,7 @@ endmenu # runtime tests
  
  config PROVIDE_OHCI1394_DMA_INIT
        bool "Remote debugging over FireWire early on boot"
@@ -103236,7 +109966,7 @@ index c5cefb3..a4241e3 100644
          If you want to debug problems which hang or crash the kernel early
          on boot and the crashing machine has a FireWire port, you can use
 diff --git a/lib/Makefile b/lib/Makefile
-index 58f74d2..08e011f 100644
+index 6c37933..d48e7ca 100644
 --- a/lib/Makefile
 +++ b/lib/Makefile
 @@ -59,7 +59,7 @@ obj-$(CONFIG_BTREE) += btree.o
@@ -103262,10 +109992,10 @@ index 114d1be..ab0350c 100644
                        (val << avg->factor)) >> avg->weight :
                (val << avg->factor);
 diff --git a/lib/bitmap.c b/lib/bitmap.c
-index d456f4c1..29a0308 100644
+index 64c0926f..9de1a1f 100644
 --- a/lib/bitmap.c
 +++ b/lib/bitmap.c
-@@ -264,7 +264,7 @@ int __bitmap_subset(const unsigned long *bitmap1,
+@@ -234,7 +234,7 @@ int __bitmap_subset(const unsigned long *bitmap1,
  }
  EXPORT_SYMBOL(__bitmap_subset);
  
@@ -103274,7 +110004,7 @@ index d456f4c1..29a0308 100644
  {
        unsigned int k, lim = bits/BITS_PER_LONG;
        int w = 0;
-@@ -391,7 +391,7 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
+@@ -361,7 +361,7 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
  {
        int c, old_c, totaldigits, ndigits, nchunks, nbits;
        u32 chunk;
@@ -103283,7 +110013,7 @@ index d456f4c1..29a0308 100644
  
        bitmap_zero(maskp, nmaskbits);
  
-@@ -476,7 +476,7 @@ int bitmap_parse_user(const char __user *ubuf,
+@@ -446,7 +446,7 @@ int bitmap_parse_user(const char __user *ubuf,
  {
        if (!access_ok(VERIFY_READ, ubuf, ulen))
                return -EFAULT;
@@ -103292,7 +110022,7 @@ index d456f4c1..29a0308 100644
                                ulen, 1, maskp, nmaskbits);
  
  }
-@@ -535,7 +535,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
+@@ -505,7 +505,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
  {
        unsigned a, b;
        int c, old_c, totaldigits;
@@ -103301,7 +110031,7 @@ index d456f4c1..29a0308 100644
        int exp_digit, in_range;
  
        totaldigits = c = 0;
-@@ -630,7 +630,7 @@ int bitmap_parselist_user(const char __user *ubuf,
+@@ -600,7 +600,7 @@ int bitmap_parselist_user(const char __user *ubuf,
  {
        if (!access_ok(VERIFY_READ, ubuf, ulen))
                return -EFAULT;
@@ -103350,8 +110080,25 @@ index 6dd0335..1e9c239 100644
  
        bd->dbuf = large_malloc(bd->dbufSize * sizeof(int));
        if (!bd->dbuf)
+diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
+index 0be83af..4605e93 100644
+--- a/lib/decompress_unlzma.c
++++ b/lib/decompress_unlzma.c
+@@ -39,10 +39,10 @@
+ #define       MIN(a, b) (((a) < (b)) ? (a) : (b))
+-static long long INIT read_int(unsigned char *ptr, int size)
++static unsigned long long INIT read_int(unsigned char *ptr, int size)
+ {
+       int i;
+-      long long ret = 0;
++      unsigned long long ret = 0;
+       for (i = 0; i < size; i++)
+               ret = (ret << 8) | ptr[size-i-1];
 diff --git a/lib/div64.c b/lib/div64.c
-index 4382ad7..08aa558 100644
+index 19ea7ed..20cac21 100644
 --- a/lib/div64.c
 +++ b/lib/div64.c
 @@ -59,7 +59,7 @@ uint32_t __attribute__((weak)) __div64_32(uint64_t *n, uint32_t base)
@@ -103364,7 +110111,7 @@ index 4382ad7..08aa558 100644
        u64 quotient;
  
 @@ -130,7 +130,7 @@ EXPORT_SYMBOL(div64_u64_rem);
-  * 'http://www.hackersdelight.org/HDcode/newCode/divDouble.c.txt'
+  * 'http://www.hackersdelight.org/hdcodetxt/divDouble.c.txt'
   */
  #ifndef div64_u64
 -u64 div64_u64(u64 dividend, u64 divisor)
@@ -103373,7 +110120,7 @@ index 4382ad7..08aa558 100644
        u32 high = divisor >> 32;
        u64 quot;
 diff --git a/lib/dma-debug.c b/lib/dma-debug.c
-index 9722bd2..0d826f4 100644
+index ae4b65e..daf0230 100644
 --- a/lib/dma-debug.c
 +++ b/lib/dma-debug.c
 @@ -979,7 +979,7 @@ static int dma_debug_device_change(struct notifier_block *nb, unsigned long acti
@@ -103408,10 +110155,10 @@ index 013a761..c28f3fc 100644
  #endif
  
 diff --git a/lib/ioremap.c b/lib/ioremap.c
-index 0c9216c..863bd89 100644
+index 86c8911..f5bfc34 100644
 --- a/lib/ioremap.c
 +++ b/lib/ioremap.c
-@@ -38,7 +38,7 @@ static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr,
+@@ -75,7 +75,7 @@ static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr,
        unsigned long next;
  
        phys_addr -= addr;
@@ -103420,7 +110167,7 @@ index 0c9216c..863bd89 100644
        if (!pmd)
                return -ENOMEM;
        do {
-@@ -56,7 +56,7 @@ static inline int ioremap_pud_range(pgd_t *pgd, unsigned long addr,
+@@ -101,7 +101,7 @@ static inline int ioremap_pud_range(pgd_t *pgd, unsigned long addr,
        unsigned long next;
  
        phys_addr -= addr;
@@ -103444,10 +110191,22 @@ index bd2bea9..6b3c95e 100644
                return false;
  
 diff --git a/lib/kobject.c b/lib/kobject.c
-index 03d4ab3..46f6374 100644
+index 3b841b9..7c215aa 100644
 --- a/lib/kobject.c
 +++ b/lib/kobject.c
-@@ -931,9 +931,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add);
+@@ -340,8 +340,9 @@ error:
+ }
+ EXPORT_SYMBOL(kobject_init);
+-static int kobject_add_varg(struct kobject *kobj, struct kobject *parent,
+-                          const char *fmt, va_list vargs)
++static __printf(3, 0) int kobject_add_varg(struct kobject *kobj,
++                                         struct kobject *parent,
++                                         const char *fmt, va_list vargs)
+ {
+       int retval;
+@@ -936,9 +937,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add);
  
  
  static DEFINE_SPINLOCK(kobj_ns_type_lock);
@@ -103681,7 +110440,7 @@ index c24c2f7..f0296f4 100644
 +}
 +EXPORT_SYMBOL(pax_list_del_rcu);
 diff --git a/lib/lockref.c b/lib/lockref.c
-index ecb9a66..a044fc5 100644
+index 494994b..65caf94 100644
 --- a/lib/lockref.c
 +++ b/lib/lockref.c
 @@ -48,13 +48,13 @@
@@ -103905,7 +110664,7 @@ index e0af6ff..fcc9f15 100644
  
        /*
 diff --git a/lib/strnlen_user.c b/lib/strnlen_user.c
-index a28df52..3d55877 100644
+index fe9a325..85cd8aa 100644
 --- a/lib/strnlen_user.c
 +++ b/lib/strnlen_user.c
 @@ -26,7 +26,7 @@
@@ -103918,10 +110677,10 @@ index a28df52..3d55877 100644
        unsigned long c;
  
 diff --git a/lib/swiotlb.c b/lib/swiotlb.c
-index 4abda07..b9d3765 100644
+index 3c365ab..75b43df 100644
 --- a/lib/swiotlb.c
 +++ b/lib/swiotlb.c
-@@ -682,7 +682,7 @@ EXPORT_SYMBOL(swiotlb_alloc_coherent);
+@@ -683,7 +683,7 @@ EXPORT_SYMBOL(swiotlb_alloc_coherent);
  
  void
  swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
@@ -103931,22 +110690,14 @@ index 4abda07..b9d3765 100644
        phys_addr_t paddr = dma_to_phys(hwdev, dev_addr);
  
 diff --git a/lib/test-hexdump.c b/lib/test-hexdump.c
-index daf29a39..56f44ac 100644
+index c227cc4..5241df3 100644
 --- a/lib/test-hexdump.c
 +++ b/lib/test-hexdump.c
-@@ -18,26 +18,26 @@ static const unsigned char data_b[] = {
- static const unsigned char data_a[] = ".2.{....p..$}.4...1.....L...C...";
--static const char *test_data_1_le[] __initconst = {
-+static const char * const test_data_1_le[] __initconst = {
-       "be", "32", "db", "7b", "0a", "18", "93", "b2",
-       "70", "ba", "c4", "24", "7d", "83", "34", "9b",
-       "a6", "9c", "31", "ad", "9c", "0f", "ac", "e9",
+@@ -25,19 +25,19 @@ static const char * const test_data_1_le[] __initconst = {
        "4c", "d1", "19", "99", "43", "b1", "af", "0c",
  };
  
--static const char *test_data_2_le[] __initconst = {
+-static const char *test_data_2_le[] __initdata = {
 +static const char * const test_data_2_le[] __initconst = {
        "32be", "7bdb", "180a", "b293",
        "ba70", "24c4", "837d", "9b34",
@@ -103954,13 +110705,13 @@ index daf29a39..56f44ac 100644
        "d14c", "9919", "b143", "0caf",
  };
  
--static const char *test_data_4_le[] __initconst = {
+-static const char *test_data_4_le[] __initdata = {
 +static const char * const test_data_4_le[] __initconst = {
        "7bdb32be", "b293180a", "24c4ba70", "9b34837d",
        "ad319ca6", "e9ac0f9c", "9919d14c", "0cafb143",
  };
  
--static const char *test_data_8_le[] __initconst = {
+-static const char *test_data_8_le[] __initdata = {
 +static const char * const test_data_8_le[] __initconst = {
        "b293180a7bdb32be", "9b34837d24c4ba70",
        "e9ac0f9cad319ca6", "0cafb1439919d14c",
@@ -103980,7 +110731,7 @@ index 4f5b1dd..7cab418 100644
 +}
 +EXPORT_SYMBOL(copy_to_user_overflow);
 diff --git a/lib/vsprintf.c b/lib/vsprintf.c
-index b235c96..343ffc1 100644
+index da39c60..ac91239 100644
 --- a/lib/vsprintf.c
 +++ b/lib/vsprintf.c
 @@ -16,6 +16,9 @@
@@ -103991,9 +110742,9 @@ index b235c96..343ffc1 100644
 +#define __INCLUDED_BY_HIDESYM 1
 +#endif
  #include <stdarg.h>
+ #include <linux/clk-provider.h>
  #include <linux/module.h>     /* for KSYM_SYMBOL_LEN */
- #include <linux/types.h>
-@@ -626,7 +629,7 @@ char *symbol_string(char *buf, char *end, void *ptr,
+@@ -628,7 +631,7 @@ char *symbol_string(char *buf, char *end, void *ptr,
  #ifdef CONFIG_KALLSYMS
        if (*fmt == 'B')
                sprint_backtrace(sym, value);
@@ -104002,19 +110753,20 @@ index b235c96..343ffc1 100644
                sprint_symbol(sym, value);
        else
                sprint_symbol_no_offset(sym, value);
-@@ -1322,7 +1325,11 @@ char *address_val(char *buf, char *end, const void *addr,
-       return number(buf, end, num, spec);
+@@ -1360,7 +1363,11 @@ char *clock(char *buf, char *end, struct clk *clk, struct printf_spec spec,
+       }
  }
  
+-int kptr_restrict __read_mostly;
 +#ifdef CONFIG_GRKERNSEC_HIDESYM
-+int kptr_restrict __read_mostly = 2;
++int kptr_restrict __read_only = 2;
 +#else
- int kptr_restrict __read_mostly;
++int kptr_restrict __read_only;
 +#endif
  
  /*
   * Show a '%p' thing.  A kernel extension is that the '%p' is followed
-@@ -1333,8 +1340,10 @@ int kptr_restrict __read_mostly;
+@@ -1371,8 +1378,10 @@ int kptr_restrict __read_mostly;
   *
   * - 'F' For symbolic function descriptor pointers with offset
   * - 'f' For simple symbolic function names without offset
@@ -104025,7 +110777,7 @@ index b235c96..343ffc1 100644
   * - '[FfSs]R' as above with __builtin_extract_return_addr() translation
   * - 'B' For backtraced symbolic direct pointers with offset
   * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
-@@ -1417,12 +1426,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -1460,12 +1469,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
  
        if (!ptr && *fmt != 'K') {
                /*
@@ -104040,7 +110792,7 @@ index b235c96..343ffc1 100644
        }
  
        switch (*fmt) {
-@@ -1432,6 +1441,14 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -1475,6 +1484,14 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
                /* Fallthrough */
        case 'S':
        case 's':
@@ -104055,7 +110807,7 @@ index b235c96..343ffc1 100644
        case 'B':
                return symbol_string(buf, end, ptr, spec, fmt);
        case 'R':
-@@ -1496,6 +1513,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -1539,6 +1556,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
                        va_end(va);
                        return buf;
                }
@@ -104064,7 +110816,7 @@ index b235c96..343ffc1 100644
        case 'K':
                /*
                 * %pK cannot be used in IRQ context because its test
-@@ -1553,6 +1572,22 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -1598,6 +1617,22 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
                                   ((const struct file *)ptr)->f_path.dentry,
                                   spec, fmt);
        }
@@ -104087,7 +110839,7 @@ index b235c96..343ffc1 100644
        spec.flags |= SMALL;
        if (spec.field_width == -1) {
                spec.field_width = default_width;
-@@ -2254,11 +2289,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
+@@ -2296,11 +2331,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
        typeof(type) value;                                             \
        if (sizeof(type) == 8) {                                        \
                args = PTR_ALIGN(args, sizeof(u32));                    \
@@ -104102,7 +110854,7 @@ index b235c96..343ffc1 100644
        }                                                               \
        args += sizeof(type);                                           \
        value;                                                          \
-@@ -2321,7 +2356,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
+@@ -2363,7 +2398,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
                case FORMAT_TYPE_STR: {
                        const char *str_arg = args;
                        args += strlen(str_arg) + 1;
@@ -104119,7 +110871,7 @@ index 0000000..7cd6065
 @@ -0,0 +1 @@
 +-grsec
 diff --git a/mm/Kconfig b/mm/Kconfig
-index a03131b..1b1bafb 100644
+index 390214d..f96e3b8 100644
 --- a/mm/Kconfig
 +++ b/mm/Kconfig
 @@ -342,10 +342,11 @@ config KSM
@@ -104159,7 +110911,7 @@ index 957d3da..1d34e20 100644
        depends on !KMEMCHECK
        select PAGE_EXTENSION
 diff --git a/mm/backing-dev.c b/mm/backing-dev.c
-index 6dc4580..e031ec1 100644
+index 000e7b3..aad2605 100644
 --- a/mm/backing-dev.c
 +++ b/mm/backing-dev.c
 @@ -12,7 +12,7 @@
@@ -104171,7 +110923,7 @@ index 6dc4580..e031ec1 100644
  
  struct backing_dev_info noop_backing_dev_info = {
        .name           = "noop",
-@@ -474,7 +474,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name)
+@@ -458,7 +458,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name)
                return err;
  
        err = bdi_register(bdi, NULL, "%.28s-%ld", name,
@@ -104180,11 +110932,54 @@ index 6dc4580..e031ec1 100644
        if (err) {
                bdi_destroy(bdi);
                return err;
+diff --git a/mm/cma_debug.c b/mm/cma_debug.c
+index 7621ee3..f8e4b60 100644
+--- a/mm/cma_debug.c
++++ b/mm/cma_debug.c
+@@ -39,7 +39,7 @@ static int cma_used_get(void *data, u64 *val)
+       mutex_lock(&cma->lock);
+       /* pages counter is smaller than sizeof(int) */
+-      used = bitmap_weight(cma->bitmap, (int)cma->count);
++      used = bitmap_weight(cma->bitmap, (int)cma_bitmap_maxno(cma));
+       mutex_unlock(&cma->lock);
+       *val = (u64)used << cma->order_per_bit;
+@@ -52,13 +52,14 @@ static int cma_maxchunk_get(void *data, u64 *val)
+       struct cma *cma = data;
+       unsigned long maxchunk = 0;
+       unsigned long start, end = 0;
++      unsigned long bitmap_maxno = cma_bitmap_maxno(cma);
+       mutex_lock(&cma->lock);
+       for (;;) {
+-              start = find_next_zero_bit(cma->bitmap, cma->count, end);
++              start = find_next_zero_bit(cma->bitmap, bitmap_maxno, end);
+               if (start >= cma->count)
+                       break;
+-              end = find_next_bit(cma->bitmap, cma->count, start);
++              end = find_next_bit(cma->bitmap, bitmap_maxno, start);
+               maxchunk = max(end - start, maxchunk);
+       }
+       mutex_unlock(&cma->lock);
+@@ -170,10 +171,10 @@ static void cma_debugfs_add_one(struct cma *cma, int idx)
+       tmp = debugfs_create_dir(name, cma_debugfs_root);
+-      debugfs_create_file("alloc", S_IWUSR, cma_debugfs_root, cma,
++      debugfs_create_file("alloc", S_IWUSR, tmp, cma,
+                               &cma_alloc_fops);
+-      debugfs_create_file("free", S_IWUSR, cma_debugfs_root, cma,
++      debugfs_create_file("free", S_IWUSR, tmp, cma,
+                               &cma_free_fops);
+       debugfs_create_file("base_pfn", S_IRUGO, tmp,
 diff --git a/mm/filemap.c b/mm/filemap.c
-index ad72420..0a20ef2 100644
+index 6bf5e42..1e631ee 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
-@@ -2097,7 +2097,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
+@@ -2095,7 +2095,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
        struct address_space *mapping = file->f_mapping;
  
        if (!mapping->a_ops->readpage)
@@ -104193,24 +110988,24 @@ index ad72420..0a20ef2 100644
        file_accessed(file);
        vma->vm_ops = &generic_file_vm_ops;
        return 0;
-@@ -2275,6 +2275,7 @@ inline int generic_write_checks(struct file *file, loff_t *pos, size_t *count, i
-                         *pos = i_size_read(inode);
-               if (limit != RLIM_INFINITY) {
-+                      gr_learn_resource(current, RLIMIT_FSIZE,*pos, 0);
-                       if (*pos >= limit) {
-                               send_sig(SIGXFSZ, current, 0);
-                               return -EFBIG;
+@@ -2276,6 +2276,7 @@ inline ssize_t generic_write_checks(struct kiocb *iocb, struct iov_iter *from)
+       pos = iocb->ki_pos;
+       if (limit != RLIM_INFINITY) {
++              gr_learn_resource(current, RLIMIT_FSIZE, iocb->ki_pos, 0);
+               if (iocb->ki_pos >= limit) {
+                       send_sig(SIGXFSZ, current, 0);
+                       return -EFBIG;
 diff --git a/mm/gup.c b/mm/gup.c
-index a6e24e2..72dd2cf 100644
+index 6297f6b..7652403 100644
 --- a/mm/gup.c
 +++ b/mm/gup.c
 @@ -265,11 +265,6 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma,
        unsigned int fault_flags = 0;
        int ret;
  
--      /* For mlock, just skip the stack guard page. */
--      if ((*flags & FOLL_MLOCK) &&
+-      /* For mm_populate(), just skip the stack guard page. */
+-      if ((*flags & FOLL_POPULATE) &&
 -                      (stack_guard_page_start(vma, address) ||
 -                       stack_guard_page_end(vma, address + PAGE_SIZE)))
 -              return -ENOENT;
@@ -104281,10 +111076,10 @@ index 123bcd3..0de52ba 100644
        set_page_address(page, (void *)vaddr);
  
 diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index caad3c5..4f68807 100644
+index 271e443..c582971 100644
 --- a/mm/hugetlb.c
 +++ b/mm/hugetlb.c
-@@ -2260,6 +2260,7 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
+@@ -2362,6 +2362,7 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
                         struct ctl_table *table, int write,
                         void __user *buffer, size_t *length, loff_t *ppos)
  {
@@ -104292,7 +111087,7 @@ index caad3c5..4f68807 100644
        struct hstate *h = &default_hstate;
        unsigned long tmp = h->max_huge_pages;
        int ret;
-@@ -2267,9 +2268,10 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
+@@ -2369,9 +2370,10 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
        if (!hugepages_supported())
                return -ENOTSUPP;
  
@@ -104306,7 +111101,7 @@ index caad3c5..4f68807 100644
        if (ret)
                goto out;
  
-@@ -2304,6 +2306,7 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
+@@ -2406,6 +2408,7 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
        struct hstate *h = &default_hstate;
        unsigned long tmp;
        int ret;
@@ -104314,7 +111109,7 @@ index caad3c5..4f68807 100644
  
        if (!hugepages_supported())
                return -ENOTSUPP;
-@@ -2313,9 +2316,10 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
+@@ -2415,9 +2418,10 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
        if (write && hstate_is_gigantic(h))
                return -EINVAL;
  
@@ -104328,7 +111123,7 @@ index caad3c5..4f68807 100644
        if (ret)
                goto out;
  
-@@ -2800,6 +2804,27 @@ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2907,6 +2911,27 @@ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
        i_mmap_unlock_write(mapping);
  }
  
@@ -104356,7 +111151,7 @@ index caad3c5..4f68807 100644
  /*
   * Hugetlb_cow() should be called with page lock of the original hugepage held.
   * Called with hugetlb_instantiation_mutex held and pte_page locked so we
-@@ -2912,6 +2937,11 @@ retry_avoidcopy:
+@@ -3020,6 +3045,11 @@ retry_avoidcopy:
                                make_huge_pte(vma, new_page, 1));
                page_remove_rmap(old_page);
                hugepage_add_new_anon_rmap(new_page, vma, address);
@@ -104368,7 +111163,7 @@ index caad3c5..4f68807 100644
                /* Make the old page be freed below */
                new_page = old_page;
        }
-@@ -3072,6 +3102,10 @@ retry:
+@@ -3181,6 +3211,10 @@ retry:
                                && (vma->vm_flags & VM_SHARED)));
        set_huge_pte_at(mm, address, ptep, new_pte);
  
@@ -104379,7 +111174,7 @@ index caad3c5..4f68807 100644
        if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) {
                /* Optimization, do the COW without a second fault */
                ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page, ptl);
-@@ -3139,6 +3173,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3248,6 +3282,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
        struct address_space *mapping;
        int need_wait_lock = 0;
  
@@ -104390,7 +111185,7 @@ index caad3c5..4f68807 100644
        address &= huge_page_mask(h);
  
        ptep = huge_pte_offset(mm, address);
-@@ -3152,6 +3190,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3261,6 +3299,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
                                VM_FAULT_SET_HINDEX(hstate_index(h));
        }
  
@@ -104418,7 +111213,7 @@ index caad3c5..4f68807 100644
        if (!ptep)
                return VM_FAULT_OOM;
 diff --git a/mm/internal.h b/mm/internal.h
-index a96da5b..42ebd54 100644
+index a25e359..e2c96e9 100644
 --- a/mm/internal.h
 +++ b/mm/internal.h
 @@ -156,6 +156,7 @@ __find_buddy_index(unsigned long page_idx, unsigned int order)
@@ -104429,7 +111224,7 @@ index a96da5b..42ebd54 100644
  extern void prep_compound_page(struct page *page, unsigned long order);
  #ifdef CONFIG_MEMORY_FAILURE
  extern bool is_free_buddy_page(struct page *page);
-@@ -411,7 +412,7 @@ extern u32 hwpoison_filter_enable;
+@@ -413,7 +414,7 @@ extern u32 hwpoison_filter_enable;
  
  extern unsigned long vm_mmap_pgoff(struct file *, unsigned long,
          unsigned long, unsigned long,
@@ -104439,10 +111234,10 @@ index a96da5b..42ebd54 100644
  extern void set_pageblock_order(void);
  unsigned long reclaim_clean_pages_from_list(struct zone *zone,
 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
-index 5405aff..483406d 100644
+index 3716cdb..25b97dc 100644
 --- a/mm/kmemleak.c
 +++ b/mm/kmemleak.c
-@@ -365,7 +365,7 @@ static void print_unreferenced(struct seq_file *seq,
+@@ -368,7 +368,7 @@ static void print_unreferenced(struct seq_file *seq,
  
        for (i = 0; i < object->trace_len; i++) {
                void *ptr = (void *)object->trace[i];
@@ -104451,7 +111246,7 @@ index 5405aff..483406d 100644
        }
  }
  
-@@ -1911,7 +1911,7 @@ static int __init kmemleak_late_init(void)
+@@ -1926,7 +1926,7 @@ static int __init kmemleak_late_init(void)
                return -ENOMEM;
        }
  
@@ -104557,7 +111352,7 @@ index d551475..8fdd7f3 100644
        if (end == start)
                return error;
 diff --git a/mm/memory-failure.c b/mm/memory-failure.c
-index 72a5224..51ba846 100644
+index 501820c..9612bcf 100644
 --- a/mm/memory-failure.c
 +++ b/mm/memory-failure.c
 @@ -61,7 +61,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
@@ -104578,16 +111373,16 @@ index 72a5224..51ba846 100644
  #ifdef __ARCH_SI_TRAPNO
        si.si_trapno = trapno;
  #endif
-@@ -779,7 +779,7 @@ static struct page_state {
+@@ -825,7 +825,7 @@ static struct page_state {
        unsigned long res;
-       char *msg;
+       enum action_page_type type;
        int (*action)(struct page *p, unsigned long pfn);
 -} error_states[] = {
 +} __do_const error_states[] = {
-       { reserved,     reserved,       "reserved kernel",      me_kernel },
+       { reserved,     reserved,       MSG_KERNEL,     me_kernel },
        /*
         * free pages are specially detected outside this table:
-@@ -1087,7 +1087,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
+@@ -1133,7 +1133,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
                nr_pages = 1 << compound_order(hpage);
        else /* normal page or thp */
                nr_pages = 1;
@@ -104596,7 +111391,7 @@ index 72a5224..51ba846 100644
  
        /*
         * We need/can do nothing about count=0 pages.
-@@ -1116,7 +1116,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
+@@ -1162,7 +1162,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
                        if (PageHWPoison(hpage)) {
                                if ((hwpoison_filter(p) && TestClearPageHWPoison(p))
                                    || (p != hpage && TestSetPageHWPoison(hpage))) {
@@ -104605,7 +111400,7 @@ index 72a5224..51ba846 100644
                                        unlock_page(hpage);
                                        return 0;
                                }
-@@ -1184,14 +1184,14 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
+@@ -1231,14 +1231,14 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
         */
        if (!PageHWPoison(p)) {
                printk(KERN_ERR "MCE %#lx: just unpoisoned\n", pfn);
@@ -104622,7 +111417,7 @@ index 72a5224..51ba846 100644
                unlock_page(hpage);
                put_page(hpage);
                return 0;
-@@ -1421,7 +1421,7 @@ int unpoison_memory(unsigned long pfn)
+@@ -1467,7 +1467,7 @@ int unpoison_memory(unsigned long pfn)
                        return 0;
                }
                if (TestClearPageHWPoison(p))
@@ -104631,7 +111426,7 @@ index 72a5224..51ba846 100644
                pr_info("MCE: Software-unpoisoned free page %#lx\n", pfn);
                return 0;
        }
-@@ -1435,7 +1435,7 @@ int unpoison_memory(unsigned long pfn)
+@@ -1481,7 +1481,7 @@ int unpoison_memory(unsigned long pfn)
         */
        if (TestClearPageHWPoison(page)) {
                pr_info("MCE: Software-unpoisoned page %#lx\n", pfn);
@@ -104640,7 +111435,7 @@ index 72a5224..51ba846 100644
                freeit = 1;
                if (PageHuge(page))
                        clear_page_hwpoison_huge_page(page);
-@@ -1560,11 +1560,11 @@ static int soft_offline_huge_page(struct page *page, int flags)
+@@ -1616,11 +1616,11 @@ static int soft_offline_huge_page(struct page *page, int flags)
                if (PageHuge(page)) {
                        set_page_hwpoison_huge_page(hpage);
                        dequeue_hwpoisoned_huge_page(hpage);
@@ -104654,7 +111449,7 @@ index 72a5224..51ba846 100644
                }
        }
        return ret;
-@@ -1603,7 +1603,7 @@ static int __soft_offline_page(struct page *page, int flags)
+@@ -1659,7 +1659,7 @@ static int __soft_offline_page(struct page *page, int flags)
                put_page(page);
                pr_info("soft_offline: %#lx: invalidated\n", pfn);
                SetPageHWPoison(page);
@@ -104663,7 +111458,7 @@ index 72a5224..51ba846 100644
                return 0;
        }
  
-@@ -1652,7 +1652,7 @@ static int __soft_offline_page(struct page *page, int flags)
+@@ -1708,7 +1708,7 @@ static int __soft_offline_page(struct page *page, int flags)
                        if (!is_free_buddy_page(page))
                                pr_info("soft offline: %#lx: page leaked\n",
                                        pfn);
@@ -104672,7 +111467,7 @@ index 72a5224..51ba846 100644
                }
        } else {
                pr_info("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n",
-@@ -1722,11 +1722,11 @@ int soft_offline_page(struct page *page, int flags)
+@@ -1778,11 +1778,11 @@ int soft_offline_page(struct page *page, int flags)
                if (PageHuge(page)) {
                        set_page_hwpoison_huge_page(hpage);
                        if (!dequeue_hwpoisoned_huge_page(hpage))
@@ -104687,7 +111482,7 @@ index 72a5224..51ba846 100644
        }
        unset_migratetype_isolate(page, MIGRATE_MOVABLE);
 diff --git a/mm/memory.c b/mm/memory.c
-index 97839f5..4bc5530 100644
+index 22e037e..347d230 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
 @@ -414,6 +414,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
@@ -104723,20 +111518,16 @@ index 97839f5..4bc5530 100644
  }
  
  /*
-@@ -691,10 +696,10 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
+@@ -690,7 +695,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
+       /*
         * Choose text because data symbols depend on CONFIG_KALLSYMS_ALL=y
         */
-       if (vma->vm_ops)
--              printk(KERN_ALERT "vma->vm_ops->fault: %pSR\n",
-+              printk(KERN_ALERT "vma->vm_ops->fault: %pAR\n",
-                      vma->vm_ops->fault);
-       if (vma->vm_file)
--              printk(KERN_ALERT "vma->vm_file->f_op->mmap: %pSR\n",
-+              printk(KERN_ALERT "vma->vm_file->f_op->mmap: %pAR\n",
-                      vma->vm_file->f_op->mmap);
-       dump_stack();
-       add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE);
-@@ -1464,6 +1469,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
+-      pr_alert("file:%pD fault:%pf mmap:%pf readpage:%pf\n",
++      pr_alert("file:%pD fault:%pX mmap:%pX readpage:%pX\n",
+                vma->vm_file,
+                vma->vm_ops ? vma->vm_ops->fault : NULL,
+                vma->vm_file ? vma->vm_file->f_op->mmap : NULL,
+@@ -1463,6 +1468,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
        page_add_file_rmap(page);
        set_pte_at(mm, addr, pte, mk_pte(page, prot));
  
@@ -104747,7 +111538,7 @@ index 97839f5..4bc5530 100644
        retval = 0;
        pte_unmap_unlock(pte, ptl);
        return retval;
-@@ -1508,9 +1517,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
+@@ -1507,9 +1516,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
        if (!page_count(page))
                return -EINVAL;
        if (!(vma->vm_flags & VM_MIXEDMAP)) {
@@ -104769,7 +111560,7 @@ index 97839f5..4bc5530 100644
        }
        return insert_page(vma, addr, page, vma->vm_page_prot);
  }
-@@ -1593,6 +1614,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
+@@ -1592,6 +1613,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
                        unsigned long pfn)
  {
        BUG_ON(!(vma->vm_flags & VM_MIXEDMAP));
@@ -104777,7 +111568,7 @@ index 97839f5..4bc5530 100644
  
        if (addr < vma->vm_start || addr >= vma->vm_end)
                return -EFAULT;
-@@ -1840,7 +1862,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
+@@ -1839,7 +1861,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
  
        BUG_ON(pud_huge(*pud));
  
@@ -104788,7 +111579,7 @@ index 97839f5..4bc5530 100644
        if (!pmd)
                return -ENOMEM;
        do {
-@@ -1860,7 +1884,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
+@@ -1859,7 +1883,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
        unsigned long next;
        int err;
  
@@ -104799,8 +111590,8 @@ index 97839f5..4bc5530 100644
        if (!pud)
                return -ENOMEM;
        do {
-@@ -1982,6 +2008,185 @@ static int do_page_mkwrite(struct vm_area_struct *vma, struct page *page,
-       return ret;
+@@ -2040,6 +2066,185 @@ static inline int wp_page_reuse(struct mm_struct *mm,
+       return VM_FAULT_WRITE;
  }
  
 +#ifdef CONFIG_PAX_SEGMEXEC
@@ -104983,9 +111774,9 @@ index 97839f5..4bc5530 100644
 +#endif
 +
  /*
-  * This routine handles present pages, when users try to write
-  * to a shared page. It is done by copying the page to a new address
-@@ -2172,6 +2377,12 @@ gotten:
+  * Handle the case of a page which we actually need to copy to a new page.
+  *
+@@ -2093,6 +2298,12 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
         */
        page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
        if (likely(pte_same(*page_table, orig_pte))) {
@@ -104998,7 +111789,7 @@ index 97839f5..4bc5530 100644
                if (old_page) {
                        if (!PageAnon(old_page)) {
                                dec_mm_counter_fast(mm, MM_FILEPAGES);
-@@ -2225,6 +2436,10 @@ gotten:
+@@ -2147,6 +2358,10 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
                        page_remove_rmap(old_page);
                }
  
@@ -105008,8 +111799,8 @@ index 97839f5..4bc5530 100644
 +
                /* Free the old page.. */
                new_page = old_page;
-               ret |= VM_FAULT_WRITE;
-@@ -2483,6 +2698,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+               page_copied = 1;
+@@ -2578,6 +2793,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
        swap_free(entry);
        if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page))
                try_to_free_swap(page);
@@ -105021,7 +111812,7 @@ index 97839f5..4bc5530 100644
        unlock_page(page);
        if (page != swapcache) {
                /*
-@@ -2506,6 +2726,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2601,6 +2821,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
  
        /* No need to invalidate - it was non-present before */
        update_mmu_cache(vma, address, page_table);
@@ -105033,7 +111824,7 @@ index 97839f5..4bc5530 100644
  unlock:
        pte_unmap_unlock(page_table, ptl);
  out:
-@@ -2525,40 +2750,6 @@ out_release:
+@@ -2620,40 +2845,6 @@ out_release:
  }
  
  /*
@@ -105074,7 +111865,7 @@ index 97839f5..4bc5530 100644
   * We enter with non-exclusive mmap_sem (to exclude vma changes,
   * but allow concurrent faults), and pte mapped but not yet locked.
   * We return with mmap_sem still held, but pte unmapped and unlocked.
-@@ -2568,27 +2759,23 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2663,27 +2854,23 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
                unsigned int flags)
  {
        struct mem_cgroup *memcg;
@@ -105107,7 +111898,7 @@ index 97839f5..4bc5530 100644
        if (unlikely(anon_vma_prepare(vma)))
                goto oom;
        page = alloc_zeroed_user_highpage_movable(vma, address);
-@@ -2612,6 +2799,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2707,6 +2894,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
        if (!pte_none(*page_table))
                goto release;
  
@@ -105119,7 +111910,7 @@ index 97839f5..4bc5530 100644
        inc_mm_counter_fast(mm, MM_ANONPAGES);
        page_add_new_anon_rmap(page, vma, address);
        mem_cgroup_commit_charge(page, memcg, false);
-@@ -2621,6 +2813,12 @@ setpte:
+@@ -2716,6 +2908,12 @@ setpte:
  
        /* No need to invalidate - it was non-present before */
        update_mmu_cache(vma, address, page_table);
@@ -105132,7 +111923,7 @@ index 97839f5..4bc5530 100644
  unlock:
        pte_unmap_unlock(page_table, ptl);
        return 0;
-@@ -2853,6 +3051,11 @@ static int do_read_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2948,6 +3146,11 @@ static int do_read_fault(struct mm_struct *mm, struct vm_area_struct *vma,
                return ret;
        }
        do_set_pte(vma, address, fault_page, pte, false, false);
@@ -105144,7 +111935,7 @@ index 97839f5..4bc5530 100644
        unlock_page(fault_page);
  unlock_out:
        pte_unmap_unlock(pte, ptl);
-@@ -2904,7 +3107,18 @@ static int do_cow_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2999,7 +3202,18 @@ static int do_cow_fault(struct mm_struct *mm, struct vm_area_struct *vma,
                }
                goto uncharge_out;
        }
@@ -105163,7 +111954,7 @@ index 97839f5..4bc5530 100644
        mem_cgroup_commit_charge(new_page, memcg, false);
        lru_cache_add_active_or_unevictable(new_page, vma);
        pte_unmap_unlock(pte, ptl);
-@@ -2962,6 +3176,11 @@ static int do_shared_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3057,6 +3271,11 @@ static int do_shared_fault(struct mm_struct *mm, struct vm_area_struct *vma,
                return ret;
        }
        do_set_pte(vma, address, fault_page, pte, true, false);
@@ -105175,7 +111966,7 @@ index 97839f5..4bc5530 100644
        pte_unmap_unlock(pte, ptl);
  
        if (set_page_dirty(fault_page))
-@@ -3185,6 +3404,12 @@ static int handle_pte_fault(struct mm_struct *mm,
+@@ -3280,6 +3499,12 @@ static int handle_pte_fault(struct mm_struct *mm,
                if (flags & FAULT_FLAG_WRITE)
                        flush_tlb_fix_spurious_fault(vma, address);
        }
@@ -105188,7 +111979,7 @@ index 97839f5..4bc5530 100644
  unlock:
        pte_unmap_unlock(pte, ptl);
        return 0;
-@@ -3204,9 +3429,41 @@ static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3299,9 +3524,41 @@ static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
        pmd_t *pmd;
        pte_t *pte;
  
@@ -105230,7 +112021,7 @@ index 97839f5..4bc5530 100644
        pgd = pgd_offset(mm, address);
        pud = pud_alloc(mm, pgd, address);
        if (!pud)
-@@ -3341,6 +3598,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
+@@ -3436,6 +3693,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
        spin_unlock(&mm->page_table_lock);
        return 0;
  }
@@ -105254,7 +112045,7 @@ index 97839f5..4bc5530 100644
  #endif /* __PAGETABLE_PUD_FOLDED */
  
  #ifndef __PAGETABLE_PMD_FOLDED
-@@ -3373,6 +3647,32 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
+@@ -3468,6 +3742,32 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
        spin_unlock(&mm->page_table_lock);
        return 0;
  }
@@ -105287,7 +112078,7 @@ index 97839f5..4bc5530 100644
  #endif /* __PAGETABLE_PMD_FOLDED */
  
  static int __follow_pte(struct mm_struct *mm, unsigned long address,
-@@ -3482,8 +3782,8 @@ out:
+@@ -3577,8 +3877,8 @@ out:
        return ret;
  }
  
@@ -105298,7 +112089,7 @@ index 97839f5..4bc5530 100644
  {
        resource_size_t phys_addr;
        unsigned long prot = 0;
-@@ -3509,8 +3809,8 @@ EXPORT_SYMBOL_GPL(generic_access_phys);
+@@ -3604,8 +3904,8 @@ EXPORT_SYMBOL_GPL(generic_access_phys);
   * Access another process' address space as given in mm.  If non-NULL, use the
   * given task for page fault accounting.
   */
@@ -105309,7 +112100,7 @@ index 97839f5..4bc5530 100644
  {
        struct vm_area_struct *vma;
        void *old_buf = buf;
-@@ -3518,7 +3818,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
+@@ -3613,7 +3913,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
        down_read(&mm->mmap_sem);
        /* ignore errors, just check how much was successfully transferred */
        while (len) {
@@ -105318,7 +112109,7 @@ index 97839f5..4bc5530 100644
                void *maddr;
                struct page *page = NULL;
  
-@@ -3579,8 +3879,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
+@@ -3674,8 +3974,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
   *
   * The caller must hold a reference on @mm.
   */
@@ -105329,7 +112120,7 @@ index 97839f5..4bc5530 100644
  {
        return __access_remote_vm(NULL, mm, addr, buf, len, write);
  }
-@@ -3590,11 +3890,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
+@@ -3685,11 +3985,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
   * Source/target buffer must be kernel space,
   * Do not walk the page table directly, use get_user_pages
   */
@@ -105345,7 +112136,7 @@ index 97839f5..4bc5530 100644
        mm = get_task_mm(tsk);
        if (!mm)
 diff --git a/mm/mempolicy.c b/mm/mempolicy.c
-index de5dc5e..68a4ea3 100644
+index 99d4c1d..a577817 100644
 --- a/mm/mempolicy.c
 +++ b/mm/mempolicy.c
 @@ -703,6 +703,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
@@ -105376,7 +112167,7 @@ index de5dc5e..68a4ea3 100644
        }
  
   out:
-@@ -1160,6 +1174,17 @@ static long do_mbind(unsigned long start, unsigned long len,
+@@ -1161,6 +1175,17 @@ static long do_mbind(unsigned long start, unsigned long len,
  
        if (end < start)
                return -EINVAL;
@@ -105394,7 +112185,7 @@ index de5dc5e..68a4ea3 100644
        if (end == start)
                return 0;
  
-@@ -1385,8 +1410,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
+@@ -1386,8 +1411,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
         */
        tcred = __task_cred(task);
        if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
@@ -105404,7 +112195,7 @@ index de5dc5e..68a4ea3 100644
                rcu_read_unlock();
                err = -EPERM;
                goto out_put;
-@@ -1417,6 +1441,15 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
+@@ -1418,6 +1442,15 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
                goto out;
        }
  
@@ -105421,10 +112212,10 @@ index de5dc5e..68a4ea3 100644
                capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
  
 diff --git a/mm/migrate.c b/mm/migrate.c
-index 85e0426..be49beb 100644
+index f53838f..a26fa94 100644
 --- a/mm/migrate.c
 +++ b/mm/migrate.c
-@@ -1472,8 +1472,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
+@@ -1484,8 +1484,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
         */
        tcred = __task_cred(task);
        if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
@@ -105435,7 +112226,7 @@ index 85e0426..be49beb 100644
                err = -EPERM;
                goto out;
 diff --git a/mm/mlock.c b/mm/mlock.c
-index 8a54cd2..92f1747 100644
+index 6fd2cf1..cbae765 100644
 --- a/mm/mlock.c
 +++ b/mm/mlock.c
 @@ -14,6 +14,7 @@
@@ -105446,7 +112237,7 @@ index 8a54cd2..92f1747 100644
  #include <linux/sched.h>
  #include <linux/export.h>
  #include <linux/rmap.h>
-@@ -613,7 +614,7 @@ static int do_mlock(unsigned long start, size_t len, int on)
+@@ -557,7 +558,7 @@ static int do_mlock(unsigned long start, size_t len, int on)
  {
        unsigned long nstart, end, tmp;
        struct vm_area_struct * vma, * prev;
@@ -105455,7 +112246,7 @@ index 8a54cd2..92f1747 100644
  
        VM_BUG_ON(start & ~PAGE_MASK);
        VM_BUG_ON(len != PAGE_ALIGN(len));
-@@ -622,6 +623,9 @@ static int do_mlock(unsigned long start, size_t len, int on)
+@@ -566,6 +567,9 @@ static int do_mlock(unsigned long start, size_t len, int on)
                return -EINVAL;
        if (end == start)
                return 0;
@@ -105465,7 +112256,7 @@ index 8a54cd2..92f1747 100644
        vma = find_vma(current->mm, start);
        if (!vma || vma->vm_start > start)
                return -ENOMEM;
-@@ -633,6 +637,11 @@ static int do_mlock(unsigned long start, size_t len, int on)
+@@ -577,6 +581,11 @@ static int do_mlock(unsigned long start, size_t len, int on)
        for (nstart = start ; ; ) {
                vm_flags_t newflags;
  
@@ -105477,7 +112268,7 @@ index 8a54cd2..92f1747 100644
                /* Here we know that  vma->vm_start <= nstart < vma->vm_end. */
  
                newflags = vma->vm_flags & ~VM_LOCKED;
-@@ -746,6 +755,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
+@@ -627,6 +636,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
        locked += current->mm->locked_vm;
  
        /* check against resource limits */
@@ -105485,7 +112276,7 @@ index 8a54cd2..92f1747 100644
        if ((locked <= lock_limit) || capable(CAP_IPC_LOCK))
                error = do_mlock(start, len, 1);
  
-@@ -783,6 +793,11 @@ static int do_mlockall(int flags)
+@@ -668,6 +678,11 @@ static int do_mlockall(int flags)
        for (vma = current->mm->mmap; vma ; vma = prev->vm_next) {
                vm_flags_t newflags;
  
@@ -105497,7 +112288,7 @@ index 8a54cd2..92f1747 100644
                newflags = vma->vm_flags & ~VM_LOCKED;
                if (flags & MCL_CURRENT)
                        newflags |= VM_LOCKED;
-@@ -814,8 +829,10 @@ SYSCALL_DEFINE1(mlockall, int, flags)
+@@ -699,8 +714,10 @@ SYSCALL_DEFINE1(mlockall, int, flags)
        lock_limit >>= PAGE_SHIFT;
  
        ret = -ENOMEM;
@@ -105523,7 +112314,7 @@ index 5f420f7..dd42fb1b 100644
        .priority = IPC_CALLBACK_PRI, /* use lowest priority */
  };
 diff --git a/mm/mmap.c b/mm/mmap.c
-index 9ec50a3..0476e2d 100644
+index bb50cac..6d50a9f 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
 @@ -41,6 +41,7 @@
@@ -105865,20 +112656,15 @@ index 9ec50a3..0476e2d 100644
        if (!may_expand_vm(mm, len >> PAGE_SHIFT)) {
                unsigned long nr_pages;
  
-@@ -1551,11 +1696,10 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
-       /* Clear old maps */
-       error = -ENOMEM;
--munmap_back:
-       if (find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent)) {
+@@ -1555,6 +1700,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
+                             &rb_parent)) {
                if (do_munmap(mm, addr, len))
                        return -ENOMEM;
--              goto munmap_back;
 +              BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
        }
  
        /*
-@@ -1586,6 +1730,16 @@ munmap_back:
+@@ -1586,6 +1732,16 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
                goto unacct_error;
        }
  
@@ -105895,7 +112681,7 @@ index 9ec50a3..0476e2d 100644
        vma->vm_mm = mm;
        vma->vm_start = addr;
        vma->vm_end = addr + len;
-@@ -1616,6 +1770,13 @@ munmap_back:
+@@ -1616,6 +1772,13 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
                if (error)
                        goto unmap_and_free_vma;
  
@@ -105909,7 +112695,7 @@ index 9ec50a3..0476e2d 100644
                /* Can addr have changed??
                 *
                 * Answer: Yes, several device drivers can do it in their
-@@ -1634,6 +1795,12 @@ munmap_back:
+@@ -1634,6 +1797,12 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
        }
  
        vma_link(mm, vma, prev, rb_link, rb_parent);
@@ -105922,7 +112708,7 @@ index 9ec50a3..0476e2d 100644
        /* Once vma denies write, undo our temporary denial count */
        if (file) {
                if (vm_flags & VM_SHARED)
-@@ -1646,6 +1813,7 @@ out:
+@@ -1646,6 +1815,7 @@ out:
        perf_event_mmap(vma);
  
        vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
@@ -105930,7 +112716,7 @@ index 9ec50a3..0476e2d 100644
        if (vm_flags & VM_LOCKED) {
                if (!((vm_flags & VM_SPECIAL) || is_vm_hugetlb_page(vma) ||
                                        vma == get_gate_vma(current->mm)))
-@@ -1683,6 +1851,12 @@ allow_write_and_free_vma:
+@@ -1683,6 +1853,12 @@ allow_write_and_free_vma:
        if (vm_flags & VM_DENYWRITE)
                allow_write_access(file);
  free_vma:
@@ -105943,7 +112729,7 @@ index 9ec50a3..0476e2d 100644
        kmem_cache_free(vm_area_cachep, vma);
  unacct_error:
        if (charged)
-@@ -1690,7 +1864,63 @@ unacct_error:
+@@ -1690,7 +1866,63 @@ unacct_error:
        return error;
  }
  
@@ -106008,7 +112794,7 @@ index 9ec50a3..0476e2d 100644
  {
        /*
         * We implement the search by looking for an rbtree node that
-@@ -1738,11 +1968,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info)
+@@ -1738,11 +1970,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info)
                        }
                }
  
@@ -106039,7 +112825,7 @@ index 9ec50a3..0476e2d 100644
                if (gap_end >= low_limit && gap_end - gap_start >= length)
                        goto found;
  
-@@ -1792,7 +2040,7 @@ found:
+@@ -1792,7 +2042,7 @@ found:
        return gap_start;
  }
  
@@ -106048,7 +112834,7 @@ index 9ec50a3..0476e2d 100644
  {
        struct mm_struct *mm = current->mm;
        struct vm_area_struct *vma;
-@@ -1846,6 +2094,24 @@ check_current:
+@@ -1846,6 +2096,24 @@ check_current:
                gap_end = vma->vm_start;
                if (gap_end < low_limit)
                        return -ENOMEM;
@@ -106073,7 +112859,7 @@ index 9ec50a3..0476e2d 100644
                if (gap_start <= high_limit && gap_end - gap_start >= length)
                        goto found;
  
-@@ -1909,6 +2175,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -1909,6 +2177,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
        struct mm_struct *mm = current->mm;
        struct vm_area_struct *vma;
        struct vm_unmapped_area_info info;
@@ -106081,7 +112867,7 @@ index 9ec50a3..0476e2d 100644
  
        if (len > TASK_SIZE - mmap_min_addr)
                return -ENOMEM;
-@@ -1916,11 +2183,15 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -1916,11 +2185,15 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
        if (flags & MAP_FIXED)
                return addr;
  
@@ -106098,7 +112884,7 @@ index 9ec50a3..0476e2d 100644
                        return addr;
        }
  
-@@ -1929,6 +2200,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -1929,6 +2202,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
        info.low_limit = mm->mmap_base;
        info.high_limit = TASK_SIZE;
        info.align_mask = 0;
@@ -106106,7 +112892,7 @@ index 9ec50a3..0476e2d 100644
        return vm_unmapped_area(&info);
  }
  #endif
-@@ -1947,6 +2219,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1947,6 +2221,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        struct mm_struct *mm = current->mm;
        unsigned long addr = addr0;
        struct vm_unmapped_area_info info;
@@ -106114,7 +112900,7 @@ index 9ec50a3..0476e2d 100644
  
        /* requested length too big for entire address space */
        if (len > TASK_SIZE - mmap_min_addr)
-@@ -1955,12 +2228,16 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1955,12 +2230,16 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        if (flags & MAP_FIXED)
                return addr;
  
@@ -106132,7 +112918,7 @@ index 9ec50a3..0476e2d 100644
                        return addr;
        }
  
-@@ -1969,6 +2246,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1969,6 +2248,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        info.low_limit = max(PAGE_SIZE, mmap_min_addr);
        info.high_limit = mm->mmap_base;
        info.align_mask = 0;
@@ -106140,7 +112926,7 @@ index 9ec50a3..0476e2d 100644
        addr = vm_unmapped_area(&info);
  
        /*
-@@ -1981,6 +2259,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1981,6 +2261,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
                VM_BUG_ON(addr != -ENOMEM);
                info.flags = 0;
                info.low_limit = TASK_UNMAPPED_BASE;
@@ -106153,7 +112939,7 @@ index 9ec50a3..0476e2d 100644
                info.high_limit = TASK_SIZE;
                addr = vm_unmapped_area(&info);
        }
-@@ -2081,6 +2365,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
+@@ -2081,6 +2367,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
        return vma;
  }
  
@@ -106182,25 +112968,25 @@ index 9ec50a3..0476e2d 100644
  /*
   * Verify that the stack growth is acceptable and
   * update accounting. This is shared with both the
-@@ -2098,8 +2404,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -2098,8 +2406,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
  
        /* Stack limit test */
        actual_size = size;
 -      if (size && (vma->vm_flags & (VM_GROWSUP | VM_GROWSDOWN)))
 -              actual_size -= PAGE_SIZE;
 +      gr_learn_resource(current, RLIMIT_STACK, actual_size, 1);
-       if (actual_size > ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur))
+       if (actual_size > READ_ONCE(rlim[RLIMIT_STACK].rlim_cur))
                return -ENOMEM;
  
-@@ -2110,6 +2415,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -2110,6 +2417,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
                locked = mm->locked_vm + grow;
-               limit = ACCESS_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
+               limit = READ_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
                limit >>= PAGE_SHIFT;
 +              gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
                if (locked > limit && !capable(CAP_IPC_LOCK))
                        return -ENOMEM;
        }
-@@ -2139,37 +2445,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -2139,37 +2447,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
   * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
   * vma is the last one with address > vma->vm_end.  Have to extend vma.
   */
@@ -106258,7 +113044,7 @@ index 9ec50a3..0476e2d 100644
                unsigned long size, grow;
  
                size = address - vma->vm_start;
-@@ -2204,6 +2521,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
+@@ -2204,6 +2523,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
                        }
                }
        }
@@ -106267,7 +113053,7 @@ index 9ec50a3..0476e2d 100644
        vma_unlock_anon_vma(vma);
        khugepaged_enter_vma_merge(vma, vma->vm_flags);
        validate_mm(vma->vm_mm);
-@@ -2218,6 +2537,8 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -2218,6 +2539,8 @@ int expand_downwards(struct vm_area_struct *vma,
                                   unsigned long address)
  {
        int error;
@@ -106276,7 +113062,7 @@ index 9ec50a3..0476e2d 100644
  
        /*
         * We must make sure the anon_vma is allocated
-@@ -2231,6 +2552,15 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -2231,6 +2554,15 @@ int expand_downwards(struct vm_area_struct *vma,
        if (error)
                return error;
  
@@ -106292,7 +113078,7 @@ index 9ec50a3..0476e2d 100644
        vma_lock_anon_vma(vma);
  
        /*
-@@ -2240,9 +2570,17 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -2240,9 +2572,17 @@ int expand_downwards(struct vm_area_struct *vma,
         */
  
        /* Somebody else might have raced and expanded it already */
@@ -106311,7 +113097,7 @@ index 9ec50a3..0476e2d 100644
                size = vma->vm_end - address;
                grow = (vma->vm_start - address) >> PAGE_SHIFT;
  
-@@ -2267,13 +2605,27 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -2267,13 +2607,27 @@ int expand_downwards(struct vm_area_struct *vma,
                                vma->vm_pgoff -= grow;
                                anon_vma_interval_tree_post_update_vma(vma);
                                vma_gap_update(vma);
@@ -106339,7 +113125,7 @@ index 9ec50a3..0476e2d 100644
        khugepaged_enter_vma_merge(vma, vma->vm_flags);
        validate_mm(vma->vm_mm);
        return error;
-@@ -2373,6 +2725,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -2373,6 +2727,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
        do {
                long nrpages = vma_pages(vma);
  
@@ -106353,7 +113139,7 @@ index 9ec50a3..0476e2d 100644
                if (vma->vm_flags & VM_ACCOUNT)
                        nr_accounted += nrpages;
                vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
-@@ -2417,6 +2776,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2417,6 +2778,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
        insertion_point = (prev ? &prev->vm_next : &mm->mmap);
        vma->vm_prev = NULL;
        do {
@@ -106370,7 +113156,7 @@ index 9ec50a3..0476e2d 100644
                vma_rb_erase(vma, &mm->mm_rb);
                mm->map_count--;
                tail_vma = vma;
-@@ -2444,14 +2813,33 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2444,14 +2815,33 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
        struct vm_area_struct *new;
        int err = -ENOMEM;
  
@@ -106404,7 +113190,7 @@ index 9ec50a3..0476e2d 100644
        /* most fields are the same, copy all, and then fixup */
        *new = *vma;
  
-@@ -2464,6 +2852,22 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2464,6 +2854,22 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
                new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
        }
  
@@ -106427,7 +113213,7 @@ index 9ec50a3..0476e2d 100644
        err = vma_dup_policy(vma, new);
        if (err)
                goto out_free_vma;
-@@ -2484,6 +2888,38 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2484,6 +2890,38 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
        else
                err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
  
@@ -106466,7 +113252,7 @@ index 9ec50a3..0476e2d 100644
        /* Success. */
        if (!err)
                return 0;
-@@ -2493,10 +2929,18 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2493,10 +2931,18 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
                new->vm_ops->close(new);
        if (new->vm_file)
                fput(new->vm_file);
@@ -106486,7 +113272,7 @@ index 9ec50a3..0476e2d 100644
        kmem_cache_free(vm_area_cachep, new);
   out_err:
        return err;
-@@ -2509,6 +2953,15 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2509,6 +2955,15 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
  int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
              unsigned long addr, int new_below)
  {
@@ -106502,7 +113288,7 @@ index 9ec50a3..0476e2d 100644
        if (mm->map_count >= sysctl_max_map_count)
                return -ENOMEM;
  
-@@ -2520,11 +2973,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2520,11 +2975,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
   * work.  This now handles partial unmappings.
   * Jeremy Fitzhardinge <jeremy@goop.org>
   */
@@ -106533,7 +113319,7 @@ index 9ec50a3..0476e2d 100644
        if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start)
                return -EINVAL;
  
-@@ -2602,6 +3074,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
+@@ -2602,6 +3076,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
        /* Fix up all other VM information */
        remove_vma_list(mm, vma);
  
@@ -106542,7 +113328,7 @@ index 9ec50a3..0476e2d 100644
        return 0;
  }
  
-@@ -2610,6 +3084,13 @@ int vm_munmap(unsigned long start, size_t len)
+@@ -2610,6 +3086,13 @@ int vm_munmap(unsigned long start, size_t len)
        int ret;
        struct mm_struct *mm = current->mm;
  
@@ -106556,7 +113342,7 @@ index 9ec50a3..0476e2d 100644
        down_write(&mm->mmap_sem);
        ret = do_munmap(mm, start, len);
        up_write(&mm->mmap_sem);
-@@ -2656,6 +3137,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -2656,6 +3139,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
        down_write(&mm->mmap_sem);
        vma = find_vma(mm, start);
  
@@ -106568,7 +113354,7 @@ index 9ec50a3..0476e2d 100644
        if (!vma || !(vma->vm_flags & VM_SHARED))
                goto out;
  
-@@ -2692,16 +3178,6 @@ out:
+@@ -2692,16 +3180,6 @@ out:
        return ret;
  }
  
@@ -106585,7 +113371,7 @@ index 9ec50a3..0476e2d 100644
  /*
   *  this is really a simplified "do_mmap".  it only handles
   *  anonymous maps.  eventually we may be able to do some
-@@ -2715,6 +3191,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2715,6 +3193,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
        struct rb_node **rb_link, *rb_parent;
        pgoff_t pgoff = addr >> PAGE_SHIFT;
        int error;
@@ -106593,7 +113379,7 @@ index 9ec50a3..0476e2d 100644
  
        len = PAGE_ALIGN(len);
        if (!len)
-@@ -2722,10 +3199,24 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2722,10 +3201,24 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
  
        flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
  
@@ -106618,15 +113404,10 @@ index 9ec50a3..0476e2d 100644
        error = mlock_future_check(mm, mm->def_flags, len);
        if (error)
                return error;
-@@ -2739,21 +3230,20 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
-       /*
-        * Clear old maps.  this also does some error checking for us
-        */
-- munmap_back:
-       if (find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent)) {
+@@ -2743,16 +3236,17 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+                             &rb_parent)) {
                if (do_munmap(mm, addr, len))
                        return -ENOMEM;
--              goto munmap_back;
 +              BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
        }
  
@@ -106643,7 +113424,7 @@ index 9ec50a3..0476e2d 100644
                return -ENOMEM;
  
        /* Can we just expand an old private anonymous mapping? */
-@@ -2767,7 +3257,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2766,7 +3260,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
         */
        vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
        if (!vma) {
@@ -106652,7 +113433,7 @@ index 9ec50a3..0476e2d 100644
                return -ENOMEM;
        }
  
-@@ -2781,10 +3271,11 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2780,10 +3274,11 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
        vma_link(mm, vma, prev, rb_link, rb_parent);
  out:
        perf_event_mmap(vma);
@@ -106666,7 +113447,7 @@ index 9ec50a3..0476e2d 100644
        return addr;
  }
  
-@@ -2846,6 +3337,7 @@ void exit_mmap(struct mm_struct *mm)
+@@ -2845,6 +3340,7 @@ void exit_mmap(struct mm_struct *mm)
        while (vma) {
                if (vma->vm_flags & VM_ACCOUNT)
                        nr_accounted += vma_pages(vma);
@@ -106674,7 +113455,7 @@ index 9ec50a3..0476e2d 100644
                vma = remove_vma(vma);
        }
        vm_unacct_memory(nr_accounted);
-@@ -2860,6 +3352,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -2859,6 +3355,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
        struct vm_area_struct *prev;
        struct rb_node **rb_link, *rb_parent;
  
@@ -106688,7 +113469,7 @@ index 9ec50a3..0476e2d 100644
        /*
         * The vm_pgoff of a purely anonymous vma should be irrelevant
         * until its first write fault, when page's anon_vma and index
-@@ -2883,7 +3382,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -2882,7 +3385,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
             security_vm_enough_memory_mm(mm, vma_pages(vma)))
                return -ENOMEM;
  
@@ -106710,7 +113491,7 @@ index 9ec50a3..0476e2d 100644
        return 0;
  }
  
-@@ -2902,6 +3415,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -2901,6 +3418,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
        struct rb_node **rb_link, *rb_parent;
        bool faulted_in_anon_vma = true;
  
@@ -106719,7 +113500,7 @@ index 9ec50a3..0476e2d 100644
        /*
         * If anonymous vma has not yet been faulted, update new pgoff
         * to match new location, to increase its chance of merging.
-@@ -2966,6 +3481,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -2965,6 +3484,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
        return NULL;
  }
  
@@ -106759,7 +113540,7 @@ index 9ec50a3..0476e2d 100644
  /*
   * Return true if the calling process may expand its vm space by the passed
   * number of pages
-@@ -2977,6 +3525,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
+@@ -2976,6 +3528,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
  
        lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT;
  
@@ -106767,7 +113548,7 @@ index 9ec50a3..0476e2d 100644
        if (cur + npages > lim)
                return 0;
        return 1;
-@@ -3059,6 +3608,22 @@ static struct vm_area_struct *__install_special_mapping(
+@@ -3058,6 +3611,22 @@ static struct vm_area_struct *__install_special_mapping(
        vma->vm_start = addr;
        vma->vm_end = addr + len;
  
@@ -106791,7 +113572,7 @@ index 9ec50a3..0476e2d 100644
        vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
  
 diff --git a/mm/mprotect.c b/mm/mprotect.c
-index 8858483..8145fa5 100644
+index 8858483..72f2464 100644
 --- a/mm/mprotect.c
 +++ b/mm/mprotect.c
 @@ -24,10 +24,18 @@
@@ -106840,8 +113621,8 @@ index 8858483..8145fa5 100644
 +
 +#ifdef CONFIG_SMP
 +              wmb();
-+              cpus_clear(mm->context.cpu_user_cs_mask);
-+              cpu_set(smp_processor_id(), mm->context.cpu_user_cs_mask);
++              cpumask_clear(&mm->context.cpu_user_cs_mask);
++              cpumask_set_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask);
 +#endif
 +
 +              set_user_cs(mm->context.user_cs_base, mm->context.user_cs_limit, smp_processor_id());
@@ -107020,7 +113801,7 @@ index 8858483..8145fa5 100644
  
                if (nstart < prev->vm_end)
 diff --git a/mm/mremap.c b/mm/mremap.c
-index 2dc44b1..caa1819 100644
+index 034e2d3..81deca5 100644
 --- a/mm/mremap.c
 +++ b/mm/mremap.c
 @@ -142,6 +142,12 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd,
@@ -107038,17 +113819,17 @@ index 2dc44b1..caa1819 100644
        }
 @@ -350,6 +356,11 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr,
        if (is_vm_hugetlb_page(vma))
-               goto Einval;
+               return ERR_PTR(-EINVAL);
  
 +#ifdef CONFIG_PAX_SEGMEXEC
 +      if (pax_find_mirror_vma(vma))
-+              goto Einval;
++              return ERR_PTR(-EINVAL);
 +#endif
 +
        /* We can't remap across vm area boundaries */
        if (old_len > vma->vm_end - addr)
-               goto Efault;
-@@ -405,20 +416,25 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
+               return ERR_PTR(-EFAULT);
+@@ -396,20 +407,25 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
        unsigned long ret = -EINVAL;
        unsigned long charged = 0;
        unsigned long map_flags;
@@ -107079,7 +113860,7 @@ index 2dc44b1..caa1819 100644
                goto out;
  
        ret = do_munmap(mm, new_addr, new_len);
-@@ -487,6 +503,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
+@@ -478,6 +494,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
        unsigned long ret = -EINVAL;
        unsigned long charged = 0;
        bool locked = false;
@@ -107087,7 +113868,7 @@ index 2dc44b1..caa1819 100644
  
        if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
                return ret;
-@@ -508,6 +525,17 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
+@@ -499,6 +516,17 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
        if (!new_len)
                return ret;
  
@@ -107105,7 +113886,7 @@ index 2dc44b1..caa1819 100644
        down_write(&current->mm->mmap_sem);
  
        if (flags & MREMAP_FIXED) {
-@@ -558,6 +586,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
+@@ -549,6 +577,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
                                new_addr = addr;
                        }
                        ret = addr;
@@ -107113,7 +113894,7 @@ index 2dc44b1..caa1819 100644
                        goto out;
                }
        }
-@@ -581,7 +610,12 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
+@@ -572,7 +601,12 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
                        goto out;
                }
  
@@ -107127,7 +113908,7 @@ index 2dc44b1..caa1819 100644
  out:
        if (ret & ~PAGE_MASK)
 diff --git a/mm/nommu.c b/mm/nommu.c
-index 3fba2dc..fdad748 100644
+index e544508..b56ce7a 100644
 --- a/mm/nommu.c
 +++ b/mm/nommu.c
 @@ -72,7 +72,6 @@ int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
@@ -107194,7 +113975,7 @@ index 3fba2dc..fdad748 100644
        struct mm_struct *mm;
  
 diff --git a/mm/page-writeback.c b/mm/page-writeback.c
-index ad05f2f..cee723a 100644
+index eb59f7e..b23a2a8 100644
 --- a/mm/page-writeback.c
 +++ b/mm/page-writeback.c
 @@ -664,7 +664,7 @@ static long long pos_ratio_polynom(unsigned long setpoint,
@@ -107207,7 +113988,7 @@ index ad05f2f..cee723a 100644
                                        unsigned long bg_thresh,
                                        unsigned long dirty,
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 40e2942..0eb29a2 100644
+index ebffa0e..c61160a 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
 @@ -61,6 +61,7 @@
@@ -107312,7 +114093,25 @@ index 40e2942..0eb29a2 100644
  
        if (order && (gfp_flags & __GFP_COMP))
                prep_compound_page(page, order);
-@@ -1699,7 +1739,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
+@@ -1649,6 +1689,8 @@ int __isolate_free_page(struct page *page, unsigned int order)
+       zone->free_area[order].nr_free--;
+       rmv_page_order(page);
++      set_page_owner(page, order, 0);
++
+       /* Set the pageblock if the isolated page is at least a pageblock */
+       if (order >= pageblock_order - 1) {
+               struct page *endpage = page + (1 << order) - 1;
+@@ -1660,7 +1702,7 @@ int __isolate_free_page(struct page *page, unsigned int order)
+               }
+       }
+-      set_page_owner(page, order, 0);
++
+       return 1UL << order;
+ }
+@@ -1749,7 +1791,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
        }
  
        __mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
@@ -107321,7 +114120,7 @@ index 40e2942..0eb29a2 100644
            !test_bit(ZONE_FAIR_DEPLETED, &zone->flags))
                set_bit(ZONE_FAIR_DEPLETED, &zone->flags);
  
-@@ -2018,7 +2058,7 @@ static void reset_alloc_batches(struct zone *preferred_zone)
+@@ -2068,7 +2110,7 @@ static void reset_alloc_batches(struct zone *preferred_zone)
        do {
                mod_zone_page_state(zone, NR_ALLOC_BATCH,
                        high_wmark_pages(zone) - low_wmark_pages(zone) -
@@ -107330,7 +114129,7 @@ index 40e2942..0eb29a2 100644
                clear_bit(ZONE_FAIR_DEPLETED, &zone->flags);
        } while (zone++ != preferred_zone);
  }
-@@ -5738,7 +5778,7 @@ static void __setup_per_zone_wmarks(void)
+@@ -5781,7 +5823,7 @@ static void __setup_per_zone_wmarks(void)
  
                __mod_zone_page_state(zone, NR_ALLOC_BATCH,
                        high_wmark_pages(zone) - low_wmark_pages(zone) -
@@ -107340,7 +114139,7 @@ index 40e2942..0eb29a2 100644
                setup_zone_migrate_reserve(zone);
                spin_unlock_irqrestore(&zone->lock, flags);
 diff --git a/mm/percpu.c b/mm/percpu.c
-index 73c97a5..508ee25 100644
+index 2dd7448..9bb6305 100644
 --- a/mm/percpu.c
 +++ b/mm/percpu.c
 @@ -131,7 +131,7 @@ static unsigned int pcpu_low_unit_cpu __read_mostly;
@@ -107353,7 +114152,7 @@ index 73c97a5..508ee25 100644
  
  static const int *pcpu_unit_map __read_mostly;                /* cpu -> unit */
 diff --git a/mm/process_vm_access.c b/mm/process_vm_access.c
-index b159769..d07037f 100644
+index e88d071..d80e01a 100644
 --- a/mm/process_vm_access.c
 +++ b/mm/process_vm_access.c
 @@ -13,6 +13,7 @@
@@ -107404,7 +114203,7 @@ index b159769..d07037f 100644
        if (!mm || IS_ERR(mm)) {
                rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
 diff --git a/mm/rmap.c b/mm/rmap.c
-index c161a14..8a069bb 100644
+index 24dd3f9..4eb43f4 100644
 --- a/mm/rmap.c
 +++ b/mm/rmap.c
 @@ -166,6 +166,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
@@ -107508,12 +114307,12 @@ index c161a14..8a069bb 100644
  
  /*
 diff --git a/mm/shmem.c b/mm/shmem.c
-index cf2d0ca..ec06b8b 100644
+index 47d536e..8321b4e 100644
 --- a/mm/shmem.c
 +++ b/mm/shmem.c
 @@ -33,7 +33,7 @@
  #include <linux/swap.h>
- #include <linux/aio.h>
+ #include <linux/uio.h>
  
 -static struct vfsmount *shm_mnt;
 +struct vfsmount *shm_mnt;
@@ -107568,7 +114367,7 @@ index cf2d0ca..ec06b8b 100644
                return -ENOMEM;
  
 diff --git a/mm/slab.c b/mm/slab.c
-index c4b89ea..20990be 100644
+index 7eb38dd..a5172b1 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
 @@ -314,10 +314,12 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
@@ -107606,7 +114405,7 @@ index c4b89ea..20990be 100644
  {
        u32 offset = (obj - page->s_mem);
        return reciprocal_divide(offset, cache->reciprocal_buffer_size);
-@@ -1438,7 +1442,7 @@ void __init kmem_cache_init(void)
+@@ -1452,7 +1456,7 @@ void __init kmem_cache_init(void)
         * structures first.  Without this, further allocations will bug.
         */
        kmalloc_caches[INDEX_NODE] = create_kmalloc_cache("kmalloc-node",
@@ -107615,7 +114414,7 @@ index c4b89ea..20990be 100644
        slab_state = PARTIAL_NODE;
  
        slab_early_init = 0;
-@@ -2059,7 +2063,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
+@@ -2073,7 +2077,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
  
        cachep = find_mergeable(size, align, flags, name, ctor);
        if (cachep) {
@@ -107624,7 +114423,7 @@ index c4b89ea..20990be 100644
  
                /*
                 * Adjust the object sizes so that we clear
-@@ -3357,6 +3361,20 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
+@@ -3371,6 +3375,20 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
        struct array_cache *ac = cpu_cache_get(cachep);
  
        check_irq_off();
@@ -107645,7 +114444,7 @@ index c4b89ea..20990be 100644
        kmemleak_free_recursive(objp, cachep->flags);
        objp = cache_free_debugcheck(cachep, objp, caller);
  
-@@ -3469,7 +3487,7 @@ __do_kmalloc_node(size_t size, gfp_t flags, int node, unsigned long caller)
+@@ -3483,7 +3501,7 @@ __do_kmalloc_node(size_t size, gfp_t flags, int node, unsigned long caller)
        return kmem_cache_alloc_node_trace(cachep, flags, node, size);
  }
  
@@ -107654,7 +114453,7 @@ index c4b89ea..20990be 100644
  {
        return __do_kmalloc_node(size, flags, node, _RET_IP_);
  }
-@@ -3489,7 +3507,7 @@ EXPORT_SYMBOL(__kmalloc_node_track_caller);
+@@ -3503,7 +3521,7 @@ EXPORT_SYMBOL(__kmalloc_node_track_caller);
   * @flags: the type of memory to allocate (see kmalloc).
   * @caller: function caller for debug tracking of the caller
   */
@@ -107663,7 +114462,7 @@ index c4b89ea..20990be 100644
                                          unsigned long caller)
  {
        struct kmem_cache *cachep;
-@@ -3562,6 +3580,7 @@ void kfree(const void *objp)
+@@ -3576,6 +3594,7 @@ void kfree(const void *objp)
  
        if (unlikely(ZERO_OR_NULL_PTR(objp)))
                return;
@@ -107671,7 +114470,7 @@ index c4b89ea..20990be 100644
        local_irq_save(flags);
        kfree_debugcheck(objp);
        c = virt_to_cache(objp);
-@@ -3981,14 +4000,22 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
+@@ -3995,14 +4014,22 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
        }
        /* cpu stats */
        {
@@ -107698,7 +114497,7 @@ index c4b89ea..20990be 100644
  #endif
  }
  
-@@ -4196,13 +4223,69 @@ static const struct file_operations proc_slabstats_operations = {
+@@ -4210,13 +4237,69 @@ static const struct file_operations proc_slabstats_operations = {
  static int __init slab_proc_init(void)
  {
  #ifdef CONFIG_DEBUG_SLAB_LEAK
@@ -108034,7 +114833,7 @@ index 999bb34..9843aea 100644
  {
        void *ret;
 diff --git a/mm/slob.c b/mm/slob.c
-index 94a7fed..cf3fb1a 100644
+index 4765f65..fafa9d5 100644
 --- a/mm/slob.c
 +++ b/mm/slob.c
 @@ -157,7 +157,7 @@ static void set_slob(slob_t *s, slobidx_t size, slob_t *next)
@@ -108332,7 +115131,7 @@ index 94a7fed..cf3fb1a 100644
  
 @@ -534,23 +636,33 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags)
  
- void *slob_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
static void *slob_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
  {
 -      void *b;
 +      void *b = NULL;
@@ -108366,7 +115165,7 @@ index 94a7fed..cf3fb1a 100644
  
        if (b && c->ctor)
                c->ctor(b);
-@@ -567,7 +679,7 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
+@@ -566,7 +678,7 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
  EXPORT_SYMBOL(kmem_cache_alloc);
  
  #ifdef CONFIG_NUMA
@@ -108375,7 +115174,7 @@ index 94a7fed..cf3fb1a 100644
  {
        return __do_kmalloc_node(size, gfp, node, _RET_IP_);
  }
-@@ -580,12 +692,16 @@ void *kmem_cache_alloc_node(struct kmem_cache *cachep, gfp_t gfp, int node)
+@@ -579,12 +691,16 @@ void *kmem_cache_alloc_node(struct kmem_cache *cachep, gfp_t gfp, int node)
  EXPORT_SYMBOL(kmem_cache_alloc_node);
  #endif
  
@@ -108396,7 +115195,7 @@ index 94a7fed..cf3fb1a 100644
  }
  
  static void kmem_rcu_free(struct rcu_head *head)
-@@ -593,22 +709,36 @@ static void kmem_rcu_free(struct rcu_head *head)
+@@ -592,22 +708,36 @@ static void kmem_rcu_free(struct rcu_head *head)
        struct slob_rcu *slob_rcu = (struct slob_rcu *)head;
        void *b = (void *)slob_rcu - (slob_rcu->size - sizeof(struct slob_rcu));
  
@@ -108438,7 +115237,7 @@ index 94a7fed..cf3fb1a 100644
  EXPORT_SYMBOL(kmem_cache_free);
  
 diff --git a/mm/slub.c b/mm/slub.c
-index 82c4737..55c316a 100644
+index 54c0876..31383a1 100644
 --- a/mm/slub.c
 +++ b/mm/slub.c
 @@ -198,7 +198,7 @@ struct track {
@@ -108459,7 +115258,7 @@ index 82c4737..55c316a 100644
               s, (void *)t->addr, jiffies - t->when, t->cpu, t->pid);
  #ifdef CONFIG_STACKTRACE
        {
-@@ -2709,6 +2709,14 @@ static __always_inline void slab_free(struct kmem_cache *s,
+@@ -2707,6 +2707,14 @@ static __always_inline void slab_free(struct kmem_cache *s,
  
        slab_free_hook(s, x);
  
@@ -108474,7 +115273,7 @@ index 82c4737..55c316a 100644
  redo:
        /*
         * Determine the currently cpus per cpu slab.
-@@ -3050,6 +3058,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
+@@ -3048,6 +3056,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
        s->inuse = size;
  
        if (((flags & (SLAB_DESTROY_BY_RCU | SLAB_POISON)) ||
@@ -108484,7 +115283,7 @@ index 82c4737..55c316a 100644
                s->ctor)) {
                /*
                 * Relocate free pointer after the object if it is not
-@@ -3304,7 +3315,7 @@ static int __init setup_slub_min_objects(char *str)
+@@ -3302,7 +3313,7 @@ static int __init setup_slub_min_objects(char *str)
  
  __setup("slub_min_objects=", setup_slub_min_objects);
  
@@ -108493,7 +115292,7 @@ index 82c4737..55c316a 100644
  {
        struct kmem_cache *s;
        void *ret;
-@@ -3342,7 +3353,7 @@ static void *kmalloc_large_node(size_t size, gfp_t flags, int node)
+@@ -3340,7 +3351,7 @@ static void *kmalloc_large_node(size_t size, gfp_t flags, int node)
        return ptr;
  }
  
@@ -108502,7 +115301,7 @@ index 82c4737..55c316a 100644
  {
        struct kmem_cache *s;
        void *ret;
-@@ -3390,6 +3401,59 @@ static size_t __ksize(const void *object)
+@@ -3388,6 +3399,59 @@ static size_t __ksize(const void *object)
        return slab_ksize(page->slab_cache);
  }
  
@@ -108562,7 +115361,7 @@ index 82c4737..55c316a 100644
  size_t ksize(const void *object)
  {
        size_t size = __ksize(object);
-@@ -3410,6 +3474,7 @@ void kfree(const void *x)
+@@ -3408,6 +3472,7 @@ void kfree(const void *x)
        if (unlikely(ZERO_OR_NULL_PTR(x)))
                return;
  
@@ -108570,7 +115369,7 @@ index 82c4737..55c316a 100644
        page = virt_to_head_page(x);
        if (unlikely(!PageSlab(page))) {
                BUG_ON(!PageCompound(page));
-@@ -3726,7 +3791,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
+@@ -3724,7 +3789,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
  
        s = find_mergeable(size, align, flags, name, ctor);
        if (s) {
@@ -108579,7 +115378,7 @@ index 82c4737..55c316a 100644
  
                /*
                 * Adjust the object sizes so that we clear
-@@ -3742,7 +3807,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
+@@ -3740,7 +3805,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
                }
  
                if (sysfs_slab_alias(s, name)) {
@@ -108588,7 +115387,7 @@ index 82c4737..55c316a 100644
                        s = NULL;
                }
        }
-@@ -3859,7 +3924,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
+@@ -3857,7 +3922,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
  }
  #endif
  
@@ -108597,7 +115396,7 @@ index 82c4737..55c316a 100644
  static int count_inuse(struct page *page)
  {
        return page->inuse;
-@@ -4140,7 +4205,11 @@ static int list_locations(struct kmem_cache *s, char *buf,
+@@ -4138,7 +4203,11 @@ static int list_locations(struct kmem_cache *s, char *buf,
                len += sprintf(buf + len, "%7ld ", l->count);
  
                if (l->addr)
@@ -108609,7 +115408,7 @@ index 82c4737..55c316a 100644
                else
                        len += sprintf(buf + len, "<not-available>");
  
-@@ -4238,12 +4307,12 @@ static void __init resiliency_test(void)
+@@ -4236,12 +4305,12 @@ static void __init resiliency_test(void)
        validate_slab_cache(kmalloc_caches[9]);
  }
  #else
@@ -108624,7 +115423,7 @@ index 82c4737..55c316a 100644
  enum slab_stat_type {
        SL_ALL,                 /* All slabs */
        SL_PARTIAL,             /* Only partially allocated slabs */
-@@ -4480,13 +4549,17 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
+@@ -4478,13 +4547,17 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
  {
        if (!s->ctor)
                return 0;
@@ -108643,7 +115442,7 @@ index 82c4737..55c316a 100644
  }
  SLAB_ATTR_RO(aliases);
  
-@@ -4574,6 +4647,22 @@ static ssize_t cache_dma_show(struct kmem_cache *s, char *buf)
+@@ -4572,6 +4645,22 @@ static ssize_t cache_dma_show(struct kmem_cache *s, char *buf)
  SLAB_ATTR_RO(cache_dma);
  #endif
  
@@ -108666,7 +115465,7 @@ index 82c4737..55c316a 100644
  static ssize_t destroy_by_rcu_show(struct kmem_cache *s, char *buf)
  {
        return sprintf(buf, "%d\n", !!(s->flags & SLAB_DESTROY_BY_RCU));
-@@ -4629,7 +4718,7 @@ static ssize_t trace_store(struct kmem_cache *s, const char *buf,
+@@ -4627,7 +4716,7 @@ static ssize_t trace_store(struct kmem_cache *s, const char *buf,
         * as well as cause other issues like converting a mergeable
         * cache into an umergeable one.
         */
@@ -108675,7 +115474,7 @@ index 82c4737..55c316a 100644
                return -EINVAL;
  
        s->flags &= ~SLAB_TRACE;
-@@ -4749,7 +4838,7 @@ static ssize_t failslab_show(struct kmem_cache *s, char *buf)
+@@ -4747,7 +4836,7 @@ static ssize_t failslab_show(struct kmem_cache *s, char *buf)
  static ssize_t failslab_store(struct kmem_cache *s, const char *buf,
                                                        size_t length)
  {
@@ -108684,7 +115483,7 @@ index 82c4737..55c316a 100644
                return -EINVAL;
  
        s->flags &= ~SLAB_FAILSLAB;
-@@ -4916,6 +5005,12 @@ static struct attribute *slab_attrs[] = {
+@@ -4914,6 +5003,12 @@ static struct attribute *slab_attrs[] = {
  #ifdef CONFIG_ZONE_DMA
        &cache_dma_attr.attr,
  #endif
@@ -108697,7 +115496,7 @@ index 82c4737..55c316a 100644
  #ifdef CONFIG_NUMA
        &remote_node_defrag_ratio_attr.attr,
  #endif
-@@ -5157,6 +5252,7 @@ static char *create_unique_id(struct kmem_cache *s)
+@@ -5155,6 +5250,7 @@ static char *create_unique_id(struct kmem_cache *s)
        return name;
  }
  
@@ -108705,7 +115504,7 @@ index 82c4737..55c316a 100644
  static int sysfs_slab_add(struct kmem_cache *s)
  {
        int err;
-@@ -5230,6 +5326,7 @@ void sysfs_slab_remove(struct kmem_cache *s)
+@@ -5228,6 +5324,7 @@ void sysfs_slab_remove(struct kmem_cache *s)
        kobject_del(&s->kobj);
        kobject_put(&s->kobj);
  }
@@ -108713,7 +115512,7 @@ index 82c4737..55c316a 100644
  
  /*
   * Need to buffer aliases during bootup until sysfs becomes
-@@ -5243,6 +5340,7 @@ struct saved_alias {
+@@ -5241,6 +5338,7 @@ struct saved_alias {
  
  static struct saved_alias *alias_list;
  
@@ -108721,7 +115520,7 @@ index 82c4737..55c316a 100644
  static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
  {
        struct saved_alias *al;
-@@ -5265,6 +5363,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
+@@ -5263,6 +5361,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
        alias_list = al;
        return 0;
  }
@@ -108765,20 +115564,12 @@ index d1b48b6..6e8590e 100644
                }
        }
 diff --git a/mm/swap.c b/mm/swap.c
-index cd3a5e6..40c0c8f 100644
+index a7251a8..ac754a9 100644
 --- a/mm/swap.c
 +++ b/mm/swap.c
-@@ -31,6 +31,7 @@
- #include <linux/memcontrol.h>
- #include <linux/gfp.h>
- #include <linux/uio.h>
-+#include <linux/hugetlb.h>
- #include "internal.h"
-@@ -77,6 +78,8 @@ static void __put_compound_page(struct page *page)
-       __page_cache_release(page);
+@@ -85,6 +85,8 @@ static void __put_compound_page(struct page *page)
+       if (!PageHuge(page))
+               __page_cache_release(page);
        dtor = get_compound_page_dtor(page);
 +      if (!PageHuge(page))
 +              BUG_ON(dtor != free_compound_page);
@@ -108786,7 +115577,7 @@ index cd3a5e6..40c0c8f 100644
  }
  
 diff --git a/mm/swapfile.c b/mm/swapfile.c
-index 63f55cc..31874e6 100644
+index a7e7210..b286e7d 100644
 --- a/mm/swapfile.c
 +++ b/mm/swapfile.c
 @@ -84,7 +84,7 @@ static DEFINE_MUTEX(swapon_mutex);
@@ -108837,7 +115628,7 @@ index 63f55cc..31874e6 100644
  
        if (S_ISREG(inode->i_mode))
 diff --git a/mm/util.c b/mm/util.c
-index 3981ae9..28b585b 100644
+index 68ff8a5..40c7a70 100644
 --- a/mm/util.c
 +++ b/mm/util.c
 @@ -233,6 +233,12 @@ struct task_struct *task_of_stack(struct task_struct *task,
@@ -108853,7 +115644,7 @@ index 3981ae9..28b585b 100644
        mm->get_unmapped_area = arch_get_unmapped_area;
  }
  #endif
-@@ -403,6 +409,9 @@ int get_cmdline(struct task_struct *task, char *buffer, int buflen)
+@@ -434,6 +440,9 @@ int get_cmdline(struct task_struct *task, char *buffer, int buflen)
        if (!mm->arg_end)
                goto out_mm;    /* Shh! No looking before we're done */
  
@@ -108864,10 +115655,10 @@ index 3981ae9..28b585b 100644
  
        if (len > buflen)
 diff --git a/mm/vmalloc.c b/mm/vmalloc.c
-index 49abccf..7bd1931 100644
+index 2faaa29..9744185 100644
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
-@@ -39,20 +39,65 @@ struct vfree_deferred {
+@@ -40,20 +40,65 @@ struct vfree_deferred {
        struct work_struct wq;
  };
  static DEFINE_PER_CPU(struct vfree_deferred, vfree_deferred);
@@ -108936,7 +115727,7 @@ index 49abccf..7bd1931 100644
  /*** Page table manipulation functions ***/
  
  static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
-@@ -61,8 +106,19 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
+@@ -62,8 +107,19 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
  
        pte = pte_offset_kernel(pmd, addr);
        do {
@@ -108958,7 +115749,7 @@ index 49abccf..7bd1931 100644
        } while (pte++, addr += PAGE_SIZE, addr != end);
  }
  
-@@ -122,16 +178,29 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr,
+@@ -127,16 +183,29 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr,
        pte = pte_alloc_kernel(pmd, addr);
        if (!pte)
                return -ENOMEM;
@@ -108990,7 +115781,7 @@ index 49abccf..7bd1931 100644
        return 0;
  }
  
-@@ -141,7 +210,7 @@ static int vmap_pmd_range(pud_t *pud, unsigned long addr,
+@@ -146,7 +215,7 @@ static int vmap_pmd_range(pud_t *pud, unsigned long addr,
        pmd_t *pmd;
        unsigned long next;
  
@@ -108999,7 +115790,7 @@ index 49abccf..7bd1931 100644
        if (!pmd)
                return -ENOMEM;
        do {
-@@ -158,7 +227,7 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr,
+@@ -163,7 +232,7 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr,
        pud_t *pud;
        unsigned long next;
  
@@ -109008,7 +115799,7 @@ index 49abccf..7bd1931 100644
        if (!pud)
                return -ENOMEM;
        do {
-@@ -218,6 +287,12 @@ int is_vmalloc_or_module_addr(const void *x)
+@@ -223,6 +292,12 @@ int is_vmalloc_or_module_addr(const void *x)
        if (addr >= MODULES_VADDR && addr < MODULES_END)
                return 1;
  #endif
@@ -109021,7 +115812,7 @@ index 49abccf..7bd1931 100644
        return is_vmalloc_addr(x);
  }
  
-@@ -238,8 +313,14 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)
+@@ -243,8 +318,14 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)
  
        if (!pgd_none(*pgd)) {
                pud_t *pud = pud_offset(pgd, addr);
@@ -109036,7 +115827,7 @@ index 49abccf..7bd1931 100644
                        if (!pmd_none(*pmd)) {
                                pte_t *ptep, pte;
  
-@@ -341,7 +422,7 @@ static void purge_vmap_area_lazy(void);
+@@ -346,7 +427,7 @@ static void purge_vmap_area_lazy(void);
   * Allocate a region of KVA of the specified size and alignment, within the
   * vstart and vend.
   */
@@ -109045,7 +115836,7 @@ index 49abccf..7bd1931 100644
                                unsigned long align,
                                unsigned long vstart, unsigned long vend,
                                int node, gfp_t gfp_mask)
-@@ -1182,13 +1263,27 @@ void __init vmalloc_init(void)
+@@ -1202,13 +1283,27 @@ void __init vmalloc_init(void)
        for_each_possible_cpu(i) {
                struct vmap_block_queue *vbq;
                struct vfree_deferred *p;
@@ -109074,7 +115865,7 @@ index 49abccf..7bd1931 100644
        }
  
        /* Import existing vmlist entries. */
-@@ -1313,6 +1408,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
+@@ -1333,6 +1428,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
        struct vm_struct *area;
  
        BUG_ON(in_interrupt());
@@ -109089,9 +115880,9 @@ index 49abccf..7bd1931 100644
 +#endif
 +
        if (flags & VM_IOREMAP)
-               align = 1ul << clamp(fls(size), PAGE_SHIFT, IOREMAP_MAX_ORDER);
-@@ -1510,13 +1615,36 @@ EXPORT_SYMBOL(vfree);
+               align = 1ul << clamp_t(int, fls_long(size),
+                                      PAGE_SHIFT, IOREMAP_MAX_ORDER);
+@@ -1531,13 +1636,36 @@ EXPORT_SYMBOL(vfree);
   */
  void vunmap(const void *addr)
  {
@@ -109131,7 +115922,7 @@ index 49abccf..7bd1931 100644
  /**
   *    vmap  -  map an array of pages into virtually contiguous space
   *    @pages:         array of page pointers
-@@ -1537,6 +1665,11 @@ void *vmap(struct page **pages, unsigned int count,
+@@ -1558,6 +1686,11 @@ void *vmap(struct page **pages, unsigned int count,
        if (count > totalram_pages)
                return NULL;
  
@@ -109143,7 +115934,7 @@ index 49abccf..7bd1931 100644
        area = get_vm_area_caller((count << PAGE_SHIFT), flags,
                                        __builtin_return_address(0));
        if (!area)
-@@ -1641,6 +1774,14 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
+@@ -1662,6 +1795,14 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
        if (!size || (size >> PAGE_SHIFT) > totalram_pages)
                goto fail;
  
@@ -109158,7 +115949,7 @@ index 49abccf..7bd1931 100644
        area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNINITIALIZED |
                                vm_flags, start, end, node, gfp_mask, caller);
        if (!area)
-@@ -1817,10 +1958,9 @@ EXPORT_SYMBOL(vzalloc_node);
+@@ -1838,10 +1979,9 @@ EXPORT_SYMBOL(vzalloc_node);
   *    For tight control over page level allocator and protection flags
   *    use __vmalloc() instead.
   */
@@ -109170,7 +115961,7 @@ index 49abccf..7bd1931 100644
                              NUMA_NO_NODE, __builtin_return_address(0));
  }
  
-@@ -2127,6 +2267,8 @@ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
+@@ -2148,6 +2288,8 @@ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
  {
        struct vm_struct *area;
  
@@ -109179,7 +115970,7 @@ index 49abccf..7bd1931 100644
        size = PAGE_ALIGN(size);
  
        if (!PAGE_ALIGNED(uaddr) || !PAGE_ALIGNED(kaddr))
-@@ -2609,7 +2751,11 @@ static int s_show(struct seq_file *m, void *p)
+@@ -2630,7 +2772,11 @@ static int s_show(struct seq_file *m, void *p)
                v->addr, v->addr + v->size, v->size);
  
        if (v->caller)
@@ -109296,10 +116087,10 @@ index 4f5cd97..9fb715a 100644
        return 0;
  }
 diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
-index 64c6bed..b79a5de 100644
+index 59555f0..fd7ade9 100644
 --- a/net/8021q/vlan.c
 +++ b/net/8021q/vlan.c
-@@ -481,7 +481,7 @@ out:
+@@ -491,7 +491,7 @@ out:
        return NOTIFY_DONE;
  }
  
@@ -109308,7 +116099,7 @@ index 64c6bed..b79a5de 100644
        .notifier_call = vlan_device_event,
  };
  
-@@ -556,8 +556,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
+@@ -566,8 +566,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
                err = -EPERM;
                if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
                        break;
@@ -109331,37 +116122,6 @@ index c92b52f..006c052 100644
        .kind           = "vlan",
        .maxtype        = IFLA_VLAN_MAX,
        .policy         = vlan_policy,
-diff --git a/net/9p/client.c b/net/9p/client.c
-index e86a9bea..e91f70e 100644
---- a/net/9p/client.c
-+++ b/net/9p/client.c
-@@ -596,7 +596,7 @@ static int p9_check_zc_errors(struct p9_client *c, struct p9_req_t *req,
-                                      len - inline_len);
-                       } else {
-                               err = copy_from_user(ename + inline_len,
--                                                   uidata, len - inline_len);
-+                                                   (char __force_user *)uidata, len - inline_len);
-                               if (err) {
-                                       err = -EFAULT;
-                                       goto out_err;
-@@ -1570,7 +1570,7 @@ p9_client_read(struct p9_fid *fid, char *data, char __user *udata, u64 offset,
-                       kernel_buf = 1;
-                       indata = data;
-               } else
--                      indata = (__force char *)udata;
-+                      indata = (__force_kernel char *)udata;
-               /*
-                * response header len is 11
-                * PDU Header(7) + IO Size (4)
-@@ -1645,7 +1645,7 @@ p9_client_write(struct p9_fid *fid, char *data, const char __user *udata,
-                       kernel_buf = 1;
-                       odata = data;
-               } else
--                      odata = (char *)udata;
-+                      odata = (char __force_kernel *)udata;
-               req = p9_client_zc_rpc(clnt, P9_TWRITE, NULL, odata, 0, rsize,
-                                      P9_ZC_HDR_SZ, kernel_buf, "dqd",
-                                      fid->fid, offset, rsize);
 diff --git a/net/9p/mod.c b/net/9p/mod.c
 index 6ab36ae..6f1841b 100644
 --- a/net/9p/mod.c
@@ -109385,7 +116145,7 @@ index 6ab36ae..6f1841b 100644
  }
  EXPORT_SYMBOL(v9fs_unregister_trans);
 diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
-index 80d08f6..de63fd1 100644
+index bced8c0..ef253b7 100644
 --- a/net/9p/trans_fd.c
 +++ b/net/9p/trans_fd.c
 @@ -428,7 +428,7 @@ static int p9_fd_write(struct p9_client *client, void *v, int len)
@@ -109451,7 +116211,7 @@ index 876fbe8..8bbea9f 100644
  #undef __HANDLE_ITEM
  }
 diff --git a/net/atm/lec.c b/net/atm/lec.c
-index 4b98f89..5a2f6cb 100644
+index cd3b379..977a3c9 100644
 --- a/net/atm/lec.c
 +++ b/net/atm/lec.c
 @@ -111,9 +111,9 @@ static inline void lec_arp_put(struct lec_arp_table *entry)
@@ -109575,6 +116335,18 @@ index 0447d5d..3cf4728 100644
        __AAL_STAT_ITEMS
  #undef __HANDLE_ITEM
  }
+diff --git a/net/ax25/ax25_subr.c b/net/ax25/ax25_subr.c
+index 1997538..3b78e84 100644
+--- a/net/ax25/ax25_subr.c
++++ b/net/ax25/ax25_subr.c
+@@ -264,6 +264,7 @@ void ax25_disconnect(ax25_cb *ax25, int reason)
+ {
+       ax25_clear_queues(ax25);
++      ax25_stop_heartbeat(ax25);
+       ax25_stop_t1timer(ax25);
+       ax25_stop_t2timer(ax25);
+       ax25_stop_t3timer(ax25);
 diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c
 index 919a5ce..cc6b444 100644
 --- a/net/ax25/sysctl_net_ax25.c
@@ -109707,10 +116479,10 @@ index 9398c3f..0e79657 100644
        atomic_t batman_queue_left;
        char num_ifaces;
 diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
-index 1d65c5b..43e55fd 100644
+index 56f9edb..0a13cd1 100644
 --- a/net/bluetooth/hci_sock.c
 +++ b/net/bluetooth/hci_sock.c
-@@ -1042,7 +1042,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
+@@ -1241,7 +1241,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
                        uf.event_mask[1] = *((u32 *) f->event_mask + 1);
                }
  
@@ -109720,10 +116492,10 @@ index 1d65c5b..43e55fd 100644
                        err = -EFAULT;
                        break;
 diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
-index 6ba33f9..4afc26f 100644
+index dad4197..253bbdf 100644
 --- a/net/bluetooth/l2cap_core.c
 +++ b/net/bluetooth/l2cap_core.c
-@@ -3534,8 +3534,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
+@@ -3541,8 +3541,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
                        break;
  
                case L2CAP_CONF_RFC:
@@ -109737,7 +116509,7 @@ index 6ba33f9..4afc26f 100644
                        if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
                            rfc.mode != chan->mode)
 diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
-index 60694f0..32623ed 100644
+index a7278f0..3443626 100644
 --- a/net/bluetooth/l2cap_sock.c
 +++ b/net/bluetooth/l2cap_sock.c
 @@ -633,7 +633,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
@@ -109788,7 +116560,7 @@ index 60694f0..32623ed 100644
                        err = -EFAULT;
                        break;
 diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
-index 3c6d2c8..6afc970 100644
+index 825e8fb..efc24a4 100644
 --- a/net/bluetooth/rfcomm/sock.c
 +++ b/net/bluetooth/rfcomm/sock.c
 @@ -686,7 +686,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
@@ -109831,11 +116603,31 @@ index 8e385a0..a5bdd8e 100644
  
        tty_port_close(&dev->port, tty, filp);
  }
+diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c
+index e29ad70b..cc00066 100644
+--- a/net/bridge/br_mdb.c
++++ b/net/bridge/br_mdb.c
+@@ -371,6 +371,7 @@ static int __br_mdb_add(struct net *net, struct net_bridge *br,
+       if (!p || p->br != br || p->state == BR_STATE_DISABLED)
+               return -EINVAL;
++      memset(&ip, 0, sizeof(ip));
+       ip.proto = entry->addr.proto;
+       if (ip.proto == htons(ETH_P_IP))
+               ip.u.ip4 = entry->addr.u.ip4;
+@@ -417,6 +418,7 @@ static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry)
+       if (!netif_running(br->dev) || br->multicast_disabled)
+               return -EINVAL;
++      memset(&ip, 0, sizeof(ip));
+       ip.proto = entry->addr.proto;
+       if (ip.proto == htons(ETH_P_IP)) {
+               if (timer_pending(&br->ip4_other_query.timer))
 diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
-index 4fbcea0..69a6786 100644
+index 4b5c236..0627070 100644
 --- a/net/bridge/br_netlink.c
 +++ b/net/bridge/br_netlink.c
-@@ -726,7 +726,7 @@ static struct rtnl_af_ops br_af_ops __read_mostly = {
+@@ -841,7 +841,7 @@ static struct rtnl_af_ops br_af_ops __read_mostly = {
        .get_link_af_size       = br_get_link_af_size,
  };
  
@@ -109932,10 +116724,10 @@ index 67a4a36..8d28068 100644
        .priv_size      = sizeof(struct chnl_net),
        .setup          = ipcaif_net_setup,
 diff --git a/net/can/af_can.c b/net/can/af_can.c
-index 32d710e..93bcf05 100644
+index 689c818..6323851 100644
 --- a/net/can/af_can.c
 +++ b/net/can/af_can.c
-@@ -884,7 +884,7 @@ static const struct net_proto_family can_family_ops = {
+@@ -888,7 +888,7 @@ static const struct net_proto_family can_family_ops = {
  };
  
  /* notifier block for netdevice event */
@@ -109945,10 +116737,10 @@ index 32d710e..93bcf05 100644
  };
  
 diff --git a/net/can/bcm.c b/net/can/bcm.c
-index ee9ffd9..dfdf3d4 100644
+index b523453..f96e639 100644
 --- a/net/can/bcm.c
 +++ b/net/can/bcm.c
-@@ -1619,7 +1619,7 @@ static int __init bcm_module_init(void)
+@@ -1618,7 +1618,7 @@ static int __init bcm_module_init(void)
        }
  
        /* create /proc/net/can-bcm directory */
@@ -110002,7 +116794,7 @@ index 1a19b98..df2b4ec 100644
        if (!can_dir) {
                printk(KERN_INFO "can: failed to create /proc/net/can . "
 diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
-index a9f4ae4..ee19b92 100644
+index 967080a..5e75f04 100644
 --- a/net/ceph/messenger.c
 +++ b/net/ceph/messenger.c
 @@ -188,7 +188,7 @@ static void con_fault(struct ceph_connection *con);
@@ -110024,10 +116816,10 @@ index a9f4ae4..ee19b92 100644
  
        switch (ss->ss_family) {
 diff --git a/net/compat.c b/net/compat.c
-index f7bd286..76ea56a 100644
+index 5cfd26a..7e43828 100644
 --- a/net/compat.c
 +++ b/net/compat.c
-@@ -100,20 +100,20 @@ ssize_t get_compat_msghdr(struct msghdr *kmsg,
+@@ -98,20 +98,20 @@ int get_compat_msghdr(struct msghdr *kmsg,
  
  #define CMSG_COMPAT_FIRSTHDR(msg)                     \
        (((msg)->msg_controllen) >= sizeof(struct compat_cmsghdr) ?     \
@@ -110051,7 +116843,7 @@ index f7bd286..76ea56a 100644
                        msg->msg_controllen)
                return NULL;
        return (struct compat_cmsghdr __user *)ptr;
-@@ -203,7 +203,7 @@ Efault:
+@@ -201,7 +201,7 @@ Efault:
  
  int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
  {
@@ -110060,7 +116852,7 @@ index f7bd286..76ea56a 100644
        struct compat_cmsghdr cmhdr;
        struct compat_timeval ctv;
        struct compat_timespec cts[3];
-@@ -259,7 +259,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
+@@ -257,7 +257,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
  
  void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
  {
@@ -110069,7 +116861,7 @@ index f7bd286..76ea56a 100644
        int fdmax = (kmsg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int);
        int fdnum = scm->fp->count;
        struct file **fp = scm->fp->fp;
-@@ -347,7 +347,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
+@@ -345,7 +345,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
                return -EFAULT;
        old_fs = get_fs();
        set_fs(KERNEL_DS);
@@ -110078,7 +116870,7 @@ index f7bd286..76ea56a 100644
        set_fs(old_fs);
  
        return err;
-@@ -408,7 +408,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
+@@ -406,7 +406,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
        len = sizeof(ktime);
        old_fs = get_fs();
        set_fs(KERNEL_DS);
@@ -110087,7 +116879,7 @@ index f7bd286..76ea56a 100644
        set_fs(old_fs);
  
        if (!err) {
-@@ -551,7 +551,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+@@ -549,7 +549,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
        case MCAST_JOIN_GROUP:
        case MCAST_LEAVE_GROUP:
        {
@@ -110096,7 +116888,7 @@ index f7bd286..76ea56a 100644
                struct group_req __user *kgr =
                        compat_alloc_user_space(sizeof(struct group_req));
                u32 interface;
-@@ -572,7 +572,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+@@ -570,7 +570,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
        case MCAST_BLOCK_SOURCE:
        case MCAST_UNBLOCK_SOURCE:
        {
@@ -110105,7 +116897,7 @@ index f7bd286..76ea56a 100644
                struct group_source_req __user *kgsr = compat_alloc_user_space(
                        sizeof(struct group_source_req));
                u32 interface;
-@@ -593,7 +593,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+@@ -591,7 +591,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
        }
        case MCAST_MSFILTER:
        {
@@ -110114,7 +116906,7 @@ index f7bd286..76ea56a 100644
                struct group_filter __user *kgf;
                u32 interface, fmode, numsrc;
  
-@@ -631,7 +631,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
+@@ -629,7 +629,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
        char __user *optval, int __user *optlen,
        int (*getsockopt)(struct sock *, int, int, char __user *, int __user *))
  {
@@ -110123,7 +116915,7 @@ index f7bd286..76ea56a 100644
        struct group_filter __user *kgf;
        int __user      *koptlen;
        u32 interface, fmode, numsrc;
-@@ -775,7 +775,7 @@ COMPAT_SYSCALL_DEFINE2(socketcall, int, call, u32 __user *, args)
+@@ -773,7 +773,7 @@ COMPAT_SYSCALL_DEFINE2(socketcall, int, call, u32 __user *, args)
  
        if (call < SYS_SOCKET || call > SYS_SENDMMSG)
                return -EINVAL;
@@ -110133,10 +116925,87 @@ index f7bd286..76ea56a 100644
        a0 = a[0];
        a1 = a[1];
 diff --git a/net/core/datagram.c b/net/core/datagram.c
-index df493d6..1145766 100644
+index b80fb91..d9f4ea5 100644
 --- a/net/core/datagram.c
 +++ b/net/core/datagram.c
-@@ -302,7 +302,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
+@@ -131,6 +131,35 @@ out_noerr:
+       goto out;
+ }
++static int skb_set_peeked(struct sk_buff *skb)
++{
++      struct sk_buff *nskb;
++
++      if (skb->peeked)
++              return 0;
++
++      /* We have to unshare an skb before modifying it. */
++      if (!skb_shared(skb))
++              goto done;
++
++      nskb = skb_clone(skb, GFP_ATOMIC);
++      if (!nskb)
++              return -ENOMEM;
++
++      skb->prev->next = nskb;
++      skb->next->prev = nskb;
++      nskb->prev = skb->prev;
++      nskb->next = skb->next;
++
++      consume_skb(skb);
++      skb = nskb;
++
++done:
++      skb->peeked = 1;
++
++      return 0;
++}
++
+ /**
+  *    __skb_recv_datagram - Receive a datagram skbuff
+  *    @sk: socket
+@@ -165,7 +194,9 @@ out_noerr:
+ struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned int flags,
+                                   int *peeked, int *off, int *err)
+ {
++      struct sk_buff_head *queue = &sk->sk_receive_queue;
+       struct sk_buff *skb, *last;
++      unsigned long cpu_flags;
+       long timeo;
+       /*
+        * Caller is allowed not to check sk->sk_err before skb_recv_datagram()
+@@ -184,8 +215,6 @@ struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned int flags,
+                * Look at current nfs client by the way...
+                * However, this function was correct in any case. 8)
+                */
+-              unsigned long cpu_flags;
+-              struct sk_buff_head *queue = &sk->sk_receive_queue;
+               int _off = *off;
+               last = (struct sk_buff *)queue;
+@@ -199,7 +228,11 @@ struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned int flags,
+                                       _off -= skb->len;
+                                       continue;
+                               }
+-                              skb->peeked = 1;
++
++                              error = skb_set_peeked(skb);
++                              if (error)
++                                      goto unlock_err;
++
+                               atomic_inc(&skb->users);
+                       } else
+                               __skb_unlink(skb, queue);
+@@ -223,6 +256,8 @@ struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned int flags,
+       return NULL;
++unlock_err:
++      spin_unlock_irqrestore(&queue->lock, cpu_flags);
+ no_packet:
+       *err = error;
+       return NULL;
+@@ -302,7 +337,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
        }
  
        kfree_skb(skb);
@@ -110145,28 +117014,49 @@ index df493d6..1145766 100644
        sk_mem_reclaim_partial(sk);
  
        return err;
+@@ -622,7 +657,8 @@ __sum16 __skb_checksum_complete_head(struct sk_buff *skb, int len)
+                   !skb->csum_complete_sw)
+                       netdev_rx_csum_fault(skb->dev);
+       }
+-      skb->csum_valid = !sum;
++      if (!skb_shared(skb))
++              skb->csum_valid = !sum;
+       return sum;
+ }
+ EXPORT_SYMBOL(__skb_checksum_complete_head);
+@@ -642,11 +678,13 @@ __sum16 __skb_checksum_complete(struct sk_buff *skb)
+                       netdev_rx_csum_fault(skb->dev);
+       }
+-      /* Save full packet checksum */
+-      skb->csum = csum;
+-      skb->ip_summed = CHECKSUM_COMPLETE;
+-      skb->csum_complete_sw = 1;
+-      skb->csum_valid = !sum;
++      if (!skb_shared(skb)) {
++              /* Save full packet checksum */
++              skb->csum = csum;
++              skb->ip_summed = CHECKSUM_COMPLETE;
++              skb->csum_complete_sw = 1;
++              skb->csum_valid = !sum;
++      }
+       return sum;
+ }
 diff --git a/net/core/dev.c b/net/core/dev.c
-index 22a53ac..1d19af7 100644
+index aa82f9a..f28b00e 100644
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -1681,14 +1681,14 @@ int __dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
+@@ -1720,7 +1720,7 @@ int __dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
  {
-       if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY) {
-               if (skb_copy_ubufs(skb, GFP_ATOMIC)) {
--                      atomic_long_inc(&dev->rx_dropped);
-+                      atomic_long_inc_unchecked(&dev->rx_dropped);
-                       kfree_skb(skb);
-                       return NET_RX_DROP;
-               }
-       }
-       if (unlikely(!is_skb_forwardable(dev, skb))) {
+       if (skb_orphan_frags(skb, GFP_ATOMIC) ||
+           unlikely(!is_skb_forwardable(dev, skb))) {
 -              atomic_long_inc(&dev->rx_dropped);
 +              atomic_long_inc_unchecked(&dev->rx_dropped);
                kfree_skb(skb);
                return NET_RX_DROP;
        }
-@@ -2987,7 +2987,7 @@ recursion_alert:
+@@ -3018,7 +3018,7 @@ recursion_alert:
  drop:
        rcu_read_unlock_bh();
  
@@ -110175,7 +117065,7 @@ index 22a53ac..1d19af7 100644
        kfree_skb_list(skb);
        return rc;
  out:
-@@ -3336,7 +3336,7 @@ enqueue:
+@@ -3367,7 +3367,7 @@ enqueue:
  
        local_irq_restore(flags);
  
@@ -110184,7 +117074,7 @@ index 22a53ac..1d19af7 100644
        kfree_skb(skb);
        return NET_RX_DROP;
  }
-@@ -3413,7 +3413,7 @@ int netif_rx_ni(struct sk_buff *skb)
+@@ -3444,7 +3444,7 @@ int netif_rx_ni(struct sk_buff *skb)
  }
  EXPORT_SYMBOL(netif_rx_ni);
  
@@ -110193,7 +117083,7 @@ index 22a53ac..1d19af7 100644
  {
        struct softnet_data *sd = this_cpu_ptr(&softnet_data);
  
-@@ -3751,7 +3751,7 @@ ncls:
+@@ -3783,7 +3783,7 @@ ncls:
                        ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
        } else {
  drop:
@@ -110202,7 +117092,7 @@ index 22a53ac..1d19af7 100644
                kfree_skb(skb);
                /* Jamal, now you will not able to escape explaining
                 * me how you were going to use this. :-)
-@@ -4640,7 +4640,7 @@ out_unlock:
+@@ -4672,7 +4672,7 @@ out_unlock:
        return work;
  }
  
@@ -110211,7 +117101,7 @@ index 22a53ac..1d19af7 100644
  {
        struct softnet_data *sd = this_cpu_ptr(&softnet_data);
        unsigned long time_limit = jiffies + 2;
-@@ -6676,8 +6676,8 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
+@@ -6721,8 +6721,8 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
        } else {
                netdev_stats_to_stats64(storage, &dev->stats);
        }
@@ -110241,11 +117131,26 @@ index b94b1d2..da3ed7c 100644
  }
  EXPORT_SYMBOL(dev_load);
  
+diff --git a/net/core/dst.c b/net/core/dst.c
+index e956ce6..002144be 100644
+--- a/net/core/dst.c
++++ b/net/core/dst.c
+@@ -284,7 +284,9 @@ void dst_release(struct dst_entry *dst)
+               int newrefcnt;
+               newrefcnt = atomic_dec_return(&dst->__refcnt);
+-              WARN_ON(newrefcnt < 0);
++              if (unlikely(newrefcnt < 0))
++                      net_warn_ratelimited("%s: dst:%p refcnt:%d\n",
++                                           __func__, dst, newrefcnt);
+               if (unlikely(dst->flags & DST_NOCACHE) && !newrefcnt)
+                       call_rcu(&dst->rcu_head, dst_destroy_rcu);
+       }
 diff --git a/net/core/filter.c b/net/core/filter.c
-index f6bdc2b..76eba8e 100644
+index bf831a8..8d2c4c2 100644
 --- a/net/core/filter.c
 +++ b/net/core/filter.c
-@@ -533,7 +533,11 @@ do_pass:
+@@ -579,7 +579,11 @@ do_pass:
  
                /* Unknown instruction. */
                default:
@@ -110258,7 +117163,7 @@ index f6bdc2b..76eba8e 100644
                }
  
                insn++;
-@@ -577,7 +581,7 @@ static int check_load_and_stores(const struct sock_filter *filter, int flen)
+@@ -623,7 +627,7 @@ static int check_load_and_stores(const struct sock_filter *filter, int flen)
        u16 *masks, memvalid = 0; /* One bit per cell, 16 cells */
        int pc, ret = 0;
  
@@ -110267,7 +117172,7 @@ index f6bdc2b..76eba8e 100644
  
        masks = kmalloc_array(flen, sizeof(*masks), GFP_KERNEL);
        if (!masks)
-@@ -992,7 +996,7 @@ int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog)
+@@ -1038,7 +1042,7 @@ int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog)
        if (!fp)
                return -ENOMEM;
  
@@ -110308,10 +117213,10 @@ index 1033725..340f65d 100644
                        fle->object = flo;
                else
 diff --git a/net/core/neighbour.c b/net/core/neighbour.c
-index 70fe9e1..926784c 100644
+index 2237c1b..c0c80ab 100644
 --- a/net/core/neighbour.c
 +++ b/net/core/neighbour.c
-@@ -2806,7 +2806,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
+@@ -2818,7 +2818,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
                           void __user *buffer, size_t *lenp, loff_t *ppos)
  {
        int size, ret;
@@ -110320,7 +117225,7 @@ index 70fe9e1..926784c 100644
  
        tmp.extra1 = &zero;
        tmp.extra2 = &unres_qlen_max;
-@@ -2868,7 +2868,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
+@@ -2880,7 +2880,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
                                           void __user *buffer,
                                           size_t *lenp, loff_t *ppos)
  {
@@ -110381,10 +117286,10 @@ index 2bf8329..2eb1423 100644
  
        return 0;
 diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
-index f2aa73b..0d1a1ea 100644
+index 4238d6d..e6b605c 100644
 --- a/net/core/net-sysfs.c
 +++ b/net/core/net-sysfs.c
-@@ -279,7 +279,7 @@ static ssize_t carrier_changes_show(struct device *dev,
+@@ -288,7 +288,7 @@ static ssize_t carrier_changes_show(struct device *dev,
  {
        struct net_device *netdev = to_net_dev(dev);
        return sprintf(buf, fmt_dec,
@@ -110394,10 +117299,10 @@ index f2aa73b..0d1a1ea 100644
  static DEVICE_ATTR_RO(carrier_changes);
  
 diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
-index 70d3450..eb7c528 100644
+index 572af00..5acf072 100644
 --- a/net/core/net_namespace.c
 +++ b/net/core/net_namespace.c
-@@ -663,7 +663,7 @@ static int __register_pernet_operations(struct list_head *list,
+@@ -734,7 +734,7 @@ static int __register_pernet_operations(struct list_head *list,
        int error;
        LIST_HEAD(net_exit_list);
  
@@ -110406,7 +117311,7 @@ index 70d3450..eb7c528 100644
        if (ops->init || (ops->id && ops->size)) {
                for_each_net(net) {
                        error = ops_init(ops, net);
-@@ -676,7 +676,7 @@ static int __register_pernet_operations(struct list_head *list,
+@@ -747,7 +747,7 @@ static int __register_pernet_operations(struct list_head *list,
  
  out_undo:
        /* If I have an error cleanup all namespaces I initialized */
@@ -110415,7 +117320,7 @@ index 70d3450..eb7c528 100644
        ops_exit_list(ops, &net_exit_list);
        ops_free_list(ops, &net_exit_list);
        return error;
-@@ -687,7 +687,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops)
+@@ -758,7 +758,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops)
        struct net *net;
        LIST_HEAD(net_exit_list);
  
@@ -110424,7 +117329,7 @@ index 70d3450..eb7c528 100644
        for_each_net(net)
                list_add_tail(&net->exit_list, &net_exit_list);
        ops_exit_list(ops, &net_exit_list);
-@@ -821,7 +821,7 @@ int register_pernet_device(struct pernet_operations *ops)
+@@ -892,7 +892,7 @@ int register_pernet_device(struct pernet_operations *ops)
        mutex_lock(&net_mutex);
        error = register_pernet_operations(&pernet_list, ops);
        if (!error && (first_device == &pernet_list))
@@ -110469,7 +117374,7 @@ index 508155b..fad080f 100644
                pr_warn("cannot create /proc/net/%s\n", PG_PROC_DIR);
                return -ENODEV;
 diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
-index 7ebed55..378bf34 100644
+index 8de3682..fcb8a5e 100644
 --- a/net/core/rtnetlink.c
 +++ b/net/core/rtnetlink.c
 @@ -61,7 +61,7 @@ struct rtnl_link {
@@ -110507,7 +117412,7 @@ index 7ebed55..378bf34 100644
  }
  EXPORT_SYMBOL_GPL(__rtnl_link_unregister);
  
-@@ -1047,7 +1050,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
+@@ -1066,7 +1069,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
            (dev->ifalias &&
             nla_put_string(skb, IFLA_IFALIAS, dev->ifalias)) ||
            nla_put_u32(skb, IFLA_CARRIER_CHANGES,
@@ -110516,6 +117421,24 @@ index 7ebed55..378bf34 100644
                goto nla_put_failure;
  
        if (1) {
+@@ -1748,10 +1751,13 @@ static int do_setlink(const struct sk_buff *skb,
+                       goto errout;
+               nla_for_each_nested(attr, tb[IFLA_VF_PORTS], rem) {
+-                      if (nla_type(attr) != IFLA_VF_PORT)
+-                              continue;
+-                      err = nla_parse_nested(port, IFLA_PORT_MAX,
+-                              attr, ifla_port_policy);
++                      if (nla_type(attr) != IFLA_VF_PORT ||
++                          nla_len(attr) < NLA_HDRLEN) {
++                              err = -EINVAL;
++                              goto errout;
++                      }
++                      err = nla_parse_nested(port, IFLA_PORT_MAX, attr,
++                                             ifla_port_policy);
+                       if (err < 0)
+                               goto errout;
+                       if (!port[IFLA_PORT_VF]) {
 diff --git a/net/core/scm.c b/net/core/scm.c
 index 3b6899b..cf36238 100644
 --- a/net/core/scm.c
@@ -110557,7 +117480,7 @@ index 3b6899b..cf36238 100644
        {
                struct socket *sock;
 diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index e9f9a15..6eb024e 100644
+index 41ec022..3cc0a1c 100644
 --- a/net/core/skbuff.c
 +++ b/net/core/skbuff.c
 @@ -2139,7 +2139,7 @@ EXPORT_SYMBOL(__skb_checksum);
@@ -110569,7 +117492,7 @@ index e9f9a15..6eb024e 100644
                .update  = csum_partial_ext,
                .combine = csum_block_add_ext,
        };
-@@ -3379,12 +3379,14 @@ void __init skb_init(void)
+@@ -3335,12 +3335,14 @@ void __init skb_init(void)
        skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
                                              sizeof(struct sk_buff),
                                              0,
@@ -110587,10 +117510,10 @@ index e9f9a15..6eb024e 100644
  }
  
 diff --git a/net/core/sock.c b/net/core/sock.c
-index 71e3e5f..ab90920 100644
+index dc30dc5..8bb3ef3 100644
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -443,7 +443,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
+@@ -440,7 +440,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
        struct sk_buff_head *list = &sk->sk_receive_queue;
  
        if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf) {
@@ -110599,7 +117522,7 @@ index 71e3e5f..ab90920 100644
                trace_sock_rcvqueue_full(sk, skb);
                return -ENOMEM;
        }
-@@ -453,7 +453,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
+@@ -450,7 +450,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
                return err;
  
        if (!sk_rmem_schedule(sk, skb, skb->truesize)) {
@@ -110608,16 +117531,7 @@ index 71e3e5f..ab90920 100644
                return -ENOBUFS;
        }
  
-@@ -466,7 +466,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
-       skb_dst_force(skb);
-       spin_lock_irqsave(&list->lock, flags);
--      skb->dropcount = atomic_read(&sk->sk_drops);
-+      skb->dropcount = atomic_read_unchecked(&sk->sk_drops);
-       __skb_queue_tail(list, skb);
-       spin_unlock_irqrestore(&list->lock, flags);
-@@ -486,7 +486,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
+@@ -483,7 +483,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
        skb->dev = NULL;
  
        if (sk_rcvqueues_full(sk, sk->sk_rcvbuf)) {
@@ -110626,7 +117540,7 @@ index 71e3e5f..ab90920 100644
                goto discard_and_relse;
        }
        if (nested)
-@@ -504,7 +504,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
+@@ -501,7 +501,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
                mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_);
        } else if (sk_add_backlog(sk, skb, sk->sk_rcvbuf)) {
                bh_unlock_sock(sk);
@@ -110635,7 +117549,7 @@ index 71e3e5f..ab90920 100644
                goto discard_and_relse;
        }
  
-@@ -910,6 +910,7 @@ set_rcvbuf:
+@@ -907,6 +907,7 @@ set_rcvbuf:
                }
                break;
  
@@ -110643,7 +117557,7 @@ index 71e3e5f..ab90920 100644
        case SO_ATTACH_BPF:
                ret = -EINVAL;
                if (optlen == sizeof(u32)) {
-@@ -922,7 +923,7 @@ set_rcvbuf:
+@@ -919,7 +920,7 @@ set_rcvbuf:
                        ret = sk_attach_bpf(ufd, sk);
                }
                break;
@@ -110652,7 +117566,7 @@ index 71e3e5f..ab90920 100644
        case SO_DETACH_FILTER:
                ret = sk_detach_filter(sk);
                break;
-@@ -1026,12 +1027,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
+@@ -1021,12 +1022,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
                struct timeval tm;
        } v;
  
@@ -110668,7 +117582,7 @@ index 71e3e5f..ab90920 100644
                return -EINVAL;
  
        memset(&v, 0, sizeof(v));
-@@ -1169,11 +1170,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
+@@ -1164,11 +1165,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
  
        case SO_PEERNAME:
        {
@@ -110682,7 +117596,7 @@ index 71e3e5f..ab90920 100644
                        return -EINVAL;
                if (copy_to_user(optval, address, len))
                        return -EFAULT;
-@@ -1258,7 +1259,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
+@@ -1256,7 +1257,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
  
        if (len > lv)
                len = lv;
@@ -110691,7 +117605,7 @@ index 71e3e5f..ab90920 100644
                return -EFAULT;
  lenout:
        if (put_user(len, optlen))
-@@ -2375,7 +2376,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
+@@ -2359,7 +2360,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
         */
        smp_wmb();
        atomic_set(&sk->sk_refcnt, 1);
@@ -110700,7 +117614,7 @@ index 71e3e5f..ab90920 100644
  }
  EXPORT_SYMBOL(sock_init_data);
  
-@@ -2503,6 +2504,7 @@ void sock_enable_timestamp(struct sock *sk, int flag)
+@@ -2487,6 +2488,7 @@ void sock_enable_timestamp(struct sock *sk, int flag)
  int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
                       int level, int type)
  {
@@ -110708,7 +117622,7 @@ index 71e3e5f..ab90920 100644
        struct sock_exterr_skb *serr;
        struct sk_buff *skb;
        int copied, err;
-@@ -2524,7 +2526,8 @@ int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
+@@ -2508,7 +2510,8 @@ int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
        sock_recv_timestamp(msg, sk, skb);
  
        serr = SKB_EXT_ERR(skb);
@@ -110719,10 +117633,10 @@ index 71e3e5f..ab90920 100644
        msg->msg_flags |= MSG_ERRQUEUE;
        err = copied;
 diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
-index ad704c7..ca48aff 100644
+index 74dddf8..7f4e77e 100644
 --- a/net/core/sock_diag.c
 +++ b/net/core/sock_diag.c
-@@ -9,26 +9,33 @@
+@@ -9,7 +9,7 @@
  #include <linux/inet_diag.h>
  #include <linux/sock_diag.h>
  
@@ -110731,33 +117645,7 @@ index ad704c7..ca48aff 100644
  static int (*inet_rcv_compat)(struct sk_buff *skb, struct nlmsghdr *nlh);
  static DEFINE_MUTEX(sock_diag_table_mutex);
  
- int sock_diag_check_cookie(void *sk, __u32 *cookie)
- {
-+#ifndef CONFIG_GRKERNSEC_HIDESYM
-       if ((cookie[0] != INET_DIAG_NOCOOKIE ||
-            cookie[1] != INET_DIAG_NOCOOKIE) &&
-           ((u32)(unsigned long)sk != cookie[0] ||
-            (u32)((((unsigned long)sk) >> 31) >> 1) != cookie[1]))
-               return -ESTALE;
-       else
-+#endif
-               return 0;
- }
- EXPORT_SYMBOL_GPL(sock_diag_check_cookie);
- void sock_diag_save_cookie(void *sk, __u32 *cookie)
- {
-+#ifdef CONFIG_GRKERNSEC_HIDESYM
-+      cookie[0] = 0;
-+      cookie[1] = 0;
-+#else
-       cookie[0] = (u32)(unsigned long)sk;
-       cookie[1] = (u32)(((unsigned long)sk >> 31) >> 1);
-+#endif
- }
- EXPORT_SYMBOL_GPL(sock_diag_save_cookie);
-@@ -110,8 +117,11 @@ int sock_diag_register(const struct sock_diag_handler *hndl)
+@@ -127,8 +127,11 @@ int sock_diag_register(const struct sock_diag_handler *hndl)
        mutex_lock(&sock_diag_table_mutex);
        if (sock_diag_handlers[hndl->family])
                err = -EBUSY;
@@ -110770,7 +117658,7 @@ index ad704c7..ca48aff 100644
        mutex_unlock(&sock_diag_table_mutex);
  
        return err;
-@@ -127,7 +137,9 @@ void sock_diag_unregister(const struct sock_diag_handler *hnld)
+@@ -144,7 +147,9 @@ void sock_diag_unregister(const struct sock_diag_handler *hnld)
  
        mutex_lock(&sock_diag_table_mutex);
        BUG_ON(sock_diag_handlers[family] != hnld);
@@ -110781,10 +117669,10 @@ index ad704c7..ca48aff 100644
  }
  EXPORT_SYMBOL_GPL(sock_diag_unregister);
 diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c
-index 8ce351f..2c388f7 100644
+index 95b6139..3048623 100644
 --- a/net/core/sysctl_net_core.c
 +++ b/net/core/sysctl_net_core.c
-@@ -36,7 +36,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write,
+@@ -35,7 +35,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write,
  {
        unsigned int orig_size, size;
        int ret, i;
@@ -110793,7 +117681,7 @@ index 8ce351f..2c388f7 100644
                .data = &size,
                .maxlen = sizeof(size),
                .mode = table->mode
-@@ -204,7 +204,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
+@@ -203,7 +203,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
                             void __user *buffer, size_t *lenp, loff_t *ppos)
  {
        char id[IFNAMSIZ];
@@ -110802,7 +117690,7 @@ index 8ce351f..2c388f7 100644
                .data = id,
                .maxlen = IFNAMSIZ,
        };
-@@ -222,7 +222,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
+@@ -221,7 +221,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
  static int proc_do_rss_key(struct ctl_table *table, int write,
                           void __user *buffer, size_t *lenp, loff_t *ppos)
  {
@@ -110811,7 +117699,7 @@ index 8ce351f..2c388f7 100644
        char buf[NETDEV_RSS_KEY_LEN * 3];
  
        snprintf(buf, sizeof(buf), "%*phC", NETDEV_RSS_KEY_LEN, netdev_rss_key);
-@@ -286,7 +286,7 @@ static struct ctl_table net_core_table[] = {
+@@ -285,7 +285,7 @@ static struct ctl_table net_core_table[] = {
                .mode           = 0444,
                .proc_handler   = proc_do_rss_key,
        },
@@ -110820,7 +117708,7 @@ index 8ce351f..2c388f7 100644
        {
                .procname       = "bpf_jit_enable",
                .data           = &bpf_jit_enable,
-@@ -411,13 +411,12 @@ static struct ctl_table netns_core_table[] = {
+@@ -409,13 +409,12 @@ static struct ctl_table netns_core_table[] = {
  
  static __net_init int sysctl_core_net_init(struct net *net)
  {
@@ -110836,7 +117724,7 @@ index 8ce351f..2c388f7 100644
                if (tbl == NULL)
                        goto err_dup;
  
-@@ -427,17 +426,16 @@ static __net_init int sysctl_core_net_init(struct net *net)
+@@ -425,17 +424,16 @@ static __net_init int sysctl_core_net_init(struct net *net)
                if (net->user_ns != &init_user_ns) {
                        tbl[0].procname = NULL;
                }
@@ -110858,7 +117746,7 @@ index 8ce351f..2c388f7 100644
  err_dup:
        return -ENOMEM;
  }
-@@ -452,7 +450,7 @@ static __net_exit void sysctl_core_net_exit(struct net *net)
+@@ -450,7 +448,7 @@ static __net_exit void sysctl_core_net_exit(struct net *net)
        kfree(tbl);
  }
  
@@ -110868,7 +117756,7 @@ index 8ce351f..2c388f7 100644
        .exit = sysctl_core_net_exit,
  };
 diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
-index 8102286..a0c2755 100644
+index 754484b..4f4b894 100644
 --- a/net/decnet/af_decnet.c
 +++ b/net/decnet/af_decnet.c
 @@ -466,6 +466,7 @@ static struct proto dn_proto = {
@@ -110914,6 +117802,19 @@ index 5325b54..a0d4d69 100644
                return -EFAULT;
  
        *lenp = len;
+diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
+index 392e29a..da953a2 100644
+--- a/net/dsa/dsa.c
++++ b/net/dsa/dsa.c
+@@ -851,7 +851,7 @@ static struct packet_type dsa_pack_type __read_mostly = {
+       .func   = dsa_switch_rcv,
+ };
+-static struct notifier_block dsa_netdevice_nb __read_mostly = {
++static struct notifier_block dsa_netdevice_nb = {
+       .notifier_call  = dsa_slave_netdevice_event,
+ };
 diff --git a/net/hsr/hsr_netlink.c b/net/hsr/hsr_netlink.c
 index a2c7e4c..3dc9f67 100644
 --- a/net/hsr/hsr_netlink.c
@@ -110928,10 +117829,10 @@ index a2c7e4c..3dc9f67 100644
        .maxtype        = IFLA_HSR_MAX,
        .policy         = hsr_policy,
 diff --git a/net/ieee802154/6lowpan/core.c b/net/ieee802154/6lowpan/core.c
-index 055fbb7..c0dbe60 100644
+index 0ae5822..3fe3627 100644
 --- a/net/ieee802154/6lowpan/core.c
 +++ b/net/ieee802154/6lowpan/core.c
-@@ -217,7 +217,7 @@ static void lowpan_dellink(struct net_device *dev, struct list_head *head)
+@@ -219,7 +219,7 @@ static void lowpan_dellink(struct net_device *dev, struct list_head *head)
        dev_put(real_dev);
  }
  
@@ -110985,10 +117886,10 @@ index f46e4d1..30231f1 100644
        return -ENOMEM;
  }
 diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
-index d2e49ba..f78e8aa 100644
+index a5aa54e..3bd5f9f 100644
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
-@@ -1390,7 +1390,7 @@ int inet_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
+@@ -1391,7 +1391,7 @@ int inet_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
                return ip_recv_error(sk, msg, len, addr_len);
  #if IS_ENABLED(CONFIG_IPV6)
        if (sk->sk_family == AF_INET6)
@@ -110998,7 +117899,7 @@ index d2e49ba..f78e8aa 100644
        return -EINVAL;
  }
 diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
-index 3a8985c..9d2a870 100644
+index 419d23c..2084616 100644
 --- a/net/ipv4/devinet.c
 +++ b/net/ipv4/devinet.c
 @@ -69,7 +69,8 @@
@@ -111021,7 +117922,7 @@ index 3a8985c..9d2a870 100644
                [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1,
                [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1,
                [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1,
-@@ -1549,7 +1551,7 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
+@@ -1580,7 +1582,7 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
                idx = 0;
                head = &net->dev_index_head[h];
                rcu_read_lock();
@@ -111030,7 +117931,7 @@ index 3a8985c..9d2a870 100644
                          net->dev_base_seq;
                hlist_for_each_entry_rcu(dev, head, index_hlist) {
                        if (idx < s_idx)
-@@ -1868,7 +1870,7 @@ static int inet_netconf_dump_devconf(struct sk_buff *skb,
+@@ -1899,7 +1901,7 @@ static int inet_netconf_dump_devconf(struct sk_buff *skb,
                idx = 0;
                head = &net->dev_index_head[h];
                rcu_read_lock();
@@ -111039,7 +117940,7 @@ index 3a8985c..9d2a870 100644
                          net->dev_base_seq;
                hlist_for_each_entry_rcu(dev, head, index_hlist) {
                        if (idx < s_idx)
-@@ -2103,7 +2105,7 @@ static int ipv4_doint_and_flush(struct ctl_table *ctl, int write,
+@@ -2134,7 +2136,7 @@ static int ipv4_doint_and_flush(struct ctl_table *ctl, int write,
  #define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \
        DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush)
  
@@ -111048,7 +117949,7 @@ index 3a8985c..9d2a870 100644
        struct ctl_table_header *sysctl_header;
        struct ctl_table devinet_vars[__IPV4_DEVCONF_MAX];
  } devinet_sysctl = {
-@@ -2235,7 +2237,7 @@ static __net_init int devinet_init_net(struct net *net)
+@@ -2266,7 +2268,7 @@ static __net_init int devinet_init_net(struct net *net)
        int err;
        struct ipv4_devconf *all, *dflt;
  #ifdef CONFIG_SYSCTL
@@ -111057,16 +117958,16 @@ index 3a8985c..9d2a870 100644
        struct ctl_table_header *forw_hdr;
  #endif
  
-@@ -2253,7 +2255,7 @@ static __net_init int devinet_init_net(struct net *net)
+@@ -2284,7 +2286,7 @@ static __net_init int devinet_init_net(struct net *net)
                        goto err_alloc_dflt;
  
  #ifdef CONFIG_SYSCTL
 -              tbl = kmemdup(tbl, sizeof(ctl_forward_entry), GFP_KERNEL);
 +              tbl = kmemdup(ctl_forward_entry, sizeof(ctl_forward_entry), GFP_KERNEL);
-               if (tbl == NULL)
+               if (!tbl)
                        goto err_alloc_ctl;
  
-@@ -2273,7 +2275,10 @@ static __net_init int devinet_init_net(struct net *net)
+@@ -2304,7 +2306,10 @@ static __net_init int devinet_init_net(struct net *net)
                goto err_reg_dflt;
  
        err = -ENOMEM;
@@ -111075,10 +117976,10 @@ index 3a8985c..9d2a870 100644
 +              forw_hdr = register_net_sysctl(net, "net/ipv4", tbl);
 +      else
 +              forw_hdr = register_net_sysctl(net, "net/ipv4", ctl_forward_entry);
-       if (forw_hdr == NULL)
+       if (!forw_hdr)
                goto err_reg_ctl;
        net->ipv4.forw_hdr = forw_hdr;
-@@ -2289,8 +2294,7 @@ err_reg_ctl:
+@@ -2320,8 +2325,7 @@ err_reg_ctl:
  err_reg_dflt:
        __devinet_sysctl_unregister(all);
  err_reg_all:
@@ -111089,10 +117990,10 @@ index 3a8985c..9d2a870 100644
  #endif
        if (dflt != &ipv4_devconf_dflt)
 diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
-index 23b9b3e..60cf0c4 100644
+index 872494e..8e0b4d1 100644
 --- a/net/ipv4/fib_frontend.c
 +++ b/net/ipv4/fib_frontend.c
-@@ -1020,12 +1020,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
+@@ -1083,12 +1083,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
  #ifdef CONFIG_IP_ROUTE_MULTIPATH
                fib_sync_up(dev);
  #endif
@@ -111104,10 +118005,10 @@ index 23b9b3e..60cf0c4 100644
                fib_del_ifaddr(ifa, NULL);
 -              atomic_inc(&net->ipv4.dev_addr_genid);
 +              atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
-               if (ifa->ifa_dev->ifa_list == NULL) {
+               if (!ifa->ifa_dev->ifa_list) {
                        /* Last address was deleted from this interface.
                         * Disable IP.
-@@ -1063,7 +1063,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
+@@ -1126,7 +1126,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
  #ifdef CONFIG_IP_ROUTE_MULTIPATH
                fib_sync_up(dev);
  #endif
@@ -111117,10 +118018,10 @@ index 23b9b3e..60cf0c4 100644
                break;
        case NETDEV_DOWN:
 diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
-index 1e2090e..351a724 100644
+index 8d695b6..752d427a 100644
 --- a/net/ipv4/fib_semantics.c
 +++ b/net/ipv4/fib_semantics.c
-@@ -753,7 +753,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh)
+@@ -752,7 +752,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh)
        nh->nh_saddr = inet_select_addr(nh->nh_dev,
                                        nh->nh_gw,
                                        nh->nh_parent->fib_scope);
@@ -111129,27 +118030,8 @@ index 1e2090e..351a724 100644
  
        return nh->nh_saddr;
  }
-diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c
-index ff069f6..335e752 100644
---- a/net/ipv4/fou.c
-+++ b/net/ipv4/fou.c
-@@ -771,12 +771,12 @@ EXPORT_SYMBOL(gue_build_header);
- #ifdef CONFIG_NET_FOU_IP_TUNNELS
--static const struct ip_tunnel_encap_ops __read_mostly fou_iptun_ops = {
-+static const struct ip_tunnel_encap_ops fou_iptun_ops = {
-       .encap_hlen = fou_encap_hlen,
-       .build_header = fou_build_header,
- };
--static const struct ip_tunnel_encap_ops __read_mostly gue_iptun_ops = {
-+static const struct ip_tunnel_encap_ops gue_iptun_ops = {
-       .encap_hlen = gue_encap_hlen,
-       .build_header = gue_build_header,
- };
 diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
-index 9111a4e..3576905 100644
+index c6fb80b..8705495 100644
 --- a/net/ipv4/inet_hashtables.c
 +++ b/net/ipv4/inet_hashtables.c
 @@ -18,6 +18,7 @@
@@ -111160,8 +118042,8 @@ index 9111a4e..3576905 100644
  
  #include <net/inet_connection_sock.h>
  #include <net/inet_hashtables.h>
-@@ -49,6 +50,8 @@ static unsigned int inet_sk_ehashfn(const struct sock *sk)
-       return inet_ehashfn(net, laddr, lport, faddr, fport);
+@@ -53,6 +54,8 @@ u32 sk_ehashfn(const struct sock *sk)
+                           sk->sk_daddr, sk->sk_dport);
  }
  
 +extern void gr_update_task_in_ip_table(const struct inet_sock *inet);
@@ -111169,14 +118051,14 @@ index 9111a4e..3576905 100644
  /*
   * Allocate and initialize a new local port bind bucket.
   * The bindhash mutex for snum's hash chain must be held here.
-@@ -554,6 +557,8 @@ ok:
+@@ -564,6 +567,8 @@ ok:
                        twrefcnt += inet_twsk_bind_unhash(tw, hinfo);
                spin_unlock(&head->lock);
  
 +              gr_update_task_in_ip_table(inet_sk(sk));
 +
                if (tw) {
-                       inet_twsk_deschedule(tw, death_row);
+                       inet_twsk_deschedule(tw);
                        while (twrefcnt) {
 diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c
 index 241afd7..31b95d5 100644
@@ -111192,7 +118074,7 @@ index 241afd7..31b95d5 100644
                p->rate_tokens = 0;
                /* 60*HZ is arbitrary, but chosen enough high so that the first
 diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
-index 145a50c..5dd8cc5 100644
+index cc1da6d..64b1534 100644
 --- a/net/ipv4/ip_fragment.c
 +++ b/net/ipv4/ip_fragment.c
 @@ -268,7 +268,7 @@ static int ip_frag_too_far(struct ipq *qp)
@@ -111204,7 +118086,7 @@ index 145a50c..5dd8cc5 100644
        qp->rid = end;
  
        rc = qp->q.fragments && (end - start) > max;
-@@ -748,12 +748,11 @@ static struct ctl_table ip4_frags_ctl_table[] = {
+@@ -750,12 +750,11 @@ static struct ctl_table ip4_frags_ctl_table[] = {
  
  static int __net_init ip4_frags_ns_ctl_register(struct net *net)
  {
@@ -111216,10 +118098,10 @@ index 145a50c..5dd8cc5 100644
        if (!net_eq(net, &init_net)) {
 -              table = kmemdup(table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
 +              table = kmemdup(ip4_frags_ns_ctl_table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
-               if (table == NULL)
+               if (!table)
                        goto err_alloc;
  
-@@ -767,9 +766,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
+@@ -769,9 +768,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
                /* Don't export sysctls to unprivileged users */
                if (net->user_ns != &init_user_ns)
                        table[0].procname = NULL;
@@ -111229,10 +118111,10 @@ index 145a50c..5dd8cc5 100644
 +              hdr = register_net_sysctl(net, "net/ipv4", ip4_frags_ns_ctl_table);
  
 -      hdr = register_net_sysctl(net, "net/ipv4", table);
-       if (hdr == NULL)
+       if (!hdr)
                goto err_reg;
  
-@@ -777,8 +777,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
+@@ -779,8 +779,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
        return 0;
  
  err_reg:
@@ -111243,7 +118125,7 @@ index 145a50c..5dd8cc5 100644
        return -ENOMEM;
  }
 diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
-index 6207275f..00323a2 100644
+index 5fd7064..d13d75f 100644
 --- a/net/ipv4/ip_gre.c
 +++ b/net/ipv4/ip_gre.c
 @@ -115,7 +115,7 @@ static bool log_ecn_error = true;
@@ -111255,7 +118137,7 @@ index 6207275f..00323a2 100644
  static int ipgre_tunnel_init(struct net_device *dev);
  
  static int ipgre_net_id __read_mostly;
-@@ -817,7 +817,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {
+@@ -819,7 +819,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {
        [IFLA_GRE_ENCAP_DPORT]  = { .type = NLA_U16 },
  };
  
@@ -111264,7 +118146,7 @@ index 6207275f..00323a2 100644
        .kind           = "gre",
        .maxtype        = IFLA_GRE_MAX,
        .policy         = ipgre_policy,
-@@ -832,7 +832,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
+@@ -834,7 +834,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
        .get_link_net   = ip_tunnel_get_link_net,
  };
  
@@ -111274,7 +118156,7 @@ index 6207275f..00323a2 100644
        .maxtype        = IFLA_GRE_MAX,
        .policy         = ipgre_policy,
 diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
-index 3d4da2c..40f9c29 100644
+index 2db4c87..4db9282 100644
 --- a/net/ipv4/ip_input.c
 +++ b/net/ipv4/ip_input.c
 @@ -147,6 +147,10 @@
@@ -111288,7 +118170,7 @@ index 3d4da2c..40f9c29 100644
  /*
   *    Process Router Attention IP option (RFC 2113)
   */
-@@ -223,6 +227,9 @@ static int ip_local_deliver_finish(struct sk_buff *skb)
+@@ -223,6 +227,9 @@ static int ip_local_deliver_finish(struct sock *sk, struct sk_buff *skb)
                        if (!raw) {
                                if (xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
                                        IP_INC_STATS_BH(net, IPSTATS_MIB_INUNKNOWNPROTOS);
@@ -111299,10 +118181,10 @@ index 3d4da2c..40f9c29 100644
                                                  ICMP_PROT_UNREACH, 0);
                                }
 diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
-index 5cd9927..8610b9f 100644
+index 6ddde89..653e224 100644
 --- a/net/ipv4/ip_sockglue.c
 +++ b/net/ipv4/ip_sockglue.c
-@@ -1254,7 +1254,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
+@@ -1291,7 +1291,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
                len = min_t(unsigned int, len, opt->optlen);
                if (put_user(len, optlen))
                        return -EFAULT;
@@ -111312,7 +118194,7 @@ index 5cd9927..8610b9f 100644
                        return -EFAULT;
                return 0;
        }
-@@ -1388,7 +1389,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
+@@ -1425,7 +1426,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
                if (sk->sk_type != SOCK_STREAM)
                        return -ENOPROTOOPT;
  
@@ -111322,7 +118204,7 @@ index 5cd9927..8610b9f 100644
                msg.msg_flags = flags;
  
 diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
-index 94efe14..1453fcc 100644
+index 0c15208..a3a76c5 100644
 --- a/net/ipv4/ip_vti.c
 +++ b/net/ipv4/ip_vti.c
 @@ -45,7 +45,7 @@
@@ -111334,7 +118216,7 @@ index 94efe14..1453fcc 100644
  
  static int vti_net_id __read_mostly;
  static int vti_tunnel_init(struct net_device *dev);
-@@ -519,7 +519,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
+@@ -525,7 +525,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
        [IFLA_VTI_REMOTE]       = { .len = FIELD_SIZEOF(struct iphdr, daddr) },
  };
  
@@ -111344,7 +118226,7 @@ index 94efe14..1453fcc 100644
        .maxtype        = IFLA_VTI_MAX,
        .policy         = vti_policy,
 diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
-index b26376e..fc3d733 100644
+index 8e7328c..9bd7ed3 100644
 --- a/net/ipv4/ipconfig.c
 +++ b/net/ipv4/ipconfig.c
 @@ -333,7 +333,7 @@ static int __init ic_devinet_ioctl(unsigned int cmd, struct ifreq *arg)
@@ -111375,7 +118257,7 @@ index b26376e..fc3d733 100644
        return res;
  }
 diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
-index 915d215..48d1db7 100644
+index ff96396..2e928ba 100644
 --- a/net/ipv4/ipip.c
 +++ b/net/ipv4/ipip.c
 @@ -124,7 +124,7 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
@@ -111397,10 +118279,10 @@ index 915d215..48d1db7 100644
        .maxtype        = IFLA_IPTUN_MAX,
        .policy         = ipip_policy,
 diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
-index f95b6f9..2ee2097 100644
+index a612007..99ac4bc5 100644
 --- a/net/ipv4/netfilter/arp_tables.c
 +++ b/net/ipv4/netfilter/arp_tables.c
-@@ -885,14 +885,14 @@ static int compat_table_info(const struct xt_table_info *info,
+@@ -884,14 +884,14 @@ static int compat_table_info(const struct xt_table_info *info,
  #endif
  
  static int get_info(struct net *net, void __user *user,
@@ -111418,7 +118300,7 @@ index f95b6f9..2ee2097 100644
                         sizeof(struct arpt_getinfo));
                return -EINVAL;
        }
-@@ -929,7 +929,7 @@ static int get_info(struct net *net, void __user *user,
+@@ -928,7 +928,7 @@ static int get_info(struct net *net, void __user *user,
                info.size = private->size;
                strcpy(info.name, name);
  
@@ -111427,7 +118309,7 @@ index f95b6f9..2ee2097 100644
                        ret = -EFAULT;
                else
                        ret = 0;
-@@ -1690,7 +1690,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user,
+@@ -1695,7 +1695,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user,
  
        switch (cmd) {
        case ARPT_SO_GET_INFO:
@@ -111436,7 +118318,7 @@ index f95b6f9..2ee2097 100644
                break;
        case ARPT_SO_GET_ENTRIES:
                ret = compat_get_entries(sock_net(sk), user, len);
-@@ -1735,7 +1735,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
+@@ -1740,7 +1740,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
  
        switch (cmd) {
        case ARPT_SO_GET_INFO:
@@ -111446,10 +118328,10 @@ index f95b6f9..2ee2097 100644
  
        case ARPT_SO_GET_ENTRIES:
 diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
-index cf5e82f..75a20f5 100644
+index 2d0e265..67e5b8d 100644
 --- a/net/ipv4/netfilter/ip_tables.c
 +++ b/net/ipv4/netfilter/ip_tables.c
-@@ -1073,14 +1073,14 @@ static int compat_table_info(const struct xt_table_info *info,
+@@ -1072,14 +1072,14 @@ static int compat_table_info(const struct xt_table_info *info,
  #endif
  
  static int get_info(struct net *net, void __user *user,
@@ -111467,7 +118349,7 @@ index cf5e82f..75a20f5 100644
                         sizeof(struct ipt_getinfo));
                return -EINVAL;
        }
-@@ -1117,7 +1117,7 @@ static int get_info(struct net *net, void __user *user,
+@@ -1116,7 +1116,7 @@ static int get_info(struct net *net, void __user *user,
                info.size = private->size;
                strcpy(info.name, name);
  
@@ -111476,7 +118358,7 @@ index cf5e82f..75a20f5 100644
                        ret = -EFAULT;
                else
                        ret = 0;
-@@ -1973,7 +1973,7 @@ compat_do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
+@@ -1978,7 +1978,7 @@ compat_do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
  
        switch (cmd) {
        case IPT_SO_GET_INFO:
@@ -111485,7 +118367,7 @@ index cf5e82f..75a20f5 100644
                break;
        case IPT_SO_GET_ENTRIES:
                ret = compat_get_entries(sock_net(sk), user, len);
-@@ -2020,7 +2020,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
+@@ -2025,7 +2025,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
  
        switch (cmd) {
        case IPT_SO_GET_INFO:
@@ -111495,10 +118377,10 @@ index cf5e82f..75a20f5 100644
  
        case IPT_SO_GET_ENTRIES:
 diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
-index e90f83a..3e6acca 100644
+index 771ab3d..5b99b18 100644
 --- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
 +++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
-@@ -720,7 +720,7 @@ static int clusterip_net_init(struct net *net)
+@@ -725,7 +725,7 @@ static int clusterip_net_init(struct net *net)
        spin_lock_init(&cn->lock);
  
  #ifdef CONFIG_PROC_FS
@@ -111508,7 +118390,7 @@ index e90f83a..3e6acca 100644
                pr_err("Unable to proc dir entry\n");
                return -ENOMEM;
 diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
-index 787b0d6..ab6c0ba 100644
+index 05ff44b..da00000 100644
 --- a/net/ipv4/ping.c
 +++ b/net/ipv4/ping.c
 @@ -59,7 +59,7 @@ struct ping_table {
@@ -111547,7 +118429,7 @@ index 787b0d6..ab6c0ba 100644
                                                   info, (u8 *)icmph);
  #endif
                }
-@@ -919,10 +919,10 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
+@@ -918,10 +918,10 @@ int ping_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int noblock,
                }
  
                if (inet6_sk(sk)->rxopt.all)
@@ -111560,7 +118442,7 @@ index 787b0d6..ab6c0ba 100644
                else if (skb->protocol == htons(ETH_P_IP) && isk->cmsg_flags)
                        ip_cmsg_recv(msg, skb);
  #endif
-@@ -1117,7 +1117,7 @@ static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
+@@ -1116,7 +1116,7 @@ static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
                from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
                0, sock_i_ino(sp),
                atomic_read(&sp->sk_refcnt), sp,
@@ -111570,10 +118452,10 @@ index 787b0d6..ab6c0ba 100644
  
  static int ping_v4_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
-index f027a70..2e64edc 100644
+index 561cd4b..a32a155 100644
 --- a/net/ipv4/raw.c
 +++ b/net/ipv4/raw.c
-@@ -324,7 +324,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb)
+@@ -323,7 +323,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb)
  int raw_rcv(struct sock *sk, struct sk_buff *skb)
  {
        if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) {
@@ -111582,7 +118464,7 @@ index f027a70..2e64edc 100644
                kfree_skb(skb);
                return NET_RX_DROP;
        }
-@@ -773,16 +773,20 @@ static int raw_init(struct sock *sk)
+@@ -771,16 +771,20 @@ static int raw_init(struct sock *sk)
  
  static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
  {
@@ -111604,7 +118486,7 @@ index f027a70..2e64edc 100644
  
        if (get_user(len, optlen))
                goto out;
-@@ -792,8 +796,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
+@@ -790,8 +794,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
        if (len > sizeof(struct icmp_filter))
                len = sizeof(struct icmp_filter);
        ret = -EFAULT;
@@ -111615,7 +118497,7 @@ index f027a70..2e64edc 100644
                goto out;
        ret = 0;
  out:  return ret;
-@@ -1022,7 +1026,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
+@@ -1020,7 +1024,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
                0, 0L, 0,
                from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)),
                0, sock_i_ino(sp),
@@ -111625,10 +118507,10 @@ index f027a70..2e64edc 100644
  
  static int raw_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
-index 20fc020..3ba426f 100644
+index f45f2a1..e7d47a3 100644
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -228,7 +228,7 @@ static const struct seq_operations rt_cache_seq_ops = {
+@@ -227,7 +227,7 @@ static const struct seq_operations rt_cache_seq_ops = {
  
  static int rt_cache_seq_open(struct inode *inode, struct file *file)
  {
@@ -111637,7 +118519,7 @@ index 20fc020..3ba426f 100644
  }
  
  static const struct file_operations rt_cache_seq_fops = {
-@@ -319,7 +319,7 @@ static const struct seq_operations rt_cpu_seq_ops = {
+@@ -318,7 +318,7 @@ static const struct seq_operations rt_cpu_seq_ops = {
  
  static int rt_cpu_seq_open(struct inode *inode, struct file *file)
  {
@@ -111646,7 +118528,7 @@ index 20fc020..3ba426f 100644
  }
  
  static const struct file_operations rt_cpu_seq_fops = {
-@@ -357,7 +357,7 @@ static int rt_acct_proc_show(struct seq_file *m, void *v)
+@@ -356,7 +356,7 @@ static int rt_acct_proc_show(struct seq_file *m, void *v)
  
  static int rt_acct_proc_open(struct inode *inode, struct file *file)
  {
@@ -111655,7 +118537,7 @@ index 20fc020..3ba426f 100644
  }
  
  static const struct file_operations rt_acct_proc_fops = {
-@@ -459,11 +459,11 @@ static struct neighbour *ipv4_neigh_lookup(const struct dst_entry *dst,
+@@ -458,11 +458,11 @@ static struct neighbour *ipv4_neigh_lookup(const struct dst_entry *dst,
  
  #define IP_IDENTS_SZ 2048u
  struct ip_ident_bucket {
@@ -111669,7 +118551,7 @@ index 20fc020..3ba426f 100644
  
  /* In order to protect privacy, we add a perturbation to identifiers
   * if one generator is seldom used. This makes hard for an attacker
-@@ -479,7 +479,7 @@ u32 ip_idents_reserve(u32 hash, int segs)
+@@ -478,7 +478,7 @@ u32 ip_idents_reserve(u32 hash, int segs)
        if (old != now && cmpxchg(&bucket->stamp32, old, now) == old)
                delta = prandom_u32_max(now - old);
  
@@ -111678,7 +118560,7 @@ index 20fc020..3ba426f 100644
  }
  EXPORT_SYMBOL(ip_idents_reserve);
  
-@@ -2639,34 +2639,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
+@@ -2641,34 +2641,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
                .maxlen         = sizeof(int),
                .mode           = 0200,
                .proc_handler   = ipv4_sysctl_rtcache_flush,
@@ -111696,7 +118578,7 @@ index 20fc020..3ba426f 100644
        if (!net_eq(net, &init_net)) {
 -              tbl = kmemdup(tbl, sizeof(ipv4_route_flush_table), GFP_KERNEL);
 +              tbl = kmemdup(ipv4_route_flush_table, sizeof(ipv4_route_flush_table), GFP_KERNEL);
-               if (tbl == NULL)
+               if (!tbl)
                        goto err_dup;
  
                /* Don't export sysctls to unprivileged users */
@@ -111710,7 +118592,7 @@ index 20fc020..3ba426f 100644
 +              net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", ipv4_route_flush_table);
  
 -      net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", tbl);
-       if (net->ipv4.route_hdr == NULL)
+       if (!net->ipv4.route_hdr)
                goto err_reg;
        return 0;
  
@@ -111721,7 +118603,7 @@ index 20fc020..3ba426f 100644
  err_dup:
        return -ENOMEM;
  }
-@@ -2689,8 +2689,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
+@@ -2691,8 +2691,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
  
  static __net_init int rt_genid_init(struct net *net)
  {
@@ -111732,7 +118614,7 @@ index 20fc020..3ba426f 100644
        get_random_bytes(&net->ipv4.dev_addr_genid,
                         sizeof(net->ipv4.dev_addr_genid));
        return 0;
-@@ -2734,11 +2734,7 @@ int __init ip_rt_init(void)
+@@ -2736,11 +2736,7 @@ int __init ip_rt_init(void)
        int rc = 0;
        int cpu;
  
@@ -111746,7 +118628,7 @@ index 20fc020..3ba426f 100644
        for_each_possible_cpu(cpu) {
                struct uncached_list *ul = &per_cpu(rt_uncached_list, cpu);
 diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
-index d151539..5f5e247 100644
+index c3852a7..7bdbde7 100644
 --- a/net/ipv4/sysctl_net_ipv4.c
 +++ b/net/ipv4/sysctl_net_ipv4.c
 @@ -60,7 +60,7 @@ static int ipv4_local_port_range(struct ctl_table *table, int write,
@@ -111803,7 +118685,7 @@ index d151539..5f5e247 100644
        struct tcp_fastopen_context *ctxt;
        int ret;
        u32  user_key[4]; /* 16 bytes, matching TCP_FASTOPEN_KEY_LENGTH */
-@@ -888,13 +888,12 @@ static struct ctl_table ipv4_net_table[] = {
+@@ -902,13 +902,12 @@ static struct ctl_table ipv4_net_table[] = {
  
  static __net_init int ipv4_sysctl_init_net(struct net *net)
  {
@@ -111816,10 +118698,10 @@ index d151539..5f5e247 100644
  
 -              table = kmemdup(table, sizeof(ipv4_net_table), GFP_KERNEL);
 +              table = kmemdup(ipv4_net_table, sizeof(ipv4_net_table), GFP_KERNEL);
-               if (table == NULL)
+               if (!table)
                        goto err_alloc;
  
-@@ -903,7 +902,10 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
+@@ -917,7 +916,10 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
                        table[i].data += (void *)net - (void *)&init_net;
        }
  
@@ -111828,27 +118710,11 @@ index d151539..5f5e247 100644
 +              net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
 +      else
 +              net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", ipv4_net_table);
-       if (net->ipv4.ipv4_hdr == NULL)
+       if (!net->ipv4.ipv4_hdr)
                goto err_reg;
  
-diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
-index 995a225..e1e9183 100644
---- a/net/ipv4/tcp.c
-+++ b/net/ipv4/tcp.c
-@@ -520,8 +520,10 @@ unsigned int tcp_poll(struct file *file, struct socket *sock, poll_table *wait)
-                               /* Race breaker. If space is freed after
-                                * wspace test but before the flags are set,
--                               * IO signal will be lost.
-+                               * IO signal will be lost. Memory barrier
-+                               * pairs with the input side.
-                                */
-+                              smp_mb__after_atomic();
-                               if (sk_stream_is_writeable(sk))
-                                       mask |= POLLOUT | POLLWRNORM;
-                       }
 diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index f501ac04..0c5a1b2 100644
+index c9ab964..607d9f7 100644
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
 @@ -767,7 +767,7 @@ static void tcp_update_pacing_rate(struct sock *sk)
@@ -111860,7 +118726,7 @@ index f501ac04..0c5a1b2 100644
                                                sk->sk_max_pacing_rate);
  }
  
-@@ -4541,7 +4541,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
+@@ -4610,7 +4610,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
   * simplifies code)
   */
  static void
@@ -111869,16 +118735,7 @@ index f501ac04..0c5a1b2 100644
             struct sk_buff *head, struct sk_buff *tail,
             u32 start, u32 end)
  {
-@@ -4799,6 +4799,8 @@ static void tcp_check_space(struct sock *sk)
- {
-       if (sock_flag(sk, SOCK_QUEUE_SHRUNK)) {
-               sock_reset_flag(sk, SOCK_QUEUE_SHRUNK);
-+              /* pairs with tcp_poll() */
-+              smp_mb__after_atomic();
-               if (sk->sk_socket &&
-                   test_bit(SOCK_NOSPACE, &sk->sk_socket->flags))
-                       tcp_new_space(sk);
-@@ -5525,6 +5527,7 @@ discard:
+@@ -5605,6 +5605,7 @@ discard:
            tcp_paws_reject(&tp->rx_opt, 0))
                goto discard_and_undo;
  
@@ -111886,7 +118743,7 @@ index f501ac04..0c5a1b2 100644
        if (th->syn) {
                /* We see SYN without ACK. It is attempt of
                 * simultaneous connect with crossed SYNs.
-@@ -5575,6 +5578,7 @@ discard:
+@@ -5655,6 +5656,7 @@ discard:
                goto discard;
  #endif
        }
@@ -111894,7 +118751,7 @@ index f501ac04..0c5a1b2 100644
        /* "fifth, if neither of the SYN or RST bits is set then
         * drop the segment and return."
         */
-@@ -5621,7 +5625,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
+@@ -5701,7 +5703,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
                        goto discard;
  
                if (th->syn) {
@@ -111904,7 +118761,7 @@ index f501ac04..0c5a1b2 100644
                        if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
                                return 1;
 diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
-index f1756ee..8908cb0 100644
+index fc1c658..42a8d34 100644
 --- a/net/ipv4/tcp_ipv4.c
 +++ b/net/ipv4/tcp_ipv4.c
 @@ -89,6 +89,10 @@ int sysctl_tcp_tw_reuse __read_mostly;
@@ -111918,7 +118775,7 @@ index f1756ee..8908cb0 100644
  #ifdef CONFIG_TCP_MD5SIG
  static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key,
                               __be32 daddr, __be32 saddr, const struct tcphdr *th);
-@@ -1475,6 +1479,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1427,6 +1431,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
        return 0;
  
  reset:
@@ -111928,7 +118785,7 @@ index f1756ee..8908cb0 100644
        tcp_v4_send_reset(rsk, skb);
  discard:
        kfree_skb(skb);
-@@ -1639,12 +1646,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
+@@ -1591,12 +1598,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
        TCP_SKB_CB(skb)->sacked  = 0;
  
        sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
@@ -111951,7 +118808,7 @@ index f1756ee..8908cb0 100644
  
        if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) {
                NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
-@@ -1700,6 +1714,10 @@ csum_error:
+@@ -1652,6 +1666,10 @@ csum_error:
  bad_packet:
                TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
        } else {
@@ -111963,7 +118820,7 @@ index f1756ee..8908cb0 100644
        }
  
 diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
-index dd11ac7..c0872da 100644
+index 17e7339..c72ff6c 100644
 --- a/net/ipv4/tcp_minisocks.c
 +++ b/net/ipv4/tcp_minisocks.c
 @@ -27,6 +27,10 @@
@@ -111977,7 +118834,7 @@ index dd11ac7..c0872da 100644
  int sysctl_tcp_syncookies __read_mostly = 1;
  EXPORT_SYMBOL(sysctl_tcp_syncookies);
  
-@@ -785,7 +789,10 @@ embryonic_reset:
+@@ -778,7 +782,10 @@ embryonic_reset:
                 * avoid becoming vulnerable to outside attack aiming at
                 * resetting legit local connections.
                 */
@@ -112003,7 +118860,7 @@ index ebf5ff5..4d1ff32 100644
                cnt += width;
        }
 diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
-index 0732b78..a82bdc6 100644
+index 8c65dc1..55fd1ba 100644
 --- a/net/ipv4/tcp_timer.c
 +++ b/net/ipv4/tcp_timer.c
 @@ -22,6 +22,10 @@
@@ -112017,7 +118874,7 @@ index 0732b78..a82bdc6 100644
  int sysctl_tcp_syn_retries __read_mostly = TCP_SYN_RETRIES;
  int sysctl_tcp_synack_retries __read_mostly = TCP_SYNACK_RETRIES;
  int sysctl_tcp_keepalive_time __read_mostly = TCP_KEEPALIVE_TIME;
-@@ -194,6 +198,13 @@ static int tcp_write_timeout(struct sock *sk)
+@@ -195,6 +199,13 @@ static int tcp_write_timeout(struct sock *sk)
                }
        }
  
@@ -112032,7 +118889,7 @@ index 0732b78..a82bdc6 100644
                                  syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
                /* Has it gone just too far? */
 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
-index 97ef1f8b..e446c33 100644
+index 83aa604..dbfddf5 100644
 --- a/net/ipv4/udp.c
 +++ b/net/ipv4/udp.c
 @@ -87,6 +87,7 @@
@@ -112043,7 +118900,7 @@ index 97ef1f8b..e446c33 100644
  #include <linux/socket.h>
  #include <linux/sockios.h>
  #include <linux/igmp.h>
-@@ -114,6 +115,10 @@
+@@ -115,6 +116,10 @@
  #include <net/busy_poll.h>
  #include "udp_impl.h"
  
@@ -112064,7 +118921,7 @@ index 97ef1f8b..e446c33 100644
  /*
   * This routine is called by the ICMP module when it gets some
   * sort of error condition.  If err < 0 then the socket should
-@@ -945,9 +953,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
+@@ -944,9 +952,18 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
                dport = usin->sin_port;
                if (dport == 0)
                        return -EINVAL;
@@ -112083,7 +118940,7 @@ index 97ef1f8b..e446c33 100644
                daddr = inet->inet_daddr;
                dport = inet->inet_dport;
                /* Open fast path for connected socket.
-@@ -1195,7 +1212,7 @@ static unsigned int first_packet_length(struct sock *sk)
+@@ -1193,7 +1210,7 @@ static unsigned int first_packet_length(struct sock *sk)
                                 IS_UDPLITE(sk));
                UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
                                 IS_UDPLITE(sk));
@@ -112092,7 +118949,7 @@ index 97ef1f8b..e446c33 100644
                __skb_unlink(skb, rcvq);
                __skb_queue_tail(&list_kill, skb);
        }
-@@ -1275,6 +1292,10 @@ try_again:
+@@ -1273,6 +1290,10 @@ try_again:
        if (!skb)
                goto out;
  
@@ -112103,7 +118960,7 @@ index 97ef1f8b..e446c33 100644
        ulen = skb->len - sizeof(struct udphdr);
        copied = len;
        if (copied > ulen)
-@@ -1307,7 +1328,7 @@ try_again:
+@@ -1305,7 +1326,7 @@ try_again:
        if (unlikely(err)) {
                trace_kfree_skb(skb, udp_recvmsg);
                if (!peeked) {
@@ -112112,7 +118969,7 @@ index 97ef1f8b..e446c33 100644
                        UDP_INC_STATS_USER(sock_net(sk),
                                           UDP_MIB_INERRORS, is_udplite);
                }
-@@ -1605,7 +1626,7 @@ csum_error:
+@@ -1599,7 +1620,7 @@ csum_error:
        UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
  drop:
        UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
@@ -112121,7 +118978,7 @@ index 97ef1f8b..e446c33 100644
        kfree_skb(skb);
        return -1;
  }
-@@ -1624,7 +1645,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
+@@ -1617,7 +1638,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
                        skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
  
                if (!skb1) {
@@ -112130,7 +118987,7 @@ index 97ef1f8b..e446c33 100644
                        UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
                                         IS_UDPLITE(sk));
                        UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
-@@ -1830,6 +1851,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
+@@ -1823,6 +1844,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
                goto csum_error;
  
        UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
@@ -112140,7 +118997,7 @@ index 97ef1f8b..e446c33 100644
        icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
  
        /*
-@@ -2416,7 +2440,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
+@@ -2420,7 +2444,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
                from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
                0, sock_i_ino(sp),
                atomic_read(&sp->sk_refcnt), sp,
@@ -112150,7 +119007,7 @@ index 97ef1f8b..e446c33 100644
  
  int udp4_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
-index 6156f68..d6ab46d 100644
+index bff6974..c63736c 100644
 --- a/net/ipv4/xfrm4_policy.c
 +++ b/net/ipv4/xfrm4_policy.c
 @@ -186,11 +186,11 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
@@ -112167,7 +119024,7 @@ index 6156f68..d6ab46d 100644
        return (dst_entries_get_slow(ops) > ops->gc_thresh * 2);
  }
  
-@@ -269,19 +269,18 @@ static struct ctl_table xfrm4_policy_table[] = {
+@@ -268,19 +268,18 @@ static struct ctl_table xfrm4_policy_table[] = {
  
  static int __net_init xfrm4_net_init(struct net *net)
  {
@@ -112192,7 +119049,7 @@ index 6156f68..d6ab46d 100644
        if (!hdr)
                goto err_reg;
  
-@@ -289,8 +288,7 @@ static int __net_init xfrm4_net_init(struct net *net)
+@@ -288,8 +287,7 @@ static int __net_init xfrm4_net_init(struct net *net)
        return 0;
  
  err_reg:
@@ -112203,10 +119060,10 @@ index 6156f68..d6ab46d 100644
        return -ENOMEM;
  }
 diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
-index b603002..0de5c88 100644
+index 37b70e8..1475ab7 100644
 --- a/net/ipv6/addrconf.c
 +++ b/net/ipv6/addrconf.c
-@@ -171,7 +171,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = {
+@@ -178,7 +178,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = {
        .hop_limit              = IPV6_DEFAULT_HOPLIMIT,
        .mtu6                   = IPV6_MIN_MTU,
        .accept_ra              = 1,
@@ -112215,7 +119072,7 @@ index b603002..0de5c88 100644
        .autoconf               = 1,
        .force_mld_version      = 0,
        .mldv1_unsolicited_report_interval = 10 * HZ,
-@@ -209,7 +209,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
+@@ -219,7 +219,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
        .hop_limit              = IPV6_DEFAULT_HOPLIMIT,
        .mtu6                   = IPV6_MIN_MTU,
        .accept_ra              = 1,
@@ -112224,7 +119081,7 @@ index b603002..0de5c88 100644
        .autoconf               = 1,
        .force_mld_version      = 0,
        .mldv1_unsolicited_report_interval = 10 * HZ,
-@@ -607,7 +607,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
+@@ -620,7 +620,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
                idx = 0;
                head = &net->dev_index_head[h];
                rcu_read_lock();
@@ -112233,7 +119090,7 @@ index b603002..0de5c88 100644
                          net->dev_base_seq;
                hlist_for_each_entry_rcu(dev, head, index_hlist) {
                        if (idx < s_idx)
-@@ -2438,7 +2438,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
+@@ -2506,7 +2506,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
                p.iph.ihl = 5;
                p.iph.protocol = IPPROTO_IPV6;
                p.iph.ttl = 64;
@@ -112242,7 +119099,7 @@ index b603002..0de5c88 100644
  
                if (ops->ndo_do_ioctl) {
                        mm_segment_t oldfs = get_fs();
-@@ -3587,16 +3587,23 @@ static const struct file_operations if6_fops = {
+@@ -3772,16 +3772,23 @@ static const struct file_operations if6_fops = {
        .release        = seq_release_net,
  };
  
@@ -112267,7 +119124,7 @@ index b603002..0de5c88 100644
  }
  
  static struct pernet_operations if6_proc_net_ops = {
-@@ -4215,7 +4222,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
+@@ -4400,7 +4407,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
        s_ip_idx = ip_idx = cb->args[2];
  
        rcu_read_lock();
@@ -112276,7 +119133,7 @@ index b603002..0de5c88 100644
        for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) {
                idx = 0;
                head = &net->dev_index_head[h];
-@@ -4864,7 +4871,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
+@@ -5057,7 +5064,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
                rt_genid_bump_ipv6(net);
                break;
        }
@@ -112285,7 +119142,7 @@ index b603002..0de5c88 100644
  }
  
  static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
-@@ -4884,7 +4891,7 @@ int addrconf_sysctl_forward(struct ctl_table *ctl, int write,
+@@ -5077,7 +5084,7 @@ int addrconf_sysctl_forward(struct ctl_table *ctl, int write,
        int *valp = ctl->data;
        int val = *valp;
        loff_t pos = *ppos;
@@ -112294,7 +119151,7 @@ index b603002..0de5c88 100644
        int ret;
  
        /*
-@@ -4909,7 +4916,7 @@ int addrconf_sysctl_mtu(struct ctl_table *ctl, int write,
+@@ -5102,7 +5109,7 @@ int addrconf_sysctl_mtu(struct ctl_table *ctl, int write,
  {
        struct inet6_dev *idev = ctl->extra1;
        int min_mtu = IPV6_MIN_MTU;
@@ -112303,7 +119160,7 @@ index b603002..0de5c88 100644
  
        lctl = *ctl;
        lctl.extra1 = &min_mtu;
-@@ -4984,7 +4991,7 @@ int addrconf_sysctl_disable(struct ctl_table *ctl, int write,
+@@ -5177,7 +5184,7 @@ int addrconf_sysctl_disable(struct ctl_table *ctl, int write,
        int *valp = ctl->data;
        int val = *valp;
        loff_t pos = *ppos;
@@ -112312,24 +119169,33 @@ index b603002..0de5c88 100644
        int ret;
  
        /*
+@@ -5242,7 +5249,7 @@ static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write,
+       int err;
+       struct in6_addr addr;
+       char str[IPV6_MAX_STRLEN];
+-      struct ctl_table lctl = *ctl;
++      ctl_table_no_const lctl = *ctl;
+       struct net *net = ctl->extra2;
+       struct ipv6_stable_secret *secret = ctl->data;
 diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
-index e8c4400..a4cd5da 100644
+index eef63b3..d68f5da 100644
 --- a/net/ipv6/af_inet6.c
 +++ b/net/ipv6/af_inet6.c
-@@ -766,7 +766,7 @@ static int __net_init inet6_net_init(struct net *net)
-       net->ipv6.sysctl.icmpv6_time = 1*HZ;
-       net->ipv6.sysctl.flowlabel_consistency = 1;
+@@ -768,7 +768,7 @@ static int __net_init inet6_net_init(struct net *net)
        net->ipv6.sysctl.auto_flowlabels = 0;
+       net->ipv6.sysctl.idgen_retries = 3;
+       net->ipv6.sysctl.idgen_delay = 1 * HZ;
 -      atomic_set(&net->ipv6.fib6_sernum, 1);
 +      atomic_set_unchecked(&net->ipv6.fib6_sernum, 1);
  
        err = ipv6_init_mibs(net);
        if (err)
 diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
-index ace8dac..bd6942d 100644
+index 62d908e..bac79a9 100644
 --- a/net/ipv6/datagram.c
 +++ b/net/ipv6/datagram.c
-@@ -957,5 +957,5 @@ void ip6_dgram_sock_seq_show(struct seq_file *seq, struct sock *sp,
+@@ -967,5 +967,5 @@ void ip6_dgram_sock_seq_show(struct seq_file *seq, struct sock *sp,
                   0,
                   sock_i_ino(sp),
                   atomic_read(&sp->sk_refcnt), sp,
@@ -112337,10 +119203,10 @@ index ace8dac..bd6942d 100644
 +                 atomic_read_unchecked(&sp->sk_drops));
  }
 diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
-index a5e9519..16b7412 100644
+index 2c2b5d5..cc01abd 100644
 --- a/net/ipv6/icmp.c
 +++ b/net/ipv6/icmp.c
-@@ -1005,7 +1005,7 @@ static struct ctl_table ipv6_icmp_table_template[] = {
+@@ -1004,7 +1004,7 @@ static struct ctl_table ipv6_icmp_table_template[] = {
  
  struct ctl_table * __net_init ipv6_icmp_sysctl_init(struct net *net)
  {
@@ -112350,7 +119216,7 @@ index a5e9519..16b7412 100644
        table = kmemdup(ipv6_icmp_table_template,
                        sizeof(ipv6_icmp_table_template),
 diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
-index 263ef41..88c7be8 100644
+index bde57b1..5b45dbb 100644
 --- a/net/ipv6/ip6_fib.c
 +++ b/net/ipv6/ip6_fib.c
 @@ -99,9 +99,9 @@ static int fib6_new_sernum(struct net *net)
@@ -112366,7 +119232,7 @@ index 263ef41..88c7be8 100644
        return new;
  }
 diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
-index bc28b7d..a08feea 100644
+index a38d3ac..d02e37d 100644
 --- a/net/ipv6/ip6_gre.c
 +++ b/net/ipv6/ip6_gre.c
 @@ -71,8 +71,8 @@ struct ip6gre_net {
@@ -112380,7 +119246,7 @@ index bc28b7d..a08feea 100644
  static int ip6gre_tunnel_init(struct net_device *dev);
  static void ip6gre_tunnel_setup(struct net_device *dev);
  static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t);
-@@ -1289,7 +1289,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
+@@ -1280,7 +1280,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
  }
  
  
@@ -112389,7 +119255,7 @@ index bc28b7d..a08feea 100644
        .handler     = ip6gre_rcv,
        .err_handler = ip6gre_err,
        .flags       = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
-@@ -1650,7 +1650,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = {
+@@ -1639,7 +1639,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = {
        [IFLA_GRE_FLAGS]       = { .type = NLA_U32 },
  };
  
@@ -112398,7 +119264,7 @@ index bc28b7d..a08feea 100644
        .kind           = "ip6gre",
        .maxtype        = IFLA_GRE_MAX,
        .policy         = ip6gre_policy,
-@@ -1665,7 +1665,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
+@@ -1654,7 +1654,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
        .get_link_net   = ip6_tnl_get_link_net,
  };
  
@@ -112408,10 +119274,10 @@ index bc28b7d..a08feea 100644
        .maxtype        = IFLA_GRE_MAX,
        .policy         = ip6gre_policy,
 diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
-index ddd94ec..b7cfefb 100644
+index 5cafd92..d5aead4 100644
 --- a/net/ipv6/ip6_tunnel.c
 +++ b/net/ipv6/ip6_tunnel.c
-@@ -86,7 +86,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
+@@ -80,7 +80,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
  
  static int ip6_tnl_dev_init(struct net_device *dev);
  static void ip6_tnl_dev_setup(struct net_device *dev);
@@ -112420,7 +119286,7 @@ index ddd94ec..b7cfefb 100644
  
  static int ip6_tnl_net_id __read_mostly;
  struct ip6_tnl_net {
-@@ -1780,7 +1780,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = {
+@@ -1776,7 +1776,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = {
        [IFLA_IPTUN_PROTO]              = { .type = NLA_U8 },
  };
  
@@ -112430,7 +119296,7 @@ index ddd94ec..b7cfefb 100644
        .maxtype        = IFLA_IPTUN_MAX,
        .policy         = ip6_tnl_policy,
 diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c
-index 5fb9e21..92bf04b 100644
+index 0224c03..c5ec3d9 100644
 --- a/net/ipv6/ip6_vti.c
 +++ b/net/ipv6/ip6_vti.c
 @@ -62,7 +62,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
@@ -112442,7 +119308,7 @@ index 5fb9e21..92bf04b 100644
  
  static int vti6_net_id __read_mostly;
  struct vti6_net {
-@@ -1004,7 +1004,7 @@ static const struct nla_policy vti6_policy[IFLA_VTI_MAX + 1] = {
+@@ -1019,7 +1019,7 @@ static const struct nla_policy vti6_policy[IFLA_VTI_MAX + 1] = {
        [IFLA_VTI_OKEY]         = { .type = NLA_U32 },
  };
  
@@ -112452,10 +119318,10 @@ index 5fb9e21..92bf04b 100644
        .maxtype        = IFLA_VTI_MAX,
        .policy         = vti6_policy,
 diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
-index 8d766d9..dcdfea7 100644
+index 63e6956..ebbbcf6 100644
 --- a/net/ipv6/ipv6_sockglue.c
 +++ b/net/ipv6/ipv6_sockglue.c
-@@ -989,7 +989,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
+@@ -1015,7 +1015,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
                if (sk->sk_type != SOCK_STREAM)
                        return -ENOPROTOOPT;
  
@@ -112465,10 +119331,10 @@ index 8d766d9..dcdfea7 100644
                msg.msg_flags = flags;
  
 diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
-index bb00c6f..16c90d7 100644
+index 62f5b0d..331fdb1 100644
 --- a/net/ipv6/netfilter/ip6_tables.c
 +++ b/net/ipv6/netfilter/ip6_tables.c
-@@ -1083,14 +1083,14 @@ static int compat_table_info(const struct xt_table_info *info,
+@@ -1085,14 +1085,14 @@ static int compat_table_info(const struct xt_table_info *info,
  #endif
  
  static int get_info(struct net *net, void __user *user,
@@ -112486,7 +119352,7 @@ index bb00c6f..16c90d7 100644
                         sizeof(struct ip6t_getinfo));
                return -EINVAL;
        }
-@@ -1127,7 +1127,7 @@ static int get_info(struct net *net, void __user *user,
+@@ -1129,7 +1129,7 @@ static int get_info(struct net *net, void __user *user,
                info.size = private->size;
                strcpy(info.name, name);
  
@@ -112495,7 +119361,7 @@ index bb00c6f..16c90d7 100644
                        ret = -EFAULT;
                else
                        ret = 0;
-@@ -1983,7 +1983,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
+@@ -1991,7 +1991,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
  
        switch (cmd) {
        case IP6T_SO_GET_INFO:
@@ -112504,7 +119370,7 @@ index bb00c6f..16c90d7 100644
                break;
        case IP6T_SO_GET_ENTRIES:
                ret = compat_get_entries(sock_net(sk), user, len);
-@@ -2030,7 +2030,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
+@@ -2038,7 +2038,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
  
        switch (cmd) {
        case IP6T_SO_GET_INFO:
@@ -112556,10 +119422,10 @@ index 6f187c8..34b367f 100644
        return -ENOMEM;
  }
 diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c
-index a2dfff6..1e52e6d 100644
+index 263a516..692f738 100644
 --- a/net/ipv6/ping.c
 +++ b/net/ipv6/ping.c
-@@ -241,6 +241,24 @@ static struct pernet_operations ping_v6_net_ops = {
+@@ -240,6 +240,24 @@ static struct pernet_operations ping_v6_net_ops = {
  };
  #endif
  
@@ -112584,7 +119450,7 @@ index a2dfff6..1e52e6d 100644
  int __init pingv6_init(void)
  {
  #ifdef CONFIG_PROC_FS
-@@ -248,13 +266,7 @@ int __init pingv6_init(void)
+@@ -247,13 +265,7 @@ int __init pingv6_init(void)
        if (ret)
                return ret;
  #endif
@@ -112599,7 +119465,7 @@ index a2dfff6..1e52e6d 100644
        return inet6_register_protosw(&pingv6_protosw);
  }
  
-@@ -263,14 +275,9 @@ int __init pingv6_init(void)
+@@ -262,14 +274,9 @@ int __init pingv6_init(void)
   */
  void pingv6_exit(void)
  {
@@ -112629,7 +119495,7 @@ index 679253d0..70b653c 100644
                goto proc_dev_snmp6_fail;
        return 0;
 diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
-index dae7f1a..783b20d 100644
+index 8072bd4..1629245 100644
 --- a/net/ipv6/raw.c
 +++ b/net/ipv6/raw.c
 @@ -388,7 +388,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb)
@@ -112659,7 +119525,7 @@ index dae7f1a..783b20d 100644
                        kfree_skb(skb);
                        return NET_RX_DROP;
                }
-@@ -609,7 +609,7 @@ out:
+@@ -608,7 +608,7 @@ out:
        return err;
  }
  
@@ -112668,7 +119534,7 @@ index dae7f1a..783b20d 100644
                        struct flowi6 *fl6, struct dst_entry **dstp,
                        unsigned int flags)
  {
-@@ -915,12 +915,15 @@ do_confirm:
+@@ -913,12 +913,15 @@ do_confirm:
  static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
                               char __user *optval, int optlen)
  {
@@ -112685,7 +119551,7 @@ index dae7f1a..783b20d 100644
                return 0;
        default:
                return -ENOPROTOOPT;
-@@ -933,6 +936,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
+@@ -931,6 +934,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
                               char __user *optval, int __user *optlen)
  {
        int len;
@@ -112693,7 +119559,7 @@ index dae7f1a..783b20d 100644
  
        switch (optname) {
        case ICMPV6_FILTER:
-@@ -944,7 +948,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
+@@ -942,7 +946,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
                        len = sizeof(struct icmp6_filter);
                if (put_user(len, optlen))
                        return -EFAULT;
@@ -112704,7 +119570,7 @@ index dae7f1a..783b20d 100644
                return 0;
        default:
 diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c
-index d7d70e6..bd5e9fc 100644
+index 8ffa2c8..5968612 100644
 --- a/net/ipv6/reassembly.c
 +++ b/net/ipv6/reassembly.c
 @@ -626,12 +626,11 @@ static struct ctl_table ip6_frags_ctl_table[] = {
@@ -112719,7 +119585,7 @@ index d7d70e6..bd5e9fc 100644
        if (!net_eq(net, &init_net)) {
 -              table = kmemdup(table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
 +              table = kmemdup(ip6_frags_ns_ctl_table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
-               if (table == NULL)
+               if (!table)
                        goto err_alloc;
  
 @@ -645,9 +644,10 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
@@ -112732,7 +119598,7 @@ index d7d70e6..bd5e9fc 100644
 +              hdr = register_net_sysctl(net, "net/ipv6", ip6_frags_ns_ctl_table);
  
 -      hdr = register_net_sysctl(net, "net/ipv6", table);
-       if (hdr == NULL)
+       if (!hdr)
                goto err_reg;
  
 @@ -655,8 +655,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
@@ -112746,10 +119612,10 @@ index d7d70e6..bd5e9fc 100644
        return -ENOMEM;
  }
 diff --git a/net/ipv6/route.c b/net/ipv6/route.c
-index 4688bd4..584453d 100644
+index c73ae50..aa55e00 100644
 --- a/net/ipv6/route.c
 +++ b/net/ipv6/route.c
-@@ -3029,7 +3029,7 @@ struct ctl_table ipv6_route_table_template[] = {
+@@ -3046,7 +3046,7 @@ struct ctl_table ipv6_route_table_template[] = {
  
  struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net)
  {
@@ -112759,7 +119625,7 @@ index 4688bd4..584453d 100644
        table = kmemdup(ipv6_route_table_template,
                        sizeof(ipv6_route_table_template),
 diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
-index e4cbd57..02b1aaa 100644
+index ac35a28..070cc8c 100644
 --- a/net/ipv6/sit.c
 +++ b/net/ipv6/sit.c
 @@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev);
@@ -112771,7 +119637,7 @@ index e4cbd57..02b1aaa 100644
  
  static int sit_net_id __read_mostly;
  struct sit_net {
-@@ -1751,7 +1751,7 @@ static void ipip6_dellink(struct net_device *dev, struct list_head *head)
+@@ -1749,7 +1749,7 @@ static void ipip6_dellink(struct net_device *dev, struct list_head *head)
                unregister_netdevice_queue(dev, head);
  }
  
@@ -112781,10 +119647,10 @@ index e4cbd57..02b1aaa 100644
        .maxtype        = IFLA_IPTUN_MAX,
        .policy         = ipip6_policy,
 diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
-index c5c10fa..2577d51 100644
+index abcc79f..3b2d2d5 100644
 --- a/net/ipv6/sysctl_net_ipv6.c
 +++ b/net/ipv6/sysctl_net_ipv6.c
-@@ -78,7 +78,7 @@ static struct ctl_table ipv6_rotable[] = {
+@@ -92,7 +92,7 @@ static struct ctl_table ipv6_rotable[] = {
  
  static int __net_init ipv6_sysctl_net_init(struct net *net)
  {
@@ -112794,7 +119660,7 @@ index c5c10fa..2577d51 100644
        struct ctl_table *ipv6_icmp_table;
        int err;
 diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
-index 1f5e622..8387d90 100644
+index 3adffb3..a67e4d1 100644
 --- a/net/ipv6/tcp_ipv6.c
 +++ b/net/ipv6/tcp_ipv6.c
 @@ -104,6 +104,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
@@ -112805,10 +119671,10 @@ index 1f5e622..8387d90 100644
 +extern int grsec_enable_blackhole;
 +#endif
 +
- static void tcp_v6_hash(struct sock *sk)
+ static __u32 tcp_v6_init_sequence(const struct sk_buff *skb)
  {
-       if (sk->sk_state != TCP_CLOSE) {
-@@ -1345,6 +1349,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
+       return secure_tcpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32,
+@@ -1283,6 +1287,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
        return 0;
  
  reset:
@@ -112818,7 +119684,7 @@ index 1f5e622..8387d90 100644
        tcp_v6_send_reset(sk, skb);
  discard:
        if (opt_skb)
-@@ -1454,12 +1461,20 @@ static int tcp_v6_rcv(struct sk_buff *skb)
+@@ -1392,12 +1399,20 @@ static int tcp_v6_rcv(struct sk_buff *skb)
  
        sk = __inet6_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest,
                                inet6_iif(skb));
@@ -112841,7 +119707,7 @@ index 1f5e622..8387d90 100644
  
        if (hdr->hop_limit < inet6_sk(sk)->min_hopcount) {
                NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
-@@ -1510,6 +1525,10 @@ csum_error:
+@@ -1448,6 +1463,10 @@ csum_error:
  bad_packet:
                TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
        } else {
@@ -112853,10 +119719,10 @@ index 1f5e622..8387d90 100644
        }
  
 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
-index d048d46..bf141c3 100644
+index e51fc3e..8f04229 100644
 --- a/net/ipv6/udp.c
 +++ b/net/ipv6/udp.c
-@@ -76,6 +76,10 @@ static unsigned int udp6_ehashfn(struct net *net,
+@@ -76,6 +76,10 @@ static u32 udp6_ehashfn(const struct net *net,
                               udp_ipv6_hash_secret + net_hash_mix(net));
  }
  
@@ -112867,7 +119733,7 @@ index d048d46..bf141c3 100644
  int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2)
  {
        const struct in6_addr *sk2_rcv_saddr6 = inet6_rcv_saddr(sk2);
-@@ -448,7 +452,7 @@ try_again:
+@@ -445,7 +449,7 @@ try_again:
        if (unlikely(err)) {
                trace_kfree_skb(skb, udpv6_recvmsg);
                if (!peeked) {
@@ -112876,7 +119742,7 @@ index d048d46..bf141c3 100644
                        if (is_udp4)
                                UDP_INC_STATS_USER(sock_net(sk),
                                                   UDP_MIB_INERRORS,
-@@ -714,7 +718,7 @@ csum_error:
+@@ -709,7 +713,7 @@ csum_error:
        UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
  drop:
        UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
@@ -112885,8 +119751,8 @@ index d048d46..bf141c3 100644
        kfree_skb(skb);
        return -1;
  }
-@@ -753,7 +757,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
-               if (likely(skb1 == NULL))
+@@ -750,7 +754,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
+               if (likely(!skb1))
                        skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
                if (!skb1) {
 -                      atomic_inc(&sk->sk_drops);
@@ -112894,7 +119760,7 @@ index d048d46..bf141c3 100644
                        UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
                                          IS_UDPLITE(sk));
                        UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
-@@ -937,6 +941,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
+@@ -934,6 +938,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
                goto csum_error;
  
        UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
@@ -112905,10 +119771,10 @@ index d048d46..bf141c3 100644
  
        kfree_skb(skb);
 diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
-index 8d2d01b4..313511e 100644
+index f337a90..2a9a9db 100644
 --- a/net/ipv6/xfrm6_policy.c
 +++ b/net/ipv6/xfrm6_policy.c
-@@ -224,11 +224,11 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
+@@ -222,11 +222,11 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
        }
  }
  
@@ -112922,7 +119788,7 @@ index 8d2d01b4..313511e 100644
        return dst_entries_get_fast(ops) > ops->gc_thresh * 2;
  }
  
-@@ -341,19 +341,19 @@ static struct ctl_table xfrm6_policy_table[] = {
+@@ -338,19 +338,19 @@ static struct ctl_table xfrm6_policy_table[] = {
  
  static int __net_init xfrm6_net_init(struct net *net)
  {
@@ -112947,7 +119813,7 @@ index 8d2d01b4..313511e 100644
        if (!hdr)
                goto err_reg;
  
-@@ -361,8 +361,7 @@ static int __net_init xfrm6_net_init(struct net *net)
+@@ -358,8 +358,7 @@ static int __net_init xfrm6_net_init(struct net *net)
        return 0;
  
  err_reg:
@@ -113058,7 +119924,7 @@ index b9ac598..f88cc56 100644
                return;
  
 diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
-index 53d9311..cbaf99f 100644
+index 6daa52a..786aa2b 100644
 --- a/net/iucv/af_iucv.c
 +++ b/net/iucv/af_iucv.c
 @@ -686,10 +686,10 @@ static void __iucv_auto_name(struct iucv_sock *iucv)
@@ -113088,7 +119954,7 @@ index 2a6a1fd..6c112b0 100644
  };
  
 diff --git a/net/key/af_key.c b/net/key/af_key.c
-index f8ac939..1e189bf 100644
+index f0d52d7..9c9af38 100644
 --- a/net/key/af_key.c
 +++ b/net/key/af_key.c
 @@ -3049,10 +3049,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
@@ -113105,7 +119971,7 @@ index f8ac939..1e189bf 100644
        return res;
  }
 diff --git a/net/l2tp/l2tp_eth.c b/net/l2tp/l2tp_eth.c
-index 781b3a2..73a7434 100644
+index 4b55287..bd247f7 100644
 --- a/net/l2tp/l2tp_eth.c
 +++ b/net/l2tp/l2tp_eth.c
 @@ -42,12 +42,12 @@ struct l2tp_eth {
@@ -113181,7 +120047,7 @@ index 781b3a2..73a7434 100644
  }
  
 diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
-index 05dfc8aa..df6cfd7 100644
+index 7964993..2c48a3a 100644
 --- a/net/l2tp/l2tp_ip.c
 +++ b/net/l2tp/l2tp_ip.c
 @@ -608,7 +608,7 @@ static struct inet_protosw l2tp_ip_protosw = {
@@ -113194,10 +120060,10 @@ index 05dfc8aa..df6cfd7 100644
        .netns_ok       = 1,
  };
 diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
-index 8611f1b..bc60a2d 100644
+index d1ded37..c0d1e49 100644
 --- a/net/l2tp/l2tp_ip6.c
 +++ b/net/l2tp/l2tp_ip6.c
-@@ -757,7 +757,7 @@ static struct inet_protosw l2tp_ip6_protosw = {
+@@ -755,7 +755,7 @@ static struct inet_protosw l2tp_ip6_protosw = {
        .ops            = &l2tp_ip6_ops,
  };
  
@@ -113220,10 +120086,10 @@ index 1a3c7e0..80f8b0c 100644
                goto out;
  
 diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
-index dd4ff36..3462997 100644
+index ff347a0..6ea4923 100644
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -581,7 +581,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
+@@ -582,7 +582,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
                        ret = ieee80211_vif_use_channel(sdata, chandef,
                                        IEEE80211_CHANCTX_EXCLUSIVE);
                }
@@ -113232,7 +120098,7 @@ index dd4ff36..3462997 100644
                local->_oper_chandef = *chandef;
                ieee80211_hw_config(local, 0);
        }
-@@ -3468,7 +3468,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
+@@ -3428,7 +3428,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
                else
                        local->probe_req_reg--;
  
@@ -113241,7 +120107,7 @@ index dd4ff36..3462997 100644
                        break;
  
                ieee80211_queue_work(&local->hw, &local->reconfig_filter);
-@@ -3603,8 +3603,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
+@@ -3563,8 +3563,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
        if (chanctx_conf) {
                *chandef = sdata->vif.bss_conf.chandef;
                ret = 0;
@@ -113253,10 +120119,10 @@ index dd4ff36..3462997 100644
                if (local->use_chanctx)
                        *chandef = local->monitor_chandef;
 diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
-index 8d53d65..a4ac794 100644
+index c0a9187..2a13300 100644
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -29,6 +29,7 @@
+@@ -30,6 +30,7 @@
  #include <net/ieee80211_radiotap.h>
  #include <net/cfg80211.h>
  #include <net/mac80211.h>
@@ -113264,7 +120130,7 @@ index 8d53d65..a4ac794 100644
  #include "key.h"
  #include "sta_info.h"
  #include "debug.h"
-@@ -1126,7 +1127,7 @@ struct ieee80211_local {
+@@ -1118,7 +1119,7 @@ struct ieee80211_local {
        /* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */
        spinlock_t queue_stop_reason_lock;
  
@@ -113274,10 +120140,10 @@ index 8d53d65..a4ac794 100644
        /* number of interfaces with corresponding FIF_ flags */
        int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
 diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
-index 81a2751..c06a026 100644
+index 84cef60..53ec813 100644
 --- a/net/mac80211/iface.c
 +++ b/net/mac80211/iface.c
-@@ -544,7 +544,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
+@@ -550,7 +550,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
                break;
        }
  
@@ -113286,7 +120152,7 @@ index 81a2751..c06a026 100644
                res = drv_start(local);
                if (res)
                        goto err_del_bss;
-@@ -591,7 +591,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
+@@ -597,7 +597,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
                        res = drv_add_interface(local, sdata);
                        if (res)
                                goto err_stop;
@@ -113295,7 +120161,7 @@ index 81a2751..c06a026 100644
                        res = ieee80211_add_virtual_monitor(local);
                        if (res)
                                goto err_stop;
-@@ -701,7 +701,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
+@@ -707,7 +707,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
                atomic_inc(&local->iff_promiscs);
  
        if (coming_up)
@@ -113304,7 +120170,7 @@ index 81a2751..c06a026 100644
  
        if (hw_reconf_flags)
                ieee80211_hw_config(local, hw_reconf_flags);
-@@ -739,7 +739,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
+@@ -745,7 +745,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
   err_del_interface:
        drv_remove_interface(local, sdata);
   err_stop:
@@ -113313,7 +120179,7 @@ index 81a2751..c06a026 100644
                drv_stop(local);
   err_del_bss:
        sdata->bss = NULL;
-@@ -907,7 +907,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
+@@ -915,7 +915,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
        }
  
        if (going_down)
@@ -113322,16 +120188,16 @@ index 81a2751..c06a026 100644
  
        switch (sdata->vif.type) {
        case NL80211_IFTYPE_AP_VLAN:
-@@ -969,7 +969,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
+@@ -984,7 +984,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
+               atomic_set(&sdata->txqs_len[txqi->txq.ac], 0);
        }
-       spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags);
  
 -      if (local->open_count == 0)
 +      if (local_read(&local->open_count) == 0)
                ieee80211_clear_tx_pending(local);
  
        /*
-@@ -1012,7 +1012,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
+@@ -1027,7 +1027,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
        if (cancel_scan)
                flush_delayed_work(&local->scan_work);
  
@@ -113340,7 +120206,7 @@ index 81a2751..c06a026 100644
                ieee80211_stop_device(local);
  
                /* no reconfiguring after stop! */
-@@ -1023,7 +1023,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
+@@ -1038,7 +1038,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
        ieee80211_configure_filter(local);
        ieee80211_hw_config(local, hw_reconf_flags);
  
@@ -113350,7 +120216,7 @@ index 81a2751..c06a026 100644
  }
  
 diff --git a/net/mac80211/main.c b/net/mac80211/main.c
-index 5e09d35..e2fdbe2 100644
+index df3051d..359d2f4 100644
 --- a/net/mac80211/main.c
 +++ b/net/mac80211/main.c
 @@ -175,7 +175,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
@@ -113363,7 +120229,7 @@ index 5e09d35..e2fdbe2 100644
                /*
                 * Goal:
 diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
-index ca405b6..6cc8bee 100644
+index ac6ad62..77dbac5 100644
 --- a/net/mac80211/pm.c
 +++ b/net/mac80211/pm.c
 @@ -12,7 +12,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
@@ -113375,16 +120241,7 @@ index ca405b6..6cc8bee 100644
                goto suspend;
  
        ieee80211_scan_cancel(local);
-@@ -59,7 +59,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
-       cancel_work_sync(&local->dynamic_ps_enable_work);
-       del_timer_sync(&local->dynamic_ps_timer);
--      local->wowlan = wowlan && local->open_count;
-+      local->wowlan = wowlan && local_read(&local->open_count);
-       if (local->wowlan) {
-               int err = drv_suspend(local, wowlan);
-               if (err < 0) {
-@@ -126,7 +126,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
+@@ -150,7 +150,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
        WARN_ON(!list_empty(&local->chanctx_list));
  
        /* stop hardware - this must stop RX */
@@ -113406,11 +120263,24 @@ index d53355b..21f583a 100644
                return -EBUSY;
  
        if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) {
+diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
+index 2880f2a..3085cec 100644
+--- a/net/mac80211/sta_info.c
++++ b/net/mac80211/sta_info.c
+@@ -339,7 +339,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
+               int size = sizeof(struct txq_info) +
+                          ALIGN(hw->txq_data_size, sizeof(void *));
+-              txq_data = kcalloc(ARRAY_SIZE(sta->sta.txq), size, gfp);
++              txq_data = kcalloc(size, ARRAY_SIZE(sta->sta.txq), gfp);
+               if (!txq_data)
+                       goto free;
 diff --git a/net/mac80211/util.c b/net/mac80211/util.c
-index 747bdcf..eb2b981 100644
+index b864ebc..17326ff 100644
 --- a/net/mac80211/util.c
 +++ b/net/mac80211/util.c
-@@ -1741,7 +1741,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
+@@ -1761,7 +1761,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
        bool sched_scan_stopped = false;
  
        /* nothing to do if HW shouldn't run */
@@ -113419,7 +120289,7 @@ index 747bdcf..eb2b981 100644
                goto wake_up;
  
  #ifdef CONFIG_PM
-@@ -1993,7 +1993,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
+@@ -2033,7 +2033,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
        local->in_reconfig = false;
        barrier();
  
@@ -113428,7 +120298,7 @@ index 747bdcf..eb2b981 100644
                ieee80211_add_virtual_monitor(local);
  
        /*
-@@ -2048,7 +2048,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
+@@ -2088,7 +2088,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
         * If this is for hw restart things are still running.
         * We may want to change that later, however.
         */
@@ -113437,7 +120307,7 @@ index 747bdcf..eb2b981 100644
                drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_RESTART);
  
        if (!local->suspended)
-@@ -2072,7 +2072,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
+@@ -2112,7 +2112,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
                flush_delayed_work(&local->scan_work);
        }
  
@@ -113446,11 +120316,42 @@ index 747bdcf..eb2b981 100644
                drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_SUSPEND);
  
        list_for_each_entry(sdata, &local->interfaces, list) {
+diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
+index 1f93a59..96faa29 100644
+--- a/net/mpls/af_mpls.c
++++ b/net/mpls/af_mpls.c
+@@ -456,7 +456,7 @@ static int mpls_dev_sysctl_register(struct net_device *dev,
+                                   struct mpls_dev *mdev)
+ {
+       char path[sizeof("net/mpls/conf/") + IFNAMSIZ];
+-      struct ctl_table *table;
++      ctl_table_no_const *table;
+       int i;
+       table = kmemdup(&mpls_dev_table, sizeof(mpls_dev_table), GFP_KERNEL);
+@@ -1025,7 +1025,7 @@ static int mpls_platform_labels(struct ctl_table *table, int write,
+       struct net *net = table->data;
+       int platform_labels = net->mpls.platform_labels;
+       int ret;
+-      struct ctl_table tmp = {
++      ctl_table_no_const tmp = {
+               .procname       = table->procname,
+               .data           = &platform_labels,
+               .maxlen         = sizeof(int),
+@@ -1055,7 +1055,7 @@ static const struct ctl_table mpls_table[] = {
+ static int mpls_net_init(struct net *net)
+ {
+-      struct ctl_table *table;
++      ctl_table_no_const *table;
+       net->mpls.platform_labels = 0;
+       net->mpls.platform_label = NULL;
 diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
-index b02660f..c0f791c 100644
+index a0f3e6a3..b026fe2 100644
 --- a/net/netfilter/Kconfig
 +++ b/net/netfilter/Kconfig
-@@ -1122,6 +1122,16 @@ config NETFILTER_XT_MATCH_ESP
+@@ -1112,6 +1112,16 @@ config NETFILTER_XT_MATCH_ESP
  
          To compile it as a module, choose M here.  If unsure, say N.
  
@@ -113468,7 +120369,7 @@ index b02660f..c0f791c 100644
        tristate '"hashlimit" match support'
        depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n)
 diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
-index 89f73a9..e4e5bd9 100644
+index a87d8b8..d43183c 100644
 --- a/net/netfilter/Makefile
 +++ b/net/netfilter/Makefile
 @@ -139,6 +139,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
@@ -113524,10 +120425,10 @@ index b0f7b62..0541842 100644
  
        if (!todrop_rate[i]) return 0;
 diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
-index b87ca32..76c7799 100644
+index 5d2b806..9005b29 100644
 --- a/net/netfilter/ipvs/ip_vs_core.c
 +++ b/net/netfilter/ipvs/ip_vs_core.c
-@@ -568,7 +568,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
+@@ -574,7 +574,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
                ret = cp->packet_xmit(skb, cp, pd->pp, iph);
                /* do not touch skb anymore */
  
@@ -113536,7 +120437,7 @@ index b87ca32..76c7799 100644
                ip_vs_conn_put(cp);
                return ret;
        }
-@@ -1723,7 +1723,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
+@@ -1750,7 +1750,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
        if (cp->flags & IP_VS_CONN_F_ONE_PACKET)
                pkts = sysctl_sync_threshold(ipvs);
        else
@@ -113546,10 +120447,10 @@ index b87ca32..76c7799 100644
        if (ipvs->sync_state & IP_VS_STATE_MASTER)
                ip_vs_sync_conn(net, cp, pkts);
 diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
-index ed99448..3ba6cad 100644
+index 285eae3..226f4a7 100644
 --- a/net/netfilter/ipvs/ip_vs_ctl.c
 +++ b/net/netfilter/ipvs/ip_vs_ctl.c
-@@ -799,7 +799,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
+@@ -814,7 +814,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
                 */
                ip_vs_rs_hash(ipvs, dest);
        }
@@ -113558,7 +120459,7 @@ index ed99448..3ba6cad 100644
  
        /* bind the service */
        old_svc = rcu_dereference_protected(dest->svc, 1);
-@@ -1664,7 +1664,7 @@ proc_do_sync_ports(struct ctl_table *table, int write,
+@@ -1679,7 +1679,7 @@ proc_do_sync_ports(struct ctl_table *table, int write,
   *    align with netns init in ip_vs_control_net_init()
   */
  
@@ -113567,7 +120468,7 @@ index ed99448..3ba6cad 100644
        {
                .procname       = "amemthresh",
                .maxlen         = sizeof(int),
-@@ -1999,7 +1999,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
+@@ -2020,7 +2020,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
                                           "      %-7s %-6d %-10d %-10d\n",
                                           &dest->addr.in6,
                                           ntohs(dest->port),
@@ -113576,7 +120477,7 @@ index ed99448..3ba6cad 100644
                                           atomic_read(&dest->weight),
                                           atomic_read(&dest->activeconns),
                                           atomic_read(&dest->inactconns));
-@@ -2010,7 +2010,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
+@@ -2031,7 +2031,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
                                           "%-7s %-6d %-10d %-10d\n",
                                           ntohl(dest->addr.ip),
                                           ntohs(dest->port),
@@ -113585,7 +120486,7 @@ index ed99448..3ba6cad 100644
                                           atomic_read(&dest->weight),
                                           atomic_read(&dest->activeconns),
                                           atomic_read(&dest->inactconns));
-@@ -2499,7 +2499,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
+@@ -2528,7 +2528,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
  
                        entry.addr = dest->addr.ip;
                        entry.port = dest->port;
@@ -113594,7 +120495,7 @@ index ed99448..3ba6cad 100644
                        entry.weight = atomic_read(&dest->weight);
                        entry.u_threshold = dest->u_threshold;
                        entry.l_threshold = dest->l_threshold;
-@@ -3040,7 +3040,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
+@@ -3101,7 +3101,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
        if (nla_put(skb, IPVS_DEST_ATTR_ADDR, sizeof(dest->addr), &dest->addr) ||
            nla_put_be16(skb, IPVS_DEST_ATTR_PORT, dest->port) ||
            nla_put_u32(skb, IPVS_DEST_ATTR_FWD_METHOD,
@@ -113603,7 +120504,7 @@ index ed99448..3ba6cad 100644
                         IP_VS_CONN_F_FWD_MASK)) ||
            nla_put_u32(skb, IPVS_DEST_ATTR_WEIGHT,
                        atomic_read(&dest->weight)) ||
-@@ -3675,7 +3675,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct net *net)
+@@ -3739,7 +3739,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct net *net)
  {
        int idx;
        struct netns_ipvs *ipvs = net_ipvs(net);
@@ -113639,7 +120540,7 @@ index 2229d2d..b32b785 100644
                .procname       = "lblcr_expiration",
                .data           = NULL,
 diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
-index d93ceeb..4556144 100644
+index 19b9cce..e4f3112 100644
 --- a/net/netfilter/ipvs/ip_vs_sync.c
 +++ b/net/netfilter/ipvs/ip_vs_sync.c
 @@ -609,7 +609,7 @@ static void ip_vs_sync_conn_v0(struct net *net, struct ip_vs_conn *cp,
@@ -113660,7 +120561,7 @@ index d93ceeb..4556144 100644
        else
                pkts = sysctl_sync_threshold(ipvs);
        goto sloop;
-@@ -902,7 +902,7 @@ static void ip_vs_proc_conn(struct net *net, struct ip_vs_conn_param *param,
+@@ -919,7 +919,7 @@ static void ip_vs_proc_conn(struct net *net, struct ip_vs_conn_param *param,
  
        if (opt)
                memcpy(&cp->in_seq, opt, sizeof(*opt));
@@ -113670,10 +120571,10 @@ index d93ceeb..4556144 100644
        cp->old_state = cp->state;
        /*
 diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
-index 3aedbda..6a63567 100644
+index 19986ec..416dbc5 100644
 --- a/net/netfilter/ipvs/ip_vs_xmit.c
 +++ b/net/netfilter/ipvs/ip_vs_xmit.c
-@@ -1214,7 +1214,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
+@@ -1215,7 +1215,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
                else
                        rc = NF_ACCEPT;
                /* do not touch skb anymore */
@@ -113682,7 +120583,7 @@ index 3aedbda..6a63567 100644
                goto out;
        }
  
-@@ -1307,7 +1307,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
+@@ -1308,7 +1308,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
                else
                        rc = NF_ACCEPT;
                /* do not touch skb anymore */
@@ -113692,10 +120593,10 @@ index 3aedbda..6a63567 100644
        }
  
 diff --git a/net/netfilter/nf_conntrack_acct.c b/net/netfilter/nf_conntrack_acct.c
-index a4b5e2a..13b1de3 100644
+index 45da11a..ef3e5dc 100644
 --- a/net/netfilter/nf_conntrack_acct.c
 +++ b/net/netfilter/nf_conntrack_acct.c
-@@ -62,7 +62,7 @@ static struct nf_ct_ext_type acct_extend __read_mostly = {
+@@ -64,7 +64,7 @@ static struct nf_ct_ext_type acct_extend __read_mostly = {
  #ifdef CONFIG_SYSCTL
  static int nf_conntrack_acct_init_sysctl(struct net *net)
  {
@@ -113851,10 +120752,10 @@ index c68c1e5..8b5d670 100644
  }
  EXPORT_SYMBOL(nf_unregister_sockopt);
 diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
-index 11d85b3..7fcc420 100644
+index 4ef1fae..f72f08b 100644
 --- a/net/netfilter/nfnetlink_log.c
 +++ b/net/netfilter/nfnetlink_log.c
-@@ -83,7 +83,7 @@ static int nfnl_log_net_id __read_mostly;
+@@ -84,7 +84,7 @@ static int nfnl_log_net_id __read_mostly;
  struct nfnl_log_net {
        spinlock_t instances_lock;
        struct hlist_head instance_table[INSTANCE_BUCKETS];
@@ -113863,7 +120764,7 @@ index 11d85b3..7fcc420 100644
  };
  
  static struct nfnl_log_net *nfnl_log_pernet(struct net *net)
-@@ -563,7 +563,7 @@ __build_packet_message(struct nfnl_log_net *log,
+@@ -572,7 +572,7 @@ __build_packet_message(struct nfnl_log_net *log,
        /* global sequence number */
        if ((inst->flags & NFULNL_CFG_F_SEQ_GLOBAL) &&
            nla_put_be32(inst->skb, NFULA_SEQ_GLOBAL,
@@ -113873,22 +120774,22 @@ index 11d85b3..7fcc420 100644
  
        if (data_len) {
 diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
-index 65f3e2b..2e9d6a0 100644
+index 7f29cfc..917ef5f 100644
 --- a/net/netfilter/nft_compat.c
 +++ b/net/netfilter/nft_compat.c
-@@ -317,14 +317,7 @@ static void nft_match_eval(const struct nft_expr *expr,
+@@ -321,14 +321,7 @@ static void nft_match_eval(const struct nft_expr *expr,
                return;
        }
  
--      switch(ret) {
--      case true:
--              data[NFT_REG_VERDICT].verdict = NFT_CONTINUE;
+-      switch (ret ? 1 : 0) {
+-      case 1:
+-              regs->verdict.code = NFT_CONTINUE;
 -              break;
--      case false:
--              data[NFT_REG_VERDICT].verdict = NFT_BREAK;
+-      case 0:
+-              regs->verdict.code = NFT_BREAK;
 -              break;
 -      }
-+      data[NFT_REG_VERDICT].verdict = ret ? NFT_CONTINUE : NFT_BREAK;
++      regs->verdict.code = ret ? NFT_CONTINUE : NFT_BREAK;
  }
  
  static const struct nla_policy nft_match_policy[NFTA_MATCH_MAX + 1] = {
@@ -114015,10 +120916,10 @@ index 11de55e..f25e448 100644
        return 0;
  }
 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
-index d1d7a81..b45b03d 100644
+index bf6e766..be67817 100644
 --- a/net/netlink/af_netlink.c
 +++ b/net/netlink/af_netlink.c
-@@ -260,7 +260,7 @@ static void netlink_overrun(struct sock *sk)
+@@ -262,7 +262,7 @@ static void netlink_overrun(struct sock *sk)
                        sk->sk_error_report(sk);
                }
        }
@@ -114027,7 +120928,7 @@ index d1d7a81..b45b03d 100644
  }
  
  static void netlink_rcv_wake(struct sock *sk)
-@@ -3002,7 +3002,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
+@@ -3014,7 +3014,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
                           sk_wmem_alloc_get(s),
                           nlk->cb_running,
                           atomic_read(&s->sk_refcnt),
@@ -114112,10 +121013,10 @@ index bc85331..0d3dce0 100644
  /**
   * struct vport_portids - array of netlink portids of a vport.
 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index f8db706..2b4631e 100644
+index fe1610d..ec1c87f 100644
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -269,7 +269,7 @@ static int packet_direct_xmit(struct sk_buff *skb)
+@@ -275,7 +275,7 @@ static int packet_direct_xmit(struct sk_buff *skb)
  
        return ret;
  drop:
@@ -114124,16 +121025,7 @@ index f8db706..2b4631e 100644
        kfree_skb(skb);
        return NET_XMIT_DROP;
  }
-@@ -1847,7 +1847,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
-       spin_lock(&sk->sk_receive_queue.lock);
-       po->stats.stats1.tp_packets++;
--      skb->dropcount = atomic_read(&sk->sk_drops);
-+      skb->dropcount = atomic_read_unchecked(&sk->sk_drops);
-       __skb_queue_tail(&sk->sk_receive_queue, skb);
-       spin_unlock(&sk->sk_receive_queue.lock);
-       sk->sk_data_ready(sk);
-@@ -1856,7 +1856,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -1848,7 +1848,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
  drop_n_acct:
        spin_lock(&sk->sk_receive_queue.lock);
        po->stats.stats1.tp_drops++;
@@ -114142,7 +121034,7 @@ index f8db706..2b4631e 100644
        spin_unlock(&sk->sk_receive_queue.lock);
  
  drop_n_restore:
-@@ -3499,7 +3499,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3514,7 +3514,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
        case PACKET_HDRLEN:
                if (len > sizeof(int))
                        len = sizeof(int);
@@ -114151,7 +121043,7 @@ index f8db706..2b4631e 100644
                        return -EFAULT;
                switch (val) {
                case TPACKET_V1:
-@@ -3545,7 +3545,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3560,7 +3560,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
                len = lv;
        if (put_user(len, optlen))
                return -EFAULT;
@@ -114161,7 +121053,7 @@ index f8db706..2b4631e 100644
        return 0;
  }
 diff --git a/net/phonet/pep.c b/net/phonet/pep.c
-index 5d3f2b7..8a4dbb7 100644
+index 6de2aeb..1f8afe8 100644
 --- a/net/phonet/pep.c
 +++ b/net/phonet/pep.c
 @@ -388,7 +388,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
@@ -114192,7 +121084,7 @@ index 5d3f2b7..8a4dbb7 100644
                        break;
                }
 diff --git a/net/phonet/socket.c b/net/phonet/socket.c
-index 008214a..bb68240 100644
+index d575ef4..1dedc31 100644
 --- a/net/phonet/socket.c
 +++ b/net/phonet/socket.c
 @@ -611,7 +611,7 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
@@ -114248,18 +121140,6 @@ index e6144b8..4f9fda6 100644
  
        if (likely(*recent == gen))
                return 0;
-diff --git a/net/rds/connection.c b/net/rds/connection.c
-index 378c3a6..ba4382c 100644
---- a/net/rds/connection.c
-+++ b/net/rds/connection.c
-@@ -193,6 +193,7 @@ static struct rds_connection *__rds_conn_create(__be32 laddr, __be32 faddr,
-       }
-       atomic_set(&conn->c_state, RDS_CONN_DOWN);
-+      conn->c_send_gen = 0;
-       conn->c_reconnect_jiffies = 0;
-       INIT_DELAYED_WORK(&conn->c_send_w, rds_send_worker);
-       INIT_DELAYED_WORK(&conn->c_recv_w, rds_recv_worker);
 diff --git a/net/rds/ib.h b/net/rds/ib.h
 index c36d713..af45bf2 100644
 --- a/net/rds/ib.h
@@ -114274,10 +121154,10 @@ index c36d713..af45bf2 100644
        spinlock_t              i_ack_lock;     /* protect i_ack_next */
        u64                     i_ack_next;     /* next ACK to send */
 diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
-index 31b74f5..dc1fbfa 100644
+index 8a09ee7..45e2b64 100644
 --- a/net/rds/ib_cm.c
 +++ b/net/rds/ib_cm.c
-@@ -717,7 +717,7 @@ void rds_ib_conn_shutdown(struct rds_connection *conn)
+@@ -726,7 +726,7 @@ void rds_ib_conn_shutdown(struct rds_connection *conn)
        /* Clear the ACK state */
        clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
  #ifdef KERNEL_HAS_ATOMIC64
@@ -114357,18 +121237,10 @@ index a66d179..cf1e258 100644
  #endif
  
 diff --git a/net/rds/rds.h b/net/rds/rds.h
-index c2a5eef..87a7460 100644
+index 0d41155..80cc278 100644
 --- a/net/rds/rds.h
 +++ b/net/rds/rds.h
-@@ -110,6 +110,7 @@ struct rds_connection {
-       void                    *c_transport_data;
-       atomic_t                c_state;
-+      unsigned long           c_send_gen;
-       unsigned long           c_flags;
-       unsigned long           c_reconnect_jiffies;
-       struct delayed_work     c_send_w;
-@@ -448,7 +449,7 @@ struct rds_transport {
+@@ -449,7 +449,7 @@ struct rds_transport {
        void (*sync_mr)(void *trans_private, int direction);
        void (*free_mr)(void *trans_private, int invalidate);
        void (*flush_mrs)(void);
@@ -114377,85 +121249,6 @@ index c2a5eef..87a7460 100644
  
  struct rds_sock {
        struct sock             rs_sk;
-diff --git a/net/rds/send.c b/net/rds/send.c
-index 42f65d4..49f77ef 100644
---- a/net/rds/send.c
-+++ b/net/rds/send.c
-@@ -140,8 +140,11 @@ int rds_send_xmit(struct rds_connection *conn)
-       struct scatterlist *sg;
-       int ret = 0;
-       LIST_HEAD(to_be_dropped);
-+      int batch_count;
-+      unsigned long send_gen = 0;
- restart:
-+      batch_count = 0;
-       /*
-        * sendmsg calls here after having queued its message on the send
-@@ -157,6 +160,17 @@ restart:
-       }
-       /*
-+       * we record the send generation after doing the xmit acquire.
-+       * if someone else manages to jump in and do some work, we'll use
-+       * this to avoid a goto restart farther down.
-+       *
-+       * The acquire_in_xmit() check above ensures that only one
-+       * caller can increment c_send_gen at any time.
-+       */
-+      conn->c_send_gen++;
-+      send_gen = conn->c_send_gen;
-+
-+      /*
-        * rds_conn_shutdown() sets the conn state and then tests RDS_IN_XMIT,
-        * we do the opposite to avoid races.
-        */
-@@ -202,6 +216,16 @@ restart:
-               if (!rm) {
-                       unsigned int len;
-+                      batch_count++;
-+
-+                      /* we want to process as big a batch as we can, but
-+                       * we also want to avoid softlockups.  If we've been
-+                       * through a lot of messages, lets back off and see
-+                       * if anyone else jumps in
-+                       */
-+                      if (batch_count >= 1024)
-+                              goto over_batch;
-+
-                       spin_lock_irqsave(&conn->c_lock, flags);
-                       if (!list_empty(&conn->c_send_queue)) {
-@@ -357,9 +381,9 @@ restart:
-               }
-       }
-+over_batch:
-       if (conn->c_trans->xmit_complete)
-               conn->c_trans->xmit_complete(conn);
--
-       release_in_xmit(conn);
-       /* Nuke any messages we decided not to retransmit. */
-@@ -380,10 +404,15 @@ restart:
-        * If the transport cannot continue (i.e ret != 0), then it must
-        * call us when more room is available, such as from the tx
-        * completion handler.
-+       *
-+       * We have an extra generation check here so that if someone manages
-+       * to jump in after our release_in_xmit, we'll see that they have done
-+       * some work and we will skip our goto
-        */
-       if (ret == 0) {
-               smp_mb();
--              if (!list_empty(&conn->c_send_queue)) {
-+              if (!list_empty(&conn->c_send_queue) &&
-+                  send_gen == conn->c_send_gen) {
-                       rds_stats_inc(s_send_lock_queue_raced);
-                       goto restart;
-               }
 diff --git a/net/rds/tcp.c b/net/rds/tcp.c
 index edac9ef..16bcb98 100644
 --- a/net/rds/tcp.c
@@ -114483,7 +121276,7 @@ index 53b17ca..45463e7 100644
        set_fs(oldfs);
  }
 diff --git a/net/rxrpc/af_rxrpc.c b/net/rxrpc/af_rxrpc.c
-index 7b16704..9628ec6 100644
+index 0095b9a..e95c49b 100644
 --- a/net/rxrpc/af_rxrpc.c
 +++ b/net/rxrpc/af_rxrpc.c
 @@ -40,7 +40,7 @@ static const struct proto_ops rxrpc_rpc_ops;
@@ -114602,7 +121395,7 @@ index e7ed43a..6afa140 100644
  
        ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
 diff --git a/net/rxrpc/ar-input.c b/net/rxrpc/ar-input.c
-index 481f89f..ceeaf8d 100644
+index 4505a69..fe73096 100644
 --- a/net/rxrpc/ar-input.c
 +++ b/net/rxrpc/ar-input.c
 @@ -331,9 +331,9 @@ void rxrpc_fast_process_packet(struct rxrpc_call *call, struct sk_buff *skb)
@@ -114618,10 +121411,10 @@ index 481f89f..ceeaf8d 100644
  
        /* request ACK generation for any ACK or DATA packet that requests
 diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
-index ba9fd36..9bbfe01 100644
+index aef1bd2..97736c3 100644
 --- a/net/rxrpc/ar-internal.h
 +++ b/net/rxrpc/ar-internal.h
-@@ -272,8 +272,8 @@ struct rxrpc_connection {
+@@ -274,8 +274,8 @@ struct rxrpc_connection {
        int                     error;          /* error code for local abort */
        int                     debug_id;       /* debug ID for printks */
        unsigned int            call_counter;   /* call ID counter */
@@ -114632,7 +121425,7 @@ index ba9fd36..9bbfe01 100644
        u8                      avail_calls;    /* number of calls available */
        u8                      size_align;     /* data size alignment (for security) */
        u8                      header_size;    /* rxrpc + security header size */
-@@ -346,7 +346,7 @@ struct rxrpc_call {
+@@ -348,7 +348,7 @@ struct rxrpc_call {
        spinlock_t              lock;
        rwlock_t                state_lock;     /* lock for state transition */
        atomic_t                usage;
@@ -114641,7 +121434,7 @@ index ba9fd36..9bbfe01 100644
        u32                     abort_code;     /* local/remote abort code */
        enum {                                  /* current state of call */
                RXRPC_CALL_CLIENT_SEND_REQUEST, /* - client sending request phase */
-@@ -431,7 +431,7 @@ static inline void rxrpc_abort_call(struct rxrpc_call *call, u32 abort_code)
+@@ -433,7 +433,7 @@ static inline void rxrpc_abort_call(struct rxrpc_call *call, u32 abort_code)
   */
  extern atomic_t rxrpc_n_skbs;
  extern __be32 rxrpc_epoch;
@@ -114651,10 +121444,10 @@ index ba9fd36..9bbfe01 100644
  
  /*
 diff --git a/net/rxrpc/ar-local.c b/net/rxrpc/ar-local.c
-index 87f7135..74d3703 100644
+index ca904ed..16082d5 100644
 --- a/net/rxrpc/ar-local.c
 +++ b/net/rxrpc/ar-local.c
-@@ -45,7 +45,7 @@ struct rxrpc_local *rxrpc_alloc_local(struct sockaddr_rxrpc *srx)
+@@ -53,7 +53,7 @@ struct rxrpc_local *rxrpc_alloc_local(struct sockaddr_rxrpc *srx)
                spin_lock_init(&local->lock);
                rwlock_init(&local->services_lock);
                atomic_set(&local->usage, 1);
@@ -114664,10 +121457,10 @@ index 87f7135..74d3703 100644
        }
  
 diff --git a/net/rxrpc/ar-output.c b/net/rxrpc/ar-output.c
-index 8331c95..401bf22 100644
+index c004280..ab1ed5a 100644
 --- a/net/rxrpc/ar-output.c
 +++ b/net/rxrpc/ar-output.c
-@@ -655,14 +655,14 @@ static int rxrpc_send_data(struct kiocb *iocb,
+@@ -648,14 +648,14 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
                                        memset(skb_put(skb, pad), 0, pad);
                        }
  
@@ -114747,6 +121540,101 @@ index f226709..0e735a8 100644
        _proto("Tx RESPONSE %%%u", ntohl(hdr->serial));
  
        ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len);
+diff --git a/net/sched/act_bpf.c b/net/sched/act_bpf.c
+index dc6a2d3..3b4fb96 100644
+--- a/net/sched/act_bpf.c
++++ b/net/sched/act_bpf.c
+@@ -332,6 +332,9 @@ static void tcf_bpf_cleanup(struct tc_action *act, int bind)
+               bpf_prog_put(prog->filter);
+       else
+               bpf_prog_destroy(prog->filter);
++
++      kfree(prog->bpf_ops);
++      kfree(prog->bpf_name);
+ }
+ static struct tc_action_ops act_bpf_ops __read_mostly = {
+diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c
+index 91bd9c1..c0b86f2 100644
+--- a/net/sched/cls_bpf.c
++++ b/net/sched/cls_bpf.c
+@@ -364,7 +364,7 @@ static int cls_bpf_change(struct net *net, struct sk_buff *in_skb,
+               goto errout;
+       if (oldprog) {
+-              list_replace_rcu(&prog->link, &oldprog->link);
++              list_replace_rcu(&oldprog->link, &prog->link);
+               tcf_unbind_filter(tp, &oldprog->res);
+               call_rcu(&oldprog->rcu, __cls_bpf_delete_prog);
+       } else {
+diff --git a/net/sched/cls_flow.c b/net/sched/cls_flow.c
+index a620c4e..75df923 100644
+--- a/net/sched/cls_flow.c
++++ b/net/sched/cls_flow.c
+@@ -419,6 +419,8 @@ static int flow_change(struct net *net, struct sk_buff *in_skb,
+       if (!fnew)
+               goto err2;
++      tcf_exts_init(&fnew->exts, TCA_FLOW_ACT, TCA_FLOW_POLICE);
++
+       fold = (struct flow_filter *)*arg;
+       if (fold) {
+               err = -EINVAL;
+@@ -480,7 +482,6 @@ static int flow_change(struct net *net, struct sk_buff *in_skb,
+               fnew->mask  = ~0U;
+               fnew->tp = tp;
+               get_random_bytes(&fnew->hashrnd, 4);
+-              tcf_exts_init(&fnew->exts, TCA_FLOW_ACT, TCA_FLOW_POLICE);
+       }
+       fnew->perturb_timer.function = flow_perturbation;
+@@ -520,7 +521,7 @@ static int flow_change(struct net *net, struct sk_buff *in_skb,
+       if (*arg == 0)
+               list_add_tail_rcu(&fnew->list, &head->filters);
+       else
+-              list_replace_rcu(&fnew->list, &fold->list);
++              list_replace_rcu(&fold->list, &fnew->list);
+       *arg = (unsigned long)fnew;
+diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c
+index c244c45b..4169e55 100644
+--- a/net/sched/sch_fq_codel.c
++++ b/net/sched/sch_fq_codel.c
+@@ -162,14 +162,23 @@ static unsigned int fq_codel_drop(struct Qdisc *sch)
+       skb = dequeue_head(flow);
+       len = qdisc_pkt_len(skb);
+       q->backlogs[idx] -= len;
+-      kfree_skb(skb);
+       sch->q.qlen--;
+       qdisc_qstats_drop(sch);
+       qdisc_qstats_backlog_dec(sch, skb);
++      kfree_skb(skb);
+       flow->dropped++;
+       return idx;
+ }
++static unsigned int fq_codel_qdisc_drop(struct Qdisc *sch)
++{
++      unsigned int prev_backlog;
++
++      prev_backlog = sch->qstats.backlog;
++      fq_codel_drop(sch);
++      return prev_backlog - sch->qstats.backlog;
++}
++
+ static int fq_codel_enqueue(struct sk_buff *skb, struct Qdisc *sch)
+ {
+       struct fq_codel_sched_data *q = qdisc_priv(sch);
+@@ -598,7 +607,7 @@ static struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = {
+       .enqueue        =       fq_codel_enqueue,
+       .dequeue        =       fq_codel_dequeue,
+       .peek           =       qdisc_peek_dequeued,
+-      .drop           =       fq_codel_drop,
++      .drop           =       fq_codel_qdisc_drop,
+       .init           =       fq_codel_init,
+       .reset          =       fq_codel_reset,
+       .destroy        =       fq_codel_destroy,
 diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
 index 6efca30..1259f82 100644
 --- a/net/sched/sch_generic.c
@@ -114769,6 +121657,22 @@ index 6efca30..1259f82 100644
                linkwatch_fire_event(dev);
        }
  }
+diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c
+index b877140..0f65ba4 100644
+--- a/net/sched/sch_sfq.c
++++ b/net/sched/sch_sfq.c
+@@ -329,10 +329,10 @@ drop:
+               len = qdisc_pkt_len(skb);
+               slot->backlog -= len;
+               sfq_dec(q, x);
+-              kfree_skb(skb);
+               sch->q.qlen--;
+               qdisc_qstats_drop(sch);
+               qdisc_qstats_backlog_dec(sch, skb);
++              kfree_skb(skb);
+               return len;
+       }
 diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
 index 0e4198e..f94193e 100644
 --- a/net/sctp/ipv6.c
@@ -114801,7 +121705,7 @@ index 0e4198e..f94193e 100644
  
  /* Initialize IPv6 support and register with socket layer.  */
 diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
-index 8f34b27..b105385 100644
+index 53b7acd..e7a0919 100644
 --- a/net/sctp/protocol.c
 +++ b/net/sctp/protocol.c
 @@ -836,8 +836,10 @@ int sctp_register_af(struct sctp_af *af)
@@ -114857,10 +121761,10 @@ index fef2acd..c705c4f 100644
        sctp_generate_t1_cookie_event,
        sctp_generate_t1_init_event,
 diff --git a/net/sctp/socket.c b/net/sctp/socket.c
-index aafe94b..40b016f 100644
+index 5f6c4e6..07880fe 100644
 --- a/net/sctp/socket.c
 +++ b/net/sctp/socket.c
-@@ -2205,11 +2205,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
+@@ -2200,11 +2200,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
  {
        struct sctp_association *asoc;
        struct sctp_ulpevent *event;
@@ -114875,7 +121779,7 @@ index aafe94b..40b016f 100644
  
        if (sctp_sk(sk)->subscribe.sctp_data_io_event)
                pr_warn_ratelimited(DEPRECATED "%s (pid %d) "
-@@ -4378,13 +4380,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
+@@ -4385,13 +4387,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
  static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
                                  int __user *optlen)
  {
@@ -114893,7 +121797,7 @@ index aafe94b..40b016f 100644
                return -EFAULT;
        return 0;
  }
-@@ -4402,6 +4407,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
+@@ -4409,6 +4414,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
   */
  static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen)
  {
@@ -114902,7 +121806,7 @@ index aafe94b..40b016f 100644
        /* Applicable to UDP-style socket only */
        if (sctp_style(sk, TCP))
                return -EOPNOTSUPP;
-@@ -4410,7 +4417,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
+@@ -4417,7 +4424,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
        len = sizeof(int);
        if (put_user(len, optlen))
                return -EFAULT;
@@ -114912,7 +121816,7 @@ index aafe94b..40b016f 100644
                return -EFAULT;
        return 0;
  }
-@@ -4784,12 +4792,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
+@@ -4791,12 +4799,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
   */
  static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen)
  {
@@ -114929,7 +121833,7 @@ index aafe94b..40b016f 100644
                return -EFAULT;
        return 0;
  }
-@@ -4830,6 +4841,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
+@@ -4837,6 +4848,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
                              ->addr_to_user(sp, &temp);
                if (space_left < addrlen)
                        return -ENOMEM;
@@ -114939,10 +121843,10 @@ index aafe94b..40b016f 100644
                        return -EFAULT;
                to += addrlen;
 diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c
-index 2e9ada1..40f425d 100644
+index 26d50c5..dfae665 100644
 --- a/net/sctp/sysctl.c
 +++ b/net/sctp/sysctl.c
-@@ -321,7 +321,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write,
+@@ -317,7 +317,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write,
                                loff_t *ppos)
  {
        struct net *net = current->nsproxy->net_ns;
@@ -114951,7 +121855,7 @@ index 2e9ada1..40f425d 100644
        bool changed = false;
        char *none = "none";
        char tmp[8];
-@@ -369,7 +369,7 @@ static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write,
+@@ -365,7 +365,7 @@ static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write,
        struct net *net = current->nsproxy->net_ns;
        unsigned int min = *(unsigned int *) ctl->extra1;
        unsigned int max = *(unsigned int *) ctl->extra2;
@@ -114960,7 +121864,7 @@ index 2e9ada1..40f425d 100644
        int ret, new_value;
  
        memset(&tbl, 0, sizeof(struct ctl_table));
-@@ -398,7 +398,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write,
+@@ -394,7 +394,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write,
        struct net *net = current->nsproxy->net_ns;
        unsigned int min = *(unsigned int *) ctl->extra1;
        unsigned int max = *(unsigned int *) ctl->extra2;
@@ -114969,7 +121873,7 @@ index 2e9ada1..40f425d 100644
        int ret, new_value;
  
        memset(&tbl, 0, sizeof(struct ctl_table));
-@@ -436,7 +436,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
+@@ -432,7 +432,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
                             loff_t *ppos)
  {
        struct net *net = current->nsproxy->net_ns;
@@ -114978,7 +121882,7 @@ index 2e9ada1..40f425d 100644
        int new_value, ret;
  
        memset(&tbl, 0, sizeof(struct ctl_table));
-@@ -463,7 +463,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
+@@ -459,7 +459,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
  
  int sctp_sysctl_net_register(struct net *net)
  {
@@ -114988,7 +121892,7 @@ index 2e9ada1..40f425d 100644
  
        table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
 diff --git a/net/socket.c b/net/socket.c
-index 245330c..919e2a7 100644
+index 884e329..def6df6 100644
 --- a/net/socket.c
 +++ b/net/socket.c
 @@ -89,6 +89,7 @@
@@ -115007,7 +121911,7 @@ index 245330c..919e2a7 100644
  
  #ifdef CONFIG_NET_RX_BUSY_POLL
  unsigned int sysctl_net_busy_read __read_mostly;
-@@ -162,7 +164,7 @@ static const struct file_operations socket_file_ops = {
+@@ -160,7 +162,7 @@ static const struct file_operations socket_file_ops = {
   */
  
  static DEFINE_SPINLOCK(net_family_lock);
@@ -115016,7 +121920,7 @@ index 245330c..919e2a7 100644
  
  /*
   *    Statistics counters of the socket lists
-@@ -328,7 +330,7 @@ static struct dentry *sockfs_mount(struct file_system_type *fs_type,
+@@ -326,7 +328,7 @@ static struct dentry *sockfs_mount(struct file_system_type *fs_type,
                &sockfs_dentry_operations, SOCKFS_MAGIC);
  }
  
@@ -115025,7 +121929,7 @@ index 245330c..919e2a7 100644
  
  static struct file_system_type sock_fs_type = {
        .name =         "sockfs",
-@@ -1172,6 +1174,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
+@@ -1108,6 +1110,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
                return -EAFNOSUPPORT;
        if (type < 0 || type >= SOCK_MAX)
                return -EINVAL;
@@ -115034,7 +121938,7 @@ index 245330c..919e2a7 100644
  
        /* Compatibility.
  
-@@ -1192,6 +1196,20 @@ int __sock_create(struct net *net, int family, int type, int protocol,
+@@ -1128,6 +1132,20 @@ int __sock_create(struct net *net, int family, int type, int protocol,
        if (err)
                return err;
  
@@ -115055,7 +121959,7 @@ index 245330c..919e2a7 100644
        /*
         *      Allocate the socket and allow the family to set things up. if
         *      the protocol is 0, the family is instructed to select an appropriate
-@@ -1443,6 +1461,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
+@@ -1379,6 +1397,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
        if (sock) {
                err = move_addr_to_kernel(umyaddr, addrlen, &address);
                if (err >= 0) {
@@ -115070,7 +121974,7 @@ index 245330c..919e2a7 100644
                        err = security_socket_bind(sock,
                                                   (struct sockaddr *)&address,
                                                   addrlen);
-@@ -1451,6 +1477,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
+@@ -1387,6 +1413,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
                                                      (struct sockaddr *)
                                                      &address, addrlen);
                }
@@ -115078,7 +121982,7 @@ index 245330c..919e2a7 100644
                fput_light(sock->file, fput_needed);
        }
        return err;
-@@ -1474,10 +1501,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
+@@ -1410,10 +1437,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
                if ((unsigned int)backlog > somaxconn)
                        backlog = somaxconn;
  
@@ -115099,7 +122003,7 @@ index 245330c..919e2a7 100644
                fput_light(sock->file, fput_needed);
        }
        return err;
-@@ -1521,6 +1558,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
+@@ -1457,6 +1494,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
        newsock->type = sock->type;
        newsock->ops = sock->ops;
  
@@ -115118,7 +122022,7 @@ index 245330c..919e2a7 100644
        /*
         * We don't need try_module_get here, as the listening socket (sock)
         * has the protocol module (sock->ops->owner) held.
-@@ -1566,6 +1615,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
+@@ -1502,6 +1551,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
        fd_install(newfd, newfile);
        err = newfd;
  
@@ -115127,7 +122031,7 @@ index 245330c..919e2a7 100644
  out_put:
        fput_light(sock->file, fput_needed);
  out:
-@@ -1598,6 +1649,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
+@@ -1534,6 +1585,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
                int, addrlen)
  {
        struct socket *sock;
@@ -115135,7 +122039,7 @@ index 245330c..919e2a7 100644
        struct sockaddr_storage address;
        int err, fput_needed;
  
-@@ -1608,6 +1660,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
+@@ -1544,6 +1596,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
        if (err < 0)
                goto out_put;
  
@@ -115153,7 +122057,7 @@ index 245330c..919e2a7 100644
        err =
            security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
        if (err)
-@@ -1689,6 +1752,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
+@@ -1625,6 +1688,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
   *    the protocol.
   */
  
@@ -115162,7 +122066,7 @@ index 245330c..919e2a7 100644
  SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
                unsigned int, flags, struct sockaddr __user *, addr,
                int, addr_len)
-@@ -1756,7 +1821,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
+@@ -1688,7 +1753,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
        struct socket *sock;
        struct iovec iov;
        struct msghdr msg;
@@ -115171,7 +122075,7 @@ index 245330c..919e2a7 100644
        int err, err2;
        int fput_needed;
  
-@@ -2006,7 +2071,7 @@ static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg,
+@@ -1930,7 +1995,7 @@ static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg,
                 * checking falls down on this.
                 */
                if (copy_from_user(ctl_buf,
@@ -115180,7 +122084,7 @@ index 245330c..919e2a7 100644
                                   ctl_len))
                        goto out_freectl;
                msg_sys->msg_control = ctl_buf;
-@@ -2157,7 +2222,7 @@ static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg,
+@@ -2080,7 +2145,7 @@ static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg,
        ssize_t err;
  
        /* kernel mode address */
@@ -115189,7 +122093,7 @@ index 245330c..919e2a7 100644
  
        /* user mode address pointers */
        struct sockaddr __user *uaddr;
-@@ -2803,7 +2868,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
+@@ -2725,7 +2790,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
        ifr = compat_alloc_user_space(buf_size);
        rxnfc = (void __user *)ifr + ALIGN(sizeof(struct ifreq), 8);
  
@@ -115198,7 +122102,7 @@ index 245330c..919e2a7 100644
                return -EFAULT;
  
        if (put_user(convert_in ? rxnfc : compat_ptr(data),
-@@ -2914,7 +2979,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
+@@ -2836,7 +2901,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
                old_fs = get_fs();
                set_fs(KERNEL_DS);
                err = dev_ioctl(net, cmd,
@@ -115207,7 +122111,7 @@ index 245330c..919e2a7 100644
                set_fs(old_fs);
  
                return err;
-@@ -3007,7 +3072,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
+@@ -2929,7 +2994,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
  
        old_fs = get_fs();
        set_fs(KERNEL_DS);
@@ -115216,7 +122120,7 @@ index 245330c..919e2a7 100644
        set_fs(old_fs);
  
        if (cmd == SIOCGIFMAP && !err) {
-@@ -3091,7 +3156,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
+@@ -3013,7 +3078,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
                ret |= get_user(rtdev, &(ur4->rt_dev));
                if (rtdev) {
                        ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
@@ -115225,7 +122129,7 @@ index 245330c..919e2a7 100644
                        devname[15] = 0;
                } else
                        r4.rt_dev = NULL;
-@@ -3318,8 +3383,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
+@@ -3240,8 +3305,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
        int __user *uoptlen;
        int err;
  
@@ -115236,7 +122140,7 @@ index 245330c..919e2a7 100644
  
        set_fs(KERNEL_DS);
        if (level == SOL_SOCKET)
-@@ -3339,7 +3404,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
+@@ -3261,7 +3326,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
        char __user *uoptval;
        int err;
  
@@ -115268,10 +122172,10 @@ index 1095be9..815d777 100644
        /* make a copy for the caller */
        *handle = ctxh;
 diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
-index 5199bb1..567a54c 100644
+index 2928aff..6f9efeb 100644
 --- a/net/sunrpc/cache.c
 +++ b/net/sunrpc/cache.c
-@@ -1595,7 +1595,7 @@ static int create_cache_proc_entries(struct cache_detail *cd, struct net *net)
+@@ -1597,7 +1597,7 @@ static int create_cache_proc_entries(struct cache_detail *cd, struct net *net)
        struct sunrpc_net *sn;
  
        sn = net_generic(net, sunrpc_net_id);
@@ -115296,7 +122200,7 @@ index e6ce151..ba1cf85 100644
        task->tk_action = call_reserve;
  }
 diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
-index b91fd9c..00fe5b1 100644
+index 337ca85..42feae8 100644
 --- a/net/sunrpc/sched.c
 +++ b/net/sunrpc/sched.c
 @@ -261,9 +261,9 @@ static int rpc_wait_bit_killable(struct wait_bit_key *key)
@@ -115628,8 +122532,20 @@ index ce9121e..fd1fcce 100644
        err = __tipc_nl_compat_dumpit(&dump, msg, args);
  
        kfree_skb(args);
+diff --git a/net/tipc/socket.c b/net/tipc/socket.c
+index f485600..20cc6df 100644
+--- a/net/tipc/socket.c
++++ b/net/tipc/socket.c
+@@ -2009,6 +2009,7 @@ static int tipc_accept(struct socket *sock, struct socket *new_sock, int flags)
+       res = tipc_sk_create(sock_net(sock->sk), new_sock, 0, 1);
+       if (res)
+               goto exit;
++      security_sk_clone(sock->sk, new_sock->sk);
+       new_sk = new_sock->sk;
+       new_tsock = tipc_sk(new_sk);
 diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c
-index 72c339e..a93593a 100644
+index 1c147c8..50d7957 100644
 --- a/net/tipc/subscr.c
 +++ b/net/tipc/subscr.c
 @@ -70,7 +70,7 @@ static void subscr_send_event(struct tipc_subscription *sub, u32 found_lower,
@@ -115642,10 +122558,10 @@ index 72c339e..a93593a 100644
        sub->evt.event = htohl(event, sub->swap);
        sub->evt.found_lower = htohl(found_lower, sub->swap);
 diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
-index 526b6ed..ec20275 100644
+index 0643059..4628deb 100644
 --- a/net/unix/af_unix.c
 +++ b/net/unix/af_unix.c
-@@ -791,6 +791,12 @@ static struct sock *unix_find_other(struct net *net,
+@@ -786,6 +786,12 @@ static struct sock *unix_find_other(struct net *net,
                err = -ECONNREFUSED;
                if (!S_ISSOCK(inode->i_mode))
                        goto put_fail;
@@ -115658,7 +122574,7 @@ index 526b6ed..ec20275 100644
                u = unix_find_socket_byinode(inode);
                if (!u)
                        goto put_fail;
-@@ -811,6 +817,13 @@ static struct sock *unix_find_other(struct net *net,
+@@ -806,6 +812,13 @@ static struct sock *unix_find_other(struct net *net,
                if (u) {
                        struct dentry *dentry;
                        dentry = unix_sk(u)->path.dentry;
@@ -115672,7 +122588,7 @@ index 526b6ed..ec20275 100644
                        if (dentry)
                                touch_atime(&unix_sk(u)->path);
                } else
-@@ -844,12 +857,18 @@ static int unix_mknod(const char *sun_path, umode_t mode, struct path *res)
+@@ -839,12 +852,18 @@ static int unix_mknod(const char *sun_path, umode_t mode, struct path *res)
         */
        err = security_path_mknod(&path, dentry, mode, 0);
        if (!err) {
@@ -115680,7 +122596,7 @@ index 526b6ed..ec20275 100644
 +                      err = -EACCES;
 +                      goto out;
 +              }
-               err = vfs_mknod(path.dentry->d_inode, dentry, mode, 0);
+               err = vfs_mknod(d_inode(path.dentry), dentry, mode, 0);
                if (!err) {
                        res->mnt = mntget(path.mnt);
                        res->dentry = dget(dentry);
@@ -115991,7 +122907,7 @@ index 638af06..7d9daad 100644
        }
  
 diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
-index de971b6..b843409 100644
+index 96688cd..e68a2eb 100644
 --- a/net/xfrm/xfrm_state.c
 +++ b/net/xfrm/xfrm_state.c
 @@ -166,12 +166,14 @@ int xfrm_register_type(const struct xfrm_type *type, unsigned short family)
@@ -116375,7 +123291,7 @@ index 86a4fe7..99e91f9 100755
  kallsymso=""
  kallsyms_vmlinux=""
 diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
-index e614ef6..d9d2b01 100644
+index 78691d5..56972f2 100644
 --- a/scripts/mod/file2alias.c
 +++ b/scripts/mod/file2alias.c
 @@ -142,7 +142,7 @@ static void device_id_check(const char *modname, const char *device_id,
@@ -116442,31 +123358,31 @@ index e614ef6..d9d2b01 100644
        sprintf(alias, "dmi*");
  
 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
-index d439856..10c1eac 100644
+index 91ee1b2..c9cf01a 100644
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
-@@ -921,6 +921,7 @@ enum mismatch {
-       ANY_INIT_TO_ANY_EXIT,
+@@ -942,6 +942,7 @@ enum mismatch {
        ANY_EXIT_TO_ANY_INIT,
        EXPORT_TO_INIT_EXIT,
+       EXTABLE_TO_NON_TEXT,
 +      DATA_TO_TEXT
  };
  
- struct sectioncheck {
-@@ -1007,6 +1008,12 @@ static const struct sectioncheck sectioncheck[] = {
-       .tosec   = { INIT_SECTIONS, EXIT_SECTIONS, NULL },
-       .mismatch = EXPORT_TO_INIT_EXIT,
-       .symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL },
+ /**
+@@ -1068,6 +1069,12 @@ static const struct sectioncheck sectioncheck[] = {
+       .good_tosec = {ALL_TEXT_SECTIONS , NULL},
+       .mismatch = EXTABLE_TO_NON_TEXT,
+       .handler = extable_mismatch_handler,
 +},
 +/* Do not reference code from writable data */
 +{
 +      .fromsec = { DATA_SECTIONS, NULL },
-+      .tosec   = { TEXT_SECTIONS, NULL },
++      .bad_tosec = { ALL_TEXT_SECTIONS, NULL },
 +      .mismatch = DATA_TO_TEXT
  }
  };
  
-@@ -1127,10 +1134,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
+@@ -1217,10 +1224,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
                        continue;
                if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
                        continue;
@@ -116479,9 +123395,9 @@ index d439856..10c1eac 100644
                if (d < 0)
                        d = addr - sym->st_value;
                if (d < distance) {
-@@ -1408,6 +1415,14 @@ static void report_sec_mismatch(const char *modname,
-               tosym, prl_to, prl_to, tosym);
-               free(prl_to);
+@@ -1503,6 +1510,14 @@ static void report_sec_mismatch(const char *modname,
+               fatal("There's a special handler for this mismatch type, "
+                     "we should never get here.");
                break;
 +      case DATA_TO_TEXT:
 +#if 0
@@ -116494,7 +123410,7 @@ index d439856..10c1eac 100644
        }
        fprintf(stderr, "\n");
  }
-@@ -1659,7 +1674,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
+@@ -1892,7 +1907,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
  static void check_sec_ref(struct module *mod, const char *modname,
                          struct elf_info *elf)
  {
@@ -116503,7 +123419,7 @@ index d439856..10c1eac 100644
        Elf_Shdr *sechdrs = elf->sechdrs;
  
        /* Walk through all sections */
-@@ -1790,7 +1805,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
+@@ -2023,7 +2038,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
        va_end(ap);
  }
  
@@ -116512,7 +123428,7 @@ index d439856..10c1eac 100644
  {
        if (buf->size - buf->pos < len) {
                buf->size += len + SZ;
-@@ -2009,7 +2024,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
+@@ -2242,7 +2257,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
        if (fstat(fileno(file), &st) < 0)
                goto close_write;
  
@@ -116727,10 +123643,10 @@ index cdb491d..8d32bfc 100755
  # Find all available archs
  find_all_archs()
 diff --git a/security/Kconfig b/security/Kconfig
-index beb86b5..135675f 100644
+index bf4ec46..1fa98bf 100644
 --- a/security/Kconfig
 +++ b/security/Kconfig
-@@ -4,6 +4,980 @@
+@@ -4,6 +4,981 @@
  
  menu "Security options"
  
@@ -116767,6 +123683,7 @@ index beb86b5..135675f 100644
 +      select TTY
 +      select DEBUG_KERNEL
 +      select DEBUG_LIST
++      select MULTIUSER
 +      help
 +        If you say Y here, you will be able to configure many features
 +        that will enhance the security of your system.  It is highly
@@ -117711,7 +124628,7 @@ index beb86b5..135675f 100644
  source security/keys/Kconfig
  
  config SECURITY_DMESG_RESTRICT
-@@ -103,7 +1077,7 @@ config INTEL_TXT
+@@ -104,7 +1079,7 @@ config INTEL_TXT
  config LSM_MMAP_MIN_ADDR
        int "Low address space for LSM to protect from user allocation"
        depends on SECURITY && SECURITY_SELINUX
@@ -117721,7 +124638,7 @@ index beb86b5..135675f 100644
        help
          This is the portion of low virtual memory which should be protected
 diff --git a/security/apparmor/file.c b/security/apparmor/file.c
-index fdaa50c..2761dcb 100644
+index 913f377..6e392d5 100644
 --- a/security/apparmor/file.c
 +++ b/security/apparmor/file.c
 @@ -348,8 +348,8 @@ static inline bool xindex_is_subset(u32 link, u32 target)
@@ -117733,10 +124650,10 @@ index fdaa50c..2761dcb 100644
 +      struct path link = { .mnt = new_dir->mnt, .dentry = new_dentry };
 +      struct path target = { .mnt = new_dir->mnt, .dentry = old_dentry };
        struct path_cond cond = {
-               old_dentry->d_inode->i_uid,
-               old_dentry->d_inode->i_mode
+               d_backing_inode(old_dentry)->i_uid,
+               d_backing_inode(old_dentry)->i_mode
 diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
-index 107db88..185f3a0 100644
+index e5f1561..c351c05 100644
 --- a/security/apparmor/lsm.c
 +++ b/security/apparmor/lsm.c
 @@ -186,7 +186,7 @@ static int common_perm_dir_dentry(int op, struct path *dir,
@@ -117754,8 +124671,8 @@ index 107db88..185f3a0 100644
  {
 -      struct path path = { mnt, dentry };
 +      struct path path = { .mnt = mnt, .dentry = dentry };
-       struct path_cond cond = { dentry->d_inode->i_uid,
-                                 dentry->d_inode->i_mode
+       struct path_cond cond = { d_backing_inode(dentry)->i_uid,
+                                 d_backing_inode(dentry)->i_mode
        };
 @@ -325,8 +325,8 @@ static int apparmor_path_rename(struct path *old_dir, struct dentry *old_dentry,
  
@@ -117765,8 +124682,8 @@ index 107db88..185f3a0 100644
 -              struct path new_path = { new_dir->mnt, new_dentry };
 +              struct path old_path = { .mnt = old_dir->mnt, .dentry = old_dentry };
 +              struct path new_path = { .mnt = new_dir->mnt, .dentry = new_dentry };
-               struct path_cond cond = { old_dentry->d_inode->i_uid,
-                                         old_dentry->d_inode->i_mode
+               struct path_cond cond = { d_backing_inode(old_dentry)->i_uid,
+                                         d_backing_inode(old_dentry)->i_mode
                };
 @@ -615,7 +615,7 @@ static int apparmor_task_setrlimit(struct task_struct *task,
        return error;
@@ -117778,7 +124695,7 @@ index 107db88..185f3a0 100644
  
        .ptrace_access_check =          apparmor_ptrace_access_check,
 diff --git a/security/commoncap.c b/security/commoncap.c
-index f66713b..b69aa8e 100644
+index f2875cd..9fc1de0 100644
 --- a/security/commoncap.c
 +++ b/security/commoncap.c
 @@ -427,6 +427,32 @@ int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data
@@ -117884,32 +124801,6 @@ index 552705d..9920f4fb 100644
        key = ima_hash_key(entry->digest);
        hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
        return 0;
-diff --git a/security/keys/compat.c b/security/keys/compat.c
-index 3478965..ec7bb9e 100644
---- a/security/keys/compat.c
-+++ b/security/keys/compat.c
-@@ -44,7 +44,7 @@ static long compat_keyctl_instantiate_key_iov(
-       if (ret == 0)
-               goto no_payload_free;
--      ret = keyctl_instantiate_key_common(id, iov, ioc, ret, ringid);
-+      ret = keyctl_instantiate_key_common(id, (const struct iovec __force_user *)iov, ioc, ret, ringid);
- err:
-       if (iov != iovstack)
-               kfree(iov);
-diff --git a/security/keys/internal.h b/security/keys/internal.h
-index 200e378..cdc74b5 100644
---- a/security/keys/internal.h
-+++ b/security/keys/internal.h
-@@ -244,7 +244,7 @@ extern long keyctl_instantiate_key_iov(key_serial_t,
- extern long keyctl_invalidate_key(key_serial_t);
- extern long keyctl_instantiate_key_common(key_serial_t,
--                                        const struct iovec *,
-+                                        const struct iovec __user *,
-                                         unsigned, size_t, key_serial_t);
- #ifdef CONFIG_PERSISTENT_KEYRINGS
- extern long keyctl_get_persistent(uid_t, key_serial_t);
 diff --git a/security/keys/key.c b/security/keys/key.c
 index aee2ec5..c276071 100644
 --- a/security/keys/key.c
@@ -117967,46 +124858,6 @@ index aee2ec5..c276071 100644
  
        /* record the root user tracking */
        rb_link_node(&root_key_user.node,
-diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
-index 4743d71..170a185 100644
---- a/security/keys/keyctl.c
-+++ b/security/keys/keyctl.c
-@@ -1000,7 +1000,7 @@ static int keyctl_change_reqkey_auth(struct key *key)
- /*
-  * Copy the iovec data from userspace
-  */
--static long copy_from_user_iovec(void *buffer, const struct iovec *iov,
-+static long copy_from_user_iovec(void *buffer, const struct iovec __user *iov,
-                                unsigned ioc)
- {
-       for (; ioc > 0; ioc--) {
-@@ -1022,7 +1022,7 @@ static long copy_from_user_iovec(void *buffer, const struct iovec *iov,
-  * If successful, 0 will be returned.
-  */
- long keyctl_instantiate_key_common(key_serial_t id,
--                                 const struct iovec *payload_iov,
-+                                 const struct iovec __user *payload_iov,
-                                  unsigned ioc,
-                                  size_t plen,
-                                  key_serial_t ringid)
-@@ -1117,7 +1117,7 @@ long keyctl_instantiate_key(key_serial_t id,
-                       [0].iov_len  = plen
-               };
--              return keyctl_instantiate_key_common(id, iov, 1, plen, ringid);
-+              return keyctl_instantiate_key_common(id, (const struct iovec __force_user *)iov, 1, plen, ringid);
-       }
-       return keyctl_instantiate_key_common(id, NULL, 0, 0, ringid);
-@@ -1150,7 +1150,7 @@ long keyctl_instantiate_key_iov(key_serial_t id,
-       if (ret == 0)
-               goto no_payload_free;
--      ret = keyctl_instantiate_key_common(id, iov, ioc, ret, ringid);
-+      ret = keyctl_instantiate_key_common(id, (const struct iovec __force_user *)iov, ioc, ret, ringid);
- err:
-       if (iov != iovstack)
-               kfree(iov);
 diff --git a/security/min_addr.c b/security/min_addr.c
 index f728728..6457a0c 100644
 --- a/security/min_addr.c
@@ -118028,7 +124879,7 @@ index f728728..6457a0c 100644
  
  /*
 diff --git a/security/security.c b/security/security.c
-index e81d5bb..b9c5111 100644
+index 8e9b1f4..cda8e4c 100644
 --- a/security/security.c
 +++ b/security/security.c
 @@ -33,8 +33,8 @@
@@ -118055,7 +124906,7 @@ index e81d5bb..b9c5111 100644
  static int __init choose_lsm(char *str)
  {
 diff --git a/security/selinux/avc.c b/security/selinux/avc.c
-index afcc0ae..71f0525 100644
+index 3c17dda..482b12c 100644
 --- a/security/selinux/avc.c
 +++ b/security/selinux/avc.c
 @@ -59,7 +59,7 @@ struct avc_node {
@@ -118086,10 +124937,20 @@ index afcc0ae..71f0525 100644
                lock = &avc_cache.slots_lock[hvalue];
  
 diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
-index 4d1a541..4d87c9b 100644
+index 212070e..87aa172 100644
 --- a/security/selinux/hooks.c
 +++ b/security/selinux/hooks.c
-@@ -5862,7 +5862,8 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
+@@ -3288,7 +3288,8 @@ static int file_map_prot_check(struct file *file, unsigned long prot, int shared
+       int rc = 0;
+       if (default_noexec &&
+-          (prot & PROT_EXEC) && (!file || (!shared && (prot & PROT_WRITE)))) {
++          (prot & PROT_EXEC) && (!file || IS_PRIVATE(file_inode(file)) ||
++          (!shared && (prot & PROT_WRITE)))) {
+               /*
+                * We are making executable an anonymous mapping or a
+                * private file mapping that will also be writable.
+@@ -5841,7 +5842,8 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
  
  #endif
  
@@ -118099,7 +124960,7 @@ index 4d1a541..4d87c9b 100644
        .name =                         "selinux",
  
        .binder_set_context_mgr =       selinux_binder_set_context_mgr,
-@@ -6208,6 +6209,9 @@ static void selinux_nf_ip_exit(void)
+@@ -6186,6 +6188,9 @@ static void selinux_nf_ip_exit(void)
  #ifdef CONFIG_SECURITY_SELINUX_DISABLE
  static int selinux_disabled;
  
@@ -118109,7 +124970,7 @@ index 4d1a541..4d87c9b 100644
  int selinux_disable(void)
  {
        if (ss_initialized) {
-@@ -6225,7 +6229,9 @@ int selinux_disable(void)
+@@ -6203,7 +6208,9 @@ int selinux_disable(void)
        selinux_disabled = 1;
        selinux_enabled = 0;
  
@@ -118134,10 +124995,10 @@ index 1450f85..a91e0bc 100644
        }
        rtnl_unlock();
 diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
-index c934311..ac64d68 100644
+index b644757..3763b10 100644
 --- a/security/smack/smack_lsm.c
 +++ b/security/smack/smack_lsm.c
-@@ -4187,7 +4187,7 @@ static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
+@@ -4266,7 +4266,7 @@ static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
        return 0;
  }
  
@@ -118147,7 +125008,7 @@ index c934311..ac64d68 100644
  
        .ptrace_access_check =          smack_ptrace_access_check,
 diff --git a/security/tomoyo/file.c b/security/tomoyo/file.c
-index c151a18..14ba19a 100644
+index 2367b10..a0c3c51 100644
 --- a/security/tomoyo/file.c
 +++ b/security/tomoyo/file.c
 @@ -692,7 +692,7 @@ int tomoyo_path_number_perm(const u8 type, struct path *path,
@@ -118168,7 +125029,7 @@ index c151a18..14ba19a 100644
        };
        int idx;
  
-@@ -786,7 +786,7 @@ int tomoyo_path_perm(const u8 operation, struct path *path, const char *target)
+@@ -786,7 +786,7 @@ int tomoyo_path_perm(const u8 operation, const struct path *path, const char *ta
  {
        struct tomoyo_request_info r;
        struct tomoyo_obj_info obj = {
@@ -118213,19 +125074,10 @@ index 390c646..f2f8db3 100644
                if (!fstype) {
                        error = -ENODEV;
 diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c
-index f0b756e..8aa497b 100644
+index 57c88d5..0c6fcf3 100644
 --- a/security/tomoyo/tomoyo.c
 +++ b/security/tomoyo/tomoyo.c
-@@ -146,7 +146,7 @@ static int tomoyo_bprm_check_security(struct linux_binprm *bprm)
-  */
- static int tomoyo_inode_getattr(struct vfsmount *mnt, struct dentry *dentry)
- {
--      struct path path = { mnt, dentry };
-+      struct path path = { .mnt = mnt, .dentry = dentry };
-       return tomoyo_path_perm(TOMOYO_TYPE_GETATTR, &path, NULL);
- }
-@@ -172,7 +172,7 @@ static int tomoyo_path_truncate(struct path *path)
+@@ -171,7 +171,7 @@ static int tomoyo_path_truncate(struct path *path)
   */
  static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
  {
@@ -118234,7 +125086,7 @@ index f0b756e..8aa497b 100644
        return tomoyo_path_perm(TOMOYO_TYPE_UNLINK, &path, NULL);
  }
  
-@@ -188,7 +188,7 @@ static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
+@@ -187,7 +187,7 @@ static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
  static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
                             umode_t mode)
  {
@@ -118243,7 +125095,7 @@ index f0b756e..8aa497b 100644
        return tomoyo_path_number_perm(TOMOYO_TYPE_MKDIR, &path,
                                       mode & S_IALLUGO);
  }
-@@ -203,7 +203,7 @@ static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
+@@ -202,7 +202,7 @@ static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
   */
  static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
  {
@@ -118252,7 +125104,7 @@ index f0b756e..8aa497b 100644
        return tomoyo_path_perm(TOMOYO_TYPE_RMDIR, &path, NULL);
  }
  
-@@ -219,7 +219,7 @@ static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
+@@ -218,7 +218,7 @@ static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
  static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
                               const char *old_name)
  {
@@ -118261,7 +125113,7 @@ index f0b756e..8aa497b 100644
        return tomoyo_path_perm(TOMOYO_TYPE_SYMLINK, &path, old_name);
  }
  
-@@ -236,7 +236,7 @@ static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
+@@ -235,7 +235,7 @@ static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
  static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
                             umode_t mode, unsigned int dev)
  {
@@ -118270,7 +125122,7 @@ index f0b756e..8aa497b 100644
        int type = TOMOYO_TYPE_CREATE;
        const unsigned int perm = mode & S_IALLUGO;
  
-@@ -275,8 +275,8 @@ static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
+@@ -274,8 +274,8 @@ static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
  static int tomoyo_path_link(struct dentry *old_dentry, struct path *new_dir,
                            struct dentry *new_dentry)
  {
@@ -118281,7 +125133,7 @@ index f0b756e..8aa497b 100644
        return tomoyo_path2_perm(TOMOYO_TYPE_LINK, &path1, &path2);
  }
  
-@@ -295,8 +295,8 @@ static int tomoyo_path_rename(struct path *old_parent,
+@@ -294,8 +294,8 @@ static int tomoyo_path_rename(struct path *old_parent,
                              struct path *new_parent,
                              struct dentry *new_dentry)
  {
@@ -118292,7 +125144,7 @@ index f0b756e..8aa497b 100644
        return tomoyo_path2_perm(TOMOYO_TYPE_RENAME, &path1, &path2);
  }
  
-@@ -424,7 +424,7 @@ static int tomoyo_sb_mount(const char *dev_name, struct path *path,
+@@ -423,7 +423,7 @@ static int tomoyo_sb_mount(const char *dev_name, struct path *path,
   */
  static int tomoyo_sb_umount(struct vfsmount *mnt, int flags)
  {
@@ -118301,7 +125153,7 @@ index f0b756e..8aa497b 100644
        return tomoyo_path_perm(TOMOYO_TYPE_UMOUNT, &path, NULL);
  }
  
-@@ -503,7 +503,7 @@ static int tomoyo_socket_sendmsg(struct socket *sock, struct msghdr *msg,
+@@ -502,7 +502,7 @@ static int tomoyo_socket_sendmsg(struct socket *sock, struct msghdr *msg,
   * tomoyo_security_ops is a "struct security_operations" which is used for
   * registering TOMOYO.
   */
@@ -118311,7 +125163,7 @@ index f0b756e..8aa497b 100644
        .cred_alloc_blank    = tomoyo_cred_alloc_blank,
        .cred_prepare        = tomoyo_cred_prepare,
 diff --git a/security/yama/Kconfig b/security/yama/Kconfig
-index 20ef514..4182bed 100644
+index 3123e1d..951f48d 100644
 --- a/security/yama/Kconfig
 +++ b/security/yama/Kconfig
 @@ -1,6 +1,6 @@
@@ -118319,11 +125171,11 @@ index 20ef514..4182bed 100644
        bool "Yama support"
 -      depends on SECURITY
 +      depends on SECURITY && !GRKERNSEC
-       select SECURITYFS
-       select SECURITY_PATH
        default n
+       help
+         This selects Yama, which extends DAC support with additional
 diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c
-index 13c88fbc..f8c115e 100644
+index 24aae2a..81c4548 100644
 --- a/security/yama/yama_lsm.c
 +++ b/security/yama/yama_lsm.c
 @@ -365,7 +365,7 @@ int yama_ptrace_traceme(struct task_struct *parent)
@@ -118335,43 +125187,15 @@ index 13c88fbc..f8c115e 100644
        .name =                 "yama",
  
        .ptrace_access_check =  yama_ptrace_access_check,
-@@ -376,28 +376,24 @@ static struct security_operations yama_ops = {
- #endif
- #ifdef CONFIG_SYSCTL
-+static int zero __read_only;
-+static int max_scope __read_only = YAMA_SCOPE_NO_ATTACH;
-+
+@@ -379,7 +379,7 @@ static struct security_operations yama_ops = {
  static int yama_dointvec_minmax(struct ctl_table *table, int write,
                                void __user *buffer, size_t *lenp, loff_t *ppos)
  {
--      int rc;
-+      ctl_table_no_const yama_table;
+-      struct ctl_table table_copy;
++      ctl_table_no_const table_copy;
  
        if (write && !capable(CAP_SYS_PTRACE))
                return -EPERM;
--      rc = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
--      if (rc)
--              return rc;
--
-+      yama_table = *table;
-       /* Lock the max value if it ever gets set. */
--      if (write && *(int *)table->data == *(int *)table->extra2)
--              table->extra1 = table->extra2;
--
--      return rc;
-+      if (ptrace_scope == max_scope)
-+              yama_table.extra1 = &max_scope;
-+      return proc_dointvec_minmax(&yama_table, write, buffer, lenp, ppos);
- }
--static int zero;
--static int max_scope = YAMA_SCOPE_NO_ATTACH;
--
- struct ctl_path yama_sysctl_path[] = {
-       { .procname = "kernel", },
-       { .procname = "yama", },
 diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c
 index 23c371e..da7c25e 100644
 --- a/sound/aoa/codecs/onyx.c
@@ -118417,10 +125241,10 @@ index ffd2025..df062c9 100644
  /* PCM3052 register definitions */
  
 diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
-index 80423a4c..270c3d0 100644
+index 58550cc..4687a93 100644
 --- a/sound/core/oss/pcm_oss.c
 +++ b/sound/core/oss/pcm_oss.c
-@@ -1190,10 +1190,10 @@ snd_pcm_sframes_t snd_pcm_oss_write3(struct snd_pcm_substream *substream, const
+@@ -1189,10 +1189,10 @@ snd_pcm_sframes_t snd_pcm_oss_write3(struct snd_pcm_substream *substream, const
                if (in_kernel) {
                        mm_segment_t fs;
                        fs = snd_enter_user();
@@ -118433,7 +125257,7 @@ index 80423a4c..270c3d0 100644
                }
                if (ret != -EPIPE && ret != -ESTRPIPE)
                        break;
-@@ -1233,10 +1233,10 @@ snd_pcm_sframes_t snd_pcm_oss_read3(struct snd_pcm_substream *substream, char *p
+@@ -1232,10 +1232,10 @@ snd_pcm_sframes_t snd_pcm_oss_read3(struct snd_pcm_substream *substream, char *p
                if (in_kernel) {
                        mm_segment_t fs;
                        fs = snd_enter_user();
@@ -118446,7 +125270,7 @@ index 80423a4c..270c3d0 100644
                }
                if (ret == -EPIPE) {
                        if (runtime->status->state == SNDRV_PCM_STATE_DRAINING) {
-@@ -1332,7 +1332,7 @@ static ssize_t snd_pcm_oss_write2(struct snd_pcm_substream *substream, const cha
+@@ -1331,7 +1331,7 @@ static ssize_t snd_pcm_oss_write2(struct snd_pcm_substream *substream, const cha
                struct snd_pcm_plugin_channel *channels;
                size_t oss_frame_bytes = (runtime->oss.plugin_first->src_width * runtime->oss.plugin_first->src_format.channels) / 8;
                if (!in_kernel) {
@@ -118455,7 +125279,7 @@ index 80423a4c..270c3d0 100644
                                return -EFAULT;
                        buf = runtime->oss.buffer;
                }
-@@ -1402,7 +1402,7 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
+@@ -1401,7 +1401,7 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
                        }
                } else {
                        tmp = snd_pcm_oss_write2(substream,
@@ -118464,7 +125288,7 @@ index 80423a4c..270c3d0 100644
                                                 runtime->oss.period_bytes, 0);
                        if (tmp <= 0)
                                goto err;
-@@ -1428,7 +1428,7 @@ static ssize_t snd_pcm_oss_read2(struct snd_pcm_substream *substream, char *buf,
+@@ -1427,7 +1427,7 @@ static ssize_t snd_pcm_oss_read2(struct snd_pcm_substream *substream, char *buf,
        struct snd_pcm_runtime *runtime = substream->runtime;
        snd_pcm_sframes_t frames, frames1;
  #ifdef CONFIG_SND_PCM_OSS_PLUGINS
@@ -118473,7 +125297,7 @@ index 80423a4c..270c3d0 100644
        if (runtime->oss.plugin_first) {
                struct snd_pcm_plugin_channel *channels;
                size_t oss_frame_bytes = (runtime->oss.plugin_last->dst_width * runtime->oss.plugin_last->dst_format.channels) / 8;
-@@ -1490,7 +1490,7 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
+@@ -1489,7 +1489,7 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
                        xfer += tmp;
                        runtime->oss.buffer_used -= tmp;
                } else {
@@ -118482,7 +125306,7 @@ index 80423a4c..270c3d0 100644
                                                runtime->oss.period_bytes, 0);
                        if (tmp <= 0)
                                goto err;
-@@ -1659,7 +1659,7 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
+@@ -1658,7 +1658,7 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
                                                                   size1);
                                        size1 /= runtime->channels; /* frames */
                                        fs = snd_enter_user();
@@ -118492,7 +125316,7 @@ index 80423a4c..270c3d0 100644
                                }
                        } else if (runtime->access == SNDRV_PCM_ACCESS_RW_NONINTERLEAVED) {
 diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c
-index 2d957ba..fda022c 100644
+index b48b434..e2ba787 100644
 --- a/sound/core/pcm_compat.c
 +++ b/sound/core/pcm_compat.c
 @@ -31,7 +31,7 @@ static int snd_pcm_ioctl_delay_compat(struct snd_pcm_substream *substream,
@@ -118505,10 +125329,10 @@ index 2d957ba..fda022c 100644
        if (err < 0)
                return err;
 diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
-index 279e24f..24aafe5 100644
+index d126c03..5d84d1cf 100644
 --- a/sound/core/pcm_native.c
 +++ b/sound/core/pcm_native.c
-@@ -2969,11 +2969,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
+@@ -3004,11 +3004,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
        switch (substream->stream) {
        case SNDRV_PCM_STREAM_PLAYBACK:
                result = snd_pcm_playback_ioctl1(NULL, substream, cmd,
@@ -118522,78 +125346,8 @@ index 279e24f..24aafe5 100644
                break;
        default:
                result = -EINVAL;
-diff --git a/sound/core/seq/oss/seq_oss.c b/sound/core/seq/oss/seq_oss.c
-index 16d4267..fe8b49b 100644
---- a/sound/core/seq/oss/seq_oss.c
-+++ b/sound/core/seq/oss/seq_oss.c
-@@ -69,8 +69,8 @@ static int __init alsa_seq_oss_init(void)
- {
-       int rc;
-       static struct snd_seq_dev_ops ops = {
--              snd_seq_oss_synth_register,
--              snd_seq_oss_synth_unregister,
-+              .init_device = snd_seq_oss_synth_register,
-+              .free_device = snd_seq_oss_synth_unregister,
-       };
-       snd_seq_autoload_lock();
-diff --git a/sound/core/seq/seq_device.c b/sound/core/seq/seq_device.c
-index 0631bda..d0dcd49 100644
---- a/sound/core/seq/seq_device.c
-+++ b/sound/core/seq/seq_device.c
-@@ -65,7 +65,7 @@ struct ops_list {
-       int argsize;            /* argument size */
-       /* operators */
--      struct snd_seq_dev_ops ops;
-+      struct snd_seq_dev_ops *ops;
-       /* registered devices */
-       struct list_head dev_list;      /* list of devices */
-@@ -371,7 +371,7 @@ int snd_seq_device_register_driver(char *id, struct snd_seq_dev_ops *entry,
-       mutex_lock(&ops->reg_mutex);
-       /* copy driver operators */
--      ops->ops = *entry;
-+      ops->ops = entry;
-       ops->driver |= DRIVER_LOADED;
-       ops->argsize = argsize;
-@@ -500,7 +500,7 @@ static int init_device(struct snd_seq_device *dev, struct ops_list *ops)
-                          dev->name, ops->id, ops->argsize, dev->argsize);
-               return -EINVAL;
-       }
--      if (ops->ops.init_device(dev) >= 0) {
-+      if (ops->ops->init_device(dev) >= 0) {
-               dev->status = SNDRV_SEQ_DEVICE_REGISTERED;
-               ops->num_init_devices++;
-       } else {
-@@ -527,7 +527,7 @@ static int free_device(struct snd_seq_device *dev, struct ops_list *ops)
-                          dev->name, ops->id, ops->argsize, dev->argsize);
-               return -EINVAL;
-       }
--      if ((result = ops->ops.free_device(dev)) >= 0 || result == -ENXIO) {
-+      if ((result = ops->ops->free_device(dev)) >= 0 || result == -ENXIO) {
-               dev->status = SNDRV_SEQ_DEVICE_FREE;
-               dev->driver_data = NULL;
-               ops->num_init_devices--;
-diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c
-index 68fec77..97fb643 100644
---- a/sound/core/seq/seq_midi.c
-+++ b/sound/core/seq/seq_midi.c
-@@ -461,8 +461,8 @@ snd_seq_midisynth_unregister_port(struct snd_seq_device *dev)
- static int __init alsa_seq_midi_init(void)
- {
-       static struct snd_seq_dev_ops ops = {
--              snd_seq_midisynth_register_port,
--              snd_seq_midisynth_unregister_port,
-+              .init_device = snd_seq_midisynth_register_port,
-+              .free_device = snd_seq_midisynth_unregister_port,
-       };
-       memset(&synths, 0, sizeof(synths));
-       snd_seq_autoload_lock();
 diff --git a/sound/core/sound.c b/sound/core/sound.c
-index 185cec0..a95a1a9 100644
+index 5fc93d0..67d8037 100644
 --- a/sound/core/sound.c
 +++ b/sound/core/sound.c
 @@ -86,7 +86,7 @@ static void snd_request_other(int minor)
@@ -118665,21 +125419,6 @@ index 2a008a9..a1efb3f 100644
  
        return 0;
  }
-diff --git a/sound/drivers/opl3/opl3_seq.c b/sound/drivers/opl3/opl3_seq.c
-index a9f618e..c5a7208 100644
---- a/sound/drivers/opl3/opl3_seq.c
-+++ b/sound/drivers/opl3/opl3_seq.c
-@@ -279,8 +279,8 @@ static int __init alsa_opl3_seq_init(void)
- {
-       static struct snd_seq_dev_ops ops =
-       {
--              snd_opl3_seq_new_device,
--              snd_opl3_seq_delete_device
-+              .init_device = snd_opl3_seq_new_device,
-+              .free_device = snd_opl3_seq_delete_device
-       };
-       return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_OPL3, &ops,
 diff --git a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
 index 3b0ee42..8423ad6 100644
 --- a/sound/drivers/opl4/opl4_lib.c
@@ -118693,21 +125432,6 @@ index 3b0ee42..8423ad6 100644
  {
        int timeout = 10;
        while ((inb(opl4->fm_port) & OPL4_STATUS_BUSY) && --timeout > 0)
-diff --git a/sound/drivers/opl4/opl4_seq.c b/sound/drivers/opl4/opl4_seq.c
-index 9919769..d7de36c 100644
---- a/sound/drivers/opl4/opl4_seq.c
-+++ b/sound/drivers/opl4/opl4_seq.c
-@@ -198,8 +198,8 @@ static int snd_opl4_seq_delete_device(struct snd_seq_device *dev)
- static int __init alsa_opl4_synth_init(void)
- {
-       static struct snd_seq_dev_ops ops = {
--              snd_opl4_seq_new_device,
--              snd_opl4_seq_delete_device
-+              .init_device = snd_opl4_seq_new_device,
-+              .free_device = snd_opl4_seq_delete_device
-       };
-       return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_OPL4, &ops,
 diff --git a/sound/drivers/portman2x4.c b/sound/drivers/portman2x4.c
 index 464385a..46ab3f6 100644
 --- a/sound/drivers/portman2x4.c
@@ -118730,7 +125454,7 @@ index 464385a..46ab3f6 100644
        struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
  };
 diff --git a/sound/firewire/amdtp.c b/sound/firewire/amdtp.c
-index 5cc356d..d65e68ff 100644
+index e061355..baed278 100644
 --- a/sound/firewire/amdtp.c
 +++ b/sound/firewire/amdtp.c
 @@ -573,7 +573,7 @@ static void update_pcm_pointers(struct amdtp_stream *s,
@@ -118850,21 +125574,6 @@ index 2dba848..c682aef 100644
  
        wait_event(scs->idle_wait, scs->output_idle);
  
-diff --git a/sound/isa/sb/emu8000_synth.c b/sound/isa/sb/emu8000_synth.c
-index 72332df..82ec6a2 100644
---- a/sound/isa/sb/emu8000_synth.c
-+++ b/sound/isa/sb/emu8000_synth.c
-@@ -118,8 +118,8 @@ static int __init alsa_emu8000_init(void)
- {
-       
-       static struct snd_seq_dev_ops ops = {
--              snd_emu8000_new_device,
--              snd_emu8000_delete_device,
-+              .init_device = snd_emu8000_new_device,
-+              .free_device = snd_emu8000_delete_device,
-       };
-       return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_EMU8000, &ops,
-                                             sizeof(struct snd_emu8000*));
 diff --git a/sound/oss/sb_audio.c b/sound/oss/sb_audio.c
 index 048439a..3be9f6f 100644
 --- a/sound/oss/sb_audio.c
@@ -118916,26 +125625,11 @@ index 213a416..aeab5c9 100644
  
                  list_add(&s->list, &cs4297a_devs);
  
-diff --git a/sound/pci/emu10k1/emu10k1_synth.c b/sound/pci/emu10k1/emu10k1_synth.c
-index 4c41c90..37f3631 100644
---- a/sound/pci/emu10k1/emu10k1_synth.c
-+++ b/sound/pci/emu10k1/emu10k1_synth.c
-@@ -108,8 +108,8 @@ static int __init alsa_emu10k1_synth_init(void)
- {
-       
-       static struct snd_seq_dev_ops ops = {
--              snd_emu10k1_synth_new_device,
--              snd_emu10k1_synth_delete_device,
-+              .init_device = snd_emu10k1_synth_new_device,
-+              .free_device = snd_emu10k1_synth_delete_device,
-       };
-       return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, &ops,
-                                             sizeof(struct snd_emu10k1_synth_arg));
 diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
-index a63a863..fcf3087 100644
+index 5645481..63e53a2 100644
 --- a/sound/pci/hda/hda_codec.c
 +++ b/sound/pci/hda/hda_codec.c
-@@ -2865,7 +2865,7 @@ static int get_kctl_0dB_offset(struct hda_codec *codec,
+@@ -1946,7 +1946,7 @@ static int get_kctl_0dB_offset(struct hda_codec *codec,
                /* FIXME: set_fs() hack for obtaining user-space TLV data */
                mm_segment_t fs = get_fs();
                set_fs(get_ds());
@@ -119651,10 +126345,10 @@ index 0000000..0c96d8a
 +}
 diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c
 new file mode 100644
-index 0000000..da184c5
+index 0000000..c5de280
 --- /dev/null
 +++ b/tools/gcc/constify_plugin.c
-@@ -0,0 +1,564 @@
+@@ -0,0 +1,568 @@
 +/*
 + * Copyright 2011 by Emese Revfy <re.emese@gmail.com>
 + * Copyright 2011-2015 by PaX Team <pageexec@freemail.hu>
@@ -120096,7 +126790,7 @@ index 0000000..da184c5
 +              .optinfo_flags          = OPTGROUP_NONE,
 +#endif
 +#if BUILDING_GCC_VERSION >= 5000
-+#elif BUILDING_GCC_VERSION >= 4009
++#elif BUILDING_GCC_VERSION == 4009
 +              .has_gate               = false,
 +              .has_execute            = true,
 +#else
@@ -120121,7 +126815,11 @@ index 0000000..da184c5
 +class check_local_variables_pass : public gimple_opt_pass {
 +public:
 +      check_local_variables_pass() : gimple_opt_pass(check_local_variables_pass_data, g) {}
++#if BUILDING_GCC_VERSION >= 5000
++      virtual unsigned int execute(function *) { return check_local_variables(); }
++#else
 +      unsigned int execute() { return check_local_variables(); }
++#endif
 +};
 +}
 +
@@ -120221,10 +126919,10 @@ index 0000000..da184c5
 +}
 diff --git a/tools/gcc/gcc-common.h b/tools/gcc/gcc-common.h
 new file mode 100644
-index 0000000..77f8462
+index 0000000..70924d4
 --- /dev/null
 +++ b/tools/gcc/gcc-common.h
-@@ -0,0 +1,689 @@
+@@ -0,0 +1,787 @@
 +#ifndef GCC_COMMON_H_INCLUDED
 +#define GCC_COMMON_H_INCLUDED
 +
@@ -120303,6 +127001,8 @@ index 0000000..77f8462
 +#include "tree-flow.h"
 +#else
 +#include "tree-cfgcleanup.h"
++#include "tree-ssa-operands.h"
++#include "tree-into-ssa.h"
 +#endif
 +
 +#if BUILDING_GCC_VERSION >= 4008
@@ -120385,7 +127085,7 @@ index 0000000..77f8462
 +#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE)
 +
 +#if BUILDING_GCC_VERSION == 4005
-+#define FOR_EACH_LOCAL_DECL(FUN, I, D) for (tree vars = (FUN)->local_decls; vars && (D = TREE_VALUE(vars)); vars = TREE_CHAIN(vars), I)
++#define FOR_EACH_LOCAL_DECL(FUN, I, D) for (tree vars = (FUN)->local_decls, (I) = 0; vars && ((D) = TREE_VALUE(vars)); vars = TREE_CHAIN(vars), (I)++)
 +#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
 +#define FOR_EACH_VEC_ELT(T, V, I, P) for (I = 0; VEC_iterate(T, (V), (I), (P)); ++(I))
 +#define TODO_rebuild_cgraph_edges 0
@@ -120625,6 +127325,7 @@ index 0000000..77f8462
 +}
 +
 +#define ipa_remove_stmt_references(cnode, stmt)
++
 +typedef union gimple_statement_d gasm;
 +typedef union gimple_statement_d gassign;
 +typedef union gimple_statement_d gcall;
@@ -120632,6 +127333,76 @@ index 0000000..77f8462
 +typedef union gimple_statement_d gdebug;
 +typedef union gimple_statement_d gphi;
 +typedef union gimple_statement_d greturn;
++
++static inline gasm *as_a_gasm(gimple stmt)
++{
++      return stmt;
++}
++
++static inline const gasm *as_a_const_gasm(const_gimple stmt)
++{
++      return stmt;
++}
++
++static inline gassign *as_a_gassign(gimple stmt)
++{
++      return stmt;
++}
++
++static inline const gassign *as_a_const_gassign(const_gimple stmt)
++{
++      return stmt;
++}
++
++static inline gcall *as_a_gcall(gimple stmt)
++{
++      return stmt;
++}
++
++static inline const gcall *as_a_const_gcall(const_gimple stmt)
++{
++      return stmt;
++}
++
++static inline gcond *as_a_gcond(gimple stmt)
++{
++      return stmt;
++}
++
++static inline const gcond *as_a_const_gcond(const_gimple stmt)
++{
++      return stmt;
++}
++
++static inline gdebug *as_a_gdebug(gimple stmt)
++{
++      return stmt;
++}
++
++static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
++{
++      return stmt;
++}
++
++static inline gphi *as_a_gphi(gimple stmt)
++{
++      return stmt;
++}
++
++static inline const gphi *as_a_const_gphi(const_gimple stmt)
++{
++      return stmt;
++}
++
++static inline greturn *as_a_greturn(gimple stmt)
++{
++      return stmt;
++}
++
++static inline const greturn *as_a_const_greturn(const_gimple stmt)
++{
++      return stmt;
++}
 +#endif
 +
 +#if BUILDING_GCC_VERSION == 4008
@@ -120646,40 +127417,40 @@ index 0000000..77f8462
 +#define create_var_ann(var)
 +#define TODO_dump_func 0
 +#define TODO_dump_cgraph 0
-+
 +#endif
 +
 +#if BUILDING_GCC_VERSION <= 4009
 +#define TODO_verify_il 0
 +#define AVAIL_INTERPOSABLE AVAIL_OVERWRITABLE
-+#endif
 +
-+#if BUILDING_GCC_VERSION == 4009
-+typedef struct gimple_statement_base gasm;
-+typedef struct gimple_statement_base gassign;
-+typedef struct gimple_statement_base gcall;
-+typedef struct gimple_statement_base gcond;
-+typedef struct gimple_statement_base gdebug;
-+typedef struct gimple_statement_base gphi;
-+typedef struct gimple_statement_base greturn;
-+#endif
++#define section_name_prefix LTO_SECTION_NAME_PREFIX
++#define fatal_error(loc, gmsgid, ...) fatal_error((gmsgid), __VA_ARGS__)
 +
-+#if BUILDING_GCC_VERSION <= 4009
 +typedef struct rtx_def rtx_insn;
 +
 +static inline void set_decl_section_name(tree node, const char *value)
 +{
 +      DECL_SECTION_NAME(node) = build_string(strlen(value) + 1, value);
 +}
++#endif
++
++#if BUILDING_GCC_VERSION == 4009
++typedef struct gimple_statement_asm gasm;
++typedef struct gimple_statement_base gassign;
++typedef struct gimple_statement_call gcall;
++typedef struct gimple_statement_base gcond;
++typedef struct gimple_statement_base gdebug;
++typedef struct gimple_statement_phi gphi;
++typedef struct gimple_statement_base greturn;
 +
 +static inline gasm *as_a_gasm(gimple stmt)
 +{
-+      return stmt;
++      return as_a<gasm>(stmt);
 +}
 +
 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
 +{
-+      return stmt;
++      return as_a<const gasm>(stmt);
 +}
 +
 +static inline gassign *as_a_gassign(gimple stmt)
@@ -120694,24 +127465,44 @@ index 0000000..77f8462
 +
 +static inline gcall *as_a_gcall(gimple stmt)
 +{
-+      return stmt;
++      return as_a<gcall>(stmt);
 +}
 +
 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
 +{
++      return as_a<const gcall>(stmt);
++}
++
++static inline gcond *as_a_gcond(gimple stmt)
++{
 +      return stmt;
 +}
 +
-+static inline gphi *as_a_gphi(gimple stmt)
++static inline const gcond *as_a_const_gcond(const_gimple stmt)
 +{
 +      return stmt;
 +}
 +
-+static inline const gphi *as_a_const_gphi(const_gimple stmt)
++static inline gdebug *as_a_gdebug(gimple stmt)
++{
++      return stmt;
++}
++
++static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
 +{
 +      return stmt;
 +}
 +
++static inline gphi *as_a_gphi(gimple stmt)
++{
++      return as_a<gphi>(stmt);
++}
++
++static inline const gphi *as_a_const_gphi(const_gimple stmt)
++{
++      return as_a<const gphi>(stmt);
++}
++
 +static inline greturn *as_a_greturn(gimple stmt)
 +{
 +      return stmt;
@@ -120773,6 +127564,11 @@ index 0000000..77f8462
 +      varpool_node::add(decl);
 +}
 +
++static inline unsigned int rebuild_cgraph_edges(void)
++{
++      return cgraph_edge::rebuild_edges();
++}
++
 +static inline cgraph_node_ptr cgraph_function_node(cgraph_node_ptr node, enum availability *availability)
 +{
 +      return node->function_symbol(availability);
@@ -120930,10 +127726,10 @@ index 0000000..7514850
 +fi
 diff --git a/tools/gcc/initify_plugin.c b/tools/gcc/initify_plugin.c
 new file mode 100644
-index 0000000..125442a
+index 0000000..294ac43
 --- /dev/null
 +++ b/tools/gcc/initify_plugin.c
-@@ -0,0 +1,427 @@
+@@ -0,0 +1,450 @@
 +/*
 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
 + * Licensed under the GPL v2, or (at your option) v3
@@ -120953,6 +127749,8 @@ index 0000000..125442a
 +
 +int plugin_is_GPL_compatible;
 +
++static bool verbose = false;
++
 +static struct plugin_info initify_plugin_info = {
 +      .version        = "20150524a",
 +      .help           = "initify_plugin\n",
@@ -121106,8 +127904,8 @@ index 0000000..125442a
 +              str = get_string_cst(init_val);
 +              gcc_assert(str);
 +
-+              if (set_init_exit_section(var, initexit))
-+                      ;//inform(DECL_SOURCE_LOCATION(var), "initified local var: %s: %s", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
++              if (set_init_exit_section(var, initexit) && verbose)
++                      inform(DECL_SOURCE_LOCATION(var), "initified local var: %s: %s", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
 +      }
 +}
 +
@@ -121119,6 +127917,7 @@ index 0000000..125442a
 +      decl = build_decl(DECL_SOURCE_LOCATION(current_function_decl), VAR_DECL, create_tmp_var_name("cicus"), TREE_TYPE(str));
 +
 +      type = TREE_TYPE(TREE_TYPE(decl));
++      type = build_qualified_type(type, TYPE_QUALS(type) | TYPE_QUAL_CONST);
 +      TYPE_READONLY(type) = 1;
 +      TREE_PUBLIC(type) = 0;
 +
@@ -121140,13 +127939,27 @@ index 0000000..125442a
 +      DECL_CHAIN(decl) = BLOCK_VARS(DECL_INITIAL(current_function_decl));
 +      BLOCK_VARS(DECL_INITIAL (current_function_decl)) = decl;
 +
-+      decl = build_unary_op(DECL_SOURCE_LOCATION(current_function_decl), ADDR_EXPR, decl, 0);
++      decl = build_fold_addr_expr_loc(DECL_SOURCE_LOCATION(current_function_decl), decl);
 +      gimple_call_set_arg(stmt, num, decl);
 +      update_stmt(stmt);
 +
 +      return TREE_OPERAND(decl, 0);
 +}
 +
++static bool is_syscall(const_tree fn)
++{
++      if (!strncmp(DECL_NAME_POINTER(fn), "sys_", 4))
++              return true;
++
++      if (!strncmp(DECL_NAME_POINTER(fn), "sys32_", 6))
++              return true;
++
++      if (!strncmp(DECL_NAME_POINTER(fn), "compat_sys_", 11))
++              return true;
++
++      return false;
++}
++
 +static bool is_vararg(const_tree fn)
 +{
 +      tree arg_list;
@@ -121170,7 +127983,7 @@ index 0000000..125442a
 +      return true;
 +}
 +
-+static bool is_in_nocapture_attr_value(const_gimple stmt, unsigned int num)
++static bool is_nocapture_param(const_gimple stmt, unsigned int num)
 +{
 +      unsigned int attr_arg_val = 0;
 +      tree attr_val;
@@ -121179,6 +127992,9 @@ index 0000000..125442a
 +
 +      gcc_assert(DECL_ABSTRACT_ORIGIN(fndecl) == NULL_TREE);
 +
++      if (is_syscall(fndecl))
++              return true;
++
 +      attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
 +      for (attr_val = TREE_VALUE(attr); attr_val; attr_val = TREE_CHAIN(attr_val)) {
 +              attr_arg_val = (unsigned int)tree_to_uhwi(TREE_VALUE(attr_val));
@@ -121205,22 +128021,25 @@ index 0000000..125442a
 +              if (str == NULL_TREE)
 +                      continue;
 +
-+              if (!is_in_nocapture_attr_value(stmt, num))
++              if (!is_nocapture_param(stmt, num))
 +                      continue;
 +
 +              var = create_tmp_assign(stmt, num);
-+              if (set_init_exit_section(var, initexit))
-+                      ;//inform(gimple_location(stmt), "initified function arg: %s: [%s]", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
++              if (set_init_exit_section(var, initexit) && verbose)
++                      inform(gimple_location(stmt), "initified function arg: %s: [%s]", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
 +      }
 +}
 +
-+static bool has_nocapture_attr(const gcall *stmt)
++static bool has_nocapture_param(const gcall *stmt)
 +{
 +      const_tree attr, fndecl = gimple_call_fndecl(stmt);
 +
 +      if (fndecl == NULL_TREE)
 +              return false;
 +
++      if (is_syscall(fndecl))
++              return true;
++
 +      attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
 +      return attr != NULL_TREE;
 +}
@@ -121240,7 +128059,7 @@ index 0000000..125442a
 +                              continue;
 +
 +                      call_stmt = as_a_gcall(stmt);
-+                      if (has_nocapture_attr(call_stmt))
++                      if (has_nocapture_param(call_stmt))
 +                              search_str_param(call_stmt, initexit);
 +              }
 +      }
@@ -121557,10 +128376,10 @@ index 0000000..457d54e
 +}
 diff --git a/tools/gcc/kernexec_plugin.c b/tools/gcc/kernexec_plugin.c
 new file mode 100644
-index 0000000..b0d8255
+index 0000000..4838c8a
 --- /dev/null
 +++ b/tools/gcc/kernexec_plugin.c
-@@ -0,0 +1,547 @@
+@@ -0,0 +1,551 @@
 +/*
 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
 + * Licensed under the GPL v2
@@ -121595,10 +128414,12 @@ index 0000000..b0d8255
 + */
 +static void kernexec_reload_fptr_mask(gimple_stmt_iterator *gsi)
 +{
++      gimple stmt;
 +      gasm *asm_movabs_stmt;
 +
 +      // build asm volatile("movabs $0x8000000000000000, %%r12\n\t" : : : );
-+      asm_movabs_stmt = gimple_build_asm_vec("movabs $0x8000000000000000, %%r12\n\t", NULL, NULL, NULL, NULL);
++      stmt = gimple_build_asm_vec("movabs $0x8000000000000000, %%r12\n\t", NULL, NULL, NULL, NULL);
++      asm_movabs_stmt = as_a_gasm(stmt);
 +      gimple_asm_set_volatile(asm_movabs_stmt, true);
 +      gsi_insert_after(gsi, asm_movabs_stmt, GSI_CONTINUE_LINKING);
 +      update_stmt(asm_movabs_stmt);
@@ -121692,6 +128513,7 @@ index 0000000..b0d8255
 +
 +static void kernexec_instrument_fptr_or(gimple_stmt_iterator *gsi)
 +{
++      gimple stmt;
 +      gasm *asm_or_stmt;
 +      gcall *call_stmt;
 +      tree old_fptr, new_fptr, input, output;
@@ -121723,7 +128545,8 @@ index 0000000..b0d8255
 +      vec_safe_push(inputs, input);
 +      vec_safe_push(outputs, output);
 +#endif
-+      asm_or_stmt = gimple_build_asm_vec("orq %%r12, %0\n\t", inputs, outputs, NULL, NULL);
++      stmt = gimple_build_asm_vec("orq %%r12, %0\n\t", inputs, outputs, NULL, NULL);
++      asm_or_stmt = as_a_gasm(stmt);
 +      SSA_NAME_DEF_STMT(new_fptr) = asm_or_stmt;
 +      gimple_asm_set_volatile(asm_or_stmt, true);
 +      gsi_insert_before(gsi, asm_or_stmt, GSI_SAME_STMT);
@@ -122590,10 +129413,10 @@ index 0000000..ac6f9b4
 +}
 diff --git a/tools/gcc/randomize_layout_plugin.c b/tools/gcc/randomize_layout_plugin.c
 new file mode 100644
-index 0000000..713be61
+index 0000000..40dcfa9
 --- /dev/null
 +++ b/tools/gcc/randomize_layout_plugin.c
-@@ -0,0 +1,918 @@
+@@ -0,0 +1,922 @@
 +/*
 + * Copyright 2014,2015 by Open Source Security, Inc., Brad Spengler <spender@grsecurity.net>
 + *                   and PaX Team <pageexec@freemail.hu>
@@ -123439,7 +130262,11 @@ index 0000000..713be61
 +class randomize_layout_bad_cast : public gimple_opt_pass {
 +public:
 +      randomize_layout_bad_cast() : gimple_opt_pass(randomize_layout_bad_cast_data, g) {}
++#if BUILDING_GCC_VERSION >= 5000
++      virtual unsigned int execute(function *) { return find_bad_casts(); }
++#else
 +      unsigned int execute() { return find_bad_casts(); }
++#endif
 +};
 +}
 +#endif
@@ -123657,10 +130484,10 @@ index 0000000..12b1e3b
 +exit 0
 diff --git a/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
 new file mode 100644
-index 0000000..0b508b1
+index 0000000..7b7051a
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
-@@ -0,0 +1,409 @@
+@@ -0,0 +1,411 @@
 +/*
 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
 + * Licensed under the GPL v2, or (at your option) v3
@@ -123771,6 +130598,7 @@ index 0000000..0b508b1
 +{
 +      char *asm_comment;
 +      const char *mark_str;
++      gimple stmt;
 +      gasm *asm_stmt;
 +      gimple_stmt_iterator gsi;
 +      tree str_input, str_output;
@@ -123788,7 +130616,8 @@ index 0000000..0b508b1
 +      str_output = build_string(4, "=rm");
 +      output = create_asm_io_list(str_output, asm_data->output);
 +
-+      asm_stmt = gimple_build_asm_vec(asm_comment, input, output, NULL, NULL);
++      stmt = gimple_build_asm_vec(asm_comment, input, output, NULL, NULL);
++      asm_stmt = as_a_gasm(stmt);
 +      gimple_asm_set_volatile(asm_stmt, true);
 +
 +      gsi = gsi_for_stmt(asm_data->def_stmt);
@@ -124072,10 +130901,10 @@ index 0000000..0b508b1
 +#endif
 diff --git a/tools/gcc/size_overflow_plugin/intentional_overflow.c b/tools/gcc/size_overflow_plugin/intentional_overflow.c
 new file mode 100644
-index 0000000..d96cef2
+index 0000000..2af88a3
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin/intentional_overflow.c
-@@ -0,0 +1,955 @@
+@@ -0,0 +1,958 @@
 +/*
 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
 + * Licensed under the GPL v2, or (at your option) v3
@@ -124945,6 +131774,9 @@ index 0000000..d96cef2
 +      my_stmt = as_a_gassign(gsi_stmt(gsi));
 +
 +      gcc_assert(pointer_set_contains(visited->my_stmts, my_stmt));
++      if (gimple_assign_cast_p(stmt) && gimple_assign_cast_p(my_stmt))
++              return my_stmt;
++
 +      if (gimple_assign_rhs_code(stmt) != gimple_assign_rhs_code(my_stmt)) {
 +              fprintf(stderr, "%s != %s\n", get_tree_code_name(gimple_assign_rhs_code(stmt)), get_tree_code_name(gimple_assign_rhs_code(my_stmt)));
 +              debug_gimple_stmt(stmt);
@@ -126080,10 +132912,10 @@ index 0000000..b8e7188
 +}
 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash.data b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
 new file mode 100644
-index 0000000..19e2901
+index 0000000..2e9138d
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
-@@ -0,0 +1,27981 @@
+@@ -0,0 +1,28379 @@
 +intel_fake_agp_alloc_by_type_1 intel_fake_agp_alloc_by_type 1 1 NULL nohasharray
 +iwl_set_tx_power_1 iwl_set_tx_power 0 1 &intel_fake_agp_alloc_by_type_1
 +ocfs2_get_refcount_tree_3 ocfs2_get_refcount_tree 0 3 NULL
@@ -126175,7 +133007,8 @@ index 0000000..19e2901
 +rt73usb_enable_radio_258 rt73usb_enable_radio 0 258 NULL
 +sctp_assoc_set_bind_addr_from_ep_263 sctp_assoc_set_bind_addr_from_ep 0 263 NULL
 +setup_stream_272 setup_stream 0 272 NULL nohasharray
-+mxl111sf_ctrl_msg_272 mxl111sf_ctrl_msg 0 272 &setup_stream_272
++mxl111sf_ctrl_msg_272 mxl111sf_ctrl_msg 0 272 &setup_stream_272 nohasharray
++mpls_dev_sysctl_register_272 mpls_dev_sysctl_register 0 272 &mxl111sf_ctrl_msg_272
 +xfs_dabuf_map_277 xfs_dabuf_map 0 277 NULL
 +lp855x_get_chip_id_278 lp855x_get_chip_id 0 278 NULL nohasharray
 +iscsi_tpg_attrib_show_demo_mode_write_protect_278 iscsi_tpg_attrib_show_demo_mode_write_protect 0 278 &lp855x_get_chip_id_278
@@ -126432,7 +133265,8 @@ index 0000000..19e2901
 +tuner_i2c_xfer_send_recv_864 tuner_i2c_xfer_send_recv 0-5 864 NULL
 +btrfs_dirty_inode_868 btrfs_dirty_inode 0 868 NULL
 +ipr_read_trace_869 ipr_read_trace 6-0-5 869 NULL nohasharray
-+ace_set_mac_addr_869 ace_set_mac_addr 0 869 &ipr_read_trace_869
++ace_set_mac_addr_869 ace_set_mac_addr 0 869 &ipr_read_trace_869 nohasharray
++hfsplus_setxattr_869 hfsplus_setxattr 0 869 &ace_set_mac_addr_869
 +epx_c3_notify_sys_871 epx_c3_notify_sys 0 871 NULL
 +i2c_wait_done_873 i2c_wait_done 0 873 NULL
 +link_mem_sections_878 link_mem_sections 0 878 NULL
@@ -126488,6 +133322,7 @@ index 0000000..19e2901
 +skge_rx_fill_991 skge_rx_fill 0 991 NULL
 +tts_notify_reboot_993 tts_notify_reboot 0 993 NULL nohasharray
 +memory_probe_store_993 memory_probe_store 0-4 993 &tts_notify_reboot_993
++cma_free_mem_995 cma_free_mem 2 995 NULL
 +hdlcdev_rx_997 hdlcdev_rx 3 997 NULL
 +pch_udc_create_dma_chain_1001 pch_udc_create_dma_chain 0 1001 NULL
 +cdc_ncm_show_wNdpInDivisor_1003 cdc_ncm_show_wNdpInDivisor 0 1003 NULL nohasharray
@@ -126541,7 +133376,8 @@ index 0000000..19e2901
 +b43legacy_phy_versioning_1117 b43legacy_phy_versioning 0 1117 NULL
 +bql_show_limit_min_1118 bql_show_limit_min 0 1118 NULL
 +show_temp_crit_enable_1119 show_temp_crit_enable 0 1119 NULL
-+edac_fake_inject_write_1120 edac_fake_inject_write 0-3 1120 NULL
++edac_fake_inject_write_1120 edac_fake_inject_write 0-3 1120 NULL nohasharray
++sha1_base_finish_1120 sha1_base_finish 0 1120 &edac_fake_inject_write_1120
 +splice_read_1122 splice_read 0 1122 NULL
 +sdio_uart_write_room_1123 sdio_uart_write_room 0 1123 NULL nohasharray
 +drvctl_store_1123 drvctl_store 0-4 1123 &sdio_uart_write_room_1123
@@ -126597,6 +133433,7 @@ index 0000000..19e2901
 +v9fs_write_inode_dotl_1241 v9fs_write_inode_dotl 0 1241 NULL
 +ehci_urb_enqueue_1242 ehci_urb_enqueue 0 1242 NULL
 +usnic_ib_show_cq_per_vf_1244 usnic_ib_show_cq_per_vf 0 1244 NULL
++snd_hdac_read_1245 snd_hdac_read 0 1245 NULL
 +qla2x00_total_isp_aborts_show_1247 qla2x00_total_isp_aborts_show 0 1247 NULL
 +class_osdblk_remove_1250 class_osdblk_remove 0-4 1250 NULL
 +ipath_read_umem64_1254 ipath_read_umem64 0 1254 NULL
@@ -126809,6 +133646,7 @@ index 0000000..19e2901
 +set_temp_emergency_1776 set_temp_emergency 0-4 1776 NULL
 +event_show_1780 event_show 0 1780 NULL
 +tpacpi_driver_wlsw_emulstate_store_1783 tpacpi_driver_wlsw_emulstate_store 0-3 1783 NULL
++usb_dmac_desc_alloc_1792 usb_dmac_desc_alloc 2 1792 NULL
 +fcoe_ctlr_device_add_1793 fcoe_ctlr_device_add 3 1793 NULL
 +ueth_change_mtu_1794 ueth_change_mtu 0 1794 NULL
 +show_auto_fan_1801 show_auto_fan 0 1801 NULL
@@ -127108,6 +133946,7 @@ index 0000000..19e2901
 +cifs_wp_retry_size_2491 cifs_wp_retry_size 0 2491 &xen_wdt_write_2491
 +xenvif_alloc_skb_2492 xenvif_alloc_skb 1 2492 NULL
 +isicom_write_room_2493 isicom_write_room 0 2493 NULL
++widget_tree_create_2494 widget_tree_create 0 2494 NULL
 +show_tabletExecute_2495 show_tabletExecute 0 2495 NULL
 +_read_fact_prot_reg_2497 _read_fact_prot_reg 0 2497 NULL nohasharray
 +blk_rq_unmap_user_2497 blk_rq_unmap_user 0 2497 &_read_fact_prot_reg_2497 nohasharray
@@ -127207,6 +134046,7 @@ index 0000000..19e2901
 +nfc_llcp_send_ui_frame_2702 nfc_llcp_send_ui_frame 5-0 2702 NULL
 +lx_pipe_allocate_2703 lx_pipe_allocate 0 2703 NULL
 +udf_setsize_2705 udf_setsize 0 2705 NULL
++rawsock_sendmsg_2706 rawsock_sendmsg 3 2706 NULL
 +SyS_pwrite64_2708 SyS_pwrite64 3 2708 NULL nohasharray
 +lprocfs_stats_counter_size_2708 lprocfs_stats_counter_size 0 2708 &SyS_pwrite64_2708
 +sock_error_2715 sock_error 0 2715 NULL nohasharray
@@ -127214,6 +134054,7 @@ index 0000000..19e2901
 +migration_call_2716 migration_call 0 2716 NULL
 +gpiod_direction_input_2718 gpiod_direction_input 0 2718 NULL
 +snd_hdspm_trigger_2720 snd_hdspm_trigger 0 2720 NULL
++llc_ui_recvmsg_2730 llc_ui_recvmsg 3 2730 NULL
 +o2hb_region_dev_read_2735 o2hb_region_dev_read 0 2735 NULL
 +ltm_capable_show_2738 ltm_capable_show 0 2738 NULL nohasharray
 +ad5398_enable_2738 ad5398_enable 0 2738 &ltm_capable_show_2738
@@ -127416,7 +134257,8 @@ index 0000000..19e2901
 +map_smb_to_linux_error_3163 map_smb_to_linux_error 0 3163 NULL
 +gfs2_rindex_update_3165 gfs2_rindex_update 0 3165 NULL
 +nf_conntrack_broadcast_help_3166 nf_conntrack_broadcast_help 0 3166 NULL nohasharray
-+islpci_reset_3166 islpci_reset 0 3166 &nf_conntrack_broadcast_help_3166
++islpci_reset_3166 islpci_reset 0 3166 &nf_conntrack_broadcast_help_3166 nohasharray
++mgmt_index_event_3166 mgmt_index_event 4 3166 &islpci_reset_3166
 +nfc_alloc_send_skb_3167 nfc_alloc_send_skb 4 3167 NULL
 +rxrpc_create_3175 rxrpc_create 0 3175 NULL nohasharray
 +rebind_store_3175 rebind_store 0-3 3175 &rxrpc_create_3175
@@ -127458,10 +134300,12 @@ index 0000000..19e2901
 +ext3_xattr_find_entry_3237 ext3_xattr_find_entry 0 3237 NULL
 +macb_open_3240 macb_open 0 3240 NULL
 +key_key_read_3241 key_key_read 3-0 3241 NULL
++add_widget_node_3244 add_widget_node 0 3244 NULL
 +base_sock_bind_3245 base_sock_bind 0 3245 NULL
 +page_counter_memparse_3253 page_counter_memparse 0 3253 NULL
 +check_vendor_extension_3254 check_vendor_extension 1 3254 NULL nohasharray
-+peak_usb_ndo_open_3254 peak_usb_ndo_open 0 3254 &check_vendor_extension_3254
++peak_usb_ndo_open_3254 peak_usb_ndo_open 0 3254 &check_vendor_extension_3254 nohasharray
++__ip_local_out_sk_3254 __ip_local_out_sk 0 3254 &peak_usb_ndo_open_3254
 +mei_amthif_write_3256 mei_amthif_write 0 3256 NULL
 +show_fc_host_firmware_version_3257 show_fc_host_firmware_version 0 3257 NULL
 +ipaq_open_3260 ipaq_open 0 3260 NULL
@@ -127472,6 +134316,7 @@ index 0000000..19e2901
 +wq_cpumask_store_3269 wq_cpumask_store 0-4 3269 &mma8452_show_samp_freq_avail_3269
 +technisat_usb2_i2c_xfer_3273 technisat_usb2_i2c_xfer 0-3 3273 NULL nohasharray
 +pccard_show_resource_3273 pccard_show_resource 0 3273 &technisat_usb2_i2c_xfer_3273
++gk20a_instobj_ctor_iommu_3274 gk20a_instobj_ctor_iommu 4 3274 NULL
 +cifs_enable_signing_3276 cifs_enable_signing 0 3276 NULL
 +ath6kl_wmi_get_roam_tbl_cmd_3282 ath6kl_wmi_get_roam_tbl_cmd 0 3282 NULL
 +__ilog2_u64_3284 __ilog2_u64 0 3284 NULL
@@ -127506,6 +134351,7 @@ index 0000000..19e2901
 +bt819_s_stream_3349 bt819_s_stream 0 3349 NULL
 +atm_init_aal34_3350 atm_init_aal34 0 3350 NULL
 +il_dbgfs_interrupt_read_3351 il_dbgfs_interrupt_read 3-0 3351 NULL
++rose_recvmsg_3352 rose_recvmsg 3 3352 NULL
 +gsm_control_rls_3353 gsm_control_rls 3 3353 NULL nohasharray
 +o2nm_cluster_attr_idle_timeout_ms_write_3353 o2nm_cluster_attr_idle_timeout_ms_write 3-0 3353 &gsm_control_rls_3353
 +anx9805_aux_3358 anx9805_aux 0 3358 NULL
@@ -127515,7 +134361,7 @@ index 0000000..19e2901
 +iwl_trans_update_sf_3363 iwl_trans_update_sf 0 3363 NULL
 +sr_read_3366 sr_read 3 3366 NULL
 +nilfs_segctor_fill_in_checkpoint_3369 nilfs_segctor_fill_in_checkpoint 0 3369 NULL
-+mv88e6xxx_phy_write_3375 mv88e6xxx_phy_write 0 3375 NULL nohasharray
++mv88e6xxx_phy_write_3375 mv88e6xxx_phy_write 0-2 3375 NULL nohasharray
 +hotkey_bios_enabled_show_3375 hotkey_bios_enabled_show 0 3375 &mv88e6xxx_phy_write_3375
 +cifs_write_3376 cifs_write 0 3376 NULL nohasharray
 +register_xenbus_watch_3376 register_xenbus_watch 0 3376 &cifs_write_3376
@@ -127675,6 +134521,7 @@ index 0000000..19e2901
 +__netdev_adjacent_dev_link_lists_3697 __netdev_adjacent_dev_link_lists 0 3697 NULL
 +target_core_show_dev_alias_3699 target_core_show_dev_alias 0 3699 NULL
 +videobuf_pages_to_sg_3708 videobuf_pages_to_sg 2 3708 NULL
++cfg80211_vendor_event_alloc_3709 cfg80211_vendor_event_alloc 3 3709 NULL
 +sys_getrandom_3710 sys_getrandom 2 3710 NULL
 +mlx4_en_config_rss_steer_3713 mlx4_en_config_rss_steer 0 3713 NULL
 +i2c_sendbytes_3714 i2c_sendbytes 0 3714 NULL
@@ -127706,6 +134553,7 @@ index 0000000..19e2901
 +sctp_copy_one_addr_3771 sctp_copy_one_addr 0 3771 &temp1_show_3771
 +mvs_show_driver_version_3772 mvs_show_driver_version 0 3772 NULL nohasharray
 +koneplus_sysfs_read_profilex_settings_3772 koneplus_sysfs_read_profilex_settings 0-5-6 3772 &mvs_show_driver_version_3772
++ping_recvmsg_3773 ping_recvmsg 3 3773 NULL
 +store_enable_clkb0_output_3776 store_enable_clkb0_output 0-4 3776 NULL
 +nouveau_sysfs_pstate_set_3777 nouveau_sysfs_pstate_set 0-4 3777 NULL
 +apds990x_prox_enable_show_3778 apds990x_prox_enable_show 0 3778 NULL
@@ -127734,7 +134582,8 @@ index 0000000..19e2901
 +ezusb_access_ltv_3838 ezusb_access_ltv 0 3838 &ceph_do_getattr_3838
 +mtip_hw_show_status_3839 mtip_hw_show_status 0 3839 NULL
 +release_version_store_3841 release_version_store 0-4 3841 NULL
-+fuse_try_move_page_3842 fuse_try_move_page 0 3842 NULL
++fuse_try_move_page_3842 fuse_try_move_page 0 3842 NULL nohasharray
++stringify_nodemap_3842 stringify_nodemap 2 3842 &fuse_try_move_page_3842
 +max8925_disable_3844 max8925_disable 0 3844 NULL
 +vprbrd_i2c_read_3845 vprbrd_i2c_read 0 3845 NULL nohasharray
 +amd_xgbe_phy_switch_mode_3845 amd_xgbe_phy_switch_mode 0 3845 &vprbrd_i2c_read_3845
@@ -127746,11 +134595,13 @@ index 0000000..19e2901
 +smk_read_onlycap_3855 smk_read_onlycap 3-0 3855 NULL
 +show_session_param_ISCSI_PARAM_TARGET_ALIAS_3856 show_session_param_ISCSI_PARAM_TARGET_ALIAS 0 3856 NULL
 +fuse_retrieve_3857 fuse_retrieve 0 3857 NULL
++udf_direct_IO_3860 udf_direct_IO 3 3860 NULL
 +c67x00_urb_enqueue_3862 c67x00_urb_enqueue 0 3862 NULL
 +hfsplus_create_attr_3864 hfsplus_create_attr 0 3864 NULL nohasharray
 +video_write_3864 video_write 0 3864 &hfsplus_create_attr_3864
 +get_fd_set_3866 get_fd_set 1 3866 NULL
 +show_pci_3867 show_pci 0 3867 NULL
++sst_hsw_module_set_param_3868 sst_hsw_module_set_param 5 3868 NULL
 +br_fdb_insert_3869 br_fdb_insert 0 3869 NULL
 +i7core_inject_show_channel_3874 i7core_inject_show_channel 0 3874 NULL
 +show_ctlr_enabled_state_3877 show_ctlr_enabled_state 0 3877 NULL
@@ -127779,6 +134630,7 @@ index 0000000..19e2901
 +iwl_load_ucode_wait_alive_3936 iwl_load_ucode_wait_alive 0 3936 NULL
 +show_allow_ext_sg_3938 show_allow_ext_sg 0 3938 NULL
 +__vfs_read_3942 __vfs_read 0-3 3942 NULL
++rb_alloc_aux_3943 rb_alloc_aux 4 3943 NULL
 +hdlc_irq_one_3944 hdlc_irq_one 2 3944 NULL
 +cp_refill_rx_3947 cp_refill_rx 0 3947 NULL
 +apei_clear_mce_3948 apei_clear_mce 0 3948 NULL nohasharray
@@ -127815,7 +134667,8 @@ index 0000000..19e2901
 +show_xps_map_4009 show_xps_map 0 4009 NULL
 +snd_hdsp_capture_copy_4011 snd_hdsp_capture_copy 5 4011 NULL
 +bcm_rx_setup_4014 bcm_rx_setup 0 4014 NULL
-+wakeup_active_count_show_4016 wakeup_active_count_show 0 4016 NULL
++wakeup_active_count_show_4016 wakeup_active_count_show 0 4016 NULL nohasharray
++hsu_dma_prep_slave_sg_4016 hsu_dma_prep_slave_sg 3 4016 &wakeup_active_count_show_4016
 +amd_xgbe_phy_gmii_mode_4019 amd_xgbe_phy_gmii_mode 0 4019 NULL
 +_request_firmware_4021 _request_firmware 0 4021 NULL
 +blk_end_request_4024 blk_end_request 3 4024 NULL nohasharray
@@ -127826,7 +134679,8 @@ index 0000000..19e2901
 +ql3xxx_set_mac_address_4033 ql3xxx_set_mac_address 0 4033 NULL
 +b1_get_word_4035 b1_get_word 0 4035 NULL nohasharray
 +usbnet_write_cmd_async_4035 usbnet_write_cmd_async 7 4035 &b1_get_word_4035
-+xfs_free_ag_extent_4036 xfs_free_ag_extent 0 4036 NULL
++xfs_free_ag_extent_4036 xfs_free_ag_extent 0 4036 NULL nohasharray
++sha1_base_do_update_4036 sha1_base_do_update 0 4036 &xfs_free_ag_extent_4036
 +mtip_hw_read_registers_4037 mtip_hw_read_registers 3-0 4037 NULL
 +store_tabletCoordinateMode_4043 store_tabletCoordinateMode 0-4 4043 NULL
 +oprofile_set_ulong_4046 oprofile_set_ulong 0 4046 NULL
@@ -127915,7 +134769,8 @@ index 0000000..19e2901
 +axp20x_show_ext_attr_4232 axp20x_show_ext_attr 0 4232 NULL
 +bch_hprint_4233 bch_hprint 0 4233 NULL nohasharray
 +gpio_trig_gpio_store_4233 gpio_trig_gpio_store 0-4 4233 &bch_hprint_4233
-+show_fnode_max_segment_size_4234 show_fnode_max_segment_size 0 4234 NULL
++show_fnode_max_segment_size_4234 show_fnode_max_segment_size 0 4234 NULL nohasharray
++ext4_direct_IO_4234 ext4_direct_IO 3 4234 &show_fnode_max_segment_size_4234
 +snd_seq_ioctl_query_next_port_4238 snd_seq_ioctl_query_next_port 0 4238 NULL
 +input_dev_show_cap_abs_4239 input_dev_show_cap_abs 0 4239 NULL
 +team_port_enable_netpoll_4243 team_port_enable_netpoll 0 4243 NULL
@@ -127968,6 +134823,7 @@ index 0000000..19e2901
 +mlx4_qp_modify_4333 mlx4_qp_modify 0 4333 NULL
 +iscsi_disc_store_userid_4337 iscsi_disc_store_userid 0-3 4337 NULL
 +ima_eventdigest_init_common_4338 ima_eventdigest_init_common 2 4338 NULL
++unix_stream_sendmsg_4343 unix_stream_sendmsg 3 4343 NULL
 +rtl8169_get_sset_count_4349 rtl8169_get_sset_count 0 4349 NULL
 +show_tcrit1_4350 show_tcrit1 0 4350 NULL
 +netdev_vlan_rx_add_vid_4353 netdev_vlan_rx_add_vid 0 4353 NULL
@@ -127988,6 +134844,7 @@ index 0000000..19e2901
 +uevent_seqnum_show_4383 uevent_seqnum_show 0 4383 NULL
 +pci_eg20t_init_4385 pci_eg20t_init 0 4385 NULL
 +irda_sendmsg_4388 irda_sendmsg 4-0 4388 NULL
++sctp_sendmsg_4391 sctp_sendmsg 3 4391 NULL
 +lp3943_gpio_set_mode_4393 lp3943_gpio_set_mode 0 4393 NULL
 +ovl_listxattr_4399 ovl_listxattr 0-3 4399 NULL
 +get_pwm1_enable_4401 get_pwm1_enable 0 4401 NULL nohasharray
@@ -128199,7 +135056,8 @@ index 0000000..19e2901
 +isdn_divert_write_4891 isdn_divert_write 0-3 4891 NULL
 +s2io_ethtool_get_regs_len_4901 s2io_ethtool_get_regs_len 0 4901 NULL
 +shadow_fetch_4907 shadow_fetch 2 4907 NULL
-+nilfs_segbuf_reset_4912 nilfs_segbuf_reset 0 4912 NULL
++nilfs_segbuf_reset_4912 nilfs_segbuf_reset 0 4912 NULL nohasharray
++mt6397_irq_handle_reg_4912 mt6397_irq_handle_reg 3 4912 &nilfs_segbuf_reset_4912
 +qlcnic_82xx_alloc_mbx_args_4913 qlcnic_82xx_alloc_mbx_args 0 4913 NULL nohasharray
 +smsc911x_ethtool_getregslen_4913 smsc911x_ethtool_getregslen 0 4913 &qlcnic_82xx_alloc_mbx_args_4913
 +sw_activity_store_4914 sw_activity_store 0 4914 NULL
@@ -128361,6 +135219,7 @@ index 0000000..19e2901
 +snd_seq_ioctl_get_queue_tempo_5296 snd_seq_ioctl_get_queue_tempo 0 5296 NULL
 +qla2x00_optrom_fcode_version_show_5297 qla2x00_optrom_fcode_version_show 0 5297 NULL
 +lpfc_max_luns_show_5301 lpfc_max_luns_show 0 5301 NULL
++sco_sock_sendmsg_5302 sco_sock_sendmsg 3 5302 NULL
 +metapage_readpage_5304 metapage_readpage 0 5304 NULL nohasharray
 +alloc_dec_temp_buffers_5304 alloc_dec_temp_buffers 0 5304 &metapage_readpage_5304 nohasharray
 +t4vf_write_rss_vi_config_5304 t4vf_write_rss_vi_config 0 5304 &alloc_dec_temp_buffers_5304
@@ -128368,6 +135227,7 @@ index 0000000..19e2901
 +_efx_mcdi_rpc_finish_5310 _efx_mcdi_rpc_finish 0 5310 NULL
 +grow_inode_5311 grow_inode 0 5311 NULL
 +r592_write_fifo_pio_5315 r592_write_fifo_pio 3 5315 NULL
++pep_sendmsg_5316 pep_sendmsg 3 5316 NULL
 +sbc_get_write_same_sectors_5317 sbc_get_write_same_sectors 0 5317 NULL
 +selinux_ipv4_output_5320 selinux_ipv4_output 0 5320 NULL
 +pmcraid_show_log_level_5323 pmcraid_show_log_level 0 5323 NULL nohasharray
@@ -128403,6 +135263,7 @@ index 0000000..19e2901
 +fcr_get_rxtrig_bytes_5384 fcr_get_rxtrig_bytes 0 5384 &disksize_store_5384
 +efx_mcdi_port_reconfigure_5389 efx_mcdi_port_reconfigure 0 5389 NULL
 +at86rf230_set_hw_addr_filt_5394 at86rf230_set_hw_addr_filt 0 5394 NULL
++bitmap_fold_5396 bitmap_fold 4 5396 NULL
 +brcmf_netdev_set_mac_address_5397 brcmf_netdev_set_mac_address 0 5397 NULL
 +xadc_write_adc_reg_5398 xadc_write_adc_reg 0 5398 NULL
 +regulator_uV_show_5404 regulator_uV_show 0 5404 NULL
@@ -128493,6 +135354,7 @@ index 0000000..19e2901
 +v4l2_s_ctrl_5571 v4l2_s_ctrl 0 5571 NULL
 +tda18271_set_standby_mode_5572 tda18271_set_standby_mode 0 5572 NULL
 +fir16_create_5574 fir16_create 3 5574 NULL
++ax25_sendmsg_5578 ax25_sendmsg 3 5578 NULL
 +bioset_create_5580 bioset_create 1 5580 NULL
 +fat_block_truncate_page_5581 fat_block_truncate_page 0 5581 NULL nohasharray
 +esas2r_write_vda_5581 esas2r_write_vda 0-3-4 5581 &fat_block_truncate_page_5581
@@ -128503,6 +135365,7 @@ index 0000000..19e2901
 +bind_store_5596 bind_store 0-3 5596 &thermal_throttle_cpu_callback_5596
 +amd_xgbe_an_init_5602 amd_xgbe_an_init 0 5602 NULL
 +xcan_set_bittiming_5605 xcan_set_bittiming 0 5605 NULL
++pn_recvmsg_5607 pn_recvmsg 3 5607 NULL
 +ldm_frag_add_5611 ldm_frag_add 2 5611 NULL
 +compat_copy_entries_5617 compat_copy_entries 0 5617 NULL
 +__remove_suid_5618 __remove_suid 0 5618 NULL
@@ -128647,11 +135510,14 @@ index 0000000..19e2901
 +sctp_bindx_rem_5938 sctp_bindx_rem 0 5938 &mlx4_en_create_tx_ring_5938
 +edac_device_alloc_ctl_info_5941 edac_device_alloc_ctl_info 1 5941 NULL
 +ssb_devices_freeze_5945 ssb_devices_freeze 0 5945 NULL
-+devkmsg_write_5947 devkmsg_write 0 5947 NULL
-+affs_readpage_ofs_5951 affs_readpage_ofs 0 5951 NULL
++devkmsg_write_5947 devkmsg_write 0 5947 NULL nohasharray
++l2cap_sock_sendmsg_5947 l2cap_sock_sendmsg 3 5947 &devkmsg_write_5947
++affs_readpage_ofs_5951 affs_readpage_ofs 0 5951 NULL nohasharray
++p9_get_mapped_pages_5951 p9_get_mapped_pages 4 5951 &affs_readpage_ofs_5951
 +bnx2x_req_msix_irqs_5956 bnx2x_req_msix_irqs 0 5956 NULL
 +tipc_subseq_alloc_5957 tipc_subseq_alloc 1 5957 NULL nohasharray
 +erst_exec_add_value_5957 erst_exec_add_value 0 5957 &tipc_subseq_alloc_5957
++tcp_recvmsg_5958 tcp_recvmsg 3 5958 NULL
 +attr_press_speed_show_tpkbd_5960 attr_press_speed_show_tpkbd 0 5960 NULL
 +free_hugepages_show_5961 free_hugepages_show 0 5961 NULL
 +ll_statahead_one_5962 ll_statahead_one 3 5962 NULL
@@ -128686,11 +135552,13 @@ index 0000000..19e2901
 +crypto_rng_reset_6032 crypto_rng_reset 0 6032 &show_pwm_auto_point_channel_6032
 +radeon_process_i2c_ch_6034 radeon_process_i2c_ch 0 6034 NULL
 +ntfs_rl_append_6037 ntfs_rl_append 4-2 6037 NULL
-+hvfb_set_par_6038 hvfb_set_par 0 6038 NULL
++hvfb_set_par_6038 hvfb_set_par 0 6038 NULL nohasharray
++mei_cl_read_start_6038 mei_cl_read_start 2-0 6038 &hvfb_set_par_6038
 +crccheck_store_6040 crccheck_store 0-4 6040 NULL
 +ipath_set_mtu_6042 ipath_set_mtu 0 6042 NULL
 +led_shot_6046 led_shot 0-4 6046 NULL
-+otg_handle_notification_6055 otg_handle_notification 0 6055 NULL
++otg_handle_notification_6055 otg_handle_notification 0 6055 NULL nohasharray
++periph_interrupt_6055 periph_interrupt 2 6055 &otg_handle_notification_6055
 +show_session_param_ISCSI_PARAM_DISCOVERY_LOGOUT_EN_6056 show_session_param_ISCSI_PARAM_DISCOVERY_LOGOUT_EN 0 6056 NULL
 +da9052_request_irq_6058 da9052_request_irq 2 6058 NULL
 +pccard_show_cis_6062 pccard_show_cis 0-5-6 6062 NULL
@@ -128800,7 +135668,8 @@ index 0000000..19e2901
 +store_cluster_6316 store_cluster 0-4 6316 NULL
 +write_null_6319 write_null 0-3 6319 NULL
 +__netdev_adjacent_dev_link_neighbour_6321 __netdev_adjacent_dev_link_neighbour 0 6321 NULL
-+extent_write_full_page_6322 extent_write_full_page 0 6322 NULL
++extent_write_full_page_6322 extent_write_full_page 0 6322 NULL nohasharray
++tipc_recvmsg_6322 tipc_recvmsg 3 6322 &extent_write_full_page_6322
 +cyapa_gen3_bl_exit_6326 cyapa_gen3_bl_exit 0 6326 NULL
 +ibm_get_table_from_acpi_6329 ibm_get_table_from_acpi 0 6329 NULL nohasharray
 +SyS_mincore_6329 SyS_mincore 1-2 6329 &ibm_get_table_from_acpi_6329
@@ -128827,7 +135696,8 @@ index 0000000..19e2901
 +osd_req_read_sg_kern_6378 osd_req_read_sg_kern 5 6378 NULL nohasharray
 +sync_fence_alloc_6378 sync_fence_alloc 1 6378 &osd_req_read_sg_kern_6378
 +msb_write_block_6379 msb_write_block 3 6379 NULL
-+xfs_bmap_extents_to_btree_6387 xfs_bmap_extents_to_btree 0 6387 NULL
++xfs_bmap_extents_to_btree_6387 xfs_bmap_extents_to_btree 0 6387 NULL nohasharray
++sha1_ssse3_finup_6387 sha1_ssse3_finup 0 6387 &xfs_bmap_extents_to_btree_6387
 +cfq_init_queue_6399 cfq_init_queue 0 6399 NULL
 +bb_store_6401 bb_store 3-0 6401 NULL
 +hash_elasticity_show_6402 hash_elasticity_show 0 6402 NULL
@@ -128903,6 +135773,7 @@ index 0000000..19e2901
 +rng_recvmsg_6569 rng_recvmsg 4-0 6569 NULL
 +xfs_iozero_6573 xfs_iozero 0-3-2 6573 NULL
 +i2c_smbus_write_byte_6574 i2c_smbus_write_byte 0 6574 NULL
++do_blockdev_direct_IO_6575 do_blockdev_direct_IO 5-0 6575 NULL
 +max8997_rtc_set_alarm_6577 max8997_rtc_set_alarm 0 6577 NULL
 +bt_skb_send_alloc_6581 bt_skb_send_alloc 2 6581 NULL
 +SyS_fcntl64_6582 SyS_fcntl64 3 6582 NULL
@@ -128983,8 +135854,10 @@ index 0000000..19e2901
 +mv88e6xxx_reg_read_6748 mv88e6xxx_reg_read 0 6748 NULL
 +wil_reset_6752 wil_reset 0 6752 NULL
 +uvesafb_show_nocrtc_6754 uvesafb_show_nocrtc 0 6754 NULL
++_mv88e6xxx_phy_write_6755 _mv88e6xxx_phy_write 0 6755 NULL
 +beiscsi_phys_port_disp_6756 beiscsi_phys_port_disp 0 6756 NULL nohasharray
-+cciss_engage_scsi_6756 cciss_engage_scsi 0 6756 &beiscsi_phys_port_disp_6756
++cciss_engage_scsi_6756 cciss_engage_scsi 0 6756 &beiscsi_phys_port_disp_6756 nohasharray
++i915_parse_cmds_6756 i915_parse_cmds 4-5 6756 &cciss_engage_scsi_6756
 +mwifiex_cmd_rf_antenna_6757 mwifiex_cmd_rf_antenna 0 6757 NULL
 +usbhsh_urb_enqueue_6759 usbhsh_urb_enqueue 0 6759 NULL
 +mwl8k_cmd_set_new_stn_add_6760 mwl8k_cmd_set_new_stn_add 0 6760 NULL
@@ -129024,6 +135897,7 @@ index 0000000..19e2901
 +codec_reg_show_6818 codec_reg_show 0 6818 NULL nohasharray
 +bcm_tx_setup_6818 bcm_tx_setup 0 6818 &codec_reg_show_6818
 +rfcomm_send_frame_6819 rfcomm_send_frame 3 6819 NULL
++wil_get_bl_info_6823 wil_get_bl_info 0 6823 NULL
 +lbs_rdrf_write_6826 lbs_rdrf_write 3-0 6826 NULL nohasharray
 +host_reset_6826 host_reset 0 6826 &lbs_rdrf_write_6826
 +xfs_bmap_first_unused_6827 xfs_bmap_first_unused 0 6827 NULL
@@ -129062,7 +135936,8 @@ index 0000000..19e2901
 +show_fcstat_fc_seq_not_found_6897 show_fcstat_fc_seq_not_found 0 6897 NULL nohasharray
 +iscsi_tpg_param_show_DefaultTime2Retain_6897 iscsi_tpg_param_show_DefaultTime2Retain 0 6897 &show_fcstat_fc_seq_not_found_6897
 +max_write_same_blocks_show_6899 max_write_same_blocks_show 0 6899 NULL
-+wq_nice_store_6901 wq_nice_store 0-4 6901 NULL
++wq_nice_store_6901 wq_nice_store 0-4 6901 NULL nohasharray
++crypto_sha256_finup_6901 crypto_sha256_finup 0 6901 &wq_nice_store_6901
 +veth_change_mtu_6902 veth_change_mtu 0 6902 NULL nohasharray
 +ext4_inode_bitmap_6902 ext4_inode_bitmap 0 6902 &veth_change_mtu_6902
 +acerhdf_get_trip_temp_6903 acerhdf_get_trip_temp 0 6903 NULL
@@ -129106,6 +135981,7 @@ index 0000000..19e2901
 +in_intr_mask_show_6971 in_intr_mask_show 0 6971 NULL
 +rsa_extract_mpi_6973 rsa_extract_mpi 5 6973 NULL nohasharray
 +i40e_dbg_dump_write_6973 i40e_dbg_dump_write 3-0 6973 &rsa_extract_mpi_6973
++ubifs_decompress_6974 ubifs_decompress 0 6974 NULL
 +acpi_lpss_platform_notify_6980 acpi_lpss_platform_notify 0 6980 NULL
 +ismt_process_desc_6981 ismt_process_desc 0 6981 NULL
 +request_key_async_6990 request_key_async 4 6990 NULL
@@ -129126,7 +136002,8 @@ index 0000000..19e2901
 +snd_pcm_do_resume_7028 snd_pcm_do_resume 0 7028 NULL
 +ath9k_tx99_init_7029 ath9k_tx99_init 0 7029 NULL
 +wimax_msg_7030 wimax_msg 4 7030 NULL
-+ceph_kvmalloc_7033 ceph_kvmalloc 1 7033 NULL
++ceph_kvmalloc_7033 ceph_kvmalloc 1 7033 NULL nohasharray
++rawv6_recvmsg_7033 rawv6_recvmsg 3 7033 &ceph_kvmalloc_7033
 +nilfs_segments_attr_store_7037 nilfs_segments_attr_store 0-4 7037 NULL
 +stmmac_hw_setup_7038 stmmac_hw_setup 0 7038 NULL
 +metrics_bytes_identical_show_7039 metrics_bytes_identical_show 0 7039 NULL
@@ -129181,6 +136058,7 @@ index 0000000..19e2901
 +pscsi_show_configfs_dev_params_7152 pscsi_show_configfs_dev_params 0 7152 NULL
 +sky2_get_eeprom_len_7154 sky2_get_eeprom_len 0 7154 NULL
 +set_lcd_level_7155 set_lcd_level 0 7155 NULL
++nct7904_bank_lock_7159 nct7904_bank_lock 0 7159 NULL
 +max732x_gpio_to_irq_7160 max732x_gpio_to_irq 2 7160 NULL
 +fnic_reset_7163 fnic_reset 0 7163 NULL
 +r8a66597_enable_7164 r8a66597_enable 0 7164 NULL
@@ -129190,7 +136068,8 @@ index 0000000..19e2901
 +fsp_attr_set_flags_7182 fsp_attr_set_flags 0-4 7182 NULL nohasharray
 +set_rdac1_7182 set_rdac1 4-0 7182 &fsp_attr_set_flags_7182 nohasharray
 +ext4_attr_store_7182 ext4_attr_store 0-4 7182 &set_rdac1_7182
-+f_hid_opts_report_desc_store_7188 f_hid_opts_report_desc_store 3 7188 NULL
++f_hid_opts_report_desc_store_7188 f_hid_opts_report_desc_store 3 7188 NULL nohasharray
++iwl_trans_wait_tx_queue_empty_7188 iwl_trans_wait_tx_queue_empty 0 7188 &f_hid_opts_report_desc_store_7188
 +snd_mask_refine_max_7191 snd_mask_refine_max 0 7191 NULL
 +wl1271_init_pta_7195 wl1271_init_pta 0 7195 NULL
 +ext3_xattr_ibody_list_7201 ext3_xattr_ibody_list 0 7201 NULL
@@ -129200,6 +136079,7 @@ index 0000000..19e2901
 +adjd_s311_update_scan_mode_7208 adjd_s311_update_scan_mode 0 7208 NULL
 +fsg_common_set_nluns_7209 fsg_common_set_nluns 2 7209 NULL
 +confirm_7211 confirm 0 7211 NULL
++trace_insert_enum_map_file_7213 trace_insert_enum_map_file 3 7213 NULL
 +tpm_rng_read_7214 tpm_rng_read 3 7214 NULL
 +of_dma_match_channel_7216 of_dma_match_channel 3 7216 NULL
 +acpi_device_uid_show_7226 acpi_device_uid_show 0 7226 NULL nohasharray
@@ -129224,6 +136104,7 @@ index 0000000..19e2901
 +ssb_bus_resume_7272 ssb_bus_resume 0 7272 &dma_ops_alloc_addresses_7272
 +palmas_update_bits_7273 palmas_update_bits 0 7273 NULL
 +htu21_show_humidity_7275 htu21_show_humidity 0 7275 NULL
++__vfs_write_7278 __vfs_write 0-3 7278 NULL
 +radeon_hw_i2c_xfer_7280 radeon_hw_i2c_xfer 0-3 7280 NULL nohasharray
 +smack_task_setnice_7280 smack_task_setnice 0 7280 &radeon_hw_i2c_xfer_7280
 +kvm_suspend_7281 kvm_suspend 0 7281 NULL
@@ -129368,6 +136249,7 @@ index 0000000..19e2901
 +xfs_bmap_btalloc_nullfb_7654 xfs_bmap_btalloc_nullfb 0 7654 NULL
 +show_fc_rport_supported_classes_7658 show_fc_rport_supported_classes 0 7658 NULL
 +fault_inject_write_7662 fault_inject_write 3-0 7662 NULL
++rng_recvmsg_7665 rng_recvmsg 3 7665 NULL
 +ds1305_set_alarm_7667 ds1305_set_alarm 0 7667 NULL
 +acpi_bus_init_power_7670 acpi_bus_init_power 0 7670 NULL
 +tcm_qla2xxx_tpg_attrib_store_generate_node_acls_7674 tcm_qla2xxx_tpg_attrib_store_generate_node_acls 0-3 7674 NULL
@@ -129504,14 +136386,16 @@ index 0000000..19e2901
 +write_room_8009 write_room 0 8009 NULL
 +nfs_commit_inode_8011 nfs_commit_inode 0 8011 NULL
 +tt3650_ci_msg_locked_8013 tt3650_ci_msg_locked 4 8013 NULL nohasharray
-+ip6gre_tap_init_8013 ip6gre_tap_init 0 8013 &tt3650_ci_msg_locked_8013
++ip6gre_tap_init_8013 ip6gre_tap_init 0 8013 &tt3650_ci_msg_locked_8013 nohasharray
++xfs_break_layouts_8013 xfs_break_layouts 0 8013 &ip6gre_tap_init_8013
 +vcs_read_8017 vcs_read 3-0 8017 NULL
 +cx18_s_audio_mode_8020 cx18_s_audio_mode 0 8020 NULL
 +aux3_show_8025 aux3_show 0 8025 NULL
 +cifs_sync_write_8031 cifs_sync_write 0 8031 NULL nohasharray
 +snd_seq_oss_synth_load_patch_8031 snd_seq_oss_synth_load_patch 0 8031 &cifs_sync_write_8031
 +ath10k_vdev_start_restart_8033 ath10k_vdev_start_restart 0 8033 NULL
-+fuse_copy_fill_8034 fuse_copy_fill 0 8034 NULL
++fuse_copy_fill_8034 fuse_copy_fill 0 8034 NULL nohasharray
++snd_hdac_bus_exec_verb_8034 snd_hdac_bus_exec_verb 0 8034 &fuse_copy_fill_8034
 +led_set_flash_brightness_8039 led_set_flash_brightness 0 8039 NULL
 +bma180_show_scale_avail_8040 bma180_show_scale_avail 0 8040 NULL nohasharray
 +copy_gr_arg_normal_8040 copy_gr_arg_normal 0 8040 &bma180_show_scale_avail_8040
@@ -129532,6 +136416,7 @@ index 0000000..19e2901
 +qla4xxx_post_ping_evt_work_8074 qla4xxx_post_ping_evt_work 4 8074 &alloc_targets_8074 nohasharray
 +current_has_perm_8074 current_has_perm 0 8074 &qla4xxx_post_ping_evt_work_8074 nohasharray
 +reiserfs_setattr_8074 reiserfs_setattr 0 8074 &current_has_perm_8074
++gfs2_quota_lock_check_8075 gfs2_quota_lock_check 0 8075 NULL
 +new_id_show_8076 new_id_show 0 8076 NULL nohasharray
 +command_setcompressiontarget_8076 command_setcompressiontarget 0 8076 &new_id_show_8076
 +strict_show_8078 strict_show 0 8078 NULL
@@ -129543,6 +136428,7 @@ index 0000000..19e2901
 +ext2_commit_chunk_8097 ext2_commit_chunk 3 8097 NULL
 +ds2781_write_8099 ds2781_write 4-3-0 8099 NULL
 +input_dev_show_cap_msc_8102 input_dev_show_cap_msc 0 8102 NULL
++vmbus_sendpacket_pagebuffer_ctl_8103 vmbus_sendpacket_pagebuffer_ctl 0 8103 NULL
 +csrow_ue_count_show_8104 csrow_ue_count_show 0 8104 NULL
 +ax88179_read_cmd_8105 ax88179_read_cmd 5 8105 NULL
 +show_bpdu_guard_8110 show_bpdu_guard 0 8110 NULL
@@ -129585,6 +136471,7 @@ index 0000000..19e2901
 +ore_truncate_8181 ore_truncate 0 8181 NULL nohasharray
 +mlx4_en_activate_tx_ring_8181 mlx4_en_activate_tx_ring 0 8181 &ore_truncate_8181
 +show_iface_max_burst_len_8182 show_iface_max_burst_len 0 8182 NULL
++hci_sock_recvmsg_8184 hci_sock_recvmsg 3 8184 NULL
 +lp3943_update_bits_8185 lp3943_update_bits 0 8185 NULL
 +ieee80211_if_fmt_dot11MeshHoldingTimeout_8187 ieee80211_if_fmt_dot11MeshHoldingTimeout 3 8187 NULL
 +write_classid_8189 write_classid 0 8189 NULL
@@ -129645,6 +136532,7 @@ index 0000000..19e2901
 +sel_make_policycap_8346 sel_make_policycap 0 8346 NULL
 +ieee80211_if_fmt_ht_opmode_8347 ieee80211_if_fmt_ht_opmode 3 8347 NULL
 +target_core_dev_pr_show_attr_res_type_8349 target_core_dev_pr_show_attr_res_type 0 8349 NULL
++sync_request_8350 sync_request 2 8350 NULL
 +nfs4_lookup_root_sec_8353 nfs4_lookup_root_sec 0 8353 NULL
 +prop_compression_apply_8354 prop_compression_apply 0 8354 NULL nohasharray
 +open_candev_8354 open_candev 0 8354 &prop_compression_apply_8354
@@ -129678,7 +136566,8 @@ index 0000000..19e2901
 +roccat_common2_sysfs_read_8431 roccat_common2_sysfs_read 6-0 8431 NULL
 +capability_set_8433 capability_set 0-4 8433 NULL
 +snd_usb_ctl_msg_8436 snd_usb_ctl_msg 8-0 8436 NULL
-+irq_create_mapping_8437 irq_create_mapping 0-2 8437 NULL
++irq_create_mapping_8437 irq_create_mapping 0-2 8437 NULL nohasharray
++nfs_sync_inode_8437 nfs_sync_inode 0 8437 &irq_create_mapping_8437
 +sk_stream_wait_memory_8438 sk_stream_wait_memory 0 8438 NULL
 +generic_bin_search_8440 generic_bin_search 0 8440 NULL
 +get_b_bus_req_8443 get_b_bus_req 0 8443 NULL
@@ -129708,6 +136597,7 @@ index 0000000..19e2901
 +snd_timer_open_8492 snd_timer_open 0 8492 NULL
 +rpcauth_key_timeout_notify_8494 rpcauth_key_timeout_notify 0 8494 NULL
 +in0_input_show_8498 in0_input_show 0 8498 NULL
++i40e_init_msix_8499 i40e_init_msix 0 8499 NULL
 +fore200e_chunk_alloc_8501 fore200e_chunk_alloc 4-3 8501 NULL
 +ecryptfs_calculate_md5_8504 ecryptfs_calculate_md5 0 8504 NULL
 +dev_config_8506 dev_config 3 8506 NULL
@@ -129760,6 +136650,7 @@ index 0000000..19e2901
 +__dev_set_allmulti_8622 __dev_set_allmulti 0 8622 NULL
 +xfs_qm_dqattach_locked_8625 xfs_qm_dqattach_locked 0 8625 NULL
 +cifs_negotiate_8626 cifs_negotiate 0 8626 NULL
++iwl_pcie_load_cpu_sections_8000_8627 iwl_pcie_load_cpu_sections_8000 0 8627 NULL
 +it821x_firmware_command_8628 it821x_firmware_command 3 8628 NULL
 +scsi_dma_map_8632 scsi_dma_map 0 8632 NULL
 +sh_vou_buf_prepare_8633 sh_vou_buf_prepare 0 8633 NULL
@@ -129838,6 +136729,7 @@ index 0000000..19e2901
 +show_hardware_8789 show_hardware 0 8789 NULL
 +edd_show_sectors_8794 edd_show_sectors 0 8794 NULL
 +__bitmap_weight_8796 __bitmap_weight 0 8796 NULL
++nct7904_read_reg16_8798 nct7904_read_reg16 0 8798 NULL
 +ip_vs_remote_request6_8805 ip_vs_remote_request6 0 8805 NULL
 +gfs2_glock_nq_8808 gfs2_glock_nq 0 8808 NULL nohasharray
 +prod_id2_show_8808 prod_id2_show 0 8808 &gfs2_glock_nq_8808 nohasharray
@@ -129849,7 +136741,8 @@ index 0000000..19e2901
 +bd2802_store_reg0x06_8815 bd2802_store_reg0x06 0-4 8815 NULL
 +show_counter_rx_dwords_8819 show_counter_rx_dwords 0 8819 NULL
 +metronomefb_write_8823 metronomefb_write 3 8823 NULL
-+SyS_llistxattr_8824 SyS_llistxattr 3 8824 NULL
++SyS_llistxattr_8824 SyS_llistxattr 3 8824 NULL nohasharray
++hfsplus_direct_IO_8824 hfsplus_direct_IO 3 8824 &SyS_llistxattr_8824
 +nilfs_segctor_reset_segment_buffer_8825 nilfs_segctor_reset_segment_buffer 0 8825 NULL
 +extent_read_full_page_8826 extent_read_full_page 0 8826 NULL
 +ll_xattr_cache_get_8829 ll_xattr_cache_get 0 8829 NULL
@@ -129858,7 +136751,8 @@ index 0000000..19e2901
 +new_files_jdata_store_8832 new_files_jdata_store 0-3 8832 &mmc_wait_for_cmd_8832
 +get_queue_depth_8833 get_queue_depth 0 8833 NULL nohasharray
 +icmpv6_manip_pkt_8833 icmpv6_manip_pkt 4 8833 &get_queue_depth_8833
-+dvb_ringbuffer_pkt_next_8834 dvb_ringbuffer_pkt_next 0-2 8834 NULL
++dvb_ringbuffer_pkt_next_8834 dvb_ringbuffer_pkt_next 0-2 8834 NULL nohasharray
++mgmt_generic_event_8834 mgmt_generic_event 4 8834 &dvb_ringbuffer_pkt_next_8834
 +usb_ep_queue_8839 usb_ep_queue 0 8839 NULL nohasharray
 +nilfs_mdt_get_block_8839 nilfs_mdt_get_block 0 8839 &usb_ep_queue_8839
 +policydb_bounds_sanity_check_8846 policydb_bounds_sanity_check 0 8846 NULL
@@ -129968,7 +136862,8 @@ index 0000000..19e2901
 +sta_tx_latency_stat_header_9050 sta_tx_latency_stat_header 0-3-4 9050 NULL
 +clk_ctl_store_9053 clk_ctl_store 0-4 9053 NULL
 +__uncore_xbr_mm_cfg_show_9057 __uncore_xbr_mm_cfg_show 0 9057 NULL
-+ep_queue_9060 ep_queue 0 9060 NULL
++ep_queue_9060 ep_queue 0 9060 NULL nohasharray
++rhashtable_lookup_insert_key_9060 rhashtable_lookup_insert_key 0 9060 &ep_queue_9060
 +snd_emu10k1_synth_copy_from_user_9061 snd_emu10k1_synth_copy_from_user 5-3 9061 NULL
 +snd_gus_dram_peek_9062 snd_gus_dram_peek 4 9062 NULL nohasharray
 +fnic_show_link_state_9062 fnic_show_link_state 0 9062 &snd_gus_dram_peek_9062
@@ -130011,7 +136906,8 @@ index 0000000..19e2901
 +ext4_da_write_inline_data_end_9179 ext4_da_write_inline_data_end 4-0 9179 NULL nohasharray
 +w1_ds2780_eeprom_cmd_9179 w1_ds2780_eeprom_cmd 0 9179 &ext4_da_write_inline_data_end_9179
 +isr_irqs_read_9181 isr_irqs_read 3-0 9181 NULL
-+count_leading_zeros_9183 count_leading_zeros 0 9183 NULL
++count_leading_zeros_9183 count_leading_zeros 0 9183 NULL nohasharray
++bitmap_storage_alloc_9183 bitmap_storage_alloc 2-0 9183 &count_leading_zeros_9183
 +show_counter_ib_link_downeds_9184 show_counter_ib_link_downeds 0 9184 NULL
 +ax25_bind_9185 ax25_bind 0 9185 NULL
 +xfs_btree_rshift_9187 xfs_btree_rshift 0 9187 NULL
@@ -130044,6 +136940,7 @@ index 0000000..19e2901
 +sctp_getsockopt_delayed_ack_9232 sctp_getsockopt_delayed_ack 2 9232 NULL nohasharray
 +core_alua_show_preferred_bit_9232 core_alua_show_preferred_bit 0 9232 &sctp_getsockopt_delayed_ack_9232
 +edac_dev_ctl_info_store_9233 edac_dev_ctl_info_store 0-4 9233 NULL
++l2tp_ip_sendmsg_9235 l2tp_ip_sendmsg 3 9235 NULL
 +tps6507x_pmic_reg_read_9236 tps6507x_pmic_reg_read 0 9236 NULL
 +__bnx2fc_enable_9238 __bnx2fc_enable 0 9238 NULL
 +ext4_mark_iloc_dirty_9239 ext4_mark_iloc_dirty 0 9239 NULL
@@ -130129,6 +137026,7 @@ index 0000000..19e2901
 +i2c_sysfs_new_device_9417 i2c_sysfs_new_device 0-4 9417 NULL
 +nf_nat_sip_expect_9418 nf_nat_sip_expect 8 9418 NULL nohasharray
 +store_lmc_9418 store_lmc 0-4 9418 &nf_nat_sip_expect_9418
++ocfs2_direct_IO_zero_extend_9424 ocfs2_direct_IO_zero_extend 0-4 9424 NULL
 +show_ipv6_iface_router_state_9425 show_ipv6_iface_router_state 0 9425 NULL nohasharray
 +prism2_aux_dump_proc_no_read_9425 prism2_aux_dump_proc_no_read 0-3 9425 &show_ipv6_iface_router_state_9425
 +sync_inode_9429 sync_inode 0 9429 NULL
@@ -130179,6 +137077,7 @@ index 0000000..19e2901
 +match_format_9516 match_format 0 9516 &disk_events_show_9516
 +do_strip_9517 do_strip 0 9517 NULL
 +target_core_alua_tg_pt_gp_show_attr_preferred_9519 target_core_alua_tg_pt_gp_show_attr_preferred 0 9519 NULL
++common_rfc4106_set_key_9520 common_rfc4106_set_key 3 9520 NULL
 +iwl_dbgfs_fw_dbg_conf_read_9522 iwl_dbgfs_fw_dbg_conf_read 3-0 9522 NULL
 +roccat_common2_sysfs_read_keys_macro_9524 roccat_common2_sysfs_read_keys_macro 0-5-6 9524 NULL
 +log_buf_len_show_9525 log_buf_len_show 0 9525 NULL
@@ -130263,6 +137162,7 @@ index 0000000..19e2901
 +calgary_map_sg_9680 calgary_map_sg 0-3 9680 NULL
 +urbnum_show_9682 urbnum_show 0 9682 NULL nohasharray
 +wl1271_init_templates_config_9682 wl1271_init_templates_config 0 9682 &urbnum_show_9682
++f81232_set_register_9683 f81232_set_register 0 9683 NULL
 +nilfs_btree_lookup_9685 nilfs_btree_lookup 0 9685 NULL
 +show_in0_9686 show_in0 0 9686 NULL
 +__erst_read_from_storage_9690 __erst_read_from_storage 0 9690 NULL
@@ -130281,6 +137181,7 @@ index 0000000..19e2901
 +parse_uac2_sample_rate_range_9718 parse_uac2_sample_rate_range 0 9718 NULL
 +sstfb_set_par_9719 sstfb_set_par 0 9719 NULL
 +SYSC_ppoll_9721 SYSC_ppoll 2 9721 NULL
++sha512_base_finish_9729 sha512_base_finish 0 9729 NULL
 +t4_wr_mbox_9732 t4_wr_mbox 0 9732 NULL
 +cyapa_update_suspend_scanrate_9734 cyapa_update_suspend_scanrate 0-4 9734 NULL
 +show_cmd_per_lun_9735 show_cmd_per_lun 0 9735 NULL nohasharray
@@ -130332,12 +137233,15 @@ index 0000000..19e2901
 +rtl92ce_hw_init_9858 rtl92ce_hw_init 0 9858 NULL
 +garmin_write_room_9859 garmin_write_room 0 9859 NULL
 +iwl_poll_prph_bit_9861 iwl_poll_prph_bit 0 9861 NULL
-+bfad_im_model_show_9862 bfad_im_model_show 0 9862 NULL
++bfad_im_model_show_9862 bfad_im_model_show 0 9862 NULL nohasharray
++sha256_ssse3_finup_9862 sha256_ssse3_finup 0 9862 &bfad_im_model_show_9862
 +pmcraid_alloc_sglist_9864 pmcraid_alloc_sglist 1 9864 NULL
++pep_recvmsg_9866 pep_recvmsg 3 9866 NULL
 +task_can_attach_9867 task_can_attach 0 9867 NULL
 +f1x_translate_sysaddr_to_cs_9868 f1x_translate_sysaddr_to_cs 2 9868 NULL
 +wil_read_file_ioblob_9878 wil_read_file_ioblob 3-0 9878 NULL nohasharray
 +dir_commit_chunk_9878 dir_commit_chunk 3 9878 &wil_read_file_ioblob_9878
++ping_v4_sendmsg_9883 ping_v4_sendmsg 3 9883 NULL
 +fuse_dev_read_9884 fuse_dev_read 0 9884 NULL
 +wl1271_cmd_radio_parms_9886 wl1271_cmd_radio_parms 0 9886 NULL
 +show_sensor_9889 show_sensor 0 9889 NULL
@@ -130370,7 +137274,8 @@ index 0000000..19e2901
 +store_9970 store 0 9970 &vivid_loop_out_s_ctrl_9970
 +btrfs_add_link_9973 btrfs_add_link 5 9973 NULL nohasharray
 +show_fcstat_rx_frames_9973 show_fcstat_rx_frames 0 9973 &btrfs_add_link_9973
-+ath6kl_usb_submit_ctrl_out_9978 ath6kl_usb_submit_ctrl_out 6 9978 NULL
++ath6kl_usb_submit_ctrl_out_9978 ath6kl_usb_submit_ctrl_out 6 9978 NULL nohasharray
++compat_import_iovec_9978 compat_import_iovec 3-0 9978 &ath6kl_usb_submit_ctrl_out_9978
 +il4965_dump_fh_9979 il4965_dump_fh 0 9979 NULL
 +twl6040_power_up_manual_9982 twl6040_power_up_manual 0 9982 NULL nohasharray
 +sscanf_9982 sscanf 0 9982 &twl6040_power_up_manual_9982 nohasharray
@@ -130436,7 +137341,9 @@ index 0000000..19e2901
 +ufs_bitmap_search_10105 ufs_bitmap_search 0-3 10105 NULL
 +get_elem_size_10110 get_elem_size 0-2 10110 NULL nohasharray
 +dynamic_ps_timeout_read_10110 dynamic_ps_timeout_read 3-0 10110 &get_elem_size_10110
-+gfs2_meta_read_10112 gfs2_meta_read 0 10112 NULL
++rocker_desc_err_10111 rocker_desc_err 0 10111 NULL
++gfs2_meta_read_10112 gfs2_meta_read 0 10112 NULL nohasharray
++link_schedule_user_10112 link_schedule_user 0 10112 &gfs2_meta_read_10112
 +host_control_smi_type_store_10118 host_control_smi_type_store 0-4 10118 NULL
 +snd_vortex_pcm_trigger_10123 snd_vortex_pcm_trigger 0 10123 NULL
 +wl1271_acx_host_if_cfg_bitmap_10124 wl1271_acx_host_if_cfg_bitmap 0 10124 NULL
@@ -130608,6 +137515,7 @@ index 0000000..19e2901
 +get_key_10538 get_key 0 10538 NULL
 +sas_set_phy_speed_10540 sas_set_phy_speed 0 10540 NULL
 +SYSC_read_10545 SYSC_read 3 10545 NULL
++crypto_sha512_finup_10555 crypto_sha512_finup 0 10555 NULL
 +pm_qos_no_power_off_show_10556 pm_qos_no_power_off_show 0 10556 NULL
 +ivtv_start_10559 ivtv_start 0 10559 NULL
 +ipr_read_dump_10560 ipr_read_dump 0-5-6 10560 NULL
@@ -130640,6 +137548,7 @@ index 0000000..19e2901
 +cap_mask_show_10632 cap_mask_show 0 10632 &alloc_coherent_10632 nohasharray
 +il4965_send_tx_power_10632 il4965_send_tx_power 0 10632 &cap_mask_show_10632
 +fq_alloc_node_10633 fq_alloc_node 1 10633 NULL
++sha256_base_do_update_10634 sha256_base_do_update 0 10634 NULL
 +ov9650_set_auto_gain_10638 ov9650_set_auto_gain 0 10638 NULL nohasharray
 +proc_sys_write_10638 proc_sys_write 0-3 10638 &ov9650_set_auto_gain_10638
 +check_transition_10639 check_transition 0 10639 NULL
@@ -130728,6 +137637,7 @@ index 0000000..19e2901
 +fuse_conn_max_background_read_10855 fuse_conn_max_background_read 3-0 10855 NULL
 +snd_card_asihpi_playback_ioctl_10857 snd_card_asihpi_playback_ioctl 0 10857 NULL
 +usnic_ib_show_qp_per_vf_10858 usnic_ib_show_qp_per_vf 0 10858 NULL
++read_edid_block_10860 read_edid_block 4 10860 NULL
 +btrfs_permission_10861 btrfs_permission 0 10861 NULL
 +ol_chunk_blocks_10864 ol_chunk_blocks 0 10864 NULL
 +trivial_online_10866 trivial_online 0 10866 NULL
@@ -130804,7 +137714,8 @@ index 0000000..19e2901
 +ixgbe_disable_sriov_11037 ixgbe_disable_sriov 0 11037 &mb_find_next_bit_11037
 +shmem_listxattr_11040 shmem_listxattr 0-3 11040 NULL
 +mask_and_set_register_11042 mask_and_set_register 0 11042 NULL
-+sys_sendfile_11048 sys_sendfile 4 11048 NULL
++sys_sendfile_11048 sys_sendfile 4 11048 NULL nohasharray
++rawsock_recvmsg_11048 rawsock_recvmsg 3 11048 &sys_sendfile_11048
 +tda10048_writeregbulk_11050 tda10048_writeregbulk 4 11050 NULL
 +char2uni_11054 char2uni 0 11054 NULL
 +srpt_tpg_attrib_store_srp_sq_size_11059 srpt_tpg_attrib_store_srp_sq_size 0-3 11059 NULL
@@ -131173,7 +138084,8 @@ index 0000000..19e2901
 +pc87413_notify_sys_11917 pc87413_notify_sys 0 11917 NULL
 +_rbd_dev_v2_snap_features_11922 _rbd_dev_v2_snap_features 0 11922 NULL
 +fs_devrw_entry_11924 fs_devrw_entry 3-0 11924 NULL
-+SMBNTencrypt_11929 SMBNTencrypt 0 11929 NULL
++SMBNTencrypt_11929 SMBNTencrypt 0 11929 NULL nohasharray
++bitmap_remap_11929 bitmap_remap 5 11929 &SMBNTencrypt_11929
 +show_limit_11932 show_limit 0 11932 NULL
 +nf_nat_ipv6_local_fn_11937 nf_nat_ipv6_local_fn 0 11937 NULL nohasharray
 +max1027_debugfs_reg_access_11937 max1027_debugfs_reg_access 0 11937 &nf_nat_ipv6_local_fn_11937
@@ -131222,6 +138134,7 @@ index 0000000..19e2901
 +audit_sockaddr_12030 audit_sockaddr 0 12030 NULL
 +s2io_card_up_12032 s2io_card_up 0 12032 NULL
 +notifier_call_chain_12036 notifier_call_chain 0 12036 NULL
++vcc_sendmsg_12038 vcc_sendmsg 3 12038 NULL
 +device_offline_12042 device_offline 0 12042 NULL
 +ftdi_elan_total_command_size_12045 ftdi_elan_total_command_size 0 12045 NULL
 +bdx_tx_init_12046 bdx_tx_init 0 12046 NULL
@@ -131412,6 +138325,7 @@ index 0000000..19e2901
 +e1000e_get_sset_count_12456 e1000e_get_sset_count 0 12456 NULL
 +nvkm_engine_create__12458 nvkm_engine_create_ 7 12458 NULL
 +deadline_read_expire_store_12459 deadline_read_expire_store 0-3 12459 NULL
++llcp_sock_recvmsg_12460 llcp_sock_recvmsg 3 12460 NULL
 +rbd_dev_v2_header_info_12466 rbd_dev_v2_header_info 0 12466 NULL
 +defrag_show_12468 defrag_show 0 12468 NULL nohasharray
 +mei_write_message_12468 mei_write_message 0 12468 &defrag_show_12468
@@ -131503,7 +138417,8 @@ index 0000000..19e2901
 +wl18xx_acx_ap_sleep_12628 wl18xx_acx_ap_sleep 0 12628 NULL
 +pwr_rcvd_awake_bcns_cnt_read_12632 pwr_rcvd_awake_bcns_cnt_read 3-0 12632 NULL
 +store_blank_12636 store_blank 0-4 12636 NULL
-+pn_sendmsg_12640 pn_sendmsg 4-0 12640 NULL
++pn_sendmsg_12640 pn_sendmsg 4-0 12640 NULL nohasharray
++nr_sendmsg_12640 nr_sendmsg 3 12640 &pn_sendmsg_12640
 +dwc3_link_state_write_12641 dwc3_link_state_write 3-0 12641 NULL
 +nr_recvmsg_12649 nr_recvmsg 4-0 12649 NULL
 +wb_create_12651 wb_create 1 12651 NULL
@@ -131617,6 +138532,7 @@ index 0000000..19e2901
 +wsm_cmd_send_12901 wsm_cmd_send 0 12901 NULL
 +_regmap_raw_read_12902 _regmap_raw_read 0 12902 NULL nohasharray
 +request_12902 request 0 12902 &_regmap_raw_read_12902
++ocfs2_hamming_encode_block_12904 ocfs2_hamming_encode_block 2 12904 NULL
 +sha512_ssse3_export_12905 sha512_ssse3_export 0 12905 NULL
 +elan_write_fw_block_12906 elan_write_fw_block 0 12906 NULL
 +get_virtual_node_size_12908 get_virtual_node_size 0 12908 NULL
@@ -131647,6 +138563,7 @@ index 0000000..19e2901
 +lpfc_link_speed_show_12965 lpfc_link_speed_show 0 12965 NULL nohasharray
 +snd_seq_prioq_cell_in_12965 snd_seq_prioq_cell_in 0 12965 &lpfc_link_speed_show_12965
 +start_khugepaged_12971 start_khugepaged 0 12971 NULL
++__rhashtable_insert_fast_12974 __rhashtable_insert_fast 0 12974 NULL
 +iwl_mvm_read_external_nvm_12975 iwl_mvm_read_external_nvm 0 12975 NULL
 +klp_enable_object_12977 klp_enable_object 0 12977 NULL
 +broadsheet_setup_plls_12983 broadsheet_setup_plls 0 12983 NULL
@@ -131814,6 +138731,7 @@ index 0000000..19e2901
 +iso_sched_alloc_13377 iso_sched_alloc 1 13377 &wep_key_not_found_read_13377
 +iio_buffer_read_first_n_outer_13378 iio_buffer_read_first_n_outer 0-3 13378 NULL
 +sctp_wait_for_connect_13379 sctp_wait_for_connect 0 13379 NULL
++bt_sock_recvmsg_13380 bt_sock_recvmsg 3 13380 NULL
 +zl10036_set_params_13381 zl10036_set_params 0 13381 NULL
 +activity_write_13388 activity_write 0-6-5 13388 NULL nohasharray
 +lov_mds_md_size_13388 lov_mds_md_size 0-1 13388 &activity_write_13388
@@ -131832,7 +138750,8 @@ index 0000000..19e2901
 +compat_SyS_sendfile64_13420 compat_SyS_sendfile64 4 13420 NULL
 +show_multicast_fast_leave_13427 show_multicast_fast_leave 0 13427 NULL
 +bq2415x_exec_command_13430 bq2415x_exec_command 0 13430 NULL
-+smb_sendv_13437 smb_sendv 0 13437 NULL
++smb_sendv_13437 smb_sendv 0 13437 NULL nohasharray
++__tipc_send_stream_13437 __tipc_send_stream 3 13437 &smb_sendv_13437
 +mwifiex_get_bss_info_13439 mwifiex_get_bss_info 0 13439 NULL nohasharray
 +request_firmware_nowait_13439 request_firmware_nowait 0 13439 &mwifiex_get_bss_info_13439
 +sctp_setsockopt_peer_primary_addr_13440 sctp_setsockopt_peer_primary_addr 3-0 13440 NULL
@@ -131923,7 +138842,8 @@ index 0000000..19e2901
 +swap_cgroup_swapon_13614 swap_cgroup_swapon 2 13614 NULL
 +wm8994_bulk_write_13615 wm8994_bulk_write 2-3 13615 NULL nohasharray
 +ov7670_write_smbus_13615 ov7670_write_smbus 0 13615 &wm8994_bulk_write_13615
-+__ntfs_grab_cache_pages_13617 __ntfs_grab_cache_pages 0 13617 NULL
++__ntfs_grab_cache_pages_13617 __ntfs_grab_cache_pages 0 13617 NULL nohasharray
++nr_recvmsg_13617 nr_recvmsg 3 13617 &__ntfs_grab_cache_pages_13617
 +pmcraid_get_minor_13619 pmcraid_get_minor 0 13619 NULL
 +atl1_get_regs_len_13624 atl1_get_regs_len 0 13624 NULL
 +iio_device_add_event_sysfs_13627 iio_device_add_event_sysfs 0 13627 NULL
@@ -131950,6 +138870,7 @@ index 0000000..19e2901
 +nes_store_idx_addr_13673 nes_store_idx_addr 0-3 13673 NULL
 +show_ipOutForwDatagrams_13674 show_ipOutForwDatagrams 0 13674 NULL
 +omap_hsmmc_show_slot_name_13675 omap_hsmmc_show_slot_name 0 13675 NULL
++i915_gem_obj_ggtt_offset_view_13680 i915_gem_obj_ggtt_offset_view 0 13680 NULL
 +dvb_usb_generic_rw_13681 dvb_usb_generic_rw 0 13681 NULL nohasharray
 +acpi_suspend_lowlevel_13681 acpi_suspend_lowlevel 0 13681 &dvb_usb_generic_rw_13681
 +ext3_xattr_list_entries_13682 ext3_xattr_list_entries 0 13682 NULL nohasharray
@@ -131964,6 +138885,7 @@ index 0000000..19e2901
 +gadget_dev_desc_bcdUSB_store_13691 gadget_dev_desc_bcdUSB_store 0-3 13691 &check_intr_schedule_13691 nohasharray
 +uevent_helper_store_13691 uevent_helper_store 0-4 13691 &gadget_dev_desc_bcdUSB_store_13691
 +usb_get_string_13693 usb_get_string 0 13693 NULL
++tipc_send_stream_13696 tipc_send_stream 3 13696 NULL
 +patch_vt2002P_13697 patch_vt2002P 0 13697 NULL
 +fw_iso_buffer_alloc_13704 fw_iso_buffer_alloc 2 13704 NULL nohasharray
 +ntc_show_name_13704 ntc_show_name 0 13704 &fw_iso_buffer_alloc_13704 nohasharray
@@ -131983,6 +138905,7 @@ index 0000000..19e2901
 +dsbr100_setfreq_13739 dsbr100_setfreq 0 13739 &cfg80211_testmode_alloc_event_skb_13739
 +ql_wait_reg_rdy_13741 ql_wait_reg_rdy 0 13741 NULL
 +audit_unpack_string_13748 audit_unpack_string 3 13748 NULL
++snd_hdac_device_register_13749 snd_hdac_device_register 0 13749 NULL
 +ufs_dtog_13750 ufs_dtog 0-2 13750 NULL
 +lbmLogInit_13756 lbmLogInit 0 13756 NULL
 +netprio_set_prio_13758 netprio_set_prio 0 13758 NULL
@@ -131993,6 +138916,7 @@ index 0000000..19e2901
 +fb_sys_read_13778 fb_sys_read 3 13778 NULL
 +edac_device_ctl_panic_on_ue_show_13780 edac_device_ctl_panic_on_ue_show 0 13780 NULL
 +qib_setup_sdma_13784 qib_setup_sdma 0 13784 NULL
++l2tp_ip_recvmsg_13785 l2tp_ip_recvmsg 3 13785 NULL
 +roccat_common2_sysfs_read_sensor_13788 roccat_common2_sysfs_read_sensor 0-5-6 13788 NULL
 +sysfs_do_cmd_13790 sysfs_do_cmd 0-4 13790 NULL
 +ath6kl_mgmt_powersave_ap_13791 ath6kl_mgmt_powersave_ap 6 13791 NULL
@@ -132000,6 +138924,7 @@ index 0000000..19e2901
 +migrate_pages_13797 migrate_pages 0 13797 NULL
 +cpu_down_13801 cpu_down 0 13801 NULL
 +fbcon_unbind_13802 fbcon_unbind 0 13802 NULL
++mwifiex_sdio_card_to_host_mp_aggr_13806 mwifiex_sdio_card_to_host_mp_aggr 2 13806 NULL
 +cpu_callback_13812 cpu_callback 0 13812 NULL nohasharray
 +e100_rx_alloc_list_13812 e100_rx_alloc_list 0 13812 &cpu_callback_13812
 +random_read_13815 random_read 3-0 13815 NULL nohasharray
@@ -132017,7 +138942,8 @@ index 0000000..19e2901
 +queue_bulk_on_old_endpoint_13828 queue_bulk_on_old_endpoint 0 13828 NULL nohasharray
 +__uncore_filter_opc2_show_13828 __uncore_filter_opc2_show 0 13828 &queue_bulk_on_old_endpoint_13828
 +netxen_sysfs_read_mem_13830 netxen_sysfs_read_mem 0-6-5 13830 NULL
-+qce_ahash_hmac_setkey_13837 qce_ahash_hmac_setkey 3 13837 NULL
++qce_ahash_hmac_setkey_13837 qce_ahash_hmac_setkey 3 13837 NULL nohasharray
++bucket_table_alloc_13837 bucket_table_alloc 2 13837 &qce_ahash_hmac_setkey_13837
 +ds1685_rtc_sysfs_serial_show_13839 ds1685_rtc_sysfs_serial_show 0 13839 NULL
 +hwrng_attr_available_show_13843 hwrng_attr_available_show 0 13843 NULL
 +acknak_13844 acknak 0 13844 NULL nohasharray
@@ -132029,6 +138955,7 @@ index 0000000..19e2901
 +lm95234_read_temp_13850 lm95234_read_temp 0 13850 NULL
 +evdev_ioctl_compat_13851 evdev_ioctl_compat 2 13851 NULL
 +c2port_poll_out_ready_13852 c2port_poll_out_ready 0 13852 NULL
++visorchipset_file_init_13861 visorchipset_file_init 1 13861 NULL
 +vendor_name_store_13862 vendor_name_store 0-4 13862 NULL
 +ath10k_wmi_vdev_install_key_13866 ath10k_wmi_vdev_install_key 0 13866 NULL
 +lmc_open_13868 lmc_open 0 13868 NULL
@@ -132130,7 +139057,8 @@ index 0000000..19e2901
 +pci_conf1_read_14075 pci_conf1_read 0 14075 NULL
 +lov_stripeoffset_seq_write_14078 lov_stripeoffset_seq_write 3 14078 NULL
 +_cx88_stop_audio_dma_14079 _cx88_stop_audio_dma 0 14079 NULL
-+w1_master_attribute_store_pullup_14080 w1_master_attribute_store_pullup 0-4 14080 NULL
++w1_master_attribute_store_pullup_14080 w1_master_attribute_store_pullup 0-4 14080 NULL nohasharray
++dgram_recvmsg_14080 dgram_recvmsg 3 14080 &w1_master_attribute_store_pullup_14080
 +_nfs4_proc_readdir_14082 _nfs4_proc_readdir 0 14082 NULL
 +cond_read_av_list_14085 cond_read_av_list 0 14085 NULL
 +store_sched2_14094 store_sched2 4-0 14094 NULL
@@ -132149,6 +139077,7 @@ index 0000000..19e2901
 +wl12xx_set_power_on_14117 wl12xx_set_power_on 0 14117 NULL
 +rsc_parse_14119 rsc_parse 0 14119 NULL nohasharray
 +enic_set_mac_addr_14119 enic_set_mac_addr 0 14119 &rsc_parse_14119
++caif_stream_recvmsg_14125 caif_stream_recvmsg 3 14125 NULL
 +readSuper_14128 readSuper 0 14128 NULL
 +show_deactivate_slack_14129 show_deactivate_slack 0 14129 NULL nohasharray
 +iscsi_conn_get_addr_param_14129 iscsi_conn_get_addr_param 0 14129 &show_deactivate_slack_14129
@@ -132175,6 +139104,7 @@ index 0000000..19e2901
 +ov9650_set_exposure_14176 ov9650_set_exposure 0 14176 NULL nohasharray
 +ixgbevf_write_mbx_vf_14176 ixgbevf_write_mbx_vf 0 14176 &ov9650_set_exposure_14176
 +uhid_dev_input_14180 uhid_dev_input 0 14180 NULL
++nfs_file_direct_write_14181 nfs_file_direct_write 0 14181 NULL
 +datafab_read_data_14186 datafab_read_data 4 14186 NULL
 +show_rf_kill_14187 show_rf_kill 0 14187 NULL
 +__platform_create_bundle_14191 __platform_create_bundle 6-4 14191 NULL
@@ -132203,7 +139133,8 @@ index 0000000..19e2901
 +store_engine2_load_14233 store_engine2_load 4-0 14233 &ieee80211_if_write_uapsd_max_sp_len_14233
 +show_fc_host_maxframe_size_14237 show_fc_host_maxframe_size 0 14237 NULL
 +usbhsh_endpoint_attach_14238 usbhsh_endpoint_attach 0 14238 NULL
-+de_get_regs_len_14241 de_get_regs_len 0 14241 NULL
++de_get_regs_len_14241 de_get_regs_len 0 14241 NULL nohasharray
++sctp_recvmsg_14241 sctp_recvmsg 3 14241 &de_get_regs_len_14241
 +dma_declare_coherent_memory_14244 dma_declare_coherent_memory 2-4 14244 NULL nohasharray
 +__tipc_link_xmit_14244 __tipc_link_xmit 0 14244 &dma_declare_coherent_memory_14244
 +iscsi_tpg_param_store_AuthMethod_14245 iscsi_tpg_param_store_AuthMethod 0-3 14245 NULL
@@ -132427,6 +139358,7 @@ index 0000000..19e2901
 +show_fcstat_fc_no_free_exch_xid_14727 show_fcstat_fc_no_free_exch_xid 0 14727 NULL
 +__blk_end_request_14729 __blk_end_request 3 14729 NULL
 +rh_urb_enqueue_14733 rh_urb_enqueue 0 14733 NULL
++codec_bind_generic_14739 codec_bind_generic 0 14739 NULL
 +raid1_resize_14740 raid1_resize 2-0 14740 NULL
 +show_conn_param_ISCSI_PARAM_IPV6_TC_14747 show_conn_param_ISCSI_PARAM_IPV6_TC 0 14747 NULL
 +sh_mobile_ceu_get_formats_14748 sh_mobile_ceu_get_formats 0 14748 NULL
@@ -132471,6 +139403,7 @@ index 0000000..19e2901
 +max_power_show_14836 max_power_show 0 14836 NULL
 +name_len_14843 name_len 0-2 14843 NULL
 +subsystem_vendor_show_14845 subsystem_vendor_show 0 14845 NULL
++dccp_sendmsg_14850 dccp_sendmsg 3 14850 NULL
 +mrp_attr_create_14853 mrp_attr_create 3 14853 NULL
 +__krealloc_14857 __krealloc 2 14857 NULL nohasharray
 +lcd_write_14857 lcd_write 3-0 14857 &__krealloc_14857
@@ -132611,6 +139544,7 @@ index 0000000..19e2901
 +ocontext_read_15178 ocontext_read 0 15178 NULL
 +t4_sge_alloc_ofld_txq_15179 t4_sge_alloc_ofld_txq 0 15179 NULL
 +SYSC_setdomainname_15180 SYSC_setdomainname 2 15180 NULL
++st33zp24_i2c_send_15186 st33zp24_i2c_send 4 15186 NULL
 +pda_power_get_property_15191 pda_power_get_property 0 15191 NULL
 +iscsi_create_endpoint_15193 iscsi_create_endpoint 1 15193 NULL nohasharray
 +radeonfb_check_var_15193 radeonfb_check_var 0 15193 &iscsi_create_endpoint_15193
@@ -132701,6 +139635,7 @@ index 0000000..19e2901
 +mlx4_cmd_wait_15399 mlx4_cmd_wait 0 15399 NULL
 +sm501fb_check_var_15402 sm501fb_check_var 0 15402 NULL
 +pipeline_csum_to_rx_xfer_swi_read_15403 pipeline_csum_to_rx_xfer_swi_read 3-0 15403 NULL
++mei_amthif_run_next_cmd_15405 mei_amthif_run_next_cmd 0 15405 NULL
 +get_modalias_15406 get_modalias 2-0 15406 NULL nohasharray
 +nfs_setattr_15406 nfs_setattr 0 15406 &get_modalias_15406
 +qlcnic_83xx_get_cap_size_15413 qlcnic_83xx_get_cap_size 0 15413 NULL
@@ -132731,7 +139666,8 @@ index 0000000..19e2901
 +__mutex_lock_killable_slowpath_15472 __mutex_lock_killable_slowpath 0 15472 &mtd_flags_show_15472
 +snd_m3_pcm_stop_15476 snd_m3_pcm_stop 0 15476 NULL nohasharray
 +snd_seq_ioctl_query_subs_15476 snd_seq_ioctl_query_subs 0 15476 &snd_m3_pcm_stop_15476
-+ath9k_get_stats_15482 ath9k_get_stats 0 15482 NULL
++ath9k_get_stats_15482 ath9k_get_stats 0 15482 NULL nohasharray
++rtl_download_firmware_15482 rtl_download_firmware 3 15482 &ath9k_get_stats_15482
 +i2c_readbytes_15483 i2c_readbytes 0 15483 NULL
 +cp2112_read_15484 cp2112_read 0 15484 NULL nohasharray
 +target_stat_scsi_dev_attr_show_15484 target_stat_scsi_dev_attr_show 0 15484 &cp2112_read_15484
@@ -132743,8 +139679,10 @@ index 0000000..19e2901
 +vringh_iov_pull_user_15499 vringh_iov_pull_user 3 15499 NULL
 +iolock_15500 iolock 0 15500 NULL
 +psmouse_attr_set_helper_15505 psmouse_attr_set_helper 0-4 15505 NULL
-+bNumInterfaces_show_15506 bNumInterfaces_show 0 15506 NULL
++bNumInterfaces_show_15506 bNumInterfaces_show 0 15506 NULL nohasharray
++nct7904_read_reg_15506 nct7904_read_reg 0 15506 &bNumInterfaces_show_15506
 +mwl8k_load_fw_image_15508 mwl8k_load_fw_image 0 15508 NULL
++pppol2tp_sendmsg_15516 pppol2tp_sendmsg 3 15516 NULL
 +map_sg_15523 map_sg 0-3 15523 NULL
 +da9052_rtc_read_time_15524 da9052_rtc_read_time 0 15524 NULL
 +store_15525 store 0 15525 NULL
@@ -132769,6 +139707,7 @@ index 0000000..19e2901
 +i801_block_transaction_15562 i801_block_transaction 0 15562 NULL nohasharray
 +create_capture_mixers_15562 create_capture_mixers 0 15562 &i801_block_transaction_15562
 +get_checksum_15564 get_checksum 0 15564 NULL
++acpi_gpio_count_15567 acpi_gpio_count 0 15567 NULL
 +iwl_nvm_read_section_15568 iwl_nvm_read_section 0 15568 NULL
 +_read_user_prot_reg_15571 _read_user_prot_reg 0 15571 NULL
 +persistent_status_15574 persistent_status 4 15574 NULL
@@ -132828,7 +139767,8 @@ index 0000000..19e2901
 +pinctrl_utils_reserve_map_15730 pinctrl_utils_reserve_map 5 15730 NULL nohasharray
 +btrfs_writepage_15730 btrfs_writepage 0 15730 &pinctrl_utils_reserve_map_15730
 +acpi_ex_setup_region_15734 acpi_ex_setup_region 0 15734 NULL
-+ea_alloc_skeleton_15736 ea_alloc_skeleton 0 15736 NULL
++ea_alloc_skeleton_15736 ea_alloc_skeleton 0 15736 NULL nohasharray
++tipc_msg_make_bundle_15736 tipc_msg_make_bundle 2 15736 &ea_alloc_skeleton_15736
 +__tree_mod_log_insert_15744 __tree_mod_log_insert 0 15744 NULL
 +efx_ptp_describe_stats_15746 efx_ptp_describe_stats 0 15746 NULL
 +HiSax_readstatus_15752 HiSax_readstatus 2 15752 NULL nohasharray
@@ -132841,6 +139781,7 @@ index 0000000..19e2901
 +fuse_direct_read_15768 fuse_direct_read 0-3 15768 NULL
 +isl1208_i2c_get_atr_15771 isl1208_i2c_get_atr 0 15771 NULL nohasharray
 +chunksize_store_15771 chunksize_store 0-3 15771 &isl1208_i2c_get_atr_15771
++_mv88e6xxx_reg_read_15773 _mv88e6xxx_reg_read 0 15773 NULL
 +corb_send_verb_15777 corb_send_verb 0 15777 NULL
 +ipr_write_dump_15780 ipr_write_dump 0-6-5 15780 NULL
 +call_modprobe_15781 call_modprobe 0 15781 NULL
@@ -132896,6 +139837,7 @@ index 0000000..19e2901
 +send_tx_power_15914 send_tx_power 0 15914 NULL
 +can_get_xstats_size_15916 can_get_xstats_size 0 15916 NULL
 +alc_build_controls_15918 alc_build_controls 0 15918 NULL
++unix_dgram_recvmsg_15920 unix_dgram_recvmsg 3 15920 NULL
 +hid_hw_power_15921 hid_hw_power 0 15921 NULL
 +bio_copy_kern_15925 bio_copy_kern 3 15925 NULL
 +erst_exec_store_var1_15933 erst_exec_store_var1 0 15933 NULL
@@ -132936,13 +139878,15 @@ index 0000000..19e2901
 +si476x_core_cmd_agc_status_16027 si476x_core_cmd_agc_status 0 16027 NULL
 +got_frame_16028 got_frame 2 16028 NULL
 +wl1251_acx_rx_config_16034 wl1251_acx_rx_config 0 16034 NULL
++smk_write_unconfined_16041 smk_write_unconfined 3 16041 NULL
 +il3945_tx_reset_16042 il3945_tx_reset 0 16042 NULL
 +iscsi_stat_instance_show_attr_fail_rem_name_16045 iscsi_stat_instance_show_attr_fail_rem_name 0 16045 NULL
 +show_virtual_16047 show_virtual 0 16047 NULL
 +blk_init_tags_16052 blk_init_tags 1 16052 NULL nohasharray
 +hidp_send_message_16052 hidp_send_message 6-0 16052 &blk_init_tags_16052
 +dccp_recvmsg_16056 dccp_recvmsg 4-0 16056 NULL
-+read_file_spectral_period_16057 read_file_spectral_period 3-0 16057 NULL
++read_file_spectral_period_16057 read_file_spectral_period 3-0 16057 NULL nohasharray
++pppoe_recvmsg_16057 pppoe_recvmsg 3 16057 &read_file_spectral_period_16057
 +nf_call_iptables_store_16058 nf_call_iptables_store 4-0 16058 NULL
 +si5351_msynth_params_address_16062 si5351_msynth_params_address 0-1 16062 NULL
 +cp2112_write_req_16068 cp2112_write_req 0-5 16068 NULL
@@ -132957,6 +139901,7 @@ index 0000000..19e2901
 +sctp_setsockopt_disable_fragments_16088 sctp_setsockopt_disable_fragments 0 16088 NULL
 +wl1271_acx_tx_power_16092 wl1271_acx_tx_power 0 16092 NULL
 +ps2pp_attr_set_smartscroll_16094 ps2pp_attr_set_smartscroll 0-4 16094 NULL
++cifs_mapchar_16097 cifs_mapchar 0 16097 NULL
 +pb0100_set_gain_16099 pb0100_set_gain 0 16099 NULL
 +_ctl_ioc_reset_count_show_16102 _ctl_ioc_reset_count_show 0 16102 NULL
 +isr_tx_exch_complete_read_16103 isr_tx_exch_complete_read 3-0 16103 NULL nohasharray
@@ -133168,7 +140113,8 @@ index 0000000..19e2901
 +fuse_listxattr_16550 fuse_listxattr 0-3 16550 NULL
 +nfc_llcp_send_snl_sdres_16557 nfc_llcp_send_snl_sdres 3 16557 NULL
 +dib0700_i2c_xfer_16559 dib0700_i2c_xfer 0-3 16559 NULL
-+tcp_manip_pkt_16563 tcp_manip_pkt 4 16563 NULL
++tcp_manip_pkt_16563 tcp_manip_pkt 4 16563 NULL nohasharray
++mISDN_sock_sendmsg_16563 mISDN_sock_sendmsg 3 16563 &tcp_manip_pkt_16563
 +wcn36xx_dxe_init_16565 wcn36xx_dxe_init 0 16565 NULL
 +lpfc_debugfs_read_16566 lpfc_debugfs_read 3-0 16566 NULL
 +transmit_skb_16573 transmit_skb 0 16573 NULL
@@ -133183,9 +140129,11 @@ index 0000000..19e2901
 +target_core_hba_attr_show_16601 target_core_hba_attr_show 0 16601 NULL nohasharray
 +iscsi_stat_sess_attr_store_16601 iscsi_stat_sess_attr_store 0 16601 &target_core_hba_attr_show_16601
 +ixgbe_setup_all_tx_resources_16602 ixgbe_setup_all_tx_resources 0 16602 NULL
++iwl_pcie_load_given_ucode_8000_16610 iwl_pcie_load_given_ucode_8000 0 16610 NULL
 +set_analog_out_reg_16611 set_analog_out_reg 0-4 16611 NULL
 +palmas_irq_get_virq_16613 palmas_irq_get_virq 2 16613 NULL nohasharray
 +pptp_inbound_pkt_16613 pptp_inbound_pkt 0 16613 &palmas_irq_get_virq_16613
++rds_sendmsg_16616 rds_sendmsg 3 16616 NULL
 +compat_SyS_migrate_pages_16618 compat_SyS_migrate_pages 2 16618 NULL
 +show_mem_start_phys_index_16622 show_mem_start_phys_index 0 16622 NULL
 +s5k83a_s_ctrl_16628 s5k83a_s_ctrl 0 16628 NULL nohasharray
@@ -133211,6 +140159,7 @@ index 0000000..19e2901
 +hash_elasticity_store_16673 hash_elasticity_store 4-0 16673 NULL
 +smsc_ircc_net_open_16680 smsc_ircc_net_open 0 16680 NULL
 +da9052_reg_write_16685 da9052_reg_write 0 16685 NULL
++iwl_mvm_fw_dbg_collect_16687 iwl_mvm_fw_dbg_collect 4 16687 NULL
 +t4_set_rxmode_16689 t4_set_rxmode 0 16689 NULL
 +drbd_drain_block_16697 drbd_drain_block 2 16697 NULL
 +__wa_populate_dto_urb_16699 __wa_populate_dto_urb 3-4-0 16699 NULL
@@ -133369,7 +140318,8 @@ index 0000000..19e2901
 +mxt_load_fw_17073 mxt_load_fw 0 17073 &dvb_dvr_read_17073
 +simple_transaction_read_17076 simple_transaction_read 3-0 17076 NULL
 +tpm_transmit_17077 tpm_transmit 0-3 17077 NULL
-+__kmalloc_reserve_17080 __kmalloc_reserve 1 17080 NULL
++__kmalloc_reserve_17080 __kmalloc_reserve 1 17080 NULL nohasharray
++power_supply_get_property_17080 power_supply_get_property 0 17080 &__kmalloc_reserve_17080
 +kovaplus_select_profile_17084 kovaplus_select_profile 0 17084 NULL
 +entry_length_17093 entry_length 0 17093 NULL
 +write_reg_17098 write_reg 0 17098 NULL
@@ -133407,7 +140357,8 @@ index 0000000..19e2901
 +UniStrnlen_17169 UniStrnlen 0 17169 NULL nohasharray
 +nilfs_dat_mark_dirty_17169 nilfs_dat_mark_dirty 0 17169 &UniStrnlen_17169
 +nilfs_write_begin_17172 nilfs_write_begin 0 17172 NULL nohasharray
-+ipoib_dev_init_17172 ipoib_dev_init 0 17172 &nilfs_write_begin_17172
++ipoib_dev_init_17172 ipoib_dev_init 0 17172 &nilfs_write_begin_17172 nohasharray
++cfg80211_sme_get_conn_ies_17172 cfg80211_sme_get_conn_ies 3 17172 &ipoib_dev_init_17172
 +fan_set_state_17173 fan_set_state 0 17173 NULL
 +l1oip_socket_send_17174 l1oip_socket_send 7 17174 NULL
 +ipath_create_user_egr_17175 ipath_create_user_egr 0 17175 NULL
@@ -133430,6 +140381,7 @@ index 0000000..19e2901
 +dn_recvmsg_17213 dn_recvmsg 4-0 17213 NULL
 +st6422_s_ctrl_17215 st6422_s_ctrl 0 17215 NULL nohasharray
 +rtl8150_open_17215 rtl8150_open 0 17215 &st6422_s_ctrl_17215
++ext4_fname_crypto_alloc_buffer_17220 ext4_fname_crypto_alloc_buffer 2 17220 NULL
 +ipath_user_sdma_push_pkts_17221 ipath_user_sdma_push_pkts 0 17221 NULL
 +elan_i2c_prepare_fw_update_17228 elan_i2c_prepare_fw_update 0 17228 NULL
 +metadata_show_17234 metadata_show 0 17234 NULL
@@ -133437,6 +140389,7 @@ index 0000000..19e2901
 +store_fatal_error_17242 store_fatal_error 0-4 17242 NULL
 +mlx4_enable_sriov_17247 mlx4_enable_sriov 3-4 17247 NULL
 +odev_attr_store_17252 odev_attr_store 0-4 17252 NULL
++remove_advertising_17253 remove_advertising 4 17253 NULL
 +r3964_read_17257 r3964_read 0 17257 NULL
 +__be16_to_cpup_17261 __be16_to_cpup 0 17261 NULL nohasharray
 +lprocfs_read_frac_helper_17261 lprocfs_read_frac_helper 0 17261 &__be16_to_cpup_17261
@@ -133454,7 +140407,8 @@ index 0000000..19e2901
 +hmac_sha256_17278 hmac_sha256 2 17278 NULL
 +aty_var_to_pll_18818_17279 aty_var_to_pll_18818 0 17279 NULL
 +neigh_hash_grow_17283 neigh_hash_grow 2 17283 NULL nohasharray
-+rpc_pipefs_event_17283 rpc_pipefs_event 0 17283 &neigh_hash_grow_17283
++rpc_pipefs_event_17283 rpc_pipefs_event 0 17283 &neigh_hash_grow_17283 nohasharray
++ext4_fname_match_17283 ext4_fname_match 3 17283 &rpc_pipefs_event_17283
 +mmc_serial_show_17285 mmc_serial_show 0 17285 NULL
 +minstrel_stats_read_17290 minstrel_stats_read 3-0 17290 NULL nohasharray
 +fmc_set_mute_mode_17290 fmc_set_mute_mode 0 17290 &minstrel_stats_read_17290
@@ -133541,6 +140495,7 @@ index 0000000..19e2901
 +show_proc_name_17464 show_proc_name 0 17464 NULL
 +probe_bios_17467 probe_bios 1 17467 NULL
 +show_temp_min_17471 show_temp_min 0 17471 NULL
++xfs_mod_fdblocks_17472 xfs_mod_fdblocks 0 17472 NULL
 +probe_kernel_write_17481 probe_kernel_write 3 17481 NULL nohasharray
 +vv6410_set_exposure_17481 vv6410_set_exposure 0 17481 &probe_kernel_write_17481
 +v9fs_xattr_trusted_set_17485 v9fs_xattr_trusted_set 0 17485 NULL
@@ -133555,7 +140510,8 @@ index 0000000..19e2901
 +fc_vport_terminate_17513 fc_vport_terminate 0 17513 &reiserfs_direct_IO_17513
 +lbs_highrssi_write_17515 lbs_highrssi_write 3-0 17515 NULL
 +wl1271_acx_dco_itrim_params_17523 wl1271_acx_dco_itrim_params 0 17523 NULL
-+fsp_attr_show_flags_17527 fsp_attr_show_flags 0 17527 NULL
++fsp_attr_show_flags_17527 fsp_attr_show_flags 0 17527 NULL nohasharray
++bcmgenet_init_rx_ring_17527 bcmgenet_init_rx_ring 0 17527 &fsp_attr_show_flags_17527
 +acerhdf_get_cur_state_17531 acerhdf_get_cur_state 0 17531 NULL
 +show_ipInNoRoutes_17533 show_ipInNoRoutes 0 17533 NULL
 +ixgbe_set_vfta_generic_17534 ixgbe_set_vfta_generic 0 17534 NULL
@@ -133588,7 +140544,8 @@ index 0000000..19e2901
 +nvkm_gpio_create__17601 nvkm_gpio_create_ 4 17601 NULL
 +wm8994_gpio_to_irq_17604 wm8994_gpio_to_irq 2 17604 NULL
 +osst_execute_17607 osst_execute 6-7 17607 NULL nohasharray
-+svc_export_parse_17607 svc_export_parse 0 17607 &osst_execute_17607
++svc_export_parse_17607 svc_export_parse 0 17607 &osst_execute_17607 nohasharray
++irda_sendmsg_ultra_17607 irda_sendmsg_ultra 3 17607 &svc_export_parse_17607
 +ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout_17618 ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout 3-0 17618 NULL
 +null_show_17619 null_show 0 17619 NULL
 +show_selfballoon_downhys_17620 show_selfballoon_downhys 0 17620 NULL
@@ -133644,6 +140601,7 @@ index 0000000..19e2901
 +exofs_read_lookup_dev_table_17733 exofs_read_lookup_dev_table 3 17733 NULL nohasharray
 +pcpu_alloc_area_17733 pcpu_alloc_area 0-3 17733 &exofs_read_lookup_dev_table_17733 nohasharray
 +layout_show_17733 layout_show 0 17733 &pcpu_alloc_area_17733
++mv88e6xxx_port_to_phy_addr_17740 mv88e6xxx_port_to_phy_addr 0-2 17740 NULL
 +sctpprobe_read_17741 sctpprobe_read 3-0 17741 NULL
 +inode_setxattr_17744 inode_setxattr 0 17744 NULL
 +qlcnic_sysfs_read_crb_17747 qlcnic_sysfs_read_crb 0-6-5 17747 NULL
@@ -133792,12 +140750,14 @@ index 0000000..19e2901
 +qlcnic_get_cap_size_18042 qlcnic_get_cap_size 0 18042 NULL
 +nfs_check_inode_attributes_18043 nfs_check_inode_attributes 0 18043 NULL
 +cryptd_alloc_instance_18048 cryptd_alloc_instance 3-2 18048 NULL
++find_next_inuse_18051 find_next_inuse 2 18051 NULL
 +policydb_load_isids_18052 policydb_load_isids 0 18052 NULL nohasharray
 +core_tpg_set_initiator_node_queue_depth_18052 core_tpg_set_initiator_node_queue_depth 0 18052 &policydb_load_isids_18052 nohasharray
 +t3_config_sched_18052 t3_config_sched 0 18052 &core_tpg_set_initiator_node_queue_depth_18052
 +ddebug_proc_write_18055 ddebug_proc_write 3-0 18055 NULL
 +zisofs_fill_pages_18057 zisofs_fill_pages 0 18057 NULL
 +max8925_enable_18058 max8925_enable 0 18058 NULL
++bcmgenet_init_rx_queues_18060 bcmgenet_init_rx_queues 0 18060 NULL
 +dlfb_set_video_mode_18061 dlfb_set_video_mode 0 18061 NULL
 +lua_sysfs_read_18062 lua_sysfs_read 6-0 18062 NULL nohasharray
 +dccp_error_18062 dccp_error 0 18062 &lua_sysfs_read_18062
@@ -133863,7 +140823,8 @@ index 0000000..19e2901
 +gsm_control_message_18209 gsm_control_message 4 18209 NULL
 +bq2415x_sysfs_show_limit_18213 bq2415x_sysfs_show_limit 0 18213 NULL nohasharray
 +show_phy_type_18213 show_phy_type 0 18213 &bq2415x_sysfs_show_limit_18213 nohasharray
-+read_rindex_entry_18213 read_rindex_entry 0 18213 &show_phy_type_18213
++read_rindex_entry_18213 read_rindex_entry 0 18213 &show_phy_type_18213 nohasharray
++raw_recvmsg_18213 raw_recvmsg 3 18213 &read_rindex_entry_18213
 +si4713_set_rds_ps_name_18214 si4713_set_rds_ps_name 0 18214 NULL
 +do_ipv6_setsockopt_18215 do_ipv6_setsockopt 5-0 18215 NULL
 +pcmcia_enable_device_18218 pcmcia_enable_device 0 18218 NULL
@@ -133887,6 +140848,7 @@ index 0000000..19e2901
 +tg3_bmcr_reset_18271 tg3_bmcr_reset 0 18271 NULL
 +gfs2_alloc_sort_buffer_18275 gfs2_alloc_sort_buffer 1 18275 NULL
 +ipip_get_size_18276 ipip_get_size 0 18276 NULL
++dn_recvmsg_18277 dn_recvmsg 3 18277 NULL
 +alloc_ring_18278 alloc_ring 4-2 18278 NULL
 +ext4_readpages_18283 ext4_readpages 4 18283 NULL
 +mmc_send_bus_test_18285 mmc_send_bus_test 4 18285 NULL
@@ -133898,6 +140860,7 @@ index 0000000..19e2901
 +show_fnode_username_in_18293 show_fnode_username_in 0 18293 &um_idi_write_18293 nohasharray
 +xfs_file_read_iter_18293 xfs_file_read_iter 0 18293 &show_fnode_username_in_18293 nohasharray
 +__follow_pte_18293 __follow_pte 0 18293 &xfs_file_read_iter_18293
++ocfs2_direct_IO_18297 ocfs2_direct_IO 3 18297 NULL
 +part_timeout_show_18298 part_timeout_show 0 18298 NULL
 +mwl8k_sta_add_18299 mwl8k_sta_add 0 18299 NULL
 +iscsi_stat_sess_err_show_attr_cxn_errors_18301 iscsi_stat_sess_err_show_attr_cxn_errors 0 18301 NULL
@@ -133934,6 +140897,7 @@ index 0000000..19e2901
 +SyS_process_vm_readv_18366 SyS_process_vm_readv 3-5 18366 NULL
 +ep_io_18367 ep_io 0 18367 NULL nohasharray
 +irq_show_18367 irq_show 0 18367 &ep_io_18367
++nf_hook_18370 nf_hook 0 18370 NULL
 +qib_user_sdma_num_pages_18371 qib_user_sdma_num_pages 0 18371 NULL
 +nilfs_checkpoints_README_show_18372 nilfs_checkpoints_README_show 0 18372 NULL
 +usbhsg_ep_queue_18376 usbhsg_ep_queue 0 18376 NULL
@@ -133988,6 +140952,7 @@ index 0000000..19e2901
 +_nfs4_do_open_reclaim_18483 _nfs4_do_open_reclaim 0 18483 NULL nohasharray
 +__c2port_write_flash_data_18483 __c2port_write_flash_data 0-3-4 18483 &_nfs4_do_open_reclaim_18483
 +technisat_usb2_i2c_access_18484 technisat_usb2_i2c_access 0 18484 NULL
++__regulatory_set_wiphy_regd_18486 __regulatory_set_wiphy_regd 0 18486 NULL
 +udpv6_setsockopt_18487 udpv6_setsockopt 5-0 18487 NULL nohasharray
 +snd_pcm_plugin_build_mulaw_18487 snd_pcm_plugin_build_mulaw 0 18487 &udpv6_setsockopt_18487
 +aoedisk_show_netif_18490 aoedisk_show_netif 0 18490 NULL
@@ -134034,7 +140999,8 @@ index 0000000..19e2901
 +mtd_size_show_18578 mtd_size_show 0 18578 NULL
 +vivid_radio_read_18579 vivid_radio_read 0-3 18579 NULL
 +metrics_bytes_rendered_show_18580 metrics_bytes_rendered_show 0 18580 NULL
-+pn_socket_create_18581 pn_socket_create 0 18581 NULL
++pn_socket_create_18581 pn_socket_create 0 18581 NULL nohasharray
++__tipc_sendmsg_18581 __tipc_sendmsg 3 18581 &pn_socket_create_18581
 +ipath_reset_device_18584 ipath_reset_device 0 18584 NULL
 +show_target_speed_18587 show_target_speed 0 18587 NULL
 +st_accel_buffer_predisable_18589 st_accel_buffer_predisable 0 18589 NULL
@@ -134186,7 +141152,8 @@ index 0000000..19e2901
 +max_user_freq_store_18922 max_user_freq_store 0-4 18922 &xfs_buf_read_uncached_18922
 +show_baseline_18929 show_baseline 0 18929 NULL
 +snapshot_write_next_18937 snapshot_write_next 0 18937 NULL
-+mxl5005s_SetRfFreqHz_18939 mxl5005s_SetRfFreqHz 0 18939 NULL
++mxl5005s_SetRfFreqHz_18939 mxl5005s_SetRfFreqHz 0 18939 NULL nohasharray
++ms_transfer_data_18939 ms_transfer_data 7 18939 &mxl5005s_SetRfFreqHz_18939
 +fmc_device_register_n_18942 fmc_device_register_n 2 18942 NULL
 +mtrr_del_18943 mtrr_del 1 18943 NULL
 +ida_get_new_18948 ida_get_new 0 18948 NULL
@@ -134306,6 +141273,7 @@ index 0000000..19e2901
 +show_sys_image_guid_19207 show_sys_image_guid 0 19207 NULL
 +dev_counters_read_19216 dev_counters_read 3-0 19216 NULL
 +wbcir_tx_19219 wbcir_tx 3 19219 NULL
++udpv6_recvmsg_19221 udpv6_recvmsg 3 19221 NULL
 +nouveau_hwmon_max_temp_19222 nouveau_hwmon_max_temp 0 19222 NULL
 +snd_mask_max_19224 snd_mask_max 0 19224 NULL
 +_ctl_host_trace_buffer_enable_show_19227 _ctl_host_trace_buffer_enable_show 0 19227 NULL
@@ -134375,6 +141343,7 @@ index 0000000..19e2901
 +mmio32read__write_file_19364 mmio32read__write_file 0 19364 NULL
 +ipheth_open_19366 ipheth_open 0 19366 NULL
 +qlge_vlan_rx_add_vid_19385 qlge_vlan_rx_add_vid 0 19385 NULL
++p9_check_zc_errors_19389 p9_check_zc_errors 4 19389 NULL
 +interpret_user_input_19393 interpret_user_input 2-0 19393 NULL
 +v9fs_xattr_security_set_19396 v9fs_xattr_security_set 0 19396 NULL nohasharray
 +lxt973a2_read_status_19396 lxt973a2_read_status 0 19396 &v9fs_xattr_security_set_19396
@@ -134524,6 +141493,7 @@ index 0000000..19e2901
 +sleep_functions_on_battery_store_19725 sleep_functions_on_battery_store 0-4 19725 NULL
 +wm8350_block_write_19727 wm8350_block_write 2-3-0 19727 NULL
 +target_stat_scsi_transport_show_attr_inst_19730 target_stat_scsi_transport_show_attr_inst 0 19730 NULL
++do_iter_readv_writev_19732 do_iter_readv_writev 0 19732 NULL
 +iwlagn_commit_rxon_19737 iwlagn_commit_rxon 0 19737 NULL
 +snd_usX2Y_usbpcm_prepare_19741 snd_usX2Y_usbpcm_prepare 0 19741 NULL
 +p9_client_read_19750 p9_client_read 5-0 19750 NULL
@@ -134534,7 +141504,8 @@ index 0000000..19e2901
 +jffs2_acl_from_medium_19762 jffs2_acl_from_medium 2 19762 NULL
 +osst_recover_wait_frame_19766 osst_recover_wait_frame 0 19766 NULL
 +readhscx_19769 readhscx 0 19769 NULL nohasharray
-+i8k_get_fan_type_19769 i8k_get_fan_type 0 19769 &readhscx_19769
++i8k_get_fan_type_19769 i8k_get_fan_type 0 19769 &readhscx_19769 nohasharray
++regulatory_set_wiphy_regd_sync_rtnl_19769 regulatory_set_wiphy_regd_sync_rtnl 0 19769 &i8k_get_fan_type_19769
 +flush_write_buffer_19770 flush_write_buffer 0 19770 NULL
 +pch_phub_gbe_serial_rom_conf_mp_19773 pch_phub_gbe_serial_rom_conf_mp 0 19773 NULL
 +ipath_f_get_base_info_19778 ipath_f_get_base_info 0 19778 NULL
@@ -134629,7 +141600,7 @@ index 0000000..19e2901
 +apparmor_getprocattr_19982 apparmor_getprocattr 0 19982 NULL
 +snd_usbtv_card_trigger_19983 snd_usbtv_card_trigger 0 19983 NULL
 +attach_hdlc_protocol_19986 attach_hdlc_protocol 3 19986 NULL
-+i40e_reserve_msix_vectors_19989 i40e_reserve_msix_vectors 2 19989 NULL nohasharray
++i40e_reserve_msix_vectors_19989 i40e_reserve_msix_vectors 2-0 19989 NULL nohasharray
 +rtw_set_wps_probe_resp_19989 rtw_set_wps_probe_resp 3 19989 &i40e_reserve_msix_vectors_19989
 +_osd_req_finalize_set_attr_list_19990 _osd_req_finalize_set_attr_list 0 19990 NULL nohasharray
 +islpci_upload_fw_19990 islpci_upload_fw 0 19990 &_osd_req_finalize_set_attr_list_19990
@@ -134659,7 +141630,8 @@ index 0000000..19e2901
 +mt_show_quirks_20045 mt_show_quirks 0 20045 NULL
 +show_compression_20048 show_compression 0 20048 NULL
 +usX2Y_urbs_allocate_20052 usX2Y_urbs_allocate 0 20052 NULL
-+lpfc_txcmplq_hw_show_20055 lpfc_txcmplq_hw_show 0 20055 NULL
++lpfc_txcmplq_hw_show_20055 lpfc_txcmplq_hw_show 0 20055 NULL nohasharray
++nf_iterate_20055 nf_iterate 0 20055 &lpfc_txcmplq_hw_show_20055
 +__be32_to_cpup_20056 __be32_to_cpup 0 20056 NULL
 +roccat_common2_sysfs_write_stored_lights_20059 roccat_common2_sysfs_write_stored_lights 0-6-5 20059 NULL
 +upcall_20060 upcall 0-4 20060 NULL
@@ -134673,7 +141645,8 @@ index 0000000..19e2901
 +init_chip_reset_20080 init_chip_reset 0 20080 &ieee802154_check_concurrent_iface_20080
 +fuse_conn_limit_read_20084 fuse_conn_limit_read 3-0 20084 NULL
 +aat2870_reg_write_file_20086 aat2870_reg_write_file 3-0 20086 NULL
-+reiserfs_dir_fsync_20088 reiserfs_dir_fsync 0 20088 NULL
++reiserfs_dir_fsync_20088 reiserfs_dir_fsync 0 20088 NULL nohasharray
++cma_alloc_write_20088 cma_alloc_write 2 20088 &reiserfs_dir_fsync_20088
 +team_options_register_20091 team_options_register 3-0 20091 NULL nohasharray
 +lpfc_poll_show_20091 lpfc_poll_show 0 20091 &team_options_register_20091 nohasharray
 +rt2800pci_set_state_20091 rt2800pci_set_state 0 20091 &lpfc_poll_show_20091 nohasharray
@@ -134685,7 +141658,8 @@ index 0000000..19e2901
 +dn_auto_bind_20098 dn_auto_bind 0 20098 &read_int_20098
 +attr_press_speed_store_tpkbd_20100 attr_press_speed_store_tpkbd 0-4 20100 NULL
 +snd_es1938_playback1_trigger_20102 snd_es1938_playback1_trigger 0 20102 NULL
-+xfs_qm_dqget_20103 xfs_qm_dqget 0 20103 NULL
++xfs_qm_dqget_20103 xfs_qm_dqget 0 20103 NULL nohasharray
++mgmt_limited_event_20103 mgmt_limited_event 4 20103 &xfs_qm_dqget_20103
 +fd_do_unmap_20109 fd_do_unmap 4 20109 NULL
 +nilfs_segments_clean_segments_show_20115 nilfs_segments_clean_segments_show 0 20115 NULL
 +iscsi_tpg_param_store_TargetAlias_20119 iscsi_tpg_param_store_TargetAlias 0-3 20119 NULL
@@ -134726,7 +141700,8 @@ index 0000000..19e2901
 +video_end_20205 video_end 0 20205 NULL
 +bitmap_find_next_zero_area_off_20211 bitmap_find_next_zero_area_off 2-3-0-4-5-6 20211 NULL
 +ds1343_read_time_20213 ds1343_read_time 0 20213 NULL
-+udf_do_extend_file_20214 udf_do_extend_file 0 20214 NULL
++udf_do_extend_file_20214 udf_do_extend_file 0 20214 NULL nohasharray
++udf_bitmap_new_block_20214 udf_bitmap_new_block 4 20214 &udf_do_extend_file_20214
 +parport_uss720_epp_write_addr_20216 parport_uss720_epp_write_addr 0 20216 NULL
 +dpm_suspend_noirq_20217 dpm_suspend_noirq 0 20217 NULL
 +target_fabric_port_attr_show_20218 target_fabric_port_attr_show 0 20218 NULL
@@ -134750,7 +141725,8 @@ index 0000000..19e2901
 +async_20251 async 0 20251 NULL
 +store_filter_20252 store_filter 0-4 20252 NULL
 +resource_size_20256 resource_size 0 20256 NULL
-+ssd1307fb_write_array_20258 ssd1307fb_write_array 3 20258 NULL
++ssd1307fb_write_array_20258 ssd1307fb_write_array 3 20258 NULL nohasharray
++create_pnp_modalias_20258 create_pnp_modalias 0 20258 &ssd1307fb_write_array_20258
 +sru_s_stream_20259 sru_s_stream 0 20259 NULL
 +wl1271_boot_soft_reset_20262 wl1271_boot_soft_reset 0 20262 NULL nohasharray
 +target_core_hba_attr_store_20262 target_core_hba_attr_store 0-4 20262 &wl1271_boot_soft_reset_20262
@@ -134776,6 +141752,7 @@ index 0000000..19e2901
 +blk_mq_hw_sysfs_queued_show_20294 blk_mq_hw_sysfs_queued_show 0 20294 NULL
 +btrfs_header_nritems_20296 btrfs_header_nritems 0 20296 NULL
 +do_take_over_console_20297 do_take_over_console 0 20297 NULL
++iwl_parse_nvm_mcc_info_20301 iwl_parse_nvm_mcc_info 3 20301 NULL
 +r10_sync_page_io_20307 r10_sync_page_io 3 20307 NULL
 +curr_bitstream_show_20308 curr_bitstream_show 0 20308 NULL
 +lpfc_cr_count_show_20309 lpfc_cr_count_show 0 20309 NULL
@@ -134794,6 +141771,7 @@ index 0000000..19e2901
 +wacom_buttons_luminance_store_20325 wacom_buttons_luminance_store 0-4 20325 NULL
 +cyapa_i2c_reg_read_block_20326 cyapa_i2c_reg_read_block 0 20326 NULL
 +sys_dmi_modalias_show_20334 sys_dmi_modalias_show 0 20334 NULL
++dax_do_io_20335 dax_do_io 4 20335 NULL
 +lpt_gc_20337 lpt_gc 0 20337 NULL
 +patch_nvhdmi_2ch_20339 patch_nvhdmi_2ch 0 20339 NULL
 +gfs2_glock_nq_m_20347 gfs2_glock_nq_m 1-0 20347 NULL
@@ -134859,7 +141837,8 @@ index 0000000..19e2901
 +i7core_inject_enable_store_20501 i7core_inject_enable_store 0-4 20501 NULL
 +elan_sysfs_read_iap_ver_20502 elan_sysfs_read_iap_ver 0 20502 NULL
 +hidraw_report_event_20503 hidraw_report_event 3 20503 NULL nohasharray
-+mcs_net_open_20503 mcs_net_open 0 20503 &hidraw_report_event_20503
++mcs_net_open_20503 mcs_net_open 0 20503 &hidraw_report_event_20503 nohasharray
++ocfs2_db_frozen_trigger_20503 ocfs2_db_frozen_trigger 4 20503 &mcs_net_open_20503
 +w1_master_attribute_show_pullup_20506 w1_master_attribute_show_pullup 0 20506 NULL
 +ipr_store_adapter_state_20513 ipr_store_adapter_state 0-4 20513 NULL
 +i2c_atmel_recv_20516 i2c_atmel_recv 0-3 20516 NULL nohasharray
@@ -134889,7 +141868,8 @@ index 0000000..19e2901
 +cachefiles_daemon_frun_20577 cachefiles_daemon_frun 0 20577 NULL
 +bluetooth_enable_show_20578 bluetooth_enable_show 0 20578 NULL nohasharray
 +command_setcolourbalance_20578 command_setcolourbalance 0 20578 &bluetooth_enable_show_20578 nohasharray
-+wl1271_acx_sta_rate_policies_20578 wl1271_acx_sta_rate_policies 0 20578 &command_setcolourbalance_20578
++wl1271_acx_sta_rate_policies_20578 wl1271_acx_sta_rate_policies 0 20578 &command_setcolourbalance_20578 nohasharray
++nf_hook_slow_20578 nf_hook_slow 0 20578 &wl1271_acx_sta_rate_policies_20578
 +xen_pci_notifier_20579 xen_pci_notifier 0 20579 NULL
 +set_performance_level_20580 set_performance_level 0-4 20580 NULL
 +saa711x_s_stream_20581 saa711x_s_stream 0 20581 NULL
@@ -134941,6 +141921,7 @@ index 0000000..19e2901
 +btrfs_qgroup_reserve_20676 btrfs_qgroup_reserve 0 20676 &snd_hdsp_playback_copy_20676
 +session_write_kbytes_show_20678 session_write_kbytes_show 0 20678 NULL
 +dvb_dmxdev_buffer_read_20682 dvb_dmxdev_buffer_read 0-4 20682 NULL
++cpumask_size_20683 cpumask_size 0 20683 NULL
 +btrfs_node_blockptr_20685 btrfs_node_blockptr 0 20685 NULL
 +store_20687 store 0 20687 NULL
 +ipath_user_sdma_coalesce_20688 ipath_user_sdma_coalesce 0 20688 NULL
@@ -135038,6 +142019,7 @@ index 0000000..19e2901
 +nc_register_read_20875 nc_register_read 0 20875 NULL
 +command_setexposure_20876 command_setexposure 0 20876 NULL
 +pci_xircom_init_20881 pci_xircom_init 0 20881 NULL
++import_iovec_20882 import_iovec 0-3 20882 NULL
 +ace_open_20884 ace_open 0 20884 NULL nohasharray
 +cfs_cpt_table_create_20884 cfs_cpt_table_create 1 20884 &ace_open_20884
 +rb_simple_write_20890 rb_simple_write 3 20890 NULL
@@ -135129,6 +142111,7 @@ index 0000000..19e2901
 +write_posted_21108 write_posted 0 21108 NULL
 +ath6kl_send_go_probe_resp_21113 ath6kl_send_go_probe_resp 3 21113 NULL nohasharray
 +cyapa_gen5_check_fw_21113 cyapa_gen5_check_fw 0 21113 &ath6kl_send_go_probe_resp_21113
++unix_dgram_sendmsg_21115 unix_dgram_sendmsg 3 21115 NULL
 +target_core_show_dev_info_21116 target_core_show_dev_info 0 21116 NULL
 +snd_ice1712_playback_ds_trigger_21118 snd_ice1712_playback_ds_trigger 0 21118 NULL nohasharray
 +ddebug_exec_queries_21118 ddebug_exec_queries 0 21118 &snd_ice1712_playback_ds_trigger_21118 nohasharray
@@ -135142,13 +142125,16 @@ index 0000000..19e2901
 +i2400m_rx_trace_21127 i2400m_rx_trace 3 21127 NULL
 +st_gyro_buffer_postenable_21128 st_gyro_buffer_postenable 0 21128 NULL
 +iwl_dbgfs_uapsd_misbehaving_read_21129 iwl_dbgfs_uapsd_misbehaving_read 3-0 21129 NULL
++rfcomm_sock_recvmsg_21131 rfcomm_sock_recvmsg 3 21131 NULL
 +snd_nm256_capture_trigger_21135 snd_nm256_capture_trigger 0 21135 NULL
 +ubifs_write_iter_21137 ubifs_write_iter 0 21137 NULL
 +target_core_dev_pr_show_attr_res_pr_generation_21138 target_core_dev_pr_show_attr_res_pr_generation 0 21138 NULL
-+omfs_writepage_21143 omfs_writepage 0 21143 NULL
++omfs_writepage_21143 omfs_writepage 0 21143 NULL nohasharray
++dgram_sendmsg_21143 dgram_sendmsg 3 21143 &omfs_writepage_21143
 +tps6586x_irq_init_21144 tps6586x_irq_init 3 21144 NULL
 +aoedisk_show_payload_21147 aoedisk_show_payload 0 21147 NULL
 +new_skb_21148 new_skb 1 21148 NULL
++ocfs2_block_check_validate_21149 ocfs2_block_check_validate 2 21149 NULL
 +dgram_disconnect_21152 dgram_disconnect 0 21152 NULL
 +rtl2830_regmap_gather_write_21153 rtl2830_regmap_gather_write 0 21153 NULL
 +sisfb_set_mode_21155 sisfb_set_mode 0 21155 NULL
@@ -135296,6 +142282,7 @@ index 0000000..19e2901
 +firmware_data_read_21488 firmware_data_read 0-5-6 21488 NULL
 +set_postcode_21490 set_postcode 0-4 21490 NULL
 +security_list_21491 security_list 0-5 21491 NULL
++dccp_recvmsg_21496 dccp_recvmsg 3 21496 NULL
 +ads7846_read12_ser_21501 ads7846_read12_ser 0 21501 NULL
 +force_bredr_smp_write_21502 force_bredr_smp_write 3-0 21502 NULL
 +mmc_alloc_sg_21504 mmc_alloc_sg 1 21504 NULL
@@ -135397,7 +142384,8 @@ index 0000000..19e2901
 +ipv6_confirm_21743 ipv6_confirm 0 21743 NULL
 +__nf_nat_mangle_tcp_packet_21744 __nf_nat_mangle_tcp_packet 6-8 21744 NULL nohasharray
 +at91_open_21744 at91_open 0 21744 &__nf_nat_mangle_tcp_packet_21744
-+__scsi_format_command_21749 __scsi_format_command 2 21749 NULL
++__scsi_format_command_21749 __scsi_format_command 2 21749 NULL nohasharray
++ocfs2_direct_IO_extend_no_holes_21749 ocfs2_direct_IO_extend_no_holes 0-3 21749 &__scsi_format_command_21749
 +set_sticky_21752 set_sticky 0-4 21752 NULL
 +mthca_alloc_init_21754 mthca_alloc_init 2 21754 NULL
 +l2down_create_21755 l2down_create 4 21755 NULL
@@ -135418,7 +142406,8 @@ index 0000000..19e2901
 +libipw_get_hdrlen_21792 libipw_get_hdrlen 0 21792 NULL nohasharray
 +_cx88_start_audio_dma_21792 _cx88_start_audio_dma 0 21792 &libipw_get_hdrlen_21792
 +d3cold_allowed_show_21797 d3cold_allowed_show 0 21797 NULL
-+aa_may_ptrace_21798 aa_may_ptrace 0 21798 NULL
++aa_may_ptrace_21798 aa_may_ptrace 0 21798 NULL nohasharray
++crypto_sha1_finup_21798 crypto_sha1_finup 0 21798 &aa_may_ptrace_21798
 +show_pwm_auto_point_temp_hyst_21800 show_pwm_auto_point_temp_hyst 0 21800 NULL
 +min_odd_21802 min_odd 0-1-2 21802 NULL
 +show_rotate_21803 show_rotate 0 21803 NULL
@@ -135432,6 +142421,7 @@ index 0000000..19e2901
 +qib_portattr_store_21817 qib_portattr_store 0-4 21817 NULL nohasharray
 +__kernel_write_21817 __kernel_write 3-0 21817 &qib_portattr_store_21817
 +ov9740_g_crop_21818 ov9740_g_crop 0 21818 NULL
++mei_io_cb_alloc_buf_21819 mei_io_cb_alloc_buf 2 21819 NULL
 +wm8994_request_irq_21822 wm8994_request_irq 2 21822 NULL
 +lm95234_fill_cache_21823 lm95234_fill_cache 0 21823 NULL
 +mtd_ecc_stats_errors_show_21825 mtd_ecc_stats_errors_show 0 21825 NULL nohasharray
@@ -135565,6 +142555,7 @@ index 0000000..19e2901
 +nf_ct_seq_adjust_22086 nf_ct_seq_adjust 4 22086 NULL
 +acerhdf_get_mode_22088 acerhdf_get_mode 0 22088 NULL
 +niu_init_one_rx_channel_22095 niu_init_one_rx_channel 0 22095 NULL
++ocfs2_extend_allocation_22096 ocfs2_extend_allocation 0 22096 NULL
 +ext3_setattr_22100 ext3_setattr 0 22100 NULL
 +portio_name_show_22101 portio_name_show 0 22101 NULL
 +rndis_error_status_22103 rndis_error_status 0 22103 NULL nohasharray
@@ -135593,6 +142584,7 @@ index 0000000..19e2901
 +__vlan_device_event_22159 __vlan_device_event 0 22159 NULL
 +show_otp2en_22160 show_otp2en 0 22160 NULL
 +set_pwm_enable_22161 set_pwm_enable 0-4 22161 NULL
++devm_ioremap_wc_22162 devm_ioremap_wc 2-3 22162 NULL
 +pm8001_phy_control_22163 pm8001_phy_control 0 22163 NULL nohasharray
 +store_pwm_interpolate_22163 store_pwm_interpolate 0-4 22163 &pm8001_phy_control_22163
 +lx_hardware_open_22166 lx_hardware_open 0 22166 NULL
@@ -135603,7 +142595,8 @@ index 0000000..19e2901
 +dccp_disconnect_22174 dccp_disconnect 0 22174 NULL
 +beiscsi_adap_family_disp_22179 beiscsi_adap_family_disp 0 22179 NULL nohasharray
 +nf_nat_ipv6_in_22179 nf_nat_ipv6_in 0 22179 &beiscsi_adap_family_disp_22179
-+iscsi_disc_show_userid_mutual_22181 iscsi_disc_show_userid_mutual 0 22181 NULL
++iscsi_disc_show_userid_mutual_22181 iscsi_disc_show_userid_mutual 0 22181 NULL nohasharray
++hid_sensor_custom_read_22181 hid_sensor_custom_read 3 22181 &iscsi_disc_show_userid_mutual_22181
 +channel_dimm_label_store_22189 channel_dimm_label_store 0-4 22189 NULL
 +xen_acpi_processor_resume_22190 xen_acpi_processor_resume 0 22190 NULL
 +tps80031_rtc_alarm_irq_enable_22198 tps80031_rtc_alarm_irq_enable 0 22198 NULL
@@ -135729,6 +142722,7 @@ index 0000000..19e2901
 +mutex_lock_interruptible_22505 mutex_lock_interruptible 0 22505 NULL nohasharray
 +asd_version_show_22505 asd_version_show 0 22505 &mutex_lock_interruptible_22505
 +fan_pwm1_store_22510 fan_pwm1_store 0-4 22510 NULL
++sha512_ssse3_finup_22514 sha512_ssse3_finup 0 22514 NULL
 +trim_no_bitmap_22524 trim_no_bitmap 4-3 22524 NULL
 +attr_press_to_select_store_tpkbd_22525 attr_press_to_select_store_tpkbd 0-4 22525 NULL
 +snd_cx23885_prepare_22528 snd_cx23885_prepare 0 22528 NULL
@@ -135761,6 +142755,7 @@ index 0000000..19e2901
 +btrfs_delalloc_reserve_space_22617 btrfs_delalloc_reserve_space 0 22617 NULL
 +bootflag_get_22618 bootflag_get 0 22618 NULL
 +qlcnic_pci_sriov_disable_22622 qlcnic_pci_sriov_disable 0 22622 NULL
++iwl_dbgfs_rx_phyinfo_read_22625 iwl_dbgfs_rx_phyinfo_read 3 22625 NULL
 +_maybe_not_all_in_one_io_22626 _maybe_not_all_in_one_io 0 22626 NULL
 +sctp_setsockopt_connectx_old_22631 sctp_setsockopt_connectx_old 3-0 22631 NULL
 +v9fs_vfs_getattr_dotl_22632 v9fs_vfs_getattr_dotl 0 22632 NULL
@@ -135809,12 +142804,14 @@ index 0000000..19e2901
 +ecryptfs_write_metadata_to_contents_22721 ecryptfs_write_metadata_to_contents 3 22721 &qlcnic_83xx_lockless_flash_read32_22721
 +mxuport_send_ctrl_urb_22723 mxuport_send_ctrl_urb 0 22723 NULL
 +channel_dimm_label_show_22728 channel_dimm_label_show 0 22728 NULL nohasharray
-+acpi_ex_get_name_string_22728 acpi_ex_get_name_string 0 22728 &channel_dimm_label_show_22728
++acpi_ex_get_name_string_22728 acpi_ex_get_name_string 0 22728 &channel_dimm_label_show_22728 nohasharray
++ext4_mpage_readpages_22728 ext4_mpage_readpages 0-4 22728 &acpi_ex_get_name_string_22728
 +filename_trans_read_22730 filename_trans_read 0 22730 NULL
 +cx18_copy_buf_to_user_22735 cx18_copy_buf_to_user 4-0 22735 NULL nohasharray
 +show_filter_22735 show_filter 0 22735 &cx18_copy_buf_to_user_22735 nohasharray
 +__mlx4_cq_alloc_icm_22735 __mlx4_cq_alloc_icm 0 22735 &show_filter_22735
 +ax25_output_22736 ax25_output 2 22736 NULL
++xenbus_map_ring_valloc_pv_22737 xenbus_map_ring_valloc_pv 3 22737 NULL
 +ceph_decode_32_22738 ceph_decode_32 0 22738 NULL nohasharray
 +__mei_cl_send_22738 __mei_cl_send 3 22738 &ceph_decode_32_22738
 +__writeback_single_inode_22739 __writeback_single_inode 0 22739 NULL
@@ -135877,7 +142874,8 @@ index 0000000..19e2901
 +smb_set_file_info_22880 smb_set_file_info 0 22880 NULL
 +pxa_ep_enable_22883 pxa_ep_enable 0 22883 NULL
 +vmw_execbuf_process_22885 vmw_execbuf_process 5 22885 NULL nohasharray
-+show_counter_tx_flow_stalls_22885 show_counter_tx_flow_stalls 0 22885 &vmw_execbuf_process_22885
++show_counter_tx_flow_stalls_22885 show_counter_tx_flow_stalls 0 22885 &vmw_execbuf_process_22885 nohasharray
++_mv88e6xxx_phy_read_indirect_22885 _mv88e6xxx_phy_read_indirect 0 22885 &show_counter_tx_flow_stalls_22885
 +set_phy_speed_22886 set_phy_speed 0 22886 NULL
 +show_green_22889 show_green 0 22889 NULL
 +v9fs_direct_write_22891 v9fs_direct_write 0-3 22891 NULL
@@ -135937,6 +142935,7 @@ index 0000000..19e2901
 +iwl_mvm_rm_sta_common_22994 iwl_mvm_rm_sta_common 0 22994 &show_pwm_temp_sel_common_22994
 +nouveau_hwmon_show_temp1_auto_point1_pwm_22996 nouveau_hwmon_show_temp1_auto_point1_pwm 0 22996 NULL
 +pcan_usb_pro_set_silent_23000 pcan_usb_pro_set_silent 0 23000 NULL
++pfkey_sendmsg_23002 pfkey_sendmsg 3 23002 NULL
 +ubifs_find_free_leb_for_idx_23003 ubifs_find_free_leb_for_idx 0 23003 NULL
 +tw68_start_streaming_23004 tw68_start_streaming 0 23004 NULL
 +dig_playback_pcm_prepare_23006 dig_playback_pcm_prepare 0 23006 NULL
@@ -136074,6 +143073,7 @@ index 0000000..19e2901
 +sctp_recvmsg_23265 sctp_recvmsg 4-0 23265 NULL nohasharray
 +intel_map_sg_23265 intel_map_sg 0-3 23265 &sctp_recvmsg_23265
 +alg_bind_23268 alg_bind 0 23268 NULL
++sha512_base_do_update_23270 sha512_base_do_update 0 23270 NULL
 +lan87xx_read_status_23278 lan87xx_read_status 0 23278 NULL
 +remove_ftrace_ops_23280 remove_ftrace_ops 0 23280 NULL
 +uwb_dev_addr_print_23282 uwb_dev_addr_print 2 23282 NULL
@@ -136118,8 +143118,10 @@ index 0000000..19e2901
 +fscache_fsdef_netfs_get_key_23368 fscache_fsdef_netfs_get_key 0 23368 NULL
 +fd_setup_write_same_buf_23369 fd_setup_write_same_buf 3 23369 NULL
 +rawv6_send_hdrinc_23370 rawv6_send_hdrinc 3 23370 NULL
++iwl_pcie_rsa_race_bug_wa_23375 iwl_pcie_rsa_race_bug_wa 0 23375 NULL
 +bonding_sysfs_store_option_23382 bonding_sysfs_store_option 0-4 23382 NULL
 +fc0011_writereg_23383 fc0011_writereg 0 23383 NULL
++pppoe_sendmsg_23391 pppoe_sendmsg 3 23391 NULL
 +kobil_write_23392 kobil_write 0-4 23392 NULL
 +jffs2_listxattr_23402 jffs2_listxattr 0-3 23402 NULL nohasharray
 +s_ctrl_23402 s_ctrl 0 23402 &jffs2_listxattr_23402
@@ -136461,7 +143463,8 @@ index 0000000..19e2901
 +lis3lv02d_selftest_show_24139 lis3lv02d_selftest_show 0 24139 &irnet_ctrl_write_24139 nohasharray
 +xfs_btree_increment_24139 xfs_btree_increment 0 24139 &lis3lv02d_selftest_show_24139
 +ov9650_s_ctrl_24141 ov9650_s_ctrl 0 24141 NULL
-+mem_cgroup_can_attach_24142 mem_cgroup_can_attach 0 24142 NULL
++mem_cgroup_can_attach_24142 mem_cgroup_can_attach 0 24142 NULL nohasharray
++unix_seqpacket_recvmsg_24142 unix_seqpacket_recvmsg 3 24142 &mem_cgroup_can_attach_24142
 +cx24123_tuner_i2c_tuner_xfer_24143 cx24123_tuner_i2c_tuner_xfer 0-3 24143 NULL nohasharray
 +attr_dragging_show_tpkbd_24143 attr_dragging_show_tpkbd 0 24143 &cx24123_tuner_i2c_tuner_xfer_24143
 +__niu_wait_bits_clear_24147 __niu_wait_bits_clear 0 24147 NULL
@@ -136481,6 +143484,7 @@ index 0000000..19e2901
 +toshiba_usb_three_set_24183 toshiba_usb_three_set 0 24183 &adv7343_write_24183
 +ql_configure_rings_24184 ql_configure_rings 0 24184 NULL
 +safe_prepare_write_buffer_24187 safe_prepare_write_buffer 3 24187 NULL
++ext4_match_24188 ext4_match 3 24188 NULL
 +resource_show_24189 resource_show 0 24189 NULL
 +po1030_set_blue_balance_24191 po1030_set_blue_balance 0 24191 NULL
 +irq_remapping_setup_msi_irqs_24194 irq_remapping_setup_msi_irqs 2 24194 NULL
@@ -136527,6 +143531,7 @@ index 0000000..19e2901
 +azx_pcm_prepare_24285 azx_pcm_prepare 0 24285 NULL nohasharray
 +power_limit_1_max_uw_show_24285 power_limit_1_max_uw_show 0 24285 &azx_pcm_prepare_24285
 +msg_size_24288 msg_size 0 24288 NULL
++__dm_get_module_param_24291 __dm_get_module_param 0-3-2 24291 NULL
 +ext2_free_blocks_24292 ext2_free_blocks 3-2 24292 NULL
 +i2c_smbus_check_pec_24297 i2c_smbus_check_pec 0 24297 NULL
 +map_page_24298 map_page 3-4 24298 NULL
@@ -136551,6 +143556,7 @@ index 0000000..19e2901
 +C_SYSC_pwritev_24345 C_SYSC_pwritev 3 24345 NULL
 +nf_iterate_24348 nf_iterate 0 24348 NULL
 +prepare_pages_24349 prepare_pages 0 24349 NULL
++rhashtable_insert_slow_24350 rhashtable_insert_slow 0 24350 NULL
 +kzalloc_node_24352 kzalloc_node 1 24352 NULL
 +roccat_common2_sysfs_read_macro_24355 roccat_common2_sysfs_read_macro 0-5-6 24355 NULL
 +lp3972_i2c_read_24364 lp3972_i2c_read 0 24364 NULL
@@ -136709,6 +143715,7 @@ index 0000000..19e2901
 +pps_show_24748 pps_show 0 24748 NULL
 +get_dma_residue_24749 get_dma_residue 0 24749 NULL nohasharray
 +commit_rxon_24749 commit_rxon 0 24749 &get_dma_residue_24749
++ntfs_copy_from_user_iter_24753 ntfs_copy_from_user_iter 5-3 24753 NULL
 +kgdb_hex2mem_24755 kgdb_hex2mem 3 24755 NULL
 +ddp_device_event_24756 ddp_device_event 0 24756 NULL
 +get_temp_max_hyst_24757 get_temp_max_hyst 0 24757 NULL
@@ -136729,6 +143736,7 @@ index 0000000..19e2901
 +mlx4_SET_PORT_general_24788 mlx4_SET_PORT_general 0 24788 &pb0100_s_ctrl_24788
 +cache_read_24790 cache_read 3-0 24790 NULL
 +i915_gem_check_wedge_24793 i915_gem_check_wedge 0 24793 NULL
++st33zp24_spi_recv_24795 st33zp24_spi_recv 4 24795 NULL
 +user_regset_copyout_24796 user_regset_copyout 7 24796 NULL nohasharray
 +show_unchecked_isa_dma_24796 show_unchecked_isa_dma 0 24796 &user_regset_copyout_24796
 +register_bcache_24797 register_bcache 0-4 24797 NULL
@@ -136744,6 +143752,7 @@ index 0000000..19e2901
 +comedi_buf_alloc_24822 comedi_buf_alloc 3 24822 NULL
 +ndo_get_phys_port_id_24825 ndo_get_phys_port_id 0 24825 NULL
 +brport_show_24827 brport_show 0 24827 NULL
++lfib_nlmsg_size_24828 lfib_nlmsg_size 0 24828 NULL
 +cuse_class_abort_store_24829 cuse_class_abort_store 0-4 24829 NULL
 +rpf_s_stream_24830 rpf_s_stream 0 24830 NULL
 +__logfs_truncate_24831 __logfs_truncate 0 24831 NULL
@@ -136866,6 +143875,7 @@ index 0000000..19e2901
 +hci_req_add_ev_25115 hci_req_add_ev 3 25115 NULL nohasharray
 +acpi_ex_create_method_25115 acpi_ex_create_method 0 25115 &hci_req_add_ev_25115 nohasharray
 +smb2_reconnect_25115 smb2_reconnect 0 25115 &acpi_ex_create_method_25115
++rxrpc_recvmsg_25121 rxrpc_recvmsg 3 25121 NULL
 +wl18xx_acx_set_checksum_state_25124 wl18xx_acx_set_checksum_state 0 25124 NULL
 +lpfc_ack0_show_25126 lpfc_ack0_show 0 25126 NULL
 +caif_connect_client_25127 caif_connect_client 0 25127 NULL nohasharray
@@ -136907,6 +143917,7 @@ index 0000000..19e2901
 +show_thresh_either_en_25218 show_thresh_either_en 0 25218 NULL
 +open_rx_first_25220 open_rx_first 0 25220 NULL
 +security_socket_post_create_25221 security_socket_post_create 0 25221 NULL
++ocfs2_block_check_compute_25223 ocfs2_block_check_compute 2 25223 NULL
 +b43legacy_op_get_stats_25225 b43legacy_op_get_stats 0 25225 NULL
 +ieee80211_start_tx_ba_session_25229 ieee80211_start_tx_ba_session 0 25229 NULL
 +sonypi_misc_read_25230 sonypi_misc_read 0-3 25230 NULL
@@ -137007,6 +144018,7 @@ index 0000000..19e2901
 +panel_power_on_store_25422 panel_power_on_store 0-4 25422 NULL
 +pinctrl_gpio_direction_25423 pinctrl_gpio_direction 0 25423 NULL
 +v4l2_m2m_dqbuf_25427 v4l2_m2m_dqbuf 0 25427 NULL
++netlink_sendmsg_25428 netlink_sendmsg 3 25428 NULL
 +snd_pcm_lib_ioctl_reset_25437 snd_pcm_lib_ioctl_reset 0 25437 NULL
 +target_core_dev_wwn_show_attr_vpd_assoc_target_port_25438 target_core_dev_wwn_show_attr_vpd_assoc_target_port 0 25438 NULL
 +pcmcia_store_new_id_25439 pcmcia_store_new_id 0-3 25439 NULL
@@ -137034,7 +144046,8 @@ index 0000000..19e2901
 +do_tcp_setsockopt_25495 do_tcp_setsockopt 0 25495 &dev_show_unique_id_25495
 +generic_hdmi_build_jack_25496 generic_hdmi_build_jack 0 25496 NULL
 +beiscsi_get_host_param_25497 beiscsi_get_host_param 0 25497 NULL
-+llc_ui_setsockopt_25501 llc_ui_setsockopt 0 25501 NULL
++llc_ui_setsockopt_25501 llc_ui_setsockopt 0 25501 NULL nohasharray
++ocfs2_hamming_encode_25501 ocfs2_hamming_encode 3 25501 &llc_ui_setsockopt_25501
 +ivtv_buf_copy_from_user_25502 ivtv_buf_copy_from_user 4-0 25502 NULL
 +snd_pcm_plugin_build_25505 snd_pcm_plugin_build 5-0 25505 NULL nohasharray
 +__orinoco_hw_set_wap_25505 __orinoco_hw_set_wap 0 25505 &snd_pcm_plugin_build_25505
@@ -137256,7 +144269,8 @@ index 0000000..19e2901
 +blk_mq_sysfs_rq_list_show_26028 blk_mq_sysfs_rq_list_show 0 26028 NULL
 +do_sas_phy_reset_26034 do_sas_phy_reset 0-2 26034 NULL nohasharray
 +bdc_gadget_ep_queue_26034 bdc_gadget_ep_queue 0 26034 &do_sas_phy_reset_26034
-+bad_inode_setxattr_26035 bad_inode_setxattr 0 26035 NULL
++bad_inode_setxattr_26035 bad_inode_setxattr 0 26035 NULL nohasharray
++ntfs_perform_write_26035 ntfs_perform_write 3 26035 &bad_inode_setxattr_26035
 +selinux_inode_post_setxattr_26037 selinux_inode_post_setxattr 4 26037 NULL nohasharray
 +rt2x00debug_read_dev_flags_26037 rt2x00debug_read_dev_flags 0-3 26037 &selinux_inode_post_setxattr_26037
 +show_fnode_data_seq_in_order_26041 show_fnode_data_seq_in_order 0 26041 NULL
@@ -137298,7 +144312,8 @@ index 0000000..19e2901
 +skb_cow_26138 skb_cow 2 26138 NULL
 +video_get_cur_state_26142 video_get_cur_state 0 26142 NULL
 +func_id_show_26143 func_id_show 0 26143 NULL
-+core_alua_store_tg_pt_gp_info_26144 core_alua_store_tg_pt_gp_info 0-3 26144 NULL
++core_alua_store_tg_pt_gp_info_26144 core_alua_store_tg_pt_gp_info 0-3 26144 NULL nohasharray
++chaoskey_read_26144 chaoskey_read 3 26144 &core_alua_store_tg_pt_gp_info_26144
 +ath9k_hw_name_26146 ath9k_hw_name 3 26146 NULL
 +ivtv_sendbyte_26147 ivtv_sendbyte 0 26147 NULL nohasharray
 +ufshcd_devfreq_target_26147 ufshcd_devfreq_target 0 26147 &ivtv_sendbyte_26147
@@ -137428,7 +144443,8 @@ index 0000000..19e2901
 +cx23885_start_streaming_26406 cx23885_start_streaming 0 26406 NULL
 +firmware_store_26408 firmware_store 4-0 26408 NULL
 +lx_pcm_trigger_dispatch_26419 lx_pcm_trigger_dispatch 0 26419 NULL nohasharray
-+bl_prepare_layoutcommit_26419 bl_prepare_layoutcommit 0 26419 &lx_pcm_trigger_dispatch_26419
++bl_prepare_layoutcommit_26419 bl_prepare_layoutcommit 0 26419 &lx_pcm_trigger_dispatch_26419 nohasharray
++serial2002_tty_write_26419 serial2002_tty_write 3 26419 &bl_prepare_layoutcommit_26419
 +br_nf_post_routing_26421 br_nf_post_routing 0 26421 NULL
 +virtual_start_show_26424 virtual_start_show 0 26424 NULL
 +erst_exec_add_26425 erst_exec_add 0 26425 NULL nohasharray
@@ -137476,7 +144492,8 @@ index 0000000..19e2901
 +iwl_dbgfs_rf_reset_read_26512 iwl_dbgfs_rf_reset_read 3-0 26512 NULL
 +l2cap_build_conf_req_26513 l2cap_build_conf_req 0 26513 NULL
 +retu_regmap_write_26516 retu_regmap_write 0 26516 NULL nohasharray
-+ths7303_s_dv_timings_26516 ths7303_s_dv_timings 0 26516 &retu_regmap_write_26516
++ths7303_s_dv_timings_26516 ths7303_s_dv_timings 0 26516 &retu_regmap_write_26516 nohasharray
++mv88e6xxx_phy_wait_26516 mv88e6xxx_phy_wait 0 26516 &ths7303_s_dv_timings_26516
 +cxacru_sysfs_show_line_status_26518 cxacru_sysfs_show_line_status 0 26518 NULL
 +alloc_ep_req_26521 alloc_ep_req 3-2 26521 NULL
 +portio_size_show_26525 portio_size_show 0 26525 NULL
@@ -137519,6 +144536,7 @@ index 0000000..19e2901
 +mem_cgroup_oom_control_write_26619 mem_cgroup_oom_control_write 0 26619 NULL
 +iommu_alloc_26621 iommu_alloc 4 26621 NULL
 +aa_change_profile_26624 aa_change_profile 0 26624 NULL
++iwl_mvm_init_mcc_26625 iwl_mvm_init_mcc 0 26625 NULL
 +pwr_fix_tsf_ps_read_26627 pwr_fix_tsf_ps_read 3-0 26627 NULL
 +nouveau_hwmon_set_max_temp_26628 nouveau_hwmon_set_max_temp 0-4 26628 NULL
 +si4713_set_rds_radio_text_26629 si4713_set_rds_radio_text 0 26629 NULL
@@ -137554,6 +144572,7 @@ index 0000000..19e2901
 +show_in_input0_26705 show_in_input0 0 26705 NULL nohasharray
 +amd_xgbe_phy_soft_reset_26705 amd_xgbe_phy_soft_reset 0 26705 &show_in_input0_26705 nohasharray
 +uwb_dev_RSSI_store_26705 uwb_dev_RSSI_store 0-4 26705 &amd_xgbe_phy_soft_reset_26705
++xenbus_map_ring_valloc_hvm_26709 xenbus_map_ring_valloc_hvm 3 26709 NULL
 +cx18_av_s_stream_26713 cx18_av_s_stream 0 26713 NULL nohasharray
 +rtllib_authentication_req_26713 rtllib_authentication_req 3 26713 &cx18_av_s_stream_26713
 +yellowfin_init_ring_26714 yellowfin_init_ring 0 26714 NULL
@@ -137572,6 +144591,7 @@ index 0000000..19e2901
 +b43legacy_attr_preamble_show_26740 b43legacy_attr_preamble_show 0 26740 NULL nohasharray
 +osst_probe_26740 osst_probe 0 26740 &b43legacy_attr_preamble_show_26740
 +pipeline_tcp_rx_stat_fifo_int_read_26745 pipeline_tcp_rx_stat_fifo_int_read 3-0 26745 NULL
++mpls_rt_alloc_26748 mpls_rt_alloc 1 26748 NULL
 +bcm87xx_read_status_26749 bcm87xx_read_status 0 26749 NULL
 +virtscsi_change_queue_depth_26751 virtscsi_change_queue_depth 2-0 26751 NULL
 +msg_from_mpoad_26753 msg_from_mpoad 0 26753 NULL nohasharray
@@ -137593,6 +144613,7 @@ index 0000000..19e2901
 +bond_slave_netdev_event_26777 bond_slave_netdev_event 0 26777 NULL
 +inotify_read_26778 inotify_read 0-3 26778 NULL
 +dma_map_single_attrs_26779 dma_map_single_attrs 0 26779 NULL
++resize_platform_label_table_26780 resize_platform_label_table 2 26780 NULL
 +read_port_26787 read_port 0-3 26787 NULL
 +store_bank1_mask_26793 store_bank1_mask 0-4 26793 NULL
 +compat_sys_recv_26794 compat_sys_recv 3 26794 NULL
@@ -137622,6 +144643,7 @@ index 0000000..19e2901
 +ecryptfs_miscdev_write_26847 ecryptfs_miscdev_write 3-0 26847 NULL
 +ss_alloc_ep_req_26848 ss_alloc_ep_req 2 26848 NULL
 +gx_frame_buffer_size_26851 gx_frame_buffer_size 0 26851 NULL
++nfs_post_op_update_inode_locked_26852 nfs_post_op_update_inode_locked 0 26852 NULL
 +core_tpg_set_initiator_node_tag_26853 core_tpg_set_initiator_node_tag 0 26853 NULL nohasharray
 +ipath_f_set_ib_cfg_26853 ipath_f_set_ib_cfg 0 26853 &core_tpg_set_initiator_node_tag_26853
 +sisusb_read_26856 sisusb_read 0-3 26856 NULL
@@ -137672,7 +144694,8 @@ index 0000000..19e2901
 +lx_dsp_set_granularity_26954 lx_dsp_set_granularity 0 26954 NULL
 +mesh_id_set_26957 mesh_id_set 0-4 26957 NULL
 +adp8870_bl_ambient_light_zone_store_26959 adp8870_bl_ambient_light_zone_store 0-4 26959 NULL
-+ext4_xattr_user_get_26961 ext4_xattr_user_get 0 26961 NULL
++ext4_xattr_user_get_26961 ext4_xattr_user_get 0 26961 NULL nohasharray
++add_fake_paths_26961 add_fake_paths 0 26961 &ext4_xattr_user_get_26961
 +trackpoint_set_bit_attr_26969 trackpoint_set_bit_attr 0-4 26969 NULL
 +tb_path_alloc_26976 tb_path_alloc 2 26976 NULL nohasharray
 +lpfc_enable_hba_reset_show_26976 lpfc_enable_hba_reset_show 0 26976 &tb_path_alloc_26976
@@ -137708,7 +144731,8 @@ index 0000000..19e2901
 +hotkey_mask_show_27048 hotkey_mask_show 0 27048 NULL
 +sc16is7xx_port_read_27051 sc16is7xx_port_read 0 27051 NULL
 +show_fnode_discovery_parent_idx_27053 show_fnode_discovery_parent_idx 0 27053 NULL
-+ufs_alloc_fragments_27059 ufs_alloc_fragments 3-0-2 27059 NULL
++ufs_alloc_fragments_27059 ufs_alloc_fragments 3-0-2 27059 NULL nohasharray
++snd_ctl_new_27059 snd_ctl_new 2 27059 &ufs_alloc_fragments_27059
 +group_store_27061 group_store 4-0 27061 NULL
 +__videobuf_alloc_vb_27062 __videobuf_alloc_vb 1 27062 NULL
 +proc_fd_permission_27063 proc_fd_permission 0 27063 NULL
@@ -137770,6 +144794,7 @@ index 0000000..19e2901
 +mt9t031_g_crop_27191 mt9t031_g_crop 0 27191 NULL
 +freeze_fs_27192 freeze_fs 0 27192 NULL
 +r852_media_type_show_27193 r852_media_type_show 0 27193 NULL
++hfs_direct_IO_27195 hfs_direct_IO 3 27195 NULL
 +vmci_transport_notify_pkt_recv_init_27208 vmci_transport_notify_pkt_recv_init 0 27208 NULL
 +toggle_hdmi_source_27212 toggle_hdmi_source 0-4 27212 NULL
 +target_stat_scsi_lu_show_attr_dev_type_27222 target_stat_scsi_lu_show_attr_dev_type 0 27222 NULL
@@ -137848,6 +144873,7 @@ index 0000000..19e2901
 +wl1251_hw_init_rx_config_27393 wl1251_hw_init_rx_config 0 27393 NULL
 +init_memory_mapping_27395 init_memory_mapping 0 27395 NULL
 +padata_sysfs_store_27398 padata_sysfs_store 0-4 27398 NULL
++parser_init_byte_stream_27399 parser_init_byte_stream 2 27399 NULL
 +if_nlmsg_size_27404 if_nlmsg_size 0 27404 NULL
 +tcm_qla2xxx_tpg_attrib_store_demo_mode_login_only_27405 tcm_qla2xxx_tpg_attrib_store_demo_mode_login_only 0-3 27405 NULL
 +seq_read_27411 seq_read 3-0 27411 NULL nohasharray
@@ -138079,6 +145105,7 @@ index 0000000..19e2901
 +bio_next_split_27961 bio_next_split 2 27961 NULL nohasharray
 +tracing_clock_write_27961 tracing_clock_write 3 27961 &bio_next_split_27961
 +ec168_ctrl_msg_27963 ec168_ctrl_msg 0 27963 NULL
++snd_hdac_bus_exec_verb_unlocked_27964 snd_hdac_bus_exec_verb_unlocked 0 27964 NULL
 +tipc_media_addr_printf_27971 tipc_media_addr_printf 2 27971 NULL nohasharray
 +nfs4_read_cached_acl_27971 nfs4_read_cached_acl 0 27971 &tipc_media_addr_printf_27971
 +mic_rx_pkts_read_27972 mic_rx_pkts_read 3-0 27972 NULL nohasharray
@@ -138228,7 +145255,8 @@ index 0000000..19e2901
 +acpi_register_gsi_xen_28305 acpi_register_gsi_xen 2 28305 &nouveau_compat_ioctl_28305
 +print_fw_version_28310 print_fw_version 0 28310 NULL
 +phys_switch_id_show_28314 phys_switch_id_show 0 28314 NULL
-+adp5520_bl_office_max_store_28316 adp5520_bl_office_max_store 4-0 28316 NULL
++adp5520_bl_office_max_store_28316 adp5520_bl_office_max_store 4-0 28316 NULL nohasharray
++do_loop_readv_writev_28316 do_loop_readv_writev 0 28316 &adp5520_bl_office_max_store_28316
 +snd_pcm_oss_read_28317 snd_pcm_oss_read 3-0 28317 NULL nohasharray
 +il4965_show_temperature_28317 il4965_show_temperature 0 28317 &snd_pcm_oss_read_28317
 +generic_access_phys_28318 generic_access_phys 2-4 28318 NULL
@@ -138311,7 +145339,8 @@ index 0000000..19e2901
 +ocfs2_backup_super_blkno_28484 ocfs2_backup_super_blkno 0-2 28484 NULL nohasharray
 +tty_read_28484 tty_read 0-3 28484 &ocfs2_backup_super_blkno_28484
 +__filemap_fdatawrite_28485 __filemap_fdatawrite 0 28485 NULL
-+coda_revalidate_inode_28489 coda_revalidate_inode 0 28489 NULL
++coda_revalidate_inode_28489 coda_revalidate_inode 0 28489 NULL nohasharray
++udp_uncompress_28489 udp_uncompress 2 28489 &coda_revalidate_inode_28489
 +max_response_pages_28492 max_response_pages 0 28492 NULL
 +pxa168_eth_set_mac_address_28494 pxa168_eth_set_mac_address 0 28494 NULL
 +snd_interval_refine_max_28498 snd_interval_refine_max 0 28498 NULL
@@ -138388,7 +145417,8 @@ index 0000000..19e2901
 +au6610_i2c_xfer_28645 au6610_i2c_xfer 0-3 28645 NULL
 +jfs_statfs_28649 jfs_statfs 0 28649 NULL
 +byte_read_data_28650 byte_read_data 0 28650 NULL
-+p9_fcall_alloc_28652 p9_fcall_alloc 1 28652 NULL
++p9_fcall_alloc_28652 p9_fcall_alloc 1 28652 NULL nohasharray
++sco_sock_recvmsg_28652 sco_sock_recvmsg 3 28652 &p9_fcall_alloc_28652
 +nilfs_construct_dsync_segment_28656 nilfs_construct_dsync_segment 0 28656 NULL
 +dpm_suspend_28657 dpm_suspend 0 28657 NULL
 +fsnotify_add_event_28660 fsnotify_add_event 0 28660 NULL
@@ -138421,9 +145451,11 @@ index 0000000..19e2901
 +tcp_cgroup_write_28723 tcp_cgroup_write 0-3 28723 NULL
 +ip6_pkt_discard_out_28724 ip6_pkt_discard_out 0 28724 NULL
 +spi_sync_locked_28726 spi_sync_locked 0 28726 NULL
++cxgb4_write_rss_28727 cxgb4_write_rss 0 28727 NULL
 +drm_plane_init_28731 drm_plane_init 6 28731 NULL nohasharray
 +nfs_revalidate_file_size_28731 nfs_revalidate_file_size 0 28731 &drm_plane_init_28731
 +spi_execute_28736 spi_execute 5 28736 NULL
++add_advertising_28737 add_advertising 4 28737 NULL
 +snd_pcm_aio_write_28738 snd_pcm_aio_write 3-0 28738 NULL nohasharray
 +mwifiex_cmd_tx_rate_cfg_28738 mwifiex_cmd_tx_rate_cfg 0 28738 &snd_pcm_aio_write_28738
 +switch_channel_28739 switch_channel 0 28739 NULL
@@ -138475,6 +145507,7 @@ index 0000000..19e2901
 +input_dev_show_phys_28859 input_dev_show_phys 0 28859 NULL
 +smack_ipv4_output_28860 smack_ipv4_output 0 28860 NULL
 +e100_self_test_28862 e100_self_test 0 28862 NULL
++create_of_modalias_28866 create_of_modalias 0 28866 NULL
 +ipv6_renew_options_28867 ipv6_renew_options 5 28867 NULL
 +profile_init_28870 profile_init 0 28870 NULL
 +b43_gphy_op_interf_mitigation_28872 b43_gphy_op_interf_mitigation 0 28872 NULL
@@ -138499,6 +145532,7 @@ index 0000000..19e2901
 +walk_tg_tree_from_28923 walk_tg_tree_from 0 28923 NULL
 +ps_upsd_timeouts_read_28924 ps_upsd_timeouts_read 3-0 28924 NULL
 +iwl_dbgfs_sleep_level_override_write_28925 iwl_dbgfs_sleep_level_override_write 3-0 28925 NULL
++ocfs2_frozen_trigger_28929 ocfs2_frozen_trigger 4 28929 NULL
 +__ext2_write_inode_28931 __ext2_write_inode 0 28931 NULL
 +btrfs_set_prop_28935 btrfs_set_prop 0 28935 NULL
 +patch_cs4213_28937 patch_cs4213 0 28937 NULL
@@ -138669,6 +145703,7 @@ index 0000000..19e2901
 +atyfb_set_par_29275 atyfb_set_par 0 29275 NULL
 +prism2_set_genericelement_29277 prism2_set_genericelement 3 29277 NULL
 +set_force_pwm_max_29278 set_force_pwm_max 0-4 29278 NULL
++bitmap_ord_to_pos_29279 bitmap_ord_to_pos 3 29279 NULL
 +_abb5zes3_rtc_update_alarm_29283 _abb5zes3_rtc_update_alarm 0 29283 NULL
 +_abb5zes3_rtc_set_timer_29286 _abb5zes3_rtc_set_timer 0 29286 NULL
 +iwl_mvm_send_cmd_pdu_status_29288 iwl_mvm_send_cmd_pdu_status 0 29288 NULL
@@ -138678,7 +145713,8 @@ index 0000000..19e2901
 +writeset_alloc_29304 writeset_alloc 2 29304 NULL nohasharray
 +tpacpi_rfk_update_swstate_29304 tpacpi_rfk_update_swstate 0 29304 &writeset_alloc_29304
 +abb5zes3_rtc_set_alarm_29308 abb5zes3_rtc_set_alarm 0 29308 NULL
-+regmap_spmi_ext_read_29311 regmap_spmi_ext_read 0 29311 NULL
++regmap_spmi_ext_read_29311 regmap_spmi_ext_read 0 29311 NULL nohasharray
++mempool_resize_29311 mempool_resize 2 29311 &regmap_spmi_ext_read_29311
 +brcmf_sdio_tx_ctrlframe_29314 brcmf_sdio_tx_ctrlframe 3 29314 NULL
 +__fuse_get_req_29315 __fuse_get_req 2 29315 NULL
 +dac33_hw_write_29317 dac33_hw_write 3 29317 NULL nohasharray
@@ -138706,6 +145742,7 @@ index 0000000..19e2901
 +write_block_data_29390 write_block_data 0 29390 NULL nohasharray
 +sleep_millisecs_store_29390 sleep_millisecs_store 0-4 29390 &write_block_data_29390
 +store_29393 store 0 29393 NULL
++hci_sock_sendmsg_29396 hci_sock_sendmsg 3 29396 NULL
 +lpfc_use_adisc_show_29400 lpfc_use_adisc_show 0 29400 NULL
 +_ctl_diag_trigger_master_show_29403 _ctl_diag_trigger_master_show 0 29403 NULL nohasharray
 +shm16read__write_file_29403 shm16read__write_file 0 29403 &_ctl_diag_trigger_master_show_29403
@@ -138835,7 +145872,9 @@ index 0000000..19e2901
 +chv_gpio_direction_input_29662 chv_gpio_direction_input 0 29662 NULL nohasharray
 +e100_phy_init_29662 e100_phy_init 0 29662 &chv_gpio_direction_input_29662
 +user_get_29663 user_get 0 29663 NULL
-+br_send_bpdu_29669 br_send_bpdu 3 29669 NULL
++br_send_bpdu_29669 br_send_bpdu 3 29669 NULL nohasharray
++rfcomm_sock_sendmsg_29669 rfcomm_sock_sendmsg 3 29669 &br_send_bpdu_29669
++br_nlmsg_size_29671 br_nlmsg_size 0 29671 NULL
 +sisusb_write_mem_bulk_29678 sisusb_write_mem_bulk 4-0 29678 NULL
 +pmbus_regulator_enable_29679 pmbus_regulator_enable 0 29679 NULL
 +netxen_store_bridged_mode_29684 netxen_store_bridged_mode 0-4 29684 NULL
@@ -138855,7 +145894,8 @@ index 0000000..19e2901
 +sht15_show_temp_29714 sht15_show_temp 0 29714 NULL
 +compat_write_data_29715 compat_write_data 0 29715 NULL
 +target_core_alua_tg_pt_gp_show_attr_alua_write_metadata_29716 target_core_alua_tg_pt_gp_show_attr_alua_write_metadata 0 29716 NULL nohasharray
-+wl1251_acx_station_id_29716 wl1251_acx_station_id 0 29716 &target_core_alua_tg_pt_gp_show_attr_alua_write_metadata_29716
++wl1251_acx_station_id_29716 wl1251_acx_station_id 0 29716 &target_core_alua_tg_pt_gp_show_attr_alua_write_metadata_29716 nohasharray
++ext4_ext_direct_IO_29716 ext4_ext_direct_IO 3 29716 &wl1251_acx_station_id_29716
 +sdev_show_evt_soft_threshold_reached_29724 sdev_show_evt_soft_threshold_reached 0 29724 NULL
 +dbs_cpufreq_notifier_29729 dbs_cpufreq_notifier 0 29729 NULL
 +wake_show_29730 wake_show 0 29730 NULL
@@ -138919,7 +145959,8 @@ index 0000000..19e2901
 +itd_submit_29871 itd_submit 0 29871 &ipv6_setsockopt_29871 nohasharray
 +ath10k_mac_vif_recalc_ps_poll_count_29871 ath10k_mac_vif_recalc_ps_poll_count 0 29871 &itd_submit_29871
 +dma_map_xdr_29874 dma_map_xdr 0 29874 NULL
-+show_engine3_mode_29876 show_engine3_mode 0 29876 NULL
++show_engine3_mode_29876 show_engine3_mode 0 29876 NULL nohasharray
++br_get_link_af_size_filtered_29876 br_get_link_af_size_filtered 0 29876 &show_engine3_mode_29876
 +setup_29880 setup 0 29880 NULL
 +store_pan_29882 store_pan 0-4 29882 NULL
 +nfc_targets_found_29886 nfc_targets_found 3 29886 NULL nohasharray
@@ -138952,6 +145993,7 @@ index 0000000..19e2901
 +crb_do_acpi_start_29961 crb_do_acpi_start 0 29961 NULL
 +init_29962 init 0 29962 NULL
 +ubifs_readpage_29965 ubifs_readpage 0 29965 NULL
++dn_sendmsg_29966 dn_sendmsg 3 29966 NULL
 +vfb_set_par_29967 vfb_set_par 0 29967 NULL
 +register_one_node_29973 register_one_node 0 29973 NULL
 +acpi_ut_copy_iobject_to_eobject_29974 acpi_ut_copy_iobject_to_eobject 0 29974 NULL
@@ -138996,7 +146038,8 @@ index 0000000..19e2901
 +tipc_sk_rcv_30090 tipc_sk_rcv 0 30090 NULL
 +cxgbi_ddp_reserve_30091 cxgbi_ddp_reserve 4 30091 NULL
 +snd_midi_channel_init_set_30092 snd_midi_channel_init_set 1 30092 NULL
-+tg3_run_loopback_30093 tg3_run_loopback 2 30093 NULL
++tg3_run_loopback_30093 tg3_run_loopback 2 30093 NULL nohasharray
++generic_write_checks_30093 generic_write_checks 0 30093 &tg3_run_loopback_30093
 +wake_lock_store_30096 wake_lock_store 0-4 30096 NULL
 +rx_filter_data_filter_read_30098 rx_filter_data_filter_read 3-0 30098 NULL
 +mlx5_cmd_exec_30102 mlx5_cmd_exec 0 30102 NULL
@@ -139021,7 +146064,8 @@ index 0000000..19e2901
 +ext4_write_inline_data_end_30151 ext4_write_inline_data_end 0-4 30151 NULL
 +hvfb_check_var_30153 hvfb_check_var 0 30153 NULL
 +elfcorehdr_read_30159 elfcorehdr_read 2 30159 NULL
-+netlink_realloc_groups_30162 netlink_realloc_groups 0 30162 NULL
++netlink_realloc_groups_30162 netlink_realloc_groups 0 30162 NULL nohasharray
++start_stop_khugepaged_30162 start_stop_khugepaged 0 30162 &netlink_realloc_groups_30162
 +alloc_switch_ctx_30165 alloc_switch_ctx 2 30165 NULL
 +sundance_set_mac_addr_30166 sundance_set_mac_addr 0 30166 NULL
 +cs_init_30168 cs_init 0 30168 NULL
@@ -139083,7 +146127,8 @@ index 0000000..19e2901
 +dn_dev_get_first_30296 dn_dev_get_first 0 30296 &tcp_sendmsg_30296
 +snd_card_asihpi_playback_prepare_30297 snd_card_asihpi_playback_prepare 0 30297 NULL nohasharray
 +lbs_get_reg_30297 lbs_get_reg 0 30297 &snd_card_asihpi_playback_prepare_30297
-+qlcnic_netdev_event_30299 qlcnic_netdev_event 0 30299 NULL
++qlcnic_netdev_event_30299 qlcnic_netdev_event 0 30299 NULL nohasharray
++irda_sendmsg_dgram_30299 irda_sendmsg_dgram 3 30299 &qlcnic_netdev_event_30299
 +__av7110_send_fw_cmd_30300 __av7110_send_fw_cmd 0 30300 NULL
 +fm_rx_set_mute_mode_30305 fm_rx_set_mute_mode 0 30305 NULL nohasharray
 +osc_contention_seconds_seq_write_30305 osc_contention_seconds_seq_write 3 30305 &fm_rx_set_mute_mode_30305
@@ -139107,7 +146152,8 @@ index 0000000..19e2901
 +s5k83a_set_hvflip_30350 s5k83a_set_hvflip 0 30350 &cyapa_gen3_show_baseline_30350
 +__vmalloc_node_flags_30352 __vmalloc_node_flags 1 30352 NULL nohasharray
 +mmio32read__read_file_30352 mmio32read__read_file 0 30352 &__vmalloc_node_flags_30352
-+show_ipOutNoRoutes_30355 show_ipOutNoRoutes 0 30355 NULL
++show_ipOutNoRoutes_30355 show_ipOutNoRoutes 0 30355 NULL nohasharray
++wil_reset_30355 wil_reset 0 30355 &show_ipOutNoRoutes_30355
 +wake_up_key_show_30358 wake_up_key_show 0 30358 NULL
 +gfs2_trans_begin_30359 gfs2_trans_begin 0 30359 NULL
 +ipx_getname_30363 ipx_getname 0 30363 NULL
@@ -139136,7 +146182,8 @@ index 0000000..19e2901
 +lp3971_set_bits_30418 lp3971_set_bits 0 30418 NULL
 +ext3_xattr_list_30419 ext3_xattr_list 0 30419 NULL
 +vb2_fop_write_30420 vb2_fop_write 3-0 30420 NULL
-+lpfc_npiv_info_show_30421 lpfc_npiv_info_show 0 30421 NULL
++lpfc_npiv_info_show_30421 lpfc_npiv_info_show 0 30421 NULL nohasharray
++trace_insert_enum_map_30421 trace_insert_enum_map 3 30421 &lpfc_npiv_info_show_30421
 +iscsi_stat_login_attr_show_30423 iscsi_stat_login_attr_show 0 30423 NULL
 +tx_tx_template_prepared_read_30424 tx_tx_template_prepared_read 3-0 30424 NULL nohasharray
 +sequencer_write_30424 sequencer_write 0-4 30424 &tx_tx_template_prepared_read_30424 nohasharray
@@ -139208,6 +146255,7 @@ index 0000000..19e2901
 +xfs_setattr_nonsize_30550 xfs_setattr_nonsize 0 30550 &lp3972_i2c_write_30550 nohasharray
 +logfs_setattr_30550 logfs_setattr 0 30550 &xfs_setattr_nonsize_30550
 +usb_serial_generic_open_30553 usb_serial_generic_open 0 30553 NULL
++_mv88e6xxx_reg_write_30554 _mv88e6xxx_reg_write 0 30554 NULL
 +ixgbevf_acquire_msix_vectors_30559 ixgbevf_acquire_msix_vectors 2 30559 NULL
 +qlcnic_sriov_pf_create_flr_queue_30560 qlcnic_sriov_pf_create_flr_queue 0 30560 NULL
 +disk_expand_part_tbl_30561 disk_expand_part_tbl 2 30561 NULL nohasharray
@@ -139380,6 +146428,7 @@ index 0000000..19e2901
 +sctp_setsockopt_rtoinfo_30941 sctp_setsockopt_rtoinfo 3-0 30941 NULL nohasharray
 +parport_uss720_ecp_read_data_30941 parport_uss720_ecp_read_data 0 30941 &sctp_setsockopt_rtoinfo_30941
 +sctp_do_bind_30943 sctp_do_bind 0 30943 NULL
++affs_direct_IO_30947 affs_direct_IO 3 30947 NULL
 +reserve_space_30953 reserve_space 0 30953 NULL nohasharray
 +store_30953 store 0-4 30953 &reserve_space_30953
 +st_accel_buffer_preenable_30954 st_accel_buffer_preenable 0 30954 NULL
@@ -139462,6 +146511,7 @@ index 0000000..19e2901
 +ssb_read16_31139 ssb_read16 0 31139 NULL
 +store_speed_scan_31141 store_speed_scan 0-4 31141 NULL
 +b43_sdio_request_irq_31144 b43_sdio_request_irq 0 31144 NULL
++caif_seqpkt_recvmsg_31145 caif_seqpkt_recvmsg 3 31145 NULL
 +patch_nvhdmi_31148 patch_nvhdmi 0 31148 NULL
 +acpi_cpu_soft_notify_31149 acpi_cpu_soft_notify 0 31149 NULL
 +uvc_start_streaming_31157 uvc_start_streaming 0 31157 NULL
@@ -139542,6 +146592,7 @@ index 0000000..19e2901
 +platform_device_add_31340 platform_device_add 0 31340 NULL
 +jffs2_trusted_listxattr_31348 jffs2_trusted_listxattr 0-5 31348 NULL nohasharray
 +snd_seq_enqueue_event_31348 snd_seq_enqueue_event 0 31348 &jffs2_trusted_listxattr_31348
++sha256_base_finish_31352 sha256_base_finish 0 31352 NULL
 +queue_setup_31353 queue_setup 0 31353 NULL
 +vpx3220_s_ctrl_31356 vpx3220_s_ctrl 0 31356 NULL
 +outlen_write_31358 outlen_write 3-0 31358 NULL
@@ -139575,6 +146626,7 @@ index 0000000..19e2901
 +cxacru_sysfs_show_downstream_attenuation_31423 cxacru_sysfs_show_downstream_attenuation 0 31423 NULL
 +TSS_checkhmac1_31429 TSS_checkhmac1 0 31429 NULL
 +iuu_open_31432 iuu_open 0 31432 NULL
++ext4_find_dest_de_31440 ext4_find_dest_de 7 31440 NULL
 +acpi_sci_ioapic_setup_31445 acpi_sci_ioapic_setup 4 31445 NULL nohasharray
 +snd_ice1712_capture_prepare_31445 snd_ice1712_capture_prepare 0 31445 &acpi_sci_ioapic_setup_31445
 +security_set_bools_31447 security_set_bools 0 31447 NULL
@@ -139616,7 +146668,8 @@ index 0000000..19e2901
 +fs_send_31530 fs_send 0 31530 NULL
 +cyapa_poll_state_31531 cyapa_poll_state 0 31531 NULL
 +__mv88e6xxx_reg_read_31534 __mv88e6xxx_reg_read 0 31534 NULL
-+tvp5150_s_ctrl_31535 tvp5150_s_ctrl 0 31535 NULL
++tvp5150_s_ctrl_31535 tvp5150_s_ctrl 0 31535 NULL nohasharray
++irda_recvmsg_dgram_31535 irda_recvmsg_dgram 3 31535 &tvp5150_s_ctrl_31535
 +hidraw_write_31536 hidraw_write 3-0 31536 NULL
 +mtd_div_by_eb_31543 mtd_div_by_eb 0-1 31543 NULL nohasharray
 +powerclamp_cpu_callback_31543 powerclamp_cpu_callback 0 31543 &mtd_div_by_eb_31543
@@ -139751,7 +146804,9 @@ index 0000000..19e2901
 +ad7793_read_frequency_31825 ad7793_read_frequency 0 31825 NULL
 +ocfs2_readpage_inline_31829 ocfs2_readpage_inline 0 31829 NULL
 +any_show_31831 any_show 0 31831 NULL
-+notify_send_pre_enqueue_31834 notify_send_pre_enqueue 0 31834 NULL
++i915_get_ggtt_vma_pages_31833 i915_get_ggtt_vma_pages 0 31833 NULL
++notify_send_pre_enqueue_31834 notify_send_pre_enqueue 0 31834 NULL nohasharray
++_mv88e6xxx_phy_read_31834 _mv88e6xxx_phy_read 0 31834 &notify_send_pre_enqueue_31834
 +cachefiles_daemon_fcull_31835 cachefiles_daemon_fcull 0 31835 NULL
 +__bond_release_one_31836 __bond_release_one 0 31836 NULL
 +isp1362_urb_enqueue_31839 isp1362_urb_enqueue 0 31839 NULL
@@ -139952,6 +147007,8 @@ index 0000000..19e2901
 +show_control_32286 show_control 0 32286 NULL
 +uart401_open_32288 uart401_open 0 32288 NULL
 +l3_alloc_skb_32289 l3_alloc_skb 1 32289 NULL
++netvsc_send_pkt_32291 netvsc_send_pkt 0 32291 NULL
++alloc_ofld_rxqs_32293 alloc_ofld_rxqs 0 32293 NULL
 +proc_sys_getattr_32297 proc_sys_getattr 0 32297 NULL
 +sisusb_read_memio_long_32299 sisusb_read_memio_long 0 32299 NULL
 +find_ci_32301 find_ci 0 32301 NULL
@@ -140026,7 +147083,8 @@ index 0000000..19e2901
 +bcm7xxx_28nm_b0_afe_config_init_32439 bcm7xxx_28nm_b0_afe_config_init 0 32439 NULL nohasharray
 +break_ksm_32439 break_ksm 0 32439 &bcm7xxx_28nm_b0_afe_config_init_32439
 +fore200e_pca_proc_read_32440 fore200e_pca_proc_read 0 32440 NULL nohasharray
-+cfq_set_leaf_weight_32440 cfq_set_leaf_weight 0 32440 &fore200e_pca_proc_read_32440
++cfq_set_leaf_weight_32440 cfq_set_leaf_weight 0 32440 &fore200e_pca_proc_read_32440 nohasharray
++reiserfs_direct_IO_32440 reiserfs_direct_IO 3 32440 &cfq_set_leaf_weight_32440
 +show_in16_32441 show_in16 0 32441 NULL
 +axnet_resume_32442 axnet_resume 0 32442 NULL
 +cx25840_s_ctrl_32444 cx25840_s_ctrl 0 32444 NULL
@@ -140086,7 +147144,8 @@ index 0000000..19e2901
 +device_change_notifier_32558 device_change_notifier 0 32558 NULL
 +bitmap_store_32559 bitmap_store 0-3 32559 NULL
 +ipgre_header_32561 ipgre_header 0 32561 NULL nohasharray
-+alloc_dma_desc_resources_32561 alloc_dma_desc_resources 0 32561 &ipgre_header_32561
++alloc_dma_desc_resources_32561 alloc_dma_desc_resources 0 32561 &ipgre_header_32561 nohasharray
++__blockdev_direct_IO_32561 __blockdev_direct_IO 5-0 32561 &alloc_dma_desc_resources_32561
 +aes_encrypt_fail_read_32562 aes_encrypt_fail_read 3-0 32562 NULL
 +loop_attr_backing_file_show_32564 loop_attr_backing_file_show 0 32564 NULL
 +osc_iocontrol_32565 osc_iocontrol 3 32565 NULL
@@ -140237,6 +147296,7 @@ index 0000000..19e2901
 +write_policy_show_32908 write_policy_show 0 32908 NULL
 +show_fan16_32912 show_fan16 0 32912 NULL
 +il_dbgfs_tx_stats_read_32913 il_dbgfs_tx_stats_read 3-0 32913 NULL
++add_bound_rdev_32915 add_bound_rdev 0 32915 NULL
 +show_32916 show 0 32916 NULL
 +mcp3422_show_samp_freqs_32924 mcp3422_show_samp_freqs 0 32924 NULL nohasharray
 +hibernate_32924 hibernate 0 32924 &mcp3422_show_samp_freqs_32924
@@ -140323,6 +147383,7 @@ index 0000000..19e2901
 +nf_nat_ipv4_local_fn_33119 nf_nat_ipv4_local_fn 0 33119 NULL nohasharray
 +set_beep_33119 set_beep 0-4 33119 &nf_nat_ipv4_local_fn_33119
 +write_node_33121 write_node 4-0 33121 NULL
++llc_ui_sendmsg_33123 llc_ui_sendmsg 3 33123 NULL
 +virtual_gb_store_33126 virtual_gb_store 0-3 33126 NULL
 +fb_sys_write_33130 fb_sys_write 3 33130 NULL nohasharray
 +cxgb4_inet6addr_handler_33130 cxgb4_inet6addr_handler 0 33130 &fb_sys_write_33130
@@ -140336,6 +147397,7 @@ index 0000000..19e2901
 +bond_option_arp_ip_target_add_33152 bond_option_arp_ip_target_add 0 33152 NULL nohasharray
 +SyS_poll_33152 SyS_poll 2 33152 &bond_option_arp_ip_target_add_33152
 +_pci_add_cap_save_buffer_33153 _pci_add_cap_save_buffer 4 33153 NULL
++packet_sendmsg_33154 packet_sendmsg 3 33154 NULL
 +ubifs_gc_start_commit_33160 ubifs_gc_start_commit 0 33160 NULL
 +regmap_spmi_ext_write_33161 regmap_spmi_ext_write 0 33161 NULL
 +wl1271_sta_hw_init_33163 wl1271_sta_hw_init 0 33163 NULL nohasharray
@@ -140426,7 +147488,8 @@ index 0000000..19e2901
 +aic26_keyclick_set_33378 aic26_keyclick_set 0-4 33378 NULL
 +mem_cgroup_resize_memsw_limit_33379 mem_cgroup_resize_memsw_limit 0 33379 NULL
 +setsockopt_33380 setsockopt 0 33380 NULL
-+hackrf_alloc_stream_bufs_33381 hackrf_alloc_stream_bufs 0 33381 NULL
++hackrf_alloc_stream_bufs_33381 hackrf_alloc_stream_bufs 0 33381 NULL nohasharray
++_find_next_bit_33381 _find_next_bit 0-2 33381 &hackrf_alloc_stream_bufs_33381
 +ieee80211_if_read_dropped_frames_no_route_33383 ieee80211_if_read_dropped_frames_no_route 3-0 33383 NULL
 +airo_suspend_33386 airo_suspend 0 33386 NULL
 +bmc150_accel_setup_new_data_interrupt_33387 bmc150_accel_setup_new_data_interrupt 0 33387 NULL
@@ -140510,6 +147573,7 @@ index 0000000..19e2901
 +tomoyo_read_self_33539 tomoyo_read_self 3-0 33539 NULL nohasharray
 +osc_max_rpcs_in_flight_seq_write_33539 osc_max_rpcs_in_flight_seq_write 3 33539 &tomoyo_read_self_33539
 +bnx2_request_firmware_33540 bnx2_request_firmware 0 33540 NULL
++__acpi_device_modalias_33545 __acpi_device_modalias 0 33545 NULL
 +get_fan_div_33546 get_fan_div 0 33546 NULL
 +cx8802_buf_prepare_33547 cx8802_buf_prepare 0 33547 NULL
 +compat_SyS_recv_33548 compat_SyS_recv 3 33548 NULL
@@ -140616,6 +147680,7 @@ index 0000000..19e2901
 +var_to_pll_33759 var_to_pll 0 33759 NULL
 +pccard_show_voltage_33761 pccard_show_voltage 0 33761 NULL
 +vifs_state_read_33762 vifs_state_read 3-0 33762 NULL
++bitmap_full_33763 bitmap_full 2 33763 NULL
 +ext2_xattr_user_list_33764 ext2_xattr_user_list 0-5 33764 NULL nohasharray
 +ext3_mark_inode_dirty_33764 ext3_mark_inode_dirty 0 33764 &ext2_xattr_user_list_33764
 +hashtab_create_33769 hashtab_create 3 33769 NULL
@@ -140663,6 +147728,7 @@ index 0000000..19e2901
 +bin_string_33884 bin_string 5-3 33884 NULL
 +get_fan1_div_33886 get_fan1_div 0 33886 NULL nohasharray
 +mwifiex_cmd_802_11_snmp_mib_33886 mwifiex_cmd_802_11_snmp_mib 0 33886 &get_fan1_div_33886
++vmci_transport_dgram_dequeue_33887 vmci_transport_dgram_dequeue 3 33887 NULL
 +twl_request_33892 twl_request 0 33892 NULL
 +sis190_init_ring_33895 sis190_init_ring 0 33895 NULL nohasharray
 +isl29003_set_resolution_33895 isl29003_set_resolution 0 33895 &sis190_init_ring_33895
@@ -140784,7 +147850,8 @@ index 0000000..19e2901
 +skb_to_sgvec_34171 skb_to_sgvec 0 34171 NULL
 +xfs_attr_get_34174 xfs_attr_get 0 34174 NULL
 +hdcs_s_ctrl_34177 hdcs_s_ctrl 0 34177 NULL
-+qla2x00_fw_dump_size_show_34180 qla2x00_fw_dump_size_show 0 34180 NULL
++qla2x00_fw_dump_size_show_34180 qla2x00_fw_dump_size_show 0 34180 NULL nohasharray
++nilfs_direct_IO_34180 nilfs_direct_IO 3 34180 &qla2x00_fw_dump_size_show_34180
 +show_pci_clock_34182 show_pci_clock 0 34182 NULL
 +mgsl_claim_resources_34183 mgsl_claim_resources 0 34183 NULL
 +hidp_set_raw_report_34192 hidp_set_raw_report 4-0 34192 NULL
@@ -140905,7 +147972,8 @@ index 0000000..19e2901
 +monitor_id_show_34469 monitor_id_show 0 34469 NULL nohasharray
 +lbs_cmd_802_11_sleep_params_34469 lbs_cmd_802_11_sleep_params 0 34469 &monitor_id_show_34469 nohasharray
 +dev_start_34469 dev_start 0 34469 &lbs_cmd_802_11_sleep_params_34469
-+show_34470 show 0 34470 NULL
++show_34470 show 0 34470 NULL nohasharray
++dt_gpio_count_34470 dt_gpio_count 0 34470 &show_34470
 +mwifiex_regrdwr_read_34472 mwifiex_regrdwr_read 3-0 34472 NULL
 +sha224_ssse3_init_34474 sha224_ssse3_init 0 34474 NULL
 +fw_csr_string_34475 fw_csr_string 0 34475 NULL
@@ -141320,6 +148388,7 @@ index 0000000..19e2901
 +link_mode_show_35372 link_mode_show 0 35372 &read_kmem_35372
 +reserved_clusters_store_35375 reserved_clusters_store 0-4 35375 NULL
 +queue_rq_affinity_store_35376 queue_rq_affinity_store 3-0 35376 NULL
++p9_virtio_zc_request_35377 p9_virtio_zc_request 6-5 35377 NULL
 +snd_pcm_do_start_35380 snd_pcm_do_start 0 35380 NULL nohasharray
 +memcpy_from_msg_35380 memcpy_from_msg 3-0 35380 &snd_pcm_do_start_35380
 +show_pwmenable_35381 show_pwmenable 0 35381 NULL
@@ -141343,6 +148412,7 @@ index 0000000..19e2901
 +firm_purge_35431 firm_purge 0 35431 NULL
 +C_SYSC_sendfile_35432 C_SYSC_sendfile 4 35432 NULL nohasharray
 +pep_init_35432 pep_init 0 35432 &C_SYSC_sendfile_35432
++__set_test_and_free_35436 __set_test_and_free 2 35436 NULL
 +dwc3_gadget_set_xfer_resource_35437 dwc3_gadget_set_xfer_resource 0 35437 NULL nohasharray
 +set_num_temp_sensors_35437 set_num_temp_sensors 0-4 35437 &dwc3_gadget_set_xfer_resource_35437
 +buffer_to_user_35439 buffer_to_user 3 35439 NULL
@@ -141429,7 +148499,9 @@ index 0000000..19e2901
 +cfq_fifo_expire_async_store_35650 cfq_fifo_expire_async_store 3-0 35650 NULL nohasharray
 +mlx4_en_get_sset_count_35650 mlx4_en_get_sset_count 0 35650 &cfq_fifo_expire_async_store_35650
 +spi_register_board_info_35651 spi_register_board_info 2 35651 NULL
++usb_dmac_desc_get_35654 usb_dmac_desc_get 2 35654 NULL
 +show_sched5_35655 show_sched5 0 35655 NULL
++blkdev_direct_IO_35665 blkdev_direct_IO 3 35665 NULL
 +regmap_update_bits_35668 regmap_update_bits 0 35668 NULL
 +request_lock_35670 request_lock 0 35670 NULL
 +bh1770_lux_calib_show_35671 bh1770_lux_calib_show 0 35671 NULL
@@ -141449,7 +148521,8 @@ index 0000000..19e2901
 +sctp_listen_start_35709 sctp_listen_start 0 35709 NULL
 +toshiba_panel_power_on_get_35719 toshiba_panel_power_on_get 0 35719 NULL
 +bnx2_change_mac_addr_35722 bnx2_change_mac_addr 0 35722 NULL
-+i2c_smbus_write_block_data_35723 i2c_smbus_write_block_data 0 35723 NULL
++i2c_smbus_write_block_data_35723 i2c_smbus_write_block_data 0 35723 NULL nohasharray
++mv88e6xxx_phy_page_write_35723 mv88e6xxx_phy_page_write 0 35723 &i2c_smbus_write_block_data_35723
 +mlx4_internal_err_ret_value_35725 mlx4_internal_err_ret_value 0 35725 NULL
 +vfio_fops_read_35733 vfio_fops_read 0-3 35733 NULL
 +ipr_copy_ucode_buffer_35736 ipr_copy_ucode_buffer 0 35736 NULL
@@ -141491,6 +148564,7 @@ index 0000000..19e2901
 +cgroup_file_write_35828 cgroup_file_write 0-3 35828 NULL
 +log_debug_write_35845 log_debug_write 3-0 35845 NULL
 +mp_set_gsi_attr_35852 mp_set_gsi_attr 1 35852 NULL
++unix_seqpacket_sendmsg_35853 unix_seqpacket_sendmsg 3 35853 NULL
 +tx_tx_cmplt_read_35854 tx_tx_cmplt_read 3-0 35854 NULL
 +wl3501_open_35855 wl3501_open 0 35855 NULL
 +mthca_buf_alloc_35861 mthca_buf_alloc 2 35861 NULL
@@ -141578,6 +148652,7 @@ index 0000000..19e2901
 +page_action_36038 page_action 0 36038 &iscsi_nacl_attrib_show_random_datain_pdu_offsets_36038
 +num_arg_36039 num_arg 0 36039 NULL
 +wm8739_s_ctrl_36040 wm8739_s_ctrl 0 36040 NULL
++i915_gem_object_do_pin_36045 i915_gem_object_do_pin 0 36045 NULL
 +init_36051 init 0 36051 NULL
 +at86rf230_set_promiscuous_mode_36052 at86rf230_set_promiscuous_mode 0 36052 NULL
 +snd_usb_caiaq_set_audio_params_36057 snd_usb_caiaq_set_audio_params 0 36057 NULL nohasharray
@@ -141670,6 +148745,7 @@ index 0000000..19e2901
 +atomic_stats_read_36228 atomic_stats_read 3-0 36228 NULL
 +wil_agg_size_36229 wil_agg_size 0-2 36229 NULL nohasharray
 +wl1273_fm_start_36229 wl1273_fm_start 0 36229 &wil_agg_size_36229
++irda_recvmsg_stream_36232 irda_recvmsg_stream 3 36232 NULL
 +__padata_remove_cpu_36235 __padata_remove_cpu 0 36235 NULL
 +ping_bind_36236 ping_bind 0 36236 NULL
 +viafb_iga1_odev_proc_write_36241 viafb_iga1_odev_proc_write 3-0 36241 NULL
@@ -141697,11 +148773,13 @@ index 0000000..19e2901
 +bind_mode_show_36286 bind_mode_show 0 36286 NULL
 +aac_show_reset_adapter_36289 aac_show_reset_adapter 0 36289 NULL
 +nf_nat_ipv6_out_36291 nf_nat_ipv6_out 0 36291 NULL
++arch_mmap_rnd_36293 arch_mmap_rnd 0 36293 NULL
 +asix_write_rx_ctl_36295 asix_write_rx_ctl 0 36295 NULL
 +do_set_fan_div_36299 do_set_fan_div 0 36299 NULL
 +lpfc_debugfs_dif_err_read_36303 lpfc_debugfs_dif_err_read 3-0 36303 NULL
 +show_in_min3_36304 show_in_min3 0 36304 NULL
-+l2cap_validate_le_psm_36306 l2cap_validate_le_psm 0 36306 NULL
++l2cap_validate_le_psm_36306 l2cap_validate_le_psm 0 36306 NULL nohasharray
++unix_stream_recvmsg_36306 unix_stream_recvmsg 3 36306 &l2cap_validate_le_psm_36306
 +target_core_alua_tg_pt_gp_store_attr_alua_access_type_36308 target_core_alua_tg_pt_gp_store_attr_alua_access_type 0-3 36308 NULL
 +ad7879_spi_xfer_36311 ad7879_spi_xfer 3 36311 NULL
 +qla2x00_vlan_id_show_36314 qla2x00_vlan_id_show 0 36314 NULL
@@ -141786,6 +148864,7 @@ index 0000000..19e2901
 +__hwahc_op_set_ptk_36510 __hwahc_op_set_ptk 5 36510 NULL
 +mcam_v4l_read_36513 mcam_v4l_read 3-0 36513 NULL
 +_iwl_dbgfs_fw_nmi_write_36515 _iwl_dbgfs_fw_nmi_write 3-0 36515 NULL
++pnfs_sync_inode_36519 pnfs_sync_inode 0 36519 NULL
 +ieee80211_if_read_fwded_frames_36520 ieee80211_if_read_fwded_frames 3-0 36520 NULL
 +it8761e_gpio_direction_out_36528 it8761e_gpio_direction_out 0 36528 NULL
 +lguest_setup_irq_36531 lguest_setup_irq 1 36531 NULL
@@ -141842,14 +148921,16 @@ index 0000000..19e2901
 +cyapa_gen5_bl_exit_36644 cyapa_gen5_bl_exit 0 36644 &ov2640_write_array_36644
 +m66592_udc_start_36646 m66592_udc_start 0 36646 NULL
 +mem_cgroup_do_precharge_36647 mem_cgroup_do_precharge 0 36647 NULL
-+lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 NULL
++lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 NULL nohasharray
++tty_copy_to_user_36648 tty_copy_to_user 4 36648 &lpfc_idiag_extacc_alloc_get_36648
 +add_dev_support_show_36650 add_dev_support_show 0 36650 NULL
 +hfsplus_osx_listxattr_36654 hfsplus_osx_listxattr 0-5 36654 NULL nohasharray
 +interface_show_36654 interface_show 0 36654 &hfsplus_osx_listxattr_36654
 +ktti_read_regr_36658 ktti_read_regr 0 36658 NULL
 +pss_coproc_open_36662 pss_coproc_open 0 36662 NULL
 +osd_req_list_collection_objects_36664 osd_req_list_collection_objects 5 36664 NULL nohasharray
-+ip6_pkt_prohibit_out_36664 ip6_pkt_prohibit_out 0 36664 &osd_req_list_collection_objects_36664
++ip6_pkt_prohibit_out_36664 ip6_pkt_prohibit_out 0 36664 &osd_req_list_collection_objects_36664 nohasharray
++mgmt_send_event_36664 mgmt_send_event 5 36664 &ip6_pkt_prohibit_out_36664
 +snd_pcsp_trigger_36665 snd_pcsp_trigger 0 36665 NULL
 +iscsi_host_alloc_36671 iscsi_host_alloc 2 36671 NULL nohasharray
 +get_temp_input_36671 get_temp_input 0 36671 &iscsi_host_alloc_36671
@@ -141958,13 +149039,15 @@ index 0000000..19e2901
 +set_green_36904 set_green 0-4 36904 &wm831x_auxadc_read_36904
 +lm3533_als_get_target_36905 lm3533_als_get_target 0 36905 NULL
 +show_fnode_chap_auth_36909 show_fnode_chap_auth 0 36909 NULL nohasharray
-+send_next_seg_36909 send_next_seg 0 36909 &show_fnode_chap_auth_36909
++send_next_seg_36909 send_next_seg 0 36909 &show_fnode_chap_auth_36909 nohasharray
++packet_sendmsg_spkt_36909 packet_sendmsg_spkt 3 36909 &send_next_seg_36909
 +zl10036_read_status_reg_36910 zl10036_read_status_reg 0 36910 NULL nohasharray
 +set_mandatory_rates_36910 set_mandatory_rates 0 36910 &zl10036_read_status_reg_36910
 +cuse_read_36920 cuse_read 0-3 36920 NULL
 +show_counter_rx_p2_hdr_egr_ovfls_36924 show_counter_rx_p2_hdr_egr_ovfls 0 36924 NULL nohasharray
 +data_sock_getname_36924 data_sock_getname 0 36924 &show_counter_rx_p2_hdr_egr_ovfls_36924
 +store_lid_36925 store_lid 0-4 36925 NULL
++copy_batch_36927 copy_batch 3-4 36927 NULL
 +netxen_sysfs_read_dimm_36930 netxen_sysfs_read_dimm 0-5-6 36930 NULL
 +queue_rq_affinity_show_36934 queue_rq_affinity_show 0 36934 NULL
 +clock_name_show_36935 clock_name_show 0 36935 NULL nohasharray
@@ -142035,12 +149118,14 @@ index 0000000..19e2901
 +_iwl_dbgfs_bcast_filters_macs_write_37069 _iwl_dbgfs_bcast_filters_macs_write 3-0 37069 NULL
 +ql_get_sset_count_37070 ql_get_sset_count 0 37070 NULL
 +vmci_transport_send_wrote_37072 vmci_transport_send_wrote 0 37072 NULL nohasharray
-+logfs_write_rec_37072 logfs_write_rec 0 37072 &vmci_transport_send_wrote_37072
++logfs_write_rec_37072 logfs_write_rec 0 37072 &vmci_transport_send_wrote_37072 nohasharray
++vmap_batch_37072 vmap_batch 2-3 37072 &logfs_write_rec_37072
 +uhci_submit_bulk_37073 uhci_submit_bulk 0 37073 NULL
 +ath10k_spectral_scan_config_37075 ath10k_spectral_scan_config 0 37075 NULL
 +SYSC_setxattr_37078 SYSC_setxattr 4 37078 NULL
 +parse_command_37079 parse_command 2-0 37079 NULL
 +drm_mode_create_rotation_property_37082 drm_mode_create_rotation_property 2 37082 NULL
++ll_direct_IO_26_37083 ll_direct_IO_26 3 37083 NULL
 +resize_37084 resize 0 37084 NULL
 +pipeline_cs_rx_packet_in_read_37089 pipeline_cs_rx_packet_in_read 3-0 37089 NULL nohasharray
 +show_fcstat_loss_of_sync_count_37089 show_fcstat_loss_of_sync_count 0 37089 &pipeline_cs_rx_packet_in_read_37089
@@ -142166,7 +149251,8 @@ index 0000000..19e2901
 +compat_SyS_fcntl_37376 compat_SyS_fcntl 3 37376 NULL
 +xcan_open_37377 xcan_open 0 37377 NULL
 +sched_domains_numa_masks_update_37380 sched_domains_numa_masks_update 0 37380 NULL
-+queue_discard_zeroes_data_show_37381 queue_discard_zeroes_data_show 0 37381 NULL
++queue_discard_zeroes_data_show_37381 queue_discard_zeroes_data_show 0 37381 NULL nohasharray
++gfs2_direct_IO_37381 gfs2_direct_IO 3 37381 &queue_discard_zeroes_data_show_37381
 +mmc_raw_rpmb_size_mult_show_37385 mmc_raw_rpmb_size_mult_show 0 37385 NULL nohasharray
 +setup_bd_list_xfr_37385 setup_bd_list_xfr 0 37385 &mmc_raw_rpmb_size_mult_show_37385
 +iommu_num_pages_37391 iommu_num_pages 0-2-3-1 37391 NULL
@@ -142180,7 +149266,7 @@ index 0000000..19e2901
 +max14577_set_fast_charge_timer_37418 max14577_set_fast_charge_timer 0 37418 &sys_getxattr_37418
 +hci_sock_sendmsg_37420 hci_sock_sendmsg 4-0 37420 NULL
 +acpi_os_allocate_zeroed_37422 acpi_os_allocate_zeroed 1 37422 NULL nohasharray
-+find_next_bit_37422 find_next_bit 0 37422 &acpi_os_allocate_zeroed_37422
++find_next_bit_37422 find_next_bit 0-2 37422 &acpi_os_allocate_zeroed_37422
 +tty_insert_flip_string_fixed_flag_37428 tty_insert_flip_string_fixed_flag 4-0 37428 NULL nohasharray
 +it8712f_wdt_notify_37428 it8712f_wdt_notify 0 37428 &tty_insert_flip_string_fixed_flag_37428
 +iwl_print_last_event_logs_37433 iwl_print_last_event_logs 7-9-0 37433 NULL
@@ -142256,7 +149342,8 @@ index 0000000..19e2901
 +bonding_show_updelay_37620 bonding_show_updelay 0 37620 NULL nohasharray
 +node_read_meminfo_37620 node_read_meminfo 0 37620 &bonding_show_updelay_37620
 +SYSC_mbind_37622 SYSC_mbind 5 37622 NULL
-+cdc_ncm_show_dwNtbOutMaxSize_37627 cdc_ncm_show_dwNtbOutMaxSize 0 37627 NULL
++cdc_ncm_show_dwNtbOutMaxSize_37627 cdc_ncm_show_dwNtbOutMaxSize 0 37627 NULL nohasharray
++aio_run_iocb_37627 aio_run_iocb 4 37627 &cdc_ncm_show_dwNtbOutMaxSize_37627
 +rd_byte_37632 rd_byte 0 37632 NULL
 +os_desc_b_vendor_code_store_37633 os_desc_b_vendor_code_store 0-3 37633 NULL
 +__hw_addr_add_37635 __hw_addr_add 0 37635 NULL
@@ -142376,6 +149463,7 @@ index 0000000..19e2901
 +pkt_alloc_packet_data_37928 pkt_alloc_packet_data 1 37928 NULL nohasharray
 +_rtw_malloc_37928 _rtw_malloc 1 37928 &pkt_alloc_packet_data_37928
 +set_pwmchan_37930 set_pwmchan 0-4 37930 NULL
++security_inode_getattr_37932 security_inode_getattr 0 37932 NULL
 +toshiba_accelerometer_get_37934 toshiba_accelerometer_get 0 37934 NULL
 +ath5k_attr_store_spur_level_37935 ath5k_attr_store_spur_level 0-4 37935 NULL
 +read_rbu_packet_size_37939 read_rbu_packet_size 6-0-5 37939 NULL nohasharray
@@ -142405,6 +149493,7 @@ index 0000000..19e2901
 +isl1208_sysfs_show_usr_37987 isl1208_sysfs_show_usr 0 37987 NULL
 +rds_rdma_extra_size_37990 rds_rdma_extra_size 0 37990 NULL nohasharray
 +netxen_nic_change_mtu_37990 netxen_nic_change_mtu 0 37990 &rds_rdma_extra_size_37990
++aio_setup_vectored_rw_37994 aio_setup_vectored_rw 3 37994 NULL
 +of_regulator_match_37995 of_regulator_match 0 37995 NULL
 +persistent_ram_old_size_37997 persistent_ram_old_size 0 37997 NULL nohasharray
 +fm10k_update_vid_37997 fm10k_update_vid 0 37997 &persistent_ram_old_size_37997
@@ -142483,6 +149572,7 @@ index 0000000..19e2901
 +bonding_show_active_slave_38152 bonding_show_active_slave 0 38152 NULL
 +__ntfs_copy_from_user_iovec_inatomic_38153 __ntfs_copy_from_user_iovec_inatomic 0-4-3 38153 NULL
 +gss_import_sec_context_38154 gss_import_sec_context 0 38154 NULL
++vcc_recvmsg_38166 vcc_recvmsg 3 38166 NULL
 +fbcon_fb_unregistered_38168 fbcon_fb_unregistered 0 38168 NULL
 +snd_ca0106_pcm_trigger_capture_38169 snd_ca0106_pcm_trigger_capture 0 38169 NULL nohasharray
 +amb_open_38169 amb_open 0 38169 &snd_ca0106_pcm_trigger_capture_38169
@@ -142568,7 +149658,8 @@ index 0000000..19e2901
 +ql_set_mac_addr_reg_38341 ql_set_mac_addr_reg 0 38341 NULL
 +pm8001_ctl_mpi_interface_rev_show_38342 pm8001_ctl_mpi_interface_rev_show 0 38342 NULL
 +sisusb_write_memio_byte_38343 sisusb_write_memio_byte 0 38343 NULL
-+iscsi_stat_sess_show_attr_conn_timeout_errors_38346 iscsi_stat_sess_show_attr_conn_timeout_errors 0 38346 NULL
++iscsi_stat_sess_show_attr_conn_timeout_errors_38346 iscsi_stat_sess_show_attr_conn_timeout_errors 0 38346 NULL nohasharray
++nf_hook_thresh_38346 nf_hook_thresh 0 38346 &iscsi_stat_sess_show_attr_conn_timeout_errors_38346
 +af9005_write_tuner_registers_38347 af9005_write_tuner_registers 0 38347 NULL
 +snd_hda_add_pincfg_38354 snd_hda_add_pincfg 0 38354 NULL
 +security_getxattr_38355 security_getxattr 0 38355 NULL
@@ -142651,12 +149742,14 @@ index 0000000..19e2901
 +prepare_header95_38540 prepare_header95 0 38540 NULL
 +jffs2_user_getxattr_38541 jffs2_user_getxattr 0 38541 NULL
 +btrfs_discard_extent_38547 btrfs_discard_extent 2 38547 NULL
-+xs_error_38560 xs_error 0 38560 NULL
++xs_error_38560 xs_error 0 38560 NULL nohasharray
++tcp_sendmsg_38560 tcp_sendmsg 3 38560 &xs_error_38560
 +irda_sendmsg_dgram_38563 irda_sendmsg_dgram 4-0 38563 NULL
 +il4965_rs_sta_dbgfs_scale_table_read_38564 il4965_rs_sta_dbgfs_scale_table_read 3-0 38564 NULL nohasharray
 +iscsi_stat_login_show_attr_authorize_fails_38564 iscsi_stat_login_show_attr_authorize_fails 0 38564 &il4965_rs_sta_dbgfs_scale_table_read_38564
 +snd_nm256_playback_copy_38567 snd_nm256_playback_copy 5 38567 NULL nohasharray
 +sr9700_get_eeprom_len_38567 sr9700_get_eeprom_len 0 38567 &snd_nm256_playback_copy_38567
++skcipher_sendmsg_38570 skcipher_sendmsg 3 38570 NULL
 +zd_reg2alpha2_38572 zd_reg2alpha2 0 38572 NULL
 +srp_create_target_38575 srp_create_target 0-4 38575 NULL
 +copy_ctl_value_to_user_38587 copy_ctl_value_to_user 4 38587 NULL
@@ -142737,6 +149830,7 @@ index 0000000..19e2901
 +p9_mount_tag_show_38744 p9_mount_tag_show 0 38744 NULL nohasharray
 +extlog_print_38744 extlog_print 0 38744 &p9_mount_tag_show_38744
 +clear_intrusion_38745 clear_intrusion 0-4 38745 NULL
++btusb_qca_send_vendor_req_38746 btusb_qca_send_vendor_req 4 38746 NULL
 +microcode_write_38754 microcode_write 0-3 38754 NULL
 +netxen_nic_get_eeprom_len_38756 netxen_nic_get_eeprom_len 0 38756 NULL
 +get_fan_rpm_38760 get_fan_rpm 0 38760 NULL nohasharray
@@ -142832,7 +149926,8 @@ index 0000000..19e2901
 +wp512_init_38975 wp512_init 0 38975 NULL
 +usb_maxpacket_38977 usb_maxpacket 0 38977 NULL nohasharray
 +adfs_fplus_read_38977 adfs_fplus_read 0 38977 &usb_maxpacket_38977
-+addr_assign_type_show_38978 addr_assign_type_show 0 38978 NULL
++addr_assign_type_show_38978 addr_assign_type_show 0 38978 NULL nohasharray
++iwl_mvm_init_fw_regd_38978 iwl_mvm_init_fw_regd 0 38978 &addr_assign_type_show_38978
 +_iommu_cpumask_show_38985 _iommu_cpumask_show 0 38985 NULL
 +OSDSetBlock_38986 OSDSetBlock 2-4 38986 NULL nohasharray
 +pti_tty_write_room_38986 pti_tty_write_room 0 38986 &OSDSetBlock_38986
@@ -142840,6 +149935,7 @@ index 0000000..19e2901
 +intel_nontranslate_map_sg_38992 intel_nontranslate_map_sg 0-3 38992 NULL
 +bio_clone_range_38997 bio_clone_range 2 38997 NULL
 +lpfc_idiag_extacc_write_38998 lpfc_idiag_extacc_write 3-0 38998 NULL
++udf_new_block_38999 udf_new_block 4 38999 NULL
 +bh1770_set_lux_thresh_39000 bh1770_set_lux_thresh 0 39000 NULL
 +mmio16write__write_file_39001 mmio16write__write_file 0 39001 NULL
 +systemid_show_39002 systemid_show 0 39002 NULL
@@ -142864,7 +149960,8 @@ index 0000000..19e2901
 +write_battery_life_extender_39045 write_battery_life_extender 0 39045 NULL
 +wl18xx_trigger_cmd_39046 wl18xx_trigger_cmd 0 39046 NULL
 +power_limit_1_tmax_us_show_39050 power_limit_1_tmax_us_show 0 39050 NULL
-+do_write_kmem_39051 do_write_kmem 0-1-3 39051 NULL
++do_write_kmem_39051 do_write_kmem 0-1-3 39051 NULL nohasharray
++log_writes_status_39051 log_writes_status 5 39051 &do_write_kmem_39051
 +__wil_up_39052 __wil_up 0 39052 NULL
 +get_component_status_39053 get_component_status 0 39053 NULL
 +gen10g_read_status_39059 gen10g_read_status 0 39059 NULL
@@ -142889,6 +149986,7 @@ index 0000000..19e2901
 +avoid_reset_quirk_show_39119 avoid_reset_quirk_show 0 39119 NULL
 +__kfifo_to_user_r_39123 __kfifo_to_user_r 3-5 39123 NULL
 +saa711x_set_size_39124 saa711x_set_size 0 39124 NULL
++l2tp_ip6_recvmsg_39130 l2tp_ip6_recvmsg 3 39130 NULL
 +snd_vt1724_pcm_trigger_39131 snd_vt1724_pcm_trigger 0 39131 NULL
 +ea_foreach_39133 ea_foreach 0 39133 NULL
 +snd_pcm_plug_format_plugins_39136 snd_pcm_plug_format_plugins 0 39136 NULL
@@ -142909,6 +150007,7 @@ index 0000000..19e2901
 +msr_device_create_39175 msr_device_create 0 39175 NULL
 +vpe_buf_prepare_39183 vpe_buf_prepare 0 39183 NULL
 +wl1271_cmd_data_path_39185 wl1271_cmd_data_path 0 39185 NULL
++snd_hda_codec_parse_pcms_39188 snd_hda_codec_parse_pcms 0 39188 NULL
 +ubi_more_update_data_39189 ubi_more_update_data 4-0 39189 NULL
 +soc_camera_platform_s_stream_39190 soc_camera_platform_s_stream 0 39190 NULL nohasharray
 +quota_scale_store_39190 quota_scale_store 0-3 39190 &soc_camera_platform_s_stream_39190
@@ -142976,6 +150075,7 @@ index 0000000..19e2901
 +adp8860_store_39328 adp8860_store 0-3 39328 NULL
 +target_core_dev_attrib_attr_show_39329 target_core_dev_attrib_attr_show 0 39329 NULL
 +flex_array_prealloc_39330 flex_array_prealloc 0 39330 NULL
++drm_dp_i2c_drain_msg_39331 drm_dp_i2c_drain_msg 0 39331 NULL
 +gmbus_xfer_39341 gmbus_xfer 0-3 39341 NULL
 +xen_hvm_setup_msi_irqs_39342 xen_hvm_setup_msi_irqs 2 39342 NULL
 +wimax_msg_alloc_39343 wimax_msg_alloc 4 39343 NULL
@@ -143047,7 +150147,8 @@ index 0000000..19e2901
 +rtnl_port_size_39551 rtnl_port_size 0 39551 NULL
 +pp_write_39554 pp_write 3-0 39554 NULL nohasharray
 +sr_write_cmd_39554 sr_write_cmd 5-0 39554 &pp_write_39554
-+sis630_block_data_39556 sis630_block_data 0 39556 NULL
++sis630_block_data_39556 sis630_block_data 0 39556 NULL nohasharray
++set_pcm_default_values_39556 set_pcm_default_values 0 39556 &sis630_block_data_39556
 +ol_dqblk_block_39558 ol_dqblk_block 2 39558 NULL
 +cpulistaffinity_show_39560 cpulistaffinity_show 0 39560 NULL nohasharray
 +uhid_dev_input2_39560 uhid_dev_input2 0 39560 &cpulistaffinity_show_39560 nohasharray
@@ -143211,6 +150312,7 @@ index 0000000..19e2901
 +bh1770_set_lux_rate_39960 bh1770_set_lux_rate 0-4 39960 NULL
 +bh1770_get_prox_rate_avail_39962 bh1770_get_prox_rate_avail 0 39962 NULL
 +prepare_39963 prepare 0 39963 NULL
++mv88e6xxx_phy_write_indirect_39966 mv88e6xxx_phy_write_indirect 2 39966 NULL
 +bio_chain_clone_range_39967 bio_chain_clone_range 3 39967 NULL
 +selinux_audit_rule_init_39969 selinux_audit_rule_init 0 39969 NULL
 +fmvj18x_resume_39970 fmvj18x_resume 0 39970 NULL
@@ -143269,6 +150371,7 @@ index 0000000..19e2901
 +netlink_broadcast_filtered_40105 netlink_broadcast_filtered 0 40105 NULL
 +xfs_rtbuf_get_40107 xfs_rtbuf_get 0 40107 NULL
 +gen_pool_first_fit_40110 gen_pool_first_fit 2-3-4 40110 NULL
++snd_soc_dapm_new_pcm_40119 snd_soc_dapm_new_pcm 3 40119 NULL
 +sctp_setsockopt_delayed_ack_40129 sctp_setsockopt_delayed_ack 3-0 40129 NULL nohasharray
 +lp3971_i2c_read_40129 lp3971_i2c_read 0 40129 &sctp_setsockopt_delayed_ack_40129 nohasharray
 +cachefiles_daemon_tag_40129 cachefiles_daemon_tag 0 40129 &lp3971_i2c_read_40129
@@ -143304,6 +150407,7 @@ index 0000000..19e2901
 +allocate_probes_40204 allocate_probes 1 40204 NULL
 +selinux_socket_recvmsg_40208 selinux_socket_recvmsg 0 40208 NULL
 +ecryptfs_inode_newsize_ok_40210 ecryptfs_inode_newsize_ok 0 40210 NULL
++generic_exec_single_40212 generic_exec_single 0 40212 NULL
 +_nfs4_do_fsinfo_40215 _nfs4_do_fsinfo 0 40215 NULL
 +sync_cached_firmware_buf_40217 sync_cached_firmware_buf 0 40217 NULL
 +i40e_get_sset_count_40218 i40e_get_sset_count 0 40218 NULL
@@ -143332,6 +150436,7 @@ index 0000000..19e2901
 +pcnet_suspend_40283 pcnet_suspend 0 40283 &rx_xfr_hint_trig_read_40283
 +ad7877_dac_store_40285 ad7877_dac_store 0-4 40285 NULL
 +il_dbgfs_ucode_rx_stats_read_40286 il_dbgfs_ucode_rx_stats_read 0-3 40286 NULL
++ashmem_read_40287 ashmem_read 3 40287 NULL
 +tracing_thresh_read_40295 tracing_thresh_read 3 40295 NULL
 +dn_confirm_accept_40296 dn_confirm_accept 0 40296 NULL nohasharray
 +aat2870_ldo_is_enabled_40296 aat2870_ldo_is_enabled 0 40296 &dn_confirm_accept_40296
@@ -143340,6 +150445,7 @@ index 0000000..19e2901
 +SyS_bind_40303 SyS_bind 3 40303 NULL
 +ubi_io_write_data_40305 ubi_io_write_data 4-5-0 40305 NULL nohasharray
 +device_online_40305 device_online 0 40305 &ubi_io_write_data_40305
++mv88e6xxx_phy_page_read_40309 mv88e6xxx_phy_page_read 0 40309 NULL
 +wm8350_rtc_readtime_40313 wm8350_rtc_readtime 0 40313 NULL
 +vlan_device_event_40315 vlan_device_event 0 40315 NULL
 +prepare_40316 prepare 0 40316 NULL
@@ -143580,6 +150686,7 @@ index 0000000..19e2901
 +kmx61_set_mode_40839 kmx61_set_mode 0 40839 NULL
 +show_in_status_40844 show_in_status 0 40844 NULL nohasharray
 +can_rx_register_40844 can_rx_register 0 40844 &show_in_status_40844
++test_smp_read_40845 test_smp_read 3 40845 NULL
 +nilfs_mdt_init_40849 nilfs_mdt_init 3 40849 NULL
 +isku_sysfs_write_keys_thumbster_40851 isku_sysfs_write_keys_thumbster 6-0-5 40851 NULL nohasharray
 +udp_lib_setsockopt_40851 udp_lib_setsockopt 0 40851 &isku_sysfs_write_keys_thumbster_40851 nohasharray
@@ -143598,6 +150705,7 @@ index 0000000..19e2901
 +i7core_inject_eccmask_show_40872 i7core_inject_eccmask_show 0 40872 NULL
 +atomic_add_unless_40873 atomic_add_unless 0 40873 NULL
 +snd_cx88_card_trigger_40885 snd_cx88_card_trigger 0 40885 NULL
++iwl_mvm_start_fw_dbg_conf_40886 iwl_mvm_start_fw_dbg_conf 0 40886 NULL
 +wl12xx_cmd_build_probe_req_40888 wl12xx_cmd_build_probe_req 6-10-8 40888 NULL
 +init_vbus_channel_40889 init_vbus_channel 1-2 40889 NULL
 +store_global_beep_40893 store_global_beep 0-4 40893 NULL
@@ -143685,6 +150793,7 @@ index 0000000..19e2901
 +ks8995_write_41066 ks8995_write 0-4 41066 NULL
 +recovery_start_show_41070 recovery_start_show 0 41070 NULL nohasharray
 +ims_pcu_ofn_bit_show_41070 ims_pcu_ofn_bit_show 0 41070 &recovery_start_show_41070
++raw_recvmsg_41073 raw_recvmsg 3 41073 NULL
 +sc_only_mode_read_41076 sc_only_mode_read 3-0 41076 NULL nohasharray
 +usbvision_write_reg_41076 usbvision_write_reg 0 41076 &sc_only_mode_read_41076
 +cfg80211_inform_bss_frame_41078 cfg80211_inform_bss_frame 4 41078 NULL
@@ -143790,6 +150899,7 @@ index 0000000..19e2901
 +cnic_init_id_tbl_41354 cnic_init_id_tbl 2 41354 NULL nohasharray
 +show_temp_low_41354 show_temp_low 0 41354 &cnic_init_id_tbl_41354 nohasharray
 +hsit_s_stream_41354 hsit_s_stream 0 41354 &show_temp_low_41354
++__cfg80211_alloc_vendor_skb_41356 __cfg80211_alloc_vendor_skb 3 41356 NULL
 +jbd2_alloc_41359 jbd2_alloc 1 41359 NULL
 +kovaplus_sysfs_show_actual_cpi_41367 kovaplus_sysfs_show_actual_cpi 0 41367 NULL
 +max16065_show_alarm_41372 max16065_show_alarm 0 41372 NULL nohasharray
@@ -143850,6 +150960,7 @@ index 0000000..19e2901
 +dev_rescan_store_41481 dev_rescan_store 0-4 41481 NULL
 +rndis_proc_write_41483 rndis_proc_write 0-3 41483 NULL nohasharray
 +udc_bind_to_driver_41483 udc_bind_to_driver 0 41483 &rndis_proc_write_41483
++rocker_port_fwd_enable_41484 rocker_port_fwd_enable 0 41484 NULL
 +ip1001_config_init_41490 ip1001_config_init 0 41490 NULL
 +wep_interrupt_read_41492 wep_interrupt_read 3-0 41492 NULL
 +btrfs_setsize_41495 btrfs_setsize 0 41495 NULL
@@ -143902,7 +151013,8 @@ index 0000000..19e2901
 +rng_dev_read_41581 rng_dev_read 3-0 41581 NULL nohasharray
 +wl12xx_sdio_raw_write_41581 wl12xx_sdio_raw_write 0 41581 &rng_dev_read_41581
 +bnx2x_vfpf_init_41583 bnx2x_vfpf_init 0 41583 NULL
-+security_task_setnice_41584 security_task_setnice 0 41584 NULL
++security_task_setnice_41584 security_task_setnice 0 41584 NULL nohasharray
++mv88e6xxx_wait_41584 mv88e6xxx_wait 0 41584 &security_task_setnice_41584
 +nfsd_readv_41585 nfsd_readv 4 41585 NULL
 +drbd_send_command_41586 drbd_send_command 4-6 41586 NULL
 +batadv_tvlv_container_ogm_append_41588 batadv_tvlv_container_ogm_append 4 41588 NULL
@@ -143995,6 +151107,7 @@ index 0000000..19e2901
 +SyS_bpf_41770 SyS_bpf 3 41770 &blk_mq_hw_sysfs_run_show_41770
 +mmc_sdio_power_restore_41772 mmc_sdio_power_restore 0 41772 NULL
 +brcmf_cfg80211_vndr_cmds_dcmd_handler_41776 brcmf_cfg80211_vndr_cmds_dcmd_handler 4 41776 NULL
++x25_recvmsg_41793 x25_recvmsg 3 41793 NULL
 +iwl_dbgfs_bt_notif_read_41794 iwl_dbgfs_bt_notif_read 3-0 41794 NULL
 +flash_dev_run_41795 flash_dev_run 0 41795 NULL
 +nilfs_sufile_alloc_41798 nilfs_sufile_alloc 0 41798 NULL
@@ -144195,7 +151308,7 @@ index 0000000..19e2901
 +resources_store_42255 resources_store 0-4 42255 NULL
 +netxen_nic_map_indirect_address_128M_42257 netxen_nic_map_indirect_address_128M 2 42257 NULL nohasharray
 +amd5536_udc_start_42257 amd5536_udc_start 0 42257 &netxen_nic_map_indirect_address_128M_42257
-+find_last_bit_42260 find_last_bit 0 42260 NULL
++find_last_bit_42260 find_last_bit 0-2 42260 NULL
 +show_fc_host_port_name_42264 show_fc_host_port_name 0 42264 NULL
 +ctnetlink_proto_size_42270 ctnetlink_proto_size 0 42270 NULL
 +__pcpu_size_to_slot_42271 __pcpu_size_to_slot 0 42271 NULL
@@ -144304,7 +151417,8 @@ index 0000000..19e2901
 +sys_vmsplice_42533 sys_vmsplice 3 42533 &snd_emux_create_port_42533
 +sdev_store_evt_capacity_change_reported_42538 sdev_store_evt_capacity_change_reported 0-4 42538 NULL
 +mtip_hw_submit_io_42539 mtip_hw_submit_io 4 42539 NULL
-+mt9m111_set_hvflip_42542 mt9m111_set_hvflip 0 42542 NULL
++mt9m111_set_hvflip_42542 mt9m111_set_hvflip 0 42542 NULL nohasharray
++smk_read_unconfined_42542 smk_read_unconfined 3 42542 &mt9m111_set_hvflip_42542
 +__wa_xfer_setup_42543 __wa_xfer_setup 0 42543 NULL nohasharray
 +__register_ftrace_function_42543 __register_ftrace_function 0 42543 &__wa_xfer_setup_42543
 +dbAllocNear_42546 dbAllocNear 0 42546 NULL
@@ -144340,13 +151454,14 @@ index 0000000..19e2901
 +rt2500pci_set_device_state_42620 rt2500pci_set_device_state 0 42620 NULL nohasharray
 +vlan_dev_open_42620 vlan_dev_open 0 42620 &rt2500pci_set_device_state_42620
 +secinfo_parse_42624 secinfo_parse 0 42624 NULL
-+mv88e6xxx_phy_read_42625 mv88e6xxx_phy_read 0 42625 NULL
++mv88e6xxx_phy_read_42625 mv88e6xxx_phy_read 0-2 42625 NULL
 +sys_move_pages_42626 sys_move_pages 2 42626 NULL nohasharray
 +map_show_42626 map_show 0 42626 &sys_move_pages_42626
 +xfs_attr_leaf_removename_42629 xfs_attr_leaf_removename 0 42629 NULL
 +crypto_ahash_walk_first_42630 crypto_ahash_walk_first 0 42630 NULL
 +snd_hwdep_dev_register_42632 snd_hwdep_dev_register 0 42632 NULL
 +ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout_42635 ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout 3 42635 NULL
++iommu_tbl_range_alloc_42638 iommu_tbl_range_alloc 5-3-6 42638 NULL
 +b43legacy_wireless_core_init_42640 b43legacy_wireless_core_init 0 42640 NULL
 +br_mdb_rehash_42643 br_mdb_rehash 2 42643 NULL
 +num_controllers_42644 num_controllers 0 42644 NULL
@@ -144665,7 +151780,8 @@ index 0000000..19e2901
 +set_peripheral_43353 set_peripheral 0 43353 NULL
 +gart_free_coherent_43362 gart_free_coherent 2-4 43362 NULL
 +may_create_key_43363 may_create_key 0 43363 NULL
-+pm_print_times_show_43364 pm_print_times_show 0 43364 NULL
++pm_print_times_show_43364 pm_print_times_show 0 43364 NULL nohasharray
++btrfs_check_data_free_space_43364 btrfs_check_data_free_space 0 43364 &pm_print_times_show_43364
 +pn_init_43370 pn_init 0 43370 NULL
 +proc_sys_permission_43371 proc_sys_permission 0 43371 NULL nohasharray
 +bnad_tx_msix_register_43371 bnad_tx_msix_register 0 43371 &proc_sys_permission_43371
@@ -144745,7 +151861,8 @@ index 0000000..19e2901
 +ll_direct_IO_26_43530 ll_direct_IO_26 4 43530 &alloc_instance_buffer_43530
 +dvb_ca_en50221_io_write_43533 dvb_ca_en50221_io_write 3-0 43533 NULL nohasharray
 +core_scsi3_alloc_aptpl_registration_43533 core_scsi3_alloc_aptpl_registration 0 43533 &dvb_ca_en50221_io_write_43533
-+read_events_43534 read_events 3 43534 NULL
++read_events_43534 read_events 3 43534 NULL nohasharray
++pdu_write_u_43534 pdu_write_u 3 43534 &read_events_43534
 +cachefiles_daemon_write_43535 cachefiles_daemon_write 3-0 43535 NULL
 +xfs_qm_vop_chown_reserve_43536 xfs_qm_vop_chown_reserve 0 43536 NULL
 +store_43537 store 0-3 43537 NULL
@@ -145032,10 +152149,12 @@ index 0000000..19e2901
 +mptscsih_change_queue_depth_44196 mptscsih_change_queue_depth 2-0 44196 NULL nohasharray
 +queue_int_on_old_endpoint_44196 queue_int_on_old_endpoint 0 44196 &mptscsih_change_queue_depth_44196
 +pvclock_gtod_notify_44200 pvclock_gtod_notify 0 44200 NULL
-+iwl_init_alive_start_44203 iwl_init_alive_start 0 44203 NULL
++iwl_init_alive_start_44203 iwl_init_alive_start 0 44203 NULL nohasharray
++virtinput_cfg_select_44203 virtinput_cfg_select 0 44203 &iwl_init_alive_start_44203
 +core_alua_show_access_type_44204 core_alua_show_access_type 0 44204 NULL
 +roccat_common2_sysfs_read_info_44206 roccat_common2_sysfs_read_info 0-5-6 44206 NULL
 +wl1271_acx_mem_map_44208 wl1271_acx_mem_map 0 44208 NULL
++__set_free_44211 __set_free 2 44211 NULL
 +claim_ptd_buffers_44213 claim_ptd_buffers 3 44213 NULL nohasharray
 +write_44213 write 0 44213 &claim_ptd_buffers_44213
 +qib_assign_ctxt_44217 qib_assign_ctxt 0 44217 NULL
@@ -145062,6 +152181,7 @@ index 0000000..19e2901
 +enlarge_skb_44248 enlarge_skb 2 44248 NULL
 +ecryptfs_init_lower_file_44249 ecryptfs_init_lower_file 0 44249 NULL
 +rbd_parent_show_44252 rbd_parent_show 0 44252 NULL
++st33zp24_i2c_recv_44256 st33zp24_i2c_recv 4 44256 NULL
 +tm6000_i2c_xfer_44260 tm6000_i2c_xfer 0-3 44260 NULL
 +mgt_commit_44264 mgt_commit 0 44264 NULL nohasharray
 +ec_bhf_open_44264 ec_bhf_open 0 44264 &mgt_commit_44264
@@ -145144,7 +152264,8 @@ index 0000000..19e2901
 +iwl_dbgfs_bf_params_write_44450 iwl_dbgfs_bf_params_write 0-3 44450 NULL nohasharray
 +eth_change_mtu_44450 eth_change_mtu 0 44450 &iwl_dbgfs_bf_params_write_44450
 +koneplus_sysfs_read_profilex_buttons_44454 koneplus_sysfs_read_profilex_buttons 0-5-6 44454 NULL
-+dma_mask_bits_show_44456 dma_mask_bits_show 0 44456 NULL
++dma_mask_bits_show_44456 dma_mask_bits_show 0 44456 NULL nohasharray
++sensor_hub_get_feature_44456 sensor_hub_get_feature 0-4 44456 &dma_mask_bits_show_44456
 +af_alg_make_sg_44459 af_alg_make_sg 0-3 44459 NULL
 +snd_pcm_do_suspend_44460 snd_pcm_do_suspend 0 44460 NULL
 +___alloc_bootmem_node_nopanic_44461 ___alloc_bootmem_node_nopanic 2 44461 NULL
@@ -145238,6 +152359,7 @@ index 0000000..19e2901
 +sock_write_iter_44676 sock_write_iter 0 44676 NULL
 +ipheth_rx_submit_44679 ipheth_rx_submit 0 44679 NULL nohasharray
 +velocity_open_44679 velocity_open 0 44679 &ipheth_rx_submit_44679
++rawv6_sendmsg_44680 rawv6_sendmsg 3 44680 NULL
 +fm10k_iov_alloc_data_44682 fm10k_iov_alloc_data 0-2 44682 NULL
 +st_try_direct_io_show_44683 st_try_direct_io_show 0 44683 NULL
 +cifs_setattr_nounix_44685 cifs_setattr_nounix 0 44685 NULL nohasharray
@@ -145353,6 +152475,7 @@ index 0000000..19e2901
 +inode_setsecurity_44924 inode_setsecurity 0 44924 NULL nohasharray
 +ath5k_hw_write_ofdm_timings_44924 ath5k_hw_write_ofdm_timings 0 44924 &inode_setsecurity_44924
 +lp855x_get_bl_ctl_mode_44927 lp855x_get_bl_ctl_mode 0 44927 NULL
++bcm_recvmsg_44928 bcm_recvmsg 3 44928 NULL
 +get_cpu_vid_44938 get_cpu_vid 0 44938 NULL nohasharray
 +store_rxbuf_44938 store_rxbuf 0-4 44938 &get_cpu_vid_44938
 +loop_attr_do_show_backing_file_44940 loop_attr_do_show_backing_file 0 44940 NULL
@@ -145386,10 +152509,12 @@ index 0000000..19e2901
 +ptrace_writedata_45021 ptrace_writedata 4 45021 NULL nohasharray
 +read_block_bitmap_45021 read_block_bitmap 2 45021 &ptrace_writedata_45021 nohasharray
 +iscsi_tpg_param_store_FirstBurstLength_45021 iscsi_tpg_param_store_FirstBurstLength 0-3 45021 &read_block_bitmap_45021
-+ath10k_htt_connect_45022 ath10k_htt_connect 0 45022 NULL
++ath10k_htt_connect_45022 ath10k_htt_connect 0 45022 NULL nohasharray
++hfsplus_getxattr_45022 hfsplus_getxattr 0 45022 &ath10k_htt_connect_45022
 +show_state_power_usage_45023 show_state_power_usage 0 45023 NULL nohasharray
 +zd1211b_hw_init_hmac_45023 zd1211b_hw_init_hmac 0 45023 &show_state_power_usage_45023
-+dm_kvzalloc_45025 dm_kvzalloc 1 45025 NULL
++dm_kvzalloc_45025 dm_kvzalloc 1 45025 NULL nohasharray
++rose_sendmsg_45025 rose_sendmsg 3 45025 &dm_kvzalloc_45025
 +hotplug_cfd_45029 hotplug_cfd 0 45029 NULL
 +snd_seq_kernel_client_ctl_45032 snd_seq_kernel_client_ctl 0 45032 NULL
 +vfio_ecap_init_45033 vfio_ecap_init 0 45033 NULL
@@ -145427,7 +152552,8 @@ index 0000000..19e2901
 +set_auto_temp_min_45111 set_auto_temp_min 0-4 45111 NULL
 +pwr_missing_bcns_cnt_read_45113 pwr_missing_bcns_cnt_read 3-0 45113 NULL
 +usbdev_read_45114 usbdev_read 3-0 45114 NULL
-+v9fs_xattr_user_set_45117 v9fs_xattr_user_set 0 45117 NULL
++v9fs_xattr_user_set_45117 v9fs_xattr_user_set 0 45117 NULL nohasharray
++sock_sendmsg_45117 sock_sendmsg 0 45117 &v9fs_xattr_user_set_45117
 +edd_show_legacy_max_cylinder_45119 edd_show_legacy_max_cylinder 0 45119 NULL
 +isku_sysfs_write_reset_45133 isku_sysfs_write_reset 6-0-5 45133 NULL nohasharray
 +in_write_bytes_avail_show_45133 in_write_bytes_avail_show 0 45133 &isku_sysfs_write_reset_45133
@@ -145442,7 +152568,8 @@ index 0000000..19e2901
 +tcp_setsockopt_45152 tcp_setsockopt 0 45152 NULL nohasharray
 +st_probe_45152 st_probe 0 45152 &tcp_setsockopt_45152
 +device_write_45156 device_write 3-0 45156 NULL
-+usX2Y_urbs_start_45159 usX2Y_urbs_start 0 45159 NULL
++usX2Y_urbs_start_45159 usX2Y_urbs_start 0 45159 NULL nohasharray
++ocfs2_dq_frozen_trigger_45159 ocfs2_dq_frozen_trigger 4 45159 &usX2Y_urbs_start_45159
 +SYSC_write_45160 SYSC_write 3-0 45160 NULL
 +tomoyo_write_self_45161 tomoyo_write_self 3-0 45161 NULL
 +xennet_create_queues_45162 xennet_create_queues 2 45162 NULL
@@ -145503,6 +152630,7 @@ index 0000000..19e2901
 +get_raw_temp_45318 get_raw_temp 0 45318 NULL
 +__i2c_hid_command_45321 __i2c_hid_command 0 45321 NULL
 +compass_command_45324 compass_command 0 45324 NULL
++quirk_strict_duplicate_filter_write_45325 quirk_strict_duplicate_filter_write 3 45325 NULL
 +label_cpu_DTS_45336 label_cpu_DTS 0 45336 NULL nohasharray
 +bnx2x_vfpf_config_mac_45336 bnx2x_vfpf_config_mac 0 45336 &label_cpu_DTS_45336
 +copy_vm86_regs_from_user_45340 copy_vm86_regs_from_user 3 45340 NULL
@@ -145513,6 +152641,7 @@ index 0000000..19e2901
 +posix_lock_file_45352 posix_lock_file 0 45352 NULL
 +isl1208_rtc_read_time_45356 isl1208_rtc_read_time 0 45356 NULL
 +wl12xx_acx_set_rate_mgmt_params_45357 wl12xx_acx_set_rate_mgmt_params 0 45357 NULL
++xfs_file_aio_write_checks_45371 xfs_file_aio_write_checks 0 45371 NULL
 +hotkey_poll_freq_store_45373 hotkey_poll_freq_store 0-4 45373 NULL
 +null_alloc_repbuf_45375 null_alloc_repbuf 3 45375 NULL
 +wmi_set_channel_45380 wmi_set_channel 0 45380 NULL
@@ -145714,7 +152843,8 @@ index 0000000..19e2901
 +b43_pcmcia_resume_45799 b43_pcmcia_resume 0 45799 &cbaf_cc_upload_45799
 +raw_setsockopt_45800 raw_setsockopt 5-0 45800 NULL
 +adp5520_bl_dark_dim_show_45802 adp5520_bl_dark_dim_show 0 45802 NULL nohasharray
-+michael_update_45802 michael_update 0 45802 &adp5520_bl_dark_dim_show_45802
++michael_update_45802 michael_update 0 45802 &adp5520_bl_dark_dim_show_45802 nohasharray
++quirk_simultaneous_discovery_read_45802 quirk_simultaneous_discovery_read 3 45802 &michael_update_45802
 +kvmclock_cpufreq_notifier_45803 kvmclock_cpufreq_notifier 0 45803 NULL
 +nct7802_read_fan_min_45804 nct7802_read_fan_min 0 45804 NULL
 +lbs_rdbbp_read_45805 lbs_rdbbp_read 3-0 45805 NULL
@@ -145777,7 +152907,8 @@ index 0000000..19e2901
 +host_store_raid_offload_debug_45928 host_store_raid_offload_debug 0-4 45928 NULL
 +ext2_xattr_security_get_45930 ext2_xattr_security_get 0 45930 NULL nohasharray
 +_dln2_transfer_45930 _dln2_transfer 0 45930 &ext2_xattr_security_get_45930
-+request_ihex_firmware_45931 request_ihex_firmware 0 45931 NULL
++request_ihex_firmware_45931 request_ihex_firmware 0 45931 NULL nohasharray
++recomp_data_node_45931 recomp_data_node 0 45931 &request_ihex_firmware_45931
 +bttv_s_ctrl_45933 bttv_s_ctrl 0 45933 NULL
 +alloc_mr_45935 alloc_mr 1 45935 NULL nohasharray
 +dlm_id_show_45935 dlm_id_show 0 45935 &alloc_mr_45935
@@ -145811,7 +152942,8 @@ index 0000000..19e2901
 +dn_device_event_46004 dn_device_event 0 46004 NULL
 +ci_ll_read_46006 ci_ll_read 0 46006 NULL
 +rtl2832_regmap_gather_write_46011 rtl2832_regmap_gather_write 0 46011 NULL
-+rt2800pci_set_device_state_46015 rt2800pci_set_device_state 0 46015 NULL
++rt2800pci_set_device_state_46015 rt2800pci_set_device_state 0 46015 NULL nohasharray
++snd_hdac_exec_verb_46015 snd_hdac_exec_verb 0 46015 &rt2800pci_set_device_state_46015
 +rt2800mmio_enable_radio_46016 rt2800mmio_enable_radio 0 46016 NULL
 +snd_cx231xx_capture_trigger_46017 snd_cx231xx_capture_trigger 0 46017 NULL
 +acpi_ds_method_data_set_value_46018 acpi_ds_method_data_set_value 0 46018 NULL
@@ -145863,7 +152995,8 @@ index 0000000..19e2901
 +gpio_keys_store_disabled_switches_46139 gpio_keys_store_disabled_switches 0-4 46139 &twl6030_pwm_enable_46139
 +nilfs_btree_assign_p_46142 nilfs_btree_assign_p 0 46142 NULL
 +__walk_page_range_46146 __walk_page_range 0 46146 NULL
-+elan_i2c_get_checksum_46148 elan_i2c_get_checksum 0 46148 NULL
++elan_i2c_get_checksum_46148 elan_i2c_get_checksum 0 46148 NULL nohasharray
++pcibios_sriov_enable_46148 pcibios_sriov_enable 0 46148 &elan_i2c_get_checksum_46148
 +set_temp_auto_temp_min_46149 set_temp_auto_temp_min 0-4 46149 NULL
 +ddp_clear_map_46152 ddp_clear_map 4 46152 NULL
 +dgram_bind_46155 dgram_bind 0 46155 NULL
@@ -145871,6 +153004,7 @@ index 0000000..19e2901
 +si470x_set_register_46160 si470x_set_register 0 46160 NULL
 +ov9740_reg_write_array_46162 ov9740_reg_write_array 0 46162 NULL nohasharray
 +top_off_timer_store_46162 top_off_timer_store 4-0 46162 &ov9740_reg_write_array_46162
++atalk_sendmsg_46165 atalk_sendmsg 3 46165 NULL
 +qla2x00_sysfs_write_nvram_46166 qla2x00_sysfs_write_nvram 0-6-5 46166 NULL
 +pcf8583_rtc_read_time_46169 pcf8583_rtc_read_time 0 46169 NULL
 +write_index_46171 write_index 0 46171 NULL
@@ -145881,7 +153015,8 @@ index 0000000..19e2901
 +twl_direction_out_46182 twl_direction_out 2-0 46182 NULL nohasharray
 +sync_inode_metadata_46182 sync_inode_metadata 0 46182 &twl_direction_out_46182
 +vxge_os_dma_malloc_46184 vxge_os_dma_malloc 2 46184 NULL
-+kszphy_config_init_46188 kszphy_config_init 0 46188 NULL
++kszphy_config_init_46188 kszphy_config_init 0 46188 NULL nohasharray
++write8_reg_46188 write8_reg 4 46188 &kszphy_config_init_46188
 +ax25_device_event_46189 ax25_device_event 0 46189 NULL
 +atmel_set_mac_address_46192 atmel_set_mac_address 0 46192 NULL
 +fq_resize_46195 fq_resize 2 46195 NULL
@@ -145986,6 +153121,7 @@ index 0000000..19e2901
 +c2port_show_dev_id_46410 c2port_show_dev_id 0 46410 NULL
 +i2c_hid_output_raw_report_46413 i2c_hid_output_raw_report 0-3 46413 NULL nohasharray
 +w1_master_attribute_show_slave_count_46413 w1_master_attribute_show_slave_count 0 46413 &i2c_hid_output_raw_report_46413
++platform_gpio_count_46416 platform_gpio_count 0 46416 NULL
 +addr_to_user_46418 addr_to_user 0 46418 NULL
 +vmbus_sendpacket_pagebuffer_46420 vmbus_sendpacket_pagebuffer 0 46420 NULL
 +iscsi_tpg_param_show_ErrorRecoveryLevel_46422 iscsi_tpg_param_show_ErrorRecoveryLevel 0 46422 NULL
@@ -146062,6 +153198,7 @@ index 0000000..19e2901
 +set_min_uA_46584 set_min_uA 0-4 46584 NULL
 +__iwl_up_46589 __iwl_up 0 46589 NULL
 +snd_compr_write_data_46592 snd_compr_write_data 3-0 46592 NULL
++ec_device_read_46594 ec_device_read 3 46594 NULL
 +copy_gr_arg_46595 copy_gr_arg 0 46595 NULL
 +show_mute_46600 show_mute 0 46600 NULL nohasharray
 +mode_store_46600 mode_store 0-4 46600 &show_mute_46600
@@ -146258,6 +153395,7 @@ index 0000000..19e2901
 +acerhdf_get_fanstate_47052 acerhdf_get_fanstate 0 47052 &wm8994_set_bits_47052
 +final_47055 final 0 47055 NULL
 +open_rx_47057 open_rx 0 47057 NULL
++udpv6_sendmsg_47060 udpv6_sendmsg 3 47060 NULL
 +dg_dispatch_as_guest_47063 dg_dispatch_as_guest 0 47063 NULL
 +ltc2945_show_value_47064 ltc2945_show_value 0 47064 NULL nohasharray
 +read_pod_47064 read_pod 0 47064 &ltc2945_show_value_47064
@@ -146293,7 +153431,8 @@ index 0000000..19e2901
 +ses_recv_diag_47143 ses_recv_diag 4 47143 &acpi_ut_initialize_buffer_47143
 +store_target_kb_47150 store_target_kb 0-4 47150 NULL
 +sctp_get_port_47151 sctp_get_port 0 47151 NULL
-+get_attr_rdpmc_47155 get_attr_rdpmc 0 47155 NULL
++get_attr_rdpmc_47155 get_attr_rdpmc 0 47155 NULL nohasharray
++mwifiex_alloc_dma_align_buf_47155 mwifiex_alloc_dma_align_buf 1 47155 &get_attr_rdpmc_47155
 +il4965_mac_start_47159 il4965_mac_start 0 47159 NULL
 +gva_to_gpa_47160 gva_to_gpa 0 47160 NULL nohasharray
 +show_streaming_47160 show_streaming 0 47160 &gva_to_gpa_47160
@@ -146348,6 +153487,7 @@ index 0000000..19e2901
 +SYSC_semop_47292 SYSC_semop 3 47292 NULL
 +show_47293 show 0 47293 NULL
 +uvc_video_enable_47296 uvc_video_enable 0 47296 NULL
++rhashtable_rehash_attach_47298 rhashtable_rehash_attach 0 47298 NULL
 +tx_internal_desc_overflow_read_47300 tx_internal_desc_overflow_read 3-0 47300 NULL
 +virtqueue_add_47306 virtqueue_add 3 47306 NULL
 +il4965_fill_txpower_tbl_47307 il4965_fill_txpower_tbl 0 47307 NULL
@@ -146358,6 +153498,7 @@ index 0000000..19e2901
 +get_l4proto_47318 get_l4proto 0 47318 NULL
 +usX2Y_usbpcm_urbs_start_47323 usX2Y_usbpcm_urbs_start 0 47323 NULL
 +snd_sb16_playback_trigger_47332 snd_sb16_playback_trigger 0 47332 NULL
++sock_sendmsg_nosec_47333 sock_sendmsg_nosec 0 47333 NULL
 +sctp_auth_set_active_key_47334 sctp_auth_set_active_key 0 47334 NULL nohasharray
 +fd_configure_device_47334 fd_configure_device 0 47334 &sctp_auth_set_active_key_47334
 +next_bitstream_store_47342 next_bitstream_store 0-4 47342 NULL
@@ -146378,6 +153519,7 @@ index 0000000..19e2901
 +show_ipv4_iface_bootproto_47376 show_ipv4_iface_bootproto 0 47376 NULL
 +stmmac_enable_47377 stmmac_enable 0 47377 NULL
 +shmem_getpage_47382 shmem_getpage 0 47382 NULL
++tun_recvmsg_47383 tun_recvmsg 3 47383 NULL
 +nv_rd32_47390 nv_rd32 0 47390 NULL nohasharray
 +trace_options_core_read_47390 trace_options_core_read 3 47390 &nv_rd32_47390
 +pfkey_sendmsg_47394 pfkey_sendmsg 4-0 47394 NULL
@@ -146401,7 +153543,8 @@ index 0000000..19e2901
 +array_size_store_47421 array_size_store 0-3 47421 &vzalloc_47421
 +mvs_task_prep_ata_47424 mvs_task_prep_ata 0 47424 NULL
 +bLength_show_47432 bLength_show 0 47432 NULL
-+fop_write_47433 fop_write 0-3 47433 NULL
++fop_write_47433 fop_write 0-3 47433 NULL nohasharray
++caif_seqpkt_sendmsg_47433 caif_seqpkt_sendmsg 3 47433 &fop_write_47433
 +dibx000_i2c_gated_tuner_xfer_47436 dibx000_i2c_gated_tuner_xfer 0-3 47436 NULL
 +wl128x_configure_mcs_pll_47437 wl128x_configure_mcs_pll 0 47437 NULL
 +niu_reset_tx_bmac_47440 niu_reset_tx_bmac 0 47440 NULL
@@ -146453,6 +153596,7 @@ index 0000000..19e2901
 +leb_read_sanity_check_47551 leb_read_sanity_check 0 47551 &drbg_statelen_47551
 +pci_endrun_init_47554 pci_endrun_init 0 47554 NULL
 +_ctl_diag_trigger_scsi_show_47558 _ctl_diag_trigger_scsi_show 0 47558 NULL
++acpi_gpio_package_count_47562 acpi_gpio_package_count 0 47562 NULL
 +send_cmd_47563 send_cmd 0 47563 NULL
 +xfs_inobt_alloc_block_47565 xfs_inobt_alloc_block 0 47565 NULL
 +send_command_47567 send_command 0 47567 NULL nohasharray
@@ -146504,6 +153648,7 @@ index 0000000..19e2901
 +queue_attr_store_47683 queue_attr_store 0-4 47683 NULL
 +mbus_show_47685 mbus_show 0 47685 NULL nohasharray
 +gprs_set_mtu_47685 gprs_set_mtu 0 47685 &mbus_show_47685
++rtl8723b_parse_firmware_47686 rtl8723b_parse_firmware 0 47686 NULL
 +ce6230_ctrl_msg_47692 ce6230_ctrl_msg 0 47692 NULL
 +target_stat_scsi_lu_show_attr_num_cmds_47693 target_stat_scsi_lu_show_attr_num_cmds 0 47693 NULL nohasharray
 +niu_reset_rx_bmac_47693 niu_reset_rx_bmac 0 47693 &target_stat_scsi_lu_show_attr_num_cmds_47693
@@ -146567,6 +153712,7 @@ index 0000000..19e2901
 +rtl_store_debug_level_47834 rtl_store_debug_level 0-4 47834 NULL
 +pinconf_dbg_config_write_47835 pinconf_dbg_config_write 3-0 47835 NULL nohasharray
 +lanai_send_47835 lanai_send 0 47835 &pinconf_dbg_config_write_47835
++raw_sendmsg_47838 raw_sendmsg 3 47838 NULL
 +cmos_nvram_write_47839 cmos_nvram_write 0-6-5 47839 NULL
 +did_show_47843 did_show 0 47843 NULL nohasharray
 +alloc_ringdesc_47843 alloc_ringdesc 0 47843 &did_show_47843
@@ -146591,6 +153737,7 @@ index 0000000..19e2901
 +keyctl_instantiate_key_common_47889 keyctl_instantiate_key_common 4 47889 NULL
 +read_prph_47892 read_prph 0 47892 NULL
 +erst_exec_skip_next_instruction_if_true_47893 erst_exec_skip_next_instruction_if_true 0 47893 NULL
++add_fake_beep_paths_47898 add_fake_beep_paths 0 47898 NULL
 +read_regr_47902 read_regr 0 47902 NULL nohasharray
 +read_dsmargin_47902 read_dsmargin 0 47902 &read_regr_47902
 +osd_req_read_sg_47905 osd_req_read_sg 5 47905 NULL
@@ -146697,7 +153844,8 @@ index 0000000..19e2901
 +dn_fib_count_nhs_48145 dn_fib_count_nhs 0 48145 NULL
 +__tcp_push_pending_frames_48148 __tcp_push_pending_frames 2 48148 NULL
 +SyS_vmsplice_48150 SyS_vmsplice 3 48150 NULL
-+_add_to_r4w_48152 _add_to_r4w 4 48152 NULL
++_add_to_r4w_48152 _add_to_r4w 4 48152 NULL nohasharray
++bitmap_onto_48152 bitmap_onto 4 48152 &_add_to_r4w_48152
 +bnx2i_host_get_param_48156 bnx2i_host_get_param 0 48156 NULL
 +isr_dma1_done_read_48159 isr_dma1_done_read 3-0 48159 NULL nohasharray
 +rx4581_get_datetime_48159 rx4581_get_datetime 0 48159 &isr_dma1_done_read_48159
@@ -146825,7 +153973,8 @@ index 0000000..19e2901
 +b43legacy_chip_init_48439 b43legacy_chip_init 0 48439 NULL
 +print_filtered_48442 print_filtered 0-2 48442 NULL
 +snd_find_free_minor_48446 snd_find_free_minor 0 48446 NULL
-+vlv_pipe_crc_ctl_reg_48447 vlv_pipe_crc_ctl_reg 0 48447 NULL
++vlv_pipe_crc_ctl_reg_48447 vlv_pipe_crc_ctl_reg 0 48447 NULL nohasharray
++ext3_direct_IO_48447 ext3_direct_IO 3 48447 &vlv_pipe_crc_ctl_reg_48447
 +shmem_add_to_page_cache_48451 shmem_add_to_page_cache 0 48451 NULL
 +stac_beep_switch_ctl_48456 stac_beep_switch_ctl 0 48456 NULL nohasharray
 +dlfb_ops_set_par_48456 dlfb_ops_set_par 0 48456 &stac_beep_switch_ctl_48456
@@ -146871,6 +154020,7 @@ index 0000000..19e2901
 +udp_lib_get_port_48545 udp_lib_get_port 0 48545 NULL nohasharray
 +l2tp_ip6_open_48545 l2tp_ip6_open 0 48545 &udp_lib_get_port_48545
 +nvbios_extend_48550 nvbios_extend 2 48550 NULL
++f2fs_direct_IO_48556 f2fs_direct_IO 3 48556 NULL
 +b43_upload_initvals_48559 b43_upload_initvals 0 48559 NULL
 +m88e1116r_config_init_48560 m88e1116r_config_init 0 48560 NULL
 +ath10k_fw_stats_read_48561 ath10k_fw_stats_read 3-0 48561 NULL
@@ -146891,6 +154041,7 @@ index 0000000..19e2901
 +update_fw_48597 update_fw 0 48597 NULL
 +get_register_interruptible_48598 get_register_interruptible 0 48598 NULL
 +label_SKIN_48603 label_SKIN 0 48603 NULL
++ext4_ind_direct_IO_48607 ext4_ind_direct_IO 3 48607 NULL
 +il3945_show_channels_48609 il3945_show_channels 0 48609 NULL
 +ctrl_48612 ctrl 0 48612 NULL
 +ufs_dtogd_48616 ufs_dtogd 0-2 48616 NULL
@@ -146905,7 +154056,8 @@ index 0000000..19e2901
 +uwb_radio_force_channel_48645 uwb_radio_force_channel 0 48645 NULL
 +isl29003_set_mode_48650 isl29003_set_mode 0 48650 NULL
 +ll_rw_extents_stats_pp_seq_write_48651 ll_rw_extents_stats_pp_seq_write 3 48651 NULL
-+__efx_reconfigure_port_48652 __efx_reconfigure_port 0 48652 NULL
++__efx_reconfigure_port_48652 __efx_reconfigure_port 0 48652 NULL nohasharray
++packet_recvmsg_48652 packet_recvmsg 3 48652 &__efx_reconfigure_port_48652
 +mtd_read_48655 mtd_read 0 48655 NULL
 +show_vrm_reg_48661 show_vrm_reg 0 48661 NULL nohasharray
 +tg3_phy_toggle_auxctl_smdsp_48661 tg3_phy_toggle_auxctl_smdsp 0 48661 &show_vrm_reg_48661
@@ -146958,7 +154110,8 @@ index 0000000..19e2901
 +apds990x_lux_thresh_below_show_48763 apds990x_lux_thresh_below_show 0 48763 NULL
 +l2cap_segment_sdu_48772 l2cap_segment_sdu 4 48772 NULL nohasharray
 +event_buffer_read_48772 event_buffer_read 0-3 48772 &l2cap_segment_sdu_48772
-+rds_set_bool_option_48773 rds_set_bool_option 0 48773 NULL
++rds_set_bool_option_48773 rds_set_bool_option 0 48773 NULL nohasharray
++gpiod_count_48773 gpiod_count 0 48773 &rds_set_bool_option_48773
 +boottime_set_48781 boottime_set 0-4 48781 NULL
 +lm3533_ctrlbank_set_pwm_48784 lm3533_ctrlbank_set_pwm 0 48784 NULL
 +transfer_48788 transfer 0 48788 NULL
@@ -147047,7 +154200,8 @@ index 0000000..19e2901
 +ntb_transport_rx_enqueue_48986 ntb_transport_rx_enqueue 0 48986 NULL
 +show_48988 show 0 48988 NULL
 +_alloc_set_attr_list_48991 _alloc_set_attr_list 4 48991 NULL
-+nes_store_nonidx_data_48992 nes_store_nonidx_data 0-3 48992 NULL
++nes_store_nonidx_data_48992 nes_store_nonidx_data 0-3 48992 NULL nohasharray
++mei_cl_alloc_cb_48992 mei_cl_alloc_cb 2 48992 &nes_store_nonidx_data_48992
 +xen_memory_notifier_48993 xen_memory_notifier 0 48993 NULL
 +rds_rm_size_48996 rds_rm_size 0-2 48996 NULL nohasharray
 +rionet_open_48996 rionet_open 0 48996 &rds_rm_size_48996
@@ -147112,7 +154266,8 @@ index 0000000..19e2901
 +target_core_dev_pr_show_attr_res_pr_all_tgt_pts_49150 target_core_dev_pr_show_attr_res_pr_all_tgt_pts 0 49150 NULL
 +atyfb_setup_generic_49151 atyfb_setup_generic 3 49151 NULL nohasharray
 +divas_read_49151 divas_read 0-3 49151 &atyfb_setup_generic_49151 nohasharray
-+patch_vt1812_49151 patch_vt1812 0 49151 &divas_read_49151
++patch_vt1812_49151 patch_vt1812 0 49151 &divas_read_49151 nohasharray
++p9_client_zc_rpc_49151 p9_client_zc_rpc 7 49151 &patch_vt1812_49151
 +bq24190_write_mask_49153 bq24190_write_mask 0 49153 NULL
 +ipwireless_tty_received_49154 ipwireless_tty_received 3 49154 NULL
 +f2fs_acl_count_49155 f2fs_acl_count 0-1 49155 NULL
@@ -147219,7 +154374,8 @@ index 0000000..19e2901
 +quirk_pcie_aspm_write_49416 quirk_pcie_aspm_write 0 49416 NULL
 +kbd_backlight_mode_store_49419 kbd_backlight_mode_store 0-4 49419 NULL
 +iscsi_nacl_attrib_show_random_r2t_offsets_49422 iscsi_nacl_attrib_show_random_r2t_offsets 0 49422 NULL
-+hdmiphy_s_stream_49426 hdmiphy_s_stream 0 49426 NULL
++hdmiphy_s_stream_49426 hdmiphy_s_stream 0 49426 NULL nohasharray
++gfs2_quota_check_49426 gfs2_quota_check 0 49426 &hdmiphy_s_stream_49426
 +et131x_get_regs_len_49430 et131x_get_regs_len 0 49430 NULL
 +ds1685_rtc_read_time_49432 ds1685_rtc_read_time 0 49432 NULL
 +probe_kernel_read_49437 probe_kernel_read 0 49437 NULL
@@ -147336,6 +154492,7 @@ index 0000000..19e2901
 +write_pool_49718 write_pool 3-0 49718 NULL
 +create_modalias_49720 create_modalias 0 49720 NULL
 +alloc_kmem_cache_node_49725 alloc_kmem_cache_node 0 49725 NULL
++__netlink_insert_49728 __netlink_insert 0 49728 NULL
 +pcnet_open_49729 pcnet_open 0 49729 NULL
 +dev_pm_qos_constraints_allocate_49731 dev_pm_qos_constraints_allocate 0 49731 NULL
 +sys_fsetxattr_49736 sys_fsetxattr 4 49736 NULL
@@ -147348,7 +154505,8 @@ index 0000000..19e2901
 +show_usblim_49746 show_usblim 0 49746 NULL nohasharray
 +uvc_init_video_49746 uvc_init_video 0 49746 &show_usblim_49746
 +firmware_loading_show_49748 firmware_loading_show 0 49748 NULL
-+__niu_wait_bits_clear_ipp_49750 __niu_wait_bits_clear_ipp 0 49750 NULL
++__niu_wait_bits_clear_ipp_49750 __niu_wait_bits_clear_ipp 0 49750 NULL nohasharray
++snd_hdac_get_connections_49750 snd_hdac_get_connections 0 49750 &__niu_wait_bits_clear_ipp_49750
 +btrfs_chunk_num_stripes_49751 btrfs_chunk_num_stripes 0 49751 NULL
 +fuse_wr_pages_49753 fuse_wr_pages 0-2-1 49753 NULL
 +lifetime_write_kbytes_show_49754 lifetime_write_kbytes_show 0 49754 NULL
@@ -147393,6 +154551,7 @@ index 0000000..19e2901
 +ath6kl_fwlog_block_read_49836 ath6kl_fwlog_block_read 3-0 49836 NULL
 +snd_azf3328_pcm_prepare_49838 snd_azf3328_pcm_prepare 0 49838 NULL nohasharray
 +pci_add_dynid_49838 pci_add_dynid 0 49838 &snd_azf3328_pcm_prepare_49838
++hash_recvmsg_49844 hash_recvmsg 3 49844 NULL
 +twl4030_write_49846 twl4030_write 2 49846 NULL
 +show_lut_temp_49847 show_lut_temp 0 49847 NULL
 +scsi_dispatch_cmd_entry_49848 scsi_dispatch_cmd_entry 3-0 49848 NULL
@@ -147411,6 +154570,7 @@ index 0000000..19e2901
 +kovaplus_sysfs_read_profile_settings_49882 kovaplus_sysfs_read_profile_settings 0-5-6 49882 NULL
 +il_send_cmd_pdu_async_49891 il_send_cmd_pdu_async 0 49891 NULL
 +tgr192_init_49892 tgr192_init 0 49892 NULL
++lb_throttle_49897 lb_throttle 0 49897 NULL
 +ovs_key_attr_size_49898 ovs_key_attr_size 0 49898 NULL
 +bnx2x_open_49905 bnx2x_open 0 49905 NULL
 +ea_put_49907 ea_put 0 49907 NULL
@@ -147423,13 +154583,16 @@ index 0000000..19e2901
 +megasas_fw_crash_state_store_49923 megasas_fw_crash_state_store 0-4 49923 &show_voltage_label_49923
 +_cpu_up_49927 _cpu_up 0 49927 NULL
 +beacon_timeout_ms_store_49935 beacon_timeout_ms_store 0-4 49935 NULL
-+mxl301rf_set_params_49936 mxl301rf_set_params 0 49936 NULL
++mxl301rf_set_params_49936 mxl301rf_set_params 0 49936 NULL nohasharray
++md_setup_cluster_49936 md_setup_cluster 0 49936 &mxl301rf_set_params_49936
 +gnttab_setup_auto_xlat_frames_49940 gnttab_setup_auto_xlat_frames 1 49940 NULL
 +tpm_get_random_49950 tpm_get_random 0-3 49950 NULL
 +iscsi_nacl_attrib_show_default_erl_49955 iscsi_nacl_attrib_show_default_erl 0 49955 NULL
 +saa7706h_i2c_transfer_49957 saa7706h_i2c_transfer 3 49957 NULL
++__cfg80211_alloc_event_skb_49963 __cfg80211_alloc_event_skb 6 49963 NULL
 +snd_soundfont_load_49964 snd_soundfont_load 0-3 49964 NULL
 +store_temp_auto_boost_49966 store_temp_auto_boost 0-4 49966 NULL
++hda_widget_sysfs_init_49968 hda_widget_sysfs_init 0 49968 NULL
 +bDeviceSubClass_show_49970 bDeviceSubClass_show 0 49970 NULL
 +volume_write_49971 volume_write 0 49971 NULL
 +set_a_bus_drop_49973 set_a_bus_drop 0-4 49973 NULL
@@ -147460,6 +154623,7 @@ index 0000000..19e2901
 +rose_device_event_50026 rose_device_event 0 50026 NULL
 +xlog_recovery_process_trans_50028 xlog_recovery_process_trans 4 50028 NULL nohasharray
 +qp_alloc_queue_50028 qp_alloc_queue 1 50028 &xlog_recovery_process_trans_50028
++caif_stream_sendmsg_50030 caif_stream_sendmsg 3 50030 NULL
 +set_mtu_50032 set_mtu 0 50032 NULL
 +ath10k_wmi_pdev_pktlog_enable_50033 ath10k_wmi_pdev_pktlog_enable 0 50033 NULL
 +sky2_open_50034 sky2_open 0 50034 NULL
@@ -147535,6 +154699,7 @@ index 0000000..19e2901
 +mxl111sf_tuner_program_regs_50179 mxl111sf_tuner_program_regs 0 50179 NULL
 +udc_create_dma_chain_50185 udc_create_dma_chain 0 50185 NULL
 +ib_send_cm_drep_50186 ib_send_cm_drep 3 50186 NULL
++_mv88e6xxx_phy_write_indirect_50195 _mv88e6xxx_phy_write_indirect 0 50195 NULL
 +store_beep_50196 store_beep 0-4 50196 NULL
 +max_medium_access_timeouts_show_50197 max_medium_access_timeouts_show 0 50197 NULL
 +cfg80211_roamed_bss_50198 cfg80211_roamed_bss 6-4 50198 NULL
@@ -147597,6 +154762,7 @@ index 0000000..19e2901
 +set_auto_brightness_50345 set_auto_brightness 0 50345 NULL
 +__orinoco_up_50349 __orinoco_up 0 50349 NULL
 +nr_overcommit_hugepages_show_50351 nr_overcommit_hugepages_show 0 50351 NULL
++efx_nic_update_stats_50352 efx_nic_update_stats 2 50352 NULL
 +selinux_file_permission_50354 selinux_file_permission 0 50354 NULL
 +isdn_ppp_read_50356 isdn_ppp_read 4-0 50356 NULL
 +unpack_u16_chunk_50357 unpack_u16_chunk 0 50357 NULL
@@ -147617,7 +154783,8 @@ index 0000000..19e2901
 +ad7877_gpio3_show_50397 ad7877_gpio3_show 0 50397 NULL
 +base_sock_create_50400 base_sock_create 0 50400 NULL
 +snd_mask_refine_last_50406 snd_mask_refine_last 0 50406 NULL
-+inode_getsecctx_50410 inode_getsecctx 0 50410 NULL
++inode_getsecctx_50410 inode_getsecctx 0 50410 NULL nohasharray
++read8_reg_50410 read8_reg 4 50410 &inode_getsecctx_50410
 +l2tp_ip_sendmsg_50411 l2tp_ip_sendmsg 4-0 50411 NULL
 +recomp_data_node_50412 recomp_data_node 0 50412 NULL
 +tg_set_rt_bandwidth_50413 tg_set_rt_bandwidth 0 50413 NULL
@@ -147734,6 +154901,7 @@ index 0000000..19e2901
 +mt2063_setreg_50645 mt2063_setreg 0 50645 NULL
 +show_50648 show 0 50648 NULL
 +ext3_readpage_50653 ext3_readpage 0 50653 NULL
++fat_direct_IO_50654 fat_direct_IO 3 50654 NULL
 +show_fc_rport_node_name_50655 show_fc_rport_node_name 0 50655 NULL
 +snd_seq_ioctl_set_queue_info_50657 snd_seq_ioctl_set_queue_info 0 50657 NULL
 +raid56_parity_alloc_scrub_rbio_50658 raid56_parity_alloc_scrub_rbio 4 50658 NULL
@@ -147894,10 +155062,13 @@ index 0000000..19e2901
 +brcm_phy_setbits_51027 brcm_phy_setbits 0 51027 NULL
 +fuse_conn_congestion_threshold_read_51028 fuse_conn_congestion_threshold_read 3-0 51028 NULL
 +xfs_dir2_grow_inode_51030 xfs_dir2_grow_inode 0 51030 NULL
-+dump_midi_51040 dump_midi 3 51040 NULL
++mv88e6xxx_phy_read_indirect_51035 mv88e6xxx_phy_read_indirect 2 51035 NULL
++dump_midi_51040 dump_midi 3 51040 NULL nohasharray
++cma_free_write_51040 cma_free_write 2 51040 &dump_midi_51040
 +usb_get_descriptor_51041 usb_get_descriptor 0 51041 NULL
 +srpt_alloc_ioctx_51042 srpt_alloc_ioctx 2-3 51042 NULL nohasharray
-+i915_gem_object_get_pages_phys_51042 i915_gem_object_get_pages_phys 0 51042 &srpt_alloc_ioctx_51042
++i915_gem_object_get_pages_phys_51042 i915_gem_object_get_pages_phys 0 51042 &srpt_alloc_ioctx_51042 nohasharray
++req_run_51042 req_run 0 51042 &i915_gem_object_get_pages_phys_51042
 +store_detach_51045 store_detach 0-4 51045 NULL
 +show_51050 show 0 51050 NULL nohasharray
 +carl9170_mac_reset_51050 carl9170_mac_reset 0 51050 &show_51050
@@ -147922,6 +155093,7 @@ index 0000000..19e2901
 +nilfs_checkpoints_next_checkpoint_show_51093 nilfs_checkpoints_next_checkpoint_show 0 51093 NULL
 +solo_enc_v4l2_init_51094 solo_enc_v4l2_init 2 51094 NULL
 +__ocfs2_find_path_51096 __ocfs2_find_path 0 51096 NULL
++hci_req_run_skb_51098 hci_req_run_skb 0 51098 NULL
 +ath10k_vdev_start_51101 ath10k_vdev_start 0 51101 NULL
 +target_stat_scsi_auth_intr_show_attr_att_count_51106 target_stat_scsi_auth_intr_show_attr_att_count 0 51106 NULL
 +ti_recv_51110 ti_recv 3 51110 NULL nohasharray
@@ -148137,6 +155309,7 @@ index 0000000..19e2901
 +tx_sg_51567 tx_sg 0 51567 NULL
 +batadv_tt_prepare_tvlv_local_data_51568 batadv_tt_prepare_tvlv_local_data 0 51568 NULL
 +netlink_broadcast_51573 netlink_broadcast 0 51573 NULL
++bt_sock_stream_recvmsg_51582 bt_sock_stream_recvmsg 3 51582 NULL
 +mlx4_en_vlan_rx_add_vid_51584 mlx4_en_vlan_rx_add_vid 0 51584 NULL
 +eeprom_93xx46_store_erase_51585 eeprom_93xx46_store_erase 0-4 51585 NULL
 +ixgb_get_eeprom_len_51586 ixgb_get_eeprom_len 0 51586 NULL
@@ -148341,6 +155514,7 @@ index 0000000..19e2901
 +iscsi_stat_logout_attr_show_52087 iscsi_stat_logout_attr_show 0 52087 &amd_ec_read_52087
 +nsm_get_handle_52089 nsm_get_handle 4 52089 NULL nohasharray
 +rt2x00debug_read_rf_52089 rt2x00debug_read_rf 0-3 52089 &nsm_get_handle_52089
++udp_recvmsg_52094 udp_recvmsg 3 52094 NULL
 +affs_do_readpage_ofs_52095 affs_do_readpage_ofs 0 52095 NULL
 +ulist_add_merge_52096 ulist_add_merge 0 52096 NULL
 +mtrr_save_52097 mtrr_save 0 52097 NULL
@@ -148494,7 +155668,8 @@ index 0000000..19e2901
 +snd_rme96_capture_prepare_52380 snd_rme96_capture_prepare 0 52380 NULL
 +iwl_nvm_init_52382 iwl_nvm_init 0 52382 NULL
 +isdn_writebuf_stub_52383 isdn_writebuf_stub 4-0 52383 NULL
-+task_has_security_52386 task_has_security 0 52386 NULL
++task_has_security_52386 task_has_security 0 52386 NULL nohasharray
++nct7904_write_reg_52386 nct7904_write_reg 0 52386 &task_has_security_52386
 +jfs_setxattr_52389 jfs_setxattr 4-0 52389 NULL
 +input_print_modalias_bits_52395 input_print_modalias_bits 0 52395 NULL
 +svc_partial_recvfrom_52396 svc_partial_recvfrom 4 52396 NULL
@@ -148534,6 +155709,7 @@ index 0000000..19e2901
 +show_id_ext_52472 show_id_ext 0 52472 NULL
 +cifs_readpage_worker_52477 cifs_readpage_worker 0 52477 NULL nohasharray
 +ieee80211_alloc_txb_52477 ieee80211_alloc_txb 2-1 52477 &cifs_readpage_worker_52477
++tipc_sendmsg_52481 tipc_sendmsg 3 52481 NULL
 +ocfs2_extend_no_holes_52483 ocfs2_extend_no_holes 0 52483 NULL
 +pch_i2c_wait_for_check_xfer_52485 pch_i2c_wait_for_check_xfer 0 52485 NULL nohasharray
 +snd_hda_gen_build_controls_52485 snd_hda_gen_build_controls 0 52485 &pch_i2c_wait_for_check_xfer_52485
@@ -148719,6 +155895,7 @@ index 0000000..19e2901
 +set_reset_mode_52952 set_reset_mode 0 52952 &twl4030_madc_set_irq_52952
 +dev_bus_rescan_store_52953 dev_bus_rescan_store 0-4 52953 NULL
 +adv7170_write_52956 adv7170_write 0 52956 NULL
++cma_alloc_mem_52959 cma_alloc_mem 2 52959 NULL
 +tpacpi_driver_wwan_emulstate_store_52960 tpacpi_driver_wwan_emulstate_store 0-3 52960 NULL
 +ieee80211_if_fmt_fwded_mcast_52961 ieee80211_if_fmt_fwded_mcast 3 52961 NULL
 +hx8357_spi_write_then_read_52964 hx8357_spi_write_then_read 3 52964 NULL
@@ -148819,6 +155996,7 @@ index 0000000..19e2901
 +C_SYSC_io_getevents_53191 C_SYSC_io_getevents 3 53191 NULL
 +ti_write_room_53194 ti_write_room 0 53194 NULL
 +xfs_btree_updkey_53195 xfs_btree_updkey 0 53195 NULL
++dax_io_53196 dax_io 4-3 53196 NULL
 +hackrf_alloc_urbs_53198 hackrf_alloc_urbs 0 53198 NULL
 +SyS_init_module_53202 SyS_init_module 2 53202 NULL
 +toss_secs_write_53205 toss_secs_write 3-0 53205 NULL
@@ -148844,6 +156022,7 @@ index 0000000..19e2901
 +smack_sb_statfs_53255 smack_sb_statfs 0 53255 NULL
 +xfs_trans_read_buf_map_53258 xfs_trans_read_buf_map 5-0 53258 NULL nohasharray
 +target_core_dev_wwn_store_attr_vpd_protocol_identifier_53258 target_core_dev_wwn_store_attr_vpd_protocol_identifier 0-3 53258 &xfs_trans_read_buf_map_53258
++bcmgenet_alloc_rx_buffers_53259 bcmgenet_alloc_rx_buffers 0 53259 NULL
 +ipr_change_queue_depth_53263 ipr_change_queue_depth 2-0 53263 NULL nohasharray
 +ip6_tnl_dev_init_gen_53263 ip6_tnl_dev_init_gen 0 53263 &ipr_change_queue_depth_53263
 +picolcd_operation_mode_store_53264 picolcd_operation_mode_store 0-4 53264 NULL
@@ -148865,6 +156044,7 @@ index 0000000..19e2901
 +dev_debug_store_53301 dev_debug_store 0-4 53301 NULL
 +isku_sysfs_write_key_mask_53305 isku_sysfs_write_key_mask 6-0-5 53305 NULL nohasharray
 +wishbone_serial_open_53305 wishbone_serial_open 0 53305 &isku_sysfs_write_key_mask_53305
++x25_sendmsg_53311 x25_sendmsg 3 53311 NULL
 +dib7090p_rw_on_apb_53315 dib7090p_rw_on_apb 0-3 53315 NULL
 +batadv_interface_rx_53325 batadv_interface_rx 4 53325 NULL
 +usb_rapid_charge_show_53327 usb_rapid_charge_show 0 53327 NULL nohasharray
@@ -149016,7 +156196,8 @@ index 0000000..19e2901
 +powr1220_show_voltage_53637 powr1220_show_voltage 0 53637 NULL nohasharray
 +iwl_set_mode_53637 iwl_set_mode 0 53637 &powr1220_show_voltage_53637
 +si_fan_ctrl_set_fan_speed_percent_53640 si_fan_ctrl_set_fan_speed_percent 0 53640 NULL
-+nr_sendmsg_53656 nr_sendmsg 4-0 53656 NULL
++nr_sendmsg_53656 nr_sendmsg 4-0 53656 NULL nohasharray
++pn_sendmsg_53656 pn_sendmsg 3 53656 &nr_sendmsg_53656
 +allocate_page_53658 allocate_page 0 53658 NULL nohasharray
 +__bitmap_parse_53658 __bitmap_parse 0 53658 &allocate_page_53658
 +__nfs4_proc_set_acl_53665 __nfs4_proc_set_acl 0 53665 NULL
@@ -149072,6 +156253,7 @@ index 0000000..19e2901
 +nes_show_ee_cmd_53765 nes_show_ee_cmd 0 53765 NULL nohasharray
 +smo8800_misc_read_53765 smo8800_misc_read 0-3 53765 &nes_show_ee_cmd_53765
 +store_53768 store 0-3 53768 NULL
++i915_gem_execbuffer_parse_53770 i915_gem_execbuffer_parse 5-6 53770 NULL
 +ext4_walk_page_buffers_53771 ext4_walk_page_buffers 0 53771 NULL
 +ext2_acl_count_53773 ext2_acl_count 0-1 53773 NULL
 +radeon_show_edid1_53782 radeon_show_edid1 6-0-5 53782 NULL
@@ -149203,6 +156385,7 @@ index 0000000..19e2901
 +show_in_beep_54074 show_in_beep 0 54074 NULL
 +ext3_xattr_security_get_54081 ext3_xattr_security_get 0 54081 NULL
 +cachefiles_daemon_range_error_54092 cachefiles_daemon_range_error 0 54092 NULL
++bitmap_bitremap_54096 bitmap_bitremap 4 54096 NULL
 +remove_id_store_54097 remove_id_store 0-3 54097 NULL
 +snd_cs5535audio_trigger_54101 snd_cs5535audio_trigger 0 54101 NULL
 +altera_set_ir_pre_54103 altera_set_ir_pre 2 54103 NULL nohasharray
@@ -149294,6 +156477,7 @@ index 0000000..19e2901
 +get_temp_alarm_54267 get_temp_alarm 0 54267 NULL
 +mwifiex_getlog_read_54269 mwifiex_getlog_read 3-0 54269 NULL
 +kstrtou16_from_user_54274 kstrtou16_from_user 2 54274 NULL
++snd_hda_query_supported_pcm_54275 snd_hda_query_supported_pcm 0 54275 NULL
 +sizeof_long_54276 sizeof_long 0 54276 NULL
 +ubi_calc_data_len_54279 ubi_calc_data_len 0-3 54279 NULL nohasharray
 +bond_option_tlb_dynamic_lb_set_54279 bond_option_tlb_dynamic_lb_set 0 54279 &ubi_calc_data_len_54279
@@ -149351,7 +156535,8 @@ index 0000000..19e2901
 +o2nm_cluster_attr_idle_timeout_ms_read_54400 o2nm_cluster_attr_idle_timeout_ms_read 0 54400 NULL nohasharray
 +set_gss_proxy_54400 set_gss_proxy 0 54400 &o2nm_cluster_attr_idle_timeout_ms_read_54400
 +snd_pcm_add_chmap_ctls_54404 snd_pcm_add_chmap_ctls 0 54404 NULL
-+efx_nic_describe_stats_54407 efx_nic_describe_stats 0 54407 NULL
++efx_nic_describe_stats_54407 efx_nic_describe_stats 0-2 54407 NULL
++vmbus_sendpacket_ctl_54410 vmbus_sendpacket_ctl 0 54410 NULL
 +__iscsi_disc_show_authenticate_target_54411 __iscsi_disc_show_authenticate_target 0 54411 NULL
 +iio_trigger_register_54412 iio_trigger_register 0 54412 NULL
 +ath10k_install_peer_wep_keys_54414 ath10k_install_peer_wep_keys 0 54414 NULL
@@ -149425,6 +156610,7 @@ index 0000000..19e2901
 +s5k83a_set_brightness_54578 s5k83a_set_brightness 0 54578 NULL
 +rds_getname_54579 rds_getname 0 54579 NULL
 +fw_iso_buffer_init_54582 fw_iso_buffer_init 3 54582 NULL
++pfkey_recvmsg_54588 pfkey_recvmsg 3 54588 NULL
 +xfrm_polexpire_msgsize_54589 xfrm_polexpire_msgsize 0 54589 NULL
 +sync_callback_54596 sync_callback 0 54596 NULL
 +authorized_default_show_54600 authorized_default_show 0 54600 NULL nohasharray
@@ -149486,6 +156672,7 @@ index 0000000..19e2901
 +platform_get_irq_byname_54700 platform_get_irq_byname 0 54700 NULL
 +smack_task_setscheduler_54707 smack_task_setscheduler 0 54707 NULL
 +rfkill_fop_read_54711 rfkill_fop_read 3-0 54711 NULL
++wmi_echo_54712 wmi_echo 0 54712 NULL
 +hpet_read_54717 hpet_read 0-3 54717 NULL nohasharray
 +iio_trigger_write_current_54717 iio_trigger_write_current 0-4 54717 &hpet_read_54717
 +_add_sg_continuation_descriptor_54721 _add_sg_continuation_descriptor 3 54721 NULL nohasharray
@@ -149556,6 +156743,7 @@ index 0000000..19e2901
 +nvkm_bar_create__54867 nvkm_bar_create_ 4 54867 NULL nohasharray
 +cpuset_track_online_nodes_54867 cpuset_track_online_nodes 0 54867 &nvkm_bar_create__54867
 +show_learning_54874 show_learning 0 54874 NULL
++xfs_vm_direct_IO_54876 xfs_vm_direct_IO 3 54876 NULL
 +time_show_54879 time_show 0 54879 NULL nohasharray
 +xfs_alloc_read_agfl_54879 xfs_alloc_read_agfl 0 54879 &time_show_54879
 +mlx4_en_tunnel_steer_add_54880 mlx4_en_tunnel_steer_add 0 54880 NULL
@@ -149613,7 +156801,8 @@ index 0000000..19e2901
 +dev_exception_add_54979 dev_exception_add 0 54979 &ubi_change_vtbl_record_54979
 +virtual_gb_show_54981 virtual_gb_show 0 54981 NULL
 +_queue_data_54983 _queue_data 4 54983 NULL
-+cachefiles_daemon_inuse_54984 cachefiles_daemon_inuse 0 54984 NULL
++cachefiles_daemon_inuse_54984 cachefiles_daemon_inuse 0 54984 NULL nohasharray
++dev_queue_xmit_sk_54984 dev_queue_xmit_sk 0 54984 &cachefiles_daemon_inuse_54984
 +net2280_start_54985 net2280_start 0 54985 NULL
 +ext3_xattr_get_54989 ext3_xattr_get 0 54989 NULL nohasharray
 +padlock_sha256_init_nano_54989 padlock_sha256_init_nano 0 54989 &ext3_xattr_get_54989
@@ -149626,6 +156815,7 @@ index 0000000..19e2901
 +cx231xx_v4l2_read_55014 cx231xx_v4l2_read 3-0 55014 NULL
 +ipvlan_vlan_rx_add_vid_55020 ipvlan_vlan_rx_add_vid 0 55020 NULL
 +driver_pin_configs_show_55022 driver_pin_configs_show 0 55022 NULL
++nfs_post_op_update_inode_55023 nfs_post_op_update_inode 0 55023 NULL
 +error_error_null_Frame_tx_start_read_55024 error_error_null_Frame_tx_start_read 3-0 55024 NULL
 +firmware_loading_store_55029 firmware_loading_store 0-4 55029 NULL
 +ubifs_read_node_wbuf_55034 ubifs_read_node_wbuf 0 55034 NULL
@@ -149642,7 +156832,8 @@ index 0000000..19e2901
 +lanai_setup_tx_vci_55074 lanai_setup_tx_vci 0 55074 &iscsi_stat_tgt_attr_show_attr_inst_55074
 +apei_exec_run_55075 apei_exec_run 0 55075 NULL
 +bitmap_storage_alloc_55077 bitmap_storage_alloc 2-0 55077 NULL
-+fuse_read_interrupt_55081 fuse_read_interrupt 0 55081 NULL
++fuse_read_interrupt_55081 fuse_read_interrupt 0 55081 NULL nohasharray
++ath9k_hw_read_array_55081 ath9k_hw_read_array 3 55081 &fuse_read_interrupt_55081
 +acq_write_55082 acq_write 0-3 55082 NULL nohasharray
 +cdc_mbim_rx_add_vid_55082 cdc_mbim_rx_add_vid 0 55082 &acq_write_55082
 +lnc_add_55085 lnc_add 0 55085 NULL
@@ -149739,6 +156930,7 @@ index 0000000..19e2901
 +gpio_trig_gpio_show_55336 gpio_trig_gpio_show 0 55336 NULL
 +reg_read_55337 reg_read 0 55337 NULL
 +vme_user_read_55338 vme_user_read 3 55338 NULL
++__set_pwm_55339 __set_pwm 0 55339 NULL
 +read_byte_55340 read_byte 0 55340 NULL
 +__wa_xfer_setup_sizes_55342 __wa_xfer_setup_sizes 0 55342 NULL
 +SYSC_recvfrom_55346 SYSC_recvfrom 3 55346 NULL
@@ -149833,6 +157025,7 @@ index 0000000..19e2901
 +unmerge_and_remove_all_rmap_items_55557 unmerge_and_remove_all_rmap_items 0 55557 NULL
 +show_55563 show 0 55563 NULL
 +rpc_pipe_read_55564 rpc_pipe_read 0-3 55564 NULL
++snd_find_free_minor_55567 snd_find_free_minor 0 55567 NULL
 +show_ipv6_iface_link_local_addr_55568 show_ipv6_iface_link_local_addr 0 55568 NULL
 +sidtab_context_to_sid_55570 sidtab_context_to_sid 0 55570 NULL nohasharray
 +patch_vt1708_55570 patch_vt1708 0 55570 &sidtab_context_to_sid_55570
@@ -149841,6 +157034,7 @@ index 0000000..19e2901
 +edt_ft5x06_register_read_55576 edt_ft5x06_register_read 0 55576 NULL
 +compat_SyS_setsockopt_55581 compat_SyS_setsockopt 5 55581 NULL
 +add_partition_55588 add_partition 2 55588 NULL
++mgmt_cmd_complete_55590 mgmt_cmd_complete 6 55590 NULL
 +write_inode_55592 write_inode 0 55592 NULL
 +ufx_reg_write_55594 ufx_reg_write 0 55594 NULL
 +ip_vs_reply6_55598 ip_vs_reply6 0 55598 NULL
@@ -150054,6 +157248,7 @@ index 0000000..19e2901
 +wdt_restart_handle_56057 wdt_restart_handle 0 56057 &mwifiex_wait_queue_complete_56057
 +dccp_sendmsg_56058 dccp_sendmsg 4-0 56058 NULL
 +pm80x_rtc_read_time_56065 pm80x_rtc_read_time 0 56065 NULL
++quirk_strict_duplicate_filter_read_56073 quirk_strict_duplicate_filter_read 3 56073 NULL
 +show_fc_rport_scsi_target_id_56077 show_fc_rport_scsi_target_id 0 56077 NULL nohasharray
 +qp_dequeue_locked_56077 qp_dequeue_locked 0-5-3 56077 &show_fc_rport_scsi_target_id_56077
 +nilfs_segctor_create_checkpoint_56078 nilfs_segctor_create_checkpoint 0 56078 NULL
@@ -150155,6 +157350,7 @@ index 0000000..19e2901
 +journal_init_revoke_table_56331 journal_init_revoke_table 1 56331 NULL
 +axnet_suspend_56334 axnet_suspend 0 56334 NULL
 +snd_rawmidi_read_56337 snd_rawmidi_read 3-0 56337 NULL
++f81232_port_enable_56338 f81232_port_enable 0 56338 NULL
 +show_fcoe_ctlr_device_fcf_dev_loss_tmo_56343 show_fcoe_ctlr_device_fcf_dev_loss_tmo 0 56343 NULL
 +show_line2_56346 show_line2 0 56346 NULL
 +read_human_status_56349 read_human_status 0 56349 NULL
@@ -150263,6 +157459,7 @@ index 0000000..19e2901
 +tcp_cwnd_test_56547 tcp_cwnd_test 0 56547 NULL nohasharray
 +megasas_sysfs_show_version_56547 megasas_sysfs_show_version 0 56547 &tcp_cwnd_test_56547
 +ip_vs_prepare_tunneled_skb_56550 ip_vs_prepare_tunneled_skb 3 56550 NULL
++br_get_num_vlan_infos_56557 br_get_num_vlan_infos 0 56557 NULL
 +vim2m_start_streaming_56558 vim2m_start_streaming 0 56558 NULL nohasharray
 +xs_watch_56558 xs_watch 0 56558 &vim2m_start_streaming_56558 nohasharray
 +mmc_blk_probe_56558 mmc_blk_probe 0 56558 &xs_watch_56558
@@ -150397,8 +157594,10 @@ index 0000000..19e2901
 +max197_show_range_56863 max197_show_range 0 56863 &gk20a_ram_get_56863 nohasharray
 +target_stat_scsi_auth_intr_show_attr_inst_56863 target_stat_scsi_auth_intr_show_attr_inst 0 56863 &max197_show_range_56863 nohasharray
 +dlfb_setup_modes_56863 dlfb_setup_modes 0 56863 &target_stat_scsi_auth_intr_show_attr_inst_56863
-+check_export_56865 check_export 0 56865 NULL
-+store_sched7_56868 store_sched7 0-4 56868 NULL
++check_export_56865 check_export 0 56865 NULL nohasharray
++btrfs_direct_IO_56865 btrfs_direct_IO 3 56865 &check_export_56865
++store_sched7_56868 store_sched7 0-4 56868 NULL nohasharray
++hci_mgmt_cmd_56868 hci_mgmt_cmd 4 56868 &store_sched7_56868
 +mwl8k_cmd_get_stat_56876 mwl8k_cmd_get_stat 0 56876 NULL
 +ims_pcu_ofn_bit_store_56878 ims_pcu_ofn_bit_store 0-4 56878 NULL
 +ext3_xattr_ibody_get_56880 ext3_xattr_ibody_get 0 56880 NULL
@@ -150572,7 +157771,8 @@ index 0000000..19e2901
 +load_data_57279 load_data 0-3 57279 &crc32c_intel_final_57279
 +mc44s803_set_params_57281 mc44s803_set_params 0 57281 NULL
 +lbs_sleepparams_write_57283 lbs_sleepparams_write 3-0 57283 NULL nohasharray
-+read_iter_57283 read_iter 0 57283 &lbs_sleepparams_write_57283
++read_iter_57283 read_iter 0 57283 &lbs_sleepparams_write_57283 nohasharray
++hid_sensor_capture_sample_57283 hid_sensor_capture_sample 3 57283 &read_iter_57283
 +infos_show_57284 infos_show 0 57284 NULL
 +store_tolerance_57285 store_tolerance 0-4 57285 NULL
 +ath6kl_wmi_cmd_send_57286 ath6kl_wmi_cmd_send 0 57286 NULL
@@ -150640,6 +157840,7 @@ index 0000000..19e2901
 +fscaps_show_57434 fscaps_show 0 57434 NULL nohasharray
 +fuse_notify_inval_inode_57434 fuse_notify_inval_inode 0 57434 &fscaps_show_57434
 +gadget_dev_desc_bDeviceSubClass_store_57437 gadget_dev_desc_bDeviceSubClass_store 0-3 57437 NULL
++ping_v6_sendmsg_57440 ping_v6_sendmsg 3 57440 NULL
 +rss_key_write_57441 rss_key_write 3-0 57441 NULL
 +vmxnet3_rq_init_all_57442 vmxnet3_rq_init_all 0 57442 NULL
 +ov7670_s_gain_57445 ov7670_s_gain 0 57445 NULL
@@ -150746,6 +157947,7 @@ index 0000000..19e2901
 +qlcnic_get_pci_func_type_57685 qlcnic_get_pci_func_type 0 57685 NULL
 +show_pwm_auto_vrdhot_ramp_57686 show_pwm_auto_vrdhot_ramp 0 57686 NULL
 +rt2x00debug_read_eeprom_57690 rt2x00debug_read_eeprom 0-3 57690 NULL
++skcipher_all_sg_nents_57692 skcipher_all_sg_nents 0 57692 NULL
 +f1x_match_to_this_node_57695 f1x_match_to_this_node 3 57695 NULL nohasharray
 +i40evf_open_57695 i40evf_open 0 57695 &f1x_match_to_this_node_57695
 +ks8842_set_mac_57697 ks8842_set_mac 0 57697 NULL
@@ -150870,6 +158072,7 @@ index 0000000..19e2901
 +rt2500usb_get_tx_data_len_57994 rt2500usb_get_tx_data_len 0 57994 NULL
 +lmLogShutdown_57995 lmLogShutdown 0 57995 NULL
 +lua_sysfs_write_control_57996 lua_sysfs_write_control 0-6-5 57996 NULL
++usb_dmac_prep_slave_sg_58000 usb_dmac_prep_slave_sg 3 58000 NULL
 +rx_reset_counter_read_58001 rx_reset_counter_read 3-0 58001 NULL nohasharray
 +btree_csum_one_bio_58001 btree_csum_one_bio 0 58001 &rx_reset_counter_read_58001
 +pfkey_create_58010 pfkey_create 0 58010 NULL
@@ -151127,6 +158330,7 @@ index 0000000..19e2901
 +rndis_add_response_58544 rndis_add_response 2 58544 NULL nohasharray
 +xfs_attr3_leaf_to_node_58544 xfs_attr3_leaf_to_node 0 58544 &rndis_add_response_58544
 +mac80211_hwsim_get_et_sset_count_58547 mac80211_hwsim_get_et_sset_count 0 58547 NULL
++llcp_sock_sendmsg_58556 llcp_sock_sendmsg 3 58556 NULL
 +twl4030_madc_read_channels_58559 twl4030_madc_read_channels 0 58559 NULL
 +ath10k_debug_htt_stats_req_58561 ath10k_debug_htt_stats_req 0 58561 NULL
 +wep_decrypt_fail_read_58567 wep_decrypt_fail_read 3-0 58567 NULL
@@ -151181,7 +158385,8 @@ index 0000000..19e2901
 +uwb_bce_print_IEs_58686 uwb_bce_print_IEs 4-0 58686 NULL
 +tps6586x_writes_58689 tps6586x_writes 2-3-0 58689 NULL
 +nfs_scan_commit_58690 nfs_scan_commit 0 58690 NULL
-+nilfs_segbuf_submit_bh_58691 nilfs_segbuf_submit_bh 0 58691 NULL
++nilfs_segbuf_submit_bh_58691 nilfs_segbuf_submit_bh 0 58691 NULL nohasharray
++snd_hda_gen_fix_pin_power_58691 snd_hda_gen_fix_pin_power 0 58691 &nilfs_segbuf_submit_bh_58691
 +tpm_show_ppi_version_58692 tpm_show_ppi_version 0 58692 NULL
 +tcm_loop_tpg_store_transport_status_58695 tcm_loop_tpg_store_transport_status 0-3 58695 NULL
 +regulator_min_uA_show_58696 regulator_min_uA_show 0 58696 NULL
@@ -151223,6 +158428,7 @@ index 0000000..19e2901
 +ecryptfs_derive_iv_58784 ecryptfs_derive_iv 0 58784 NULL
 +cyapa_gen5_calibrate_pwcs_58789 cyapa_gen5_calibrate_pwcs 0 58789 NULL
 +show_58791 show 0 58791 NULL
++ipx_sendmsg_58794 ipx_sendmsg 3 58794 NULL
 +regmap_calc_reg_len_58795 regmap_calc_reg_len 0 58795 NULL
 +smack_inode_setxattr_58801 smack_inode_setxattr 0 58801 NULL
 +dlm_lock_58802 dlm_lock 0 58802 NULL nohasharray
@@ -151236,7 +158442,8 @@ index 0000000..19e2901
 +usbhsg_ep_enable_58825 usbhsg_ep_enable 0 58825 NULL
 +tnc_read_node_nm_58830 tnc_read_node_nm 0 58830 NULL
 +pm8001_chip_ssp_io_req_58831 pm8001_chip_ssp_io_req 0 58831 NULL
-+ssp_disable_sensor_58838 ssp_disable_sensor 0 58838 NULL
++ssp_disable_sensor_58838 ssp_disable_sensor 0 58838 NULL nohasharray
++pppol2tp_recvmsg_58838 pppol2tp_recvmsg 3 58838 &ssp_disable_sensor_58838
 +command_write_58841 command_write 3-0 58841 NULL nohasharray
 +diolan_i2c_start_58841 diolan_i2c_start 0 58841 &command_write_58841
 +vendor_show_58845 vendor_show 0 58845 NULL nohasharray
@@ -151926,6 +159133,7 @@ index 0000000..19e2901
 +parse_output_paths_60438 parse_output_paths 0 60438 NULL
 +show_carrier_60439 show_carrier 0 60439 NULL nohasharray
 +elan_i2c_iap_get_mode_60439 elan_i2c_iap_get_mode 0 60439 &show_carrier_60439
++tipc_recv_stream_60440 tipc_recv_stream 3 60440 NULL
 +rx_data_60442 rx_data 4 60442 NULL nohasharray
 +sysv_write_begin_60442 sysv_write_begin 0 60442 &rx_data_60442
 +t4_wait_op_done_60444 t4_wait_op_done 0 60444 NULL nohasharray
@@ -152114,9 +159322,11 @@ index 0000000..19e2901
 +nvif_object_init_60848 nvif_object_init 6 60848 NULL
 +pwr_tx_with_ps_read_60851 pwr_tx_with_ps_read 3-0 60851 NULL
 +show_hardware_version_60852 show_hardware_version 0 60852 NULL
-+show_shost_supported_mode_60854 show_shost_supported_mode 0 60854 NULL
++show_shost_supported_mode_60854 show_shost_supported_mode 0 60854 NULL nohasharray
++l2cap_sock_recvmsg_60854 l2cap_sock_recvmsg 3 60854 &show_shost_supported_mode_60854
 +htc_issue_send_60856 htc_issue_send 0 60856 NULL
 +usb_bulk_msg_60861 usb_bulk_msg 0 60861 NULL
++hsu_dma_alloc_desc_60863 hsu_dma_alloc_desc 1 60863 NULL
 +alloc_buf_60864 alloc_buf 3-2 60864 NULL
 +generic_writepages_60871 generic_writepages 0 60871 NULL
 +show_fc_vport_vport_last_state_60872 show_fc_vport_vport_last_state 0 60872 NULL
@@ -152132,7 +159342,8 @@ index 0000000..19e2901
 +ch341_configure_60897 ch341_configure 0 60897 NULL
 +w1_master_attribute_show_timeout_60898 w1_master_attribute_show_timeout 0 60898 NULL
 +pnp_assign_irq_60906 pnp_assign_irq 0 60906 NULL
-+ceph_sync_direct_write_60907 ceph_sync_direct_write 0 60907 NULL
++ceph_sync_direct_write_60907 ceph_sync_direct_write 0 60907 NULL nohasharray
++hugetlbfs_read_actor_60907 hugetlbfs_read_actor 0-4-2 60907 &ceph_sync_direct_write_60907
 +iio_debugfs_read_reg_60908 iio_debugfs_read_reg 3-0 60908 NULL nohasharray
 +hfs_writepage_60908 hfs_writepage 0 60908 &iio_debugfs_read_reg_60908
 +dg_dispatch_as_host_60909 dg_dispatch_as_host 0 60909 NULL
@@ -152282,7 +159493,8 @@ index 0000000..19e2901
 +squashfs_read_metadata_61251 squashfs_read_metadata 0-5 61251 NULL
 +efi_status_to_err_61254 efi_status_to_err 0 61254 NULL
 +snd_ca0106_pcm_prepare_capture_61260 snd_ca0106_pcm_prepare_capture 0 61260 NULL
-+v9fs_mmap_file_read_61262 v9fs_mmap_file_read 3-0 61262 NULL
++v9fs_mmap_file_read_61262 v9fs_mmap_file_read 3-0 61262 NULL nohasharray
++jfs_direct_IO_61262 jfs_direct_IO 3 61262 &v9fs_mmap_file_read_61262
 +submit_bh_61263 submit_bh 0 61263 NULL
 +attr_sensitivity_show_tpkbd_61269 attr_sensitivity_show_tpkbd 0 61269 NULL nohasharray
 +t3_sge_init_ecntxt_61269 t3_sge_init_ecntxt 0 61269 &attr_sensitivity_show_tpkbd_61269
@@ -152514,7 +159726,8 @@ index 0000000..19e2901
 +kone_sysfs_show_actual_dpi_61804 kone_sysfs_show_actual_dpi 0 61804 NULL
 +show_blank_61805 show_blank 0 61805 NULL
 +mls_compute_context_len_61812 mls_compute_context_len 0 61812 NULL nohasharray
-+pch_gbe_setup_rx_resources_61812 pch_gbe_setup_rx_resources 0 61812 &mls_compute_context_len_61812
++pch_gbe_setup_rx_resources_61812 pch_gbe_setup_rx_resources 0 61812 &mls_compute_context_len_61812 nohasharray
++udp_sendmsg_61812 udp_sendmsg 3 61812 &pch_gbe_setup_rx_resources_61812
 +cifs_server_get_key_61813 cifs_server_get_key 0 61813 NULL
 +show_pwm_ast_61818 show_pwm_ast 0 61818 NULL
 +get_cap_size_61822 get_cap_size 0 61822 NULL
@@ -152554,6 +159767,7 @@ index 0000000..19e2901
 +br_get_size_61907 br_get_size 0 61907 NULL
 +rx_filter_arp_filter_read_61914 rx_filter_arp_filter_read 3-0 61914 NULL nohasharray
 +squashfs_security_get_61914 squashfs_security_get 0 61914 &rx_filter_arp_filter_read_61914
++irda_sendmsg_61916 irda_sendmsg 3 61916 NULL
 +au0828_init_isoc_61917 au0828_init_isoc 3-2-4-0 61917 NULL
 +sctp_sendmsg_61919 sctp_sendmsg 4-0 61919 NULL
 +csrow_ce_count_show_61921 csrow_ce_count_show 0 61921 NULL nohasharray
@@ -152701,6 +159915,7 @@ index 0000000..19e2901
 +pptp_outbound_pkt_62269 pptp_outbound_pkt 0 62269 NULL
 +chunk_size_store_62271 chunk_size_store 0-3 62271 NULL
 +security_file_permission_62278 security_file_permission 0 62278 NULL
++get_random_int_62279 get_random_int 0 62279 NULL
 +pcxhr_prepare_62280 pcxhr_prepare 0 62280 NULL nohasharray
 +tcm_qla2xxx_tpg_attrib_show_generate_node_acls_62280 tcm_qla2xxx_tpg_attrib_show_generate_node_acls 0 62280 &pcxhr_prepare_62280
 +dccp_init_sock_62281 dccp_init_sock 0 62281 NULL
@@ -152884,6 +160099,7 @@ index 0000000..19e2901
 +flush_62706 flush 0 62706 NULL
 +bioset_integrity_create_62708 bioset_integrity_create 2 62708 NULL nohasharray
 +target_stat_scsi_tgt_dev_attr_show_62708 target_stat_scsi_tgt_dev_attr_show 0 62708 &bioset_integrity_create_62708
++netlink_recvmsg_62712 netlink_recvmsg 3 62712 NULL
 +target_configure_device_62714 target_configure_device 0 62714 NULL
 +gfs2_log_write_62717 gfs2_log_write 3 62717 NULL nohasharray
 +ubifs_getxattr_62717 ubifs_getxattr 0 62717 &gfs2_log_write_62717
@@ -152931,6 +160147,7 @@ index 0000000..19e2901
 +fsa9480_get_switch_62799 fsa9480_get_switch 0 62799 NULL
 +show_cam_size_62800 show_cam_size 0 62800 NULL
 +ad9523_store_62804 ad9523_store 0-4 62804 NULL
++quirk_simultaneous_discovery_write_62807 quirk_simultaneous_discovery_write 3 62807 NULL
 +da9052_read_chg_current_62811 da9052_read_chg_current 0 62811 NULL nohasharray
 +pcap_regulator_is_enabled_62811 pcap_regulator_is_enabled 0 62811 &da9052_read_chg_current_62811 nohasharray
 +set_port0_62811 set_port0 0-4 62811 &pcap_regulator_is_enabled_62811
@@ -153031,7 +160248,8 @@ index 0000000..19e2901
 +show_pwmfreq_63024 show_pwmfreq 0 63024 NULL
 +kstrtoull_from_user_63026 kstrtoull_from_user 2 63026 NULL nohasharray
 +xfs_trans_reserve_63026 xfs_trans_reserve 0 63026 &kstrtoull_from_user_63026
-+nfs_revalidate_inode_63032 nfs_revalidate_inode 0 63032 NULL
++nfs_revalidate_inode_63032 nfs_revalidate_inode 0 63032 NULL nohasharray
++_save_mc_63032 _save_mc 0-3 63032 &nfs_revalidate_inode_63032
 +__vb2_perform_fileio_63033 __vb2_perform_fileio 3-0 63033 NULL
 +solo_i2c_master_xfer_63036 solo_i2c_master_xfer 0-3 63036 NULL
 +pipeline_defrag_to_csum_swi_read_63037 pipeline_defrag_to_csum_swi_read 3-0 63037 NULL
@@ -153123,6 +160341,7 @@ index 0000000..19e2901
 +SyS_gethostname_63227 SyS_gethostname 2 63227 &nvkm_device_create__63227
 +ttm_bo_global_show_63228 ttm_bo_global_show 0 63228 NULL
 +stk17ta8_rtc_set_alarm_63230 stk17ta8_rtc_set_alarm 0 63230 NULL
++ext2_direct_IO_63231 ext2_direct_IO 3 63231 NULL
 +ctxsize_63232 ctxsize 0 63232 NULL
 +module_alloc_update_bounds_rw_63233 module_alloc_update_bounds_rw 1 63233 NULL
 +mwl8k_cmd_get_hw_spec_ap_63234 mwl8k_cmd_get_hw_spec_ap 0 63234 NULL
@@ -153134,6 +160353,7 @@ index 0000000..19e2901
 +do_convert_63247 do_convert 0 63247 NULL
 +setxattr_63249 setxattr 0 63249 NULL
 +ptp_read_63251 ptp_read 4-0 63251 NULL
++_iwl_dbgfs_rx_phyinfo_write_63254 _iwl_dbgfs_rx_phyinfo_write 3 63254 NULL
 +bond_option_arp_ip_targets_set_63257 bond_option_arp_ip_targets_set 0 63257 NULL
 +kmx61_set_power_state_63260 kmx61_set_power_state 0 63260 NULL
 +xfs_dir2_leaf_getdents_63262 xfs_dir2_leaf_getdents 3 63262 NULL
@@ -153221,6 +160441,7 @@ index 0000000..19e2901
 +iwl_dbgfs_bcast_filters_read_63489 iwl_dbgfs_bcast_filters_read 3-0 63489 NULL
 +i2c_request_63490 i2c_request 0 63490 NULL
 +pm8001_ctl_max_out_io_show_63492 pm8001_ctl_max_out_io_show 0 63492 NULL
++dwapb_gpio_to_irq_63493 dwapb_gpio_to_irq 2 63493 NULL
 +show_crit_hyst_63497 show_crit_hyst 0 63497 NULL
 +module_attr_show_63501 module_attr_show 0 63501 NULL
 +snd_pcm_plug_write_transfer_63503 snd_pcm_plug_write_transfer 0-3 63503 NULL
@@ -153415,7 +160636,8 @@ index 0000000..19e2901
 +set_bredr_63975 set_bredr 4 63975 &diva_xdi_write_63975
 +msi001_set_tuner_63978 msi001_set_tuner 0 63978 NULL
 +genlmsg_new_unicast_63982 genlmsg_new_unicast 1 63982 NULL nohasharray
-+set_mode_63982 set_mode 0-4 63982 &genlmsg_new_unicast_63982
++set_mode_63982 set_mode 0-4 63982 &genlmsg_new_unicast_63982 nohasharray
++wil_rx_snaplen_63982 wil_rx_snaplen 0 63982 &set_mode_63982
 +construct_key_and_link_63985 construct_key_and_link 3 63985 NULL
 +core_alua_store_offline_bit_63989 core_alua_store_offline_bit 0-3 63989 NULL
 +get_host_param_63991 get_host_param 0 63991 NULL nohasharray
@@ -153510,7 +160732,8 @@ index 0000000..19e2901
 +ea_len_64229 ea_len 0 64229 NULL
 +header_len_64232 header_len 0 64232 NULL nohasharray
 +zd1201_set_mac_address_64232 zd1201_set_mac_address 0 64232 &header_len_64232
-+em28xx_i2c_xfer_64233 em28xx_i2c_xfer 0-3 64233 NULL
++em28xx_i2c_xfer_64233 em28xx_i2c_xfer 0-3 64233 NULL nohasharray
++rhashtable_insert_rehash_64233 rhashtable_insert_rehash 0 64233 &em28xx_i2c_xfer_64233
 +vprbrd_i2c_status_64236 vprbrd_i2c_status 0 64236 NULL
 +xfrm_acquire_msgsize_64239 xfrm_acquire_msgsize 0 64239 NULL
 +brcmf_sdiod_send_buf_64245 brcmf_sdiod_send_buf 3 64245 NULL nohasharray
@@ -153560,7 +160783,8 @@ index 0000000..19e2901
 +map_region_64328 map_region 1 64328 NULL
 +sisusbcon_clear_64329 sisusbcon_clear 5-3-4 64329 NULL
 +set_pwm_temp_map_64330 set_pwm_temp_map 0-4 64330 NULL
-+ov9650_set_red_balance_64331 ov9650_set_red_balance 0 64331 NULL
++ov9650_set_red_balance_64331 ov9650_set_red_balance 0 64331 NULL nohasharray
++tipc_send_packet_64331 tipc_send_packet 3 64331 &ov9650_set_red_balance_64331
 +ts_write_64336 ts_write 3-0 64336 NULL
 +qla8044_write_optrom_data_64338 qla8044_write_optrom_data 4 64338 NULL
 +usbtmc_write_64340 usbtmc_write 3-0 64340 NULL
@@ -153682,6 +160906,7 @@ index 0000000..19e2901
 +kstrtoul_from_user_64569 kstrtoul_from_user 2-0 64569 NULL
 +osst_version_show_64570 osst_version_show 0 64570 NULL nohasharray
 +l2tp_ip6_disconnect_64570 l2tp_ip6_disconnect 0 64570 &osst_version_show_64570
++blockdev_direct_IO_64571 blockdev_direct_IO 4 64571 NULL
 +do_erase_64574 do_erase 4 64574 NULL
 +__c2port_show_rev_id_64583 __c2port_show_rev_id 0 64583 NULL
 +snd_usb_init_sample_rate_64586 snd_usb_init_sample_rate 0 64586 NULL
@@ -153735,6 +160960,7 @@ index 0000000..19e2901
 +regcache_flat_write_64702 regcache_flat_write 0 64702 NULL
 +show_temp_hyst_64705 show_temp_hyst 0 64705 NULL
 +_cx25821_start_audio_dma_64707 _cx25821_start_audio_dma 0 64707 NULL
++virtio_cread8_64708 virtio_cread8 0 64708 NULL
 +__feat_register_sp_64712 __feat_register_sp 6-0 64712 NULL
 +snd_pcm_oss_capture_position_fixup_64713 snd_pcm_oss_capture_position_fixup 0 64713 NULL nohasharray
 +show_in_input2_64713 show_in_input2 0 64713 &snd_pcm_oss_capture_position_fixup_64713
@@ -153852,6 +161078,7 @@ index 0000000..19e2901
 +core_alua_show_secondary_write_metadata_64979 core_alua_show_secondary_write_metadata 0 64979 NULL nohasharray
 +proc_sys_call_handler_64979 proc_sys_call_handler 0 64979 &core_alua_show_secondary_write_metadata_64979
 +show_tcpRtoAlgorithm_64982 show_tcpRtoAlgorithm 0 64982 NULL
++l2tp_ip6_sendmsg_64989 l2tp_ip6_sendmsg 3 64989 NULL
 +i7core_inject_store_col_64991 i7core_inject_store_col 0-4 64991 NULL
 +sq905_command_64994 sq905_command 0 64994 NULL
 +pskb_pull_65005 pskb_pull 2 65005 NULL nohasharray
@@ -153860,6 +161087,7 @@ index 0000000..19e2901
 +sh_mobile_ceu_videobuf_prepare_65016 sh_mobile_ceu_videobuf_prepare 0 65016 NULL
 +llc_ui_listen_65018 llc_ui_listen 0 65018 NULL
 +mag3110_show_samp_freq_avail_65028 mag3110_show_samp_freq_avail 0 65028 NULL
++test_ecdh_read_65032 test_ecdh_read 3 65032 NULL
 +insert_dent_65034 insert_dent 7 65034 NULL
 +root_id_show_65050 root_id_show 0 65050 NULL
 +keene_cmd_set_65052 keene_cmd_set 0 65052 NULL
@@ -153873,7 +161101,7 @@ index 0000000..19e2901
 +pcibios_enable_device_65059 pcibios_enable_device 0 65059 &__erst_record_id_cache_add_one_65059 nohasharray
 +be_cmd_get_active_mac_65059 be_cmd_get_active_mac 0 65059 &pcibios_enable_device_65059
 +fw_write_65069 fw_write 3 65069 NULL
-+count_run_65072 count_run 0-4-5 65072 NULL nohasharray
++count_run_65072 count_run 0-4-5-2 65072 NULL nohasharray
 +bnx2fc_process_l2_frame_compl_65072 bnx2fc_process_l2_frame_compl 3 65072 &count_run_65072
 +koneplus_sysfs_write_info_65073 koneplus_sysfs_write_info 0-6-5 65073 NULL
 +__alloc_bootmem_node_high_65076 __alloc_bootmem_node_high 2 65076 NULL nohasharray
@@ -153972,6 +161200,7 @@ index 0000000..19e2901
 +ttm_mem_zone_show_65319 ttm_mem_zone_show 0 65319 NULL
 +write_acpi_int_65322 write_acpi_int 0 65322 NULL nohasharray
 +ivtv_start_decoding_65322 ivtv_start_decoding 0 65322 &write_acpi_int_65322
++ocfs2_prepare_inode_for_write_65323 ocfs2_prepare_inode_for_write 0 65323 NULL
 +pci_vpd_find_tag_65325 pci_vpd_find_tag 0-2 65325 NULL
 +ds1685_rtc_sysfs_time_regs_show_65330 ds1685_rtc_sysfs_time_regs_show 0 65330 NULL
 +dccp_setsockopt_service_65336 dccp_setsockopt_service 4-0 65336 NULL
@@ -154043,7 +161272,7 @@ index 0000000..19e2901
 +regmap_write_65478 regmap_write 0 65478 NULL
 +ath_rx_edma_init_65483 ath_rx_edma_init 2 65483 NULL nohasharray
 +activate_65483 activate 0 65483 &ath_rx_edma_init_65483
-+sock_recvmsg_nosec_65484 sock_recvmsg_nosec 3 65484 NULL
++sock_recvmsg_nosec_65484 sock_recvmsg_nosec 3-0 65484 NULL
 +ixgbevf_get_regs_len_65486 ixgbevf_get_regs_len 0 65486 NULL
 +show_temp3_beep_65487 show_temp3_beep 0 65487 NULL
 +dpcm_state_read_file_65489 dpcm_state_read_file 3-0 65489 NULL nohasharray
@@ -154052,6 +161281,7 @@ index 0000000..19e2901
 +selnl_msglen_65499 selnl_msglen 0 65499 NULL
 +wm8350_rtc_setalarm_65501 wm8350_rtc_setalarm 0 65501 NULL
 +__xudc_ep_enable_65502 __xudc_ep_enable 0 65502 NULL
++ax25_recvmsg_65505 ax25_recvmsg 3 65505 NULL
 +dcdbas_smi_request_65515 dcdbas_smi_request 0 65515 NULL
 +tdfxfb_check_var_65516 tdfxfb_check_var 0 65516 NULL
 +cyapa_gen3_write_blocks_65517 cyapa_gen3_write_blocks 0 65517 NULL
@@ -155084,7 +162314,7 @@ index 0000000..9846ab0
 +#endif
 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
 new file mode 100644
-index 0000000..6d103b8
+index 0000000..d7f4062
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
 @@ -0,0 +1,256 @@
@@ -155119,7 +162349,7 @@ index 0000000..6d103b8
 +tree size_overflow_type_TI;
 +
 +static struct plugin_info size_overflow_plugin_info = {
-+      .version        = "20150512",
++      .version        = "20150614",
 +      .help           = "no-size-overflow\tturn off size overflow checking\n",
 +};
 +
@@ -156136,10 +163366,10 @@ index 0000000..549decf
 +}
 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
 new file mode 100644
-index 0000000..c38a410
+index 0000000..c9d7068
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
-@@ -0,0 +1,962 @@
+@@ -0,0 +1,966 @@
 +/*
 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
 + * Licensed under the GPL v2, or (at your option) v3
@@ -156433,6 +163663,7 @@ index 0000000..c38a410
 +static gphi *overflow_create_phi_node(struct visited *visited, gphi *oldstmt, tree result)
 +{
 +      basic_block bb;
++      gimple stmt;
 +      gphi *phi;
 +      gimple_seq seq;
 +      gimple_stmt_iterator gsi = gsi_for_stmt(oldstmt);
@@ -156446,7 +163677,8 @@ index 0000000..c38a410
 +              result = create_new_var(size_overflow_type);
 +      }
 +
-+      phi = create_phi_node(result, bb);
++      stmt = create_phi_node(result, bb);
++      phi = as_a_gphi(stmt);
 +      gimple_phi_set_result(phi, make_ssa_name(result, phi));
 +      seq = phi_nodes(bb);
 +      gsi = gsi_last(seq);
@@ -156596,6 +163828,7 @@ index 0000000..c38a410
 +
 +static void insert_cond_result(basic_block bb_true, const_gimple stmt, const_tree arg, bool min)
 +{
++      gimple call_stmt;
 +      gcall *func_stmt;
 +      const_gimple def_stmt;
 +      const_tree loc_line;
@@ -156634,7 +163867,8 @@ index 0000000..c38a410
 +      ssa_name = create_string_param(ssa_name);
 +
 +      // void report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
-+      func_stmt = gimple_build_call(report_size_overflow_decl, 4, loc_file, loc_line, current_func, ssa_name);
++      call_stmt = gimple_build_call(report_size_overflow_decl, 4, loc_file, loc_line, current_func, ssa_name);
++      func_stmt = as_a_gcall(call_stmt);
 +      gsi_insert_after(&gsi, func_stmt, GSI_CONTINUE_LINKING);
 +
 +      report_node = cgraph_get_create_node(report_size_overflow_decl);
@@ -157104,10 +164338,10 @@ index 0000000..c38a410
 +}
 diff --git a/tools/gcc/stackleak_plugin.c b/tools/gcc/stackleak_plugin.c
 new file mode 100644
-index 0000000..1d296ce
+index 0000000..155e2c5
 --- /dev/null
 +++ b/tools/gcc/stackleak_plugin.c
-@@ -0,0 +1,432 @@
+@@ -0,0 +1,436 @@
 +/*
 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
 + * Licensed under the GPL v2
@@ -157147,6 +164381,7 @@ index 0000000..1d296ce
 +
 +static void stackleak_check_alloca(gimple_stmt_iterator *gsi)
 +{
++      gimple stmt;
 +      gcall *check_alloca;
 +      tree alloca_size;
 +      cgraph_node_ptr node;
@@ -157155,7 +164390,8 @@ index 0000000..1d296ce
 +
 +      // insert call to void pax_check_alloca(unsigned long size)
 +      alloca_size = gimple_call_arg(gsi_stmt(*gsi), 0);
-+      check_alloca = gimple_build_call(check_function_decl, 1, alloca_size);
++      stmt = gimple_build_call(check_function_decl, 1, alloca_size);
++      check_alloca = as_a_gcall(stmt);
 +      gsi_insert_before(gsi, check_alloca, GSI_SAME_STMT);
 +
 +      // update the cgraph
@@ -157168,13 +164404,15 @@ index 0000000..1d296ce
 +
 +static void stackleak_add_instrumentation(gimple_stmt_iterator *gsi)
 +{
++      gimple stmt;
 +      gcall *track_stack;
 +      cgraph_node_ptr node;
 +      int frequency;
 +      basic_block bb;
 +
 +      // insert call to void pax_track_stack(void)
-+      track_stack = gimple_build_call(track_function_decl, 0);
++      stmt = gimple_build_call(track_function_decl, 0);
++      track_stack = as_a_gcall(stmt);
 +      gsi_insert_after(gsi, track_stack, GSI_CONTINUE_LINKING);
 +
 +      // update the cgraph
@@ -157853,25 +165091,25 @@ index 88461f0..6fb70a0 100644
  
  #endif /* _TOOLS_LINUX_COMPILER_H */
 diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
-index 36c08b1..87c72d1 100644
+index 8bd9606..abacd96 100644
 --- a/tools/lib/api/Makefile
 +++ b/tools/lib/api/Makefile
-@@ -21,7 +21,7 @@ LIB_OBJS += $(OUTPUT)fd/array.o
+@@ -16,7 +16,7 @@ MAKEFLAGS += --no-print-directory
+ LIBFILE = $(OUTPUT)libapi.a
  
- LIBFILE = libapikfs.a
+ CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
+-CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
++CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
+ CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
  
--CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
-+CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
- EXTLIBS = -lelf -lpthread -lrt -lm
- ALL_CFLAGS = $(CFLAGS) $(BASIC_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
- ALL_LDFLAGS = $(LDFLAGS)
+ RM = rm -f
 diff --git a/tools/perf/util/include/asm/alternative-asm.h b/tools/perf/util/include/asm/alternative-asm.h
-index 6789d788..4afd019e 100644
+index 3a3a0f1..6cf679d 100644
 --- a/tools/perf/util/include/asm/alternative-asm.h
 +++ b/tools/perf/util/include/asm/alternative-asm.h
-@@ -5,4 +5,7 @@
+@@ -6,4 +6,7 @@
  #define altinstruction_entry #
+ #define ALTERNATIVE_2 #
  
 +      .macro pax_force_retaddr rip=0, reload=0
 +      .endm
@@ -157891,13 +165129,13 @@ index 0a578fe..b81f62d 100644
  })
  
 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index f8f3f5fe..9bc113f 100644
+index 9097741..2472109 100644
 --- a/virt/kvm/kvm_main.c
 +++ b/virt/kvm/kvm_main.c
 @@ -81,12 +81,17 @@ LIST_HEAD(vm_list);
  
  static cpumask_var_t cpus_hardware_enabled;
- static int kvm_usage_count = 0;
+ static int kvm_usage_count;
 -static atomic_t hardware_enable_failed;
 +static atomic_unchecked_t hardware_enable_failed;
  
@@ -157913,8 +165151,8 @@ index f8f3f5fe..9bc113f 100644
 +};
  
  struct dentry *kvm_debugfs_dir;
-@@ -791,7 +796,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
+ EXPORT_SYMBOL_GPL(kvm_debugfs_dir);
+@@ -784,7 +789,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
        /* We can read the guest memory with __xxx_user() later on. */
        if ((mem->slot < KVM_USER_MEM_SLOTS) &&
            ((mem->userspace_addr & (PAGE_SIZE - 1)) ||
@@ -157923,7 +165161,7 @@ index f8f3f5fe..9bc113f 100644
                        (void __user *)(unsigned long)mem->userspace_addr,
                        mem->memory_size)))
                goto out;
-@@ -1729,9 +1734,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
+@@ -1714,9 +1719,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
  
  int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
  {
@@ -157943,7 +165181,7 @@ index f8f3f5fe..9bc113f 100644
  }
  EXPORT_SYMBOL_GPL(kvm_clear_guest_page);
  
-@@ -2007,7 +2020,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
+@@ -1993,7 +2006,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
        return 0;
  }
  
@@ -157952,7 +165190,7 @@ index f8f3f5fe..9bc113f 100644
        .release        = kvm_vcpu_release,
        .unlocked_ioctl = kvm_vcpu_ioctl,
  #ifdef CONFIG_KVM_COMPAT
-@@ -2724,7 +2737,7 @@ out:
+@@ -2713,7 +2726,7 @@ out:
  }
  #endif
  
@@ -157961,7 +165199,7 @@ index f8f3f5fe..9bc113f 100644
        .release        = kvm_vm_release,
        .unlocked_ioctl = kvm_vm_ioctl,
  #ifdef CONFIG_KVM_COMPAT
-@@ -2795,7 +2808,7 @@ out:
+@@ -2784,7 +2797,7 @@ out:
        return r;
  }
  
@@ -157970,16 +165208,16 @@ index f8f3f5fe..9bc113f 100644
        .unlocked_ioctl = kvm_dev_ioctl,
        .compat_ioctl   = kvm_dev_ioctl,
        .llseek         = noop_llseek,
-@@ -2821,7 +2834,7 @@ static void hardware_enable_nolock(void *junk)
+@@ -2810,7 +2823,7 @@ static void hardware_enable_nolock(void *junk)
  
        if (r) {
                cpumask_clear_cpu(cpu, cpus_hardware_enabled);
 -              atomic_inc(&hardware_enable_failed);
 +              atomic_inc_unchecked(&hardware_enable_failed);
-               printk(KERN_INFO "kvm: enabling virtualization on "
-                                "CPU%d failed\n", cpu);
+               pr_info("kvm: enabling virtualization on CPU%d failed\n", cpu);
        }
-@@ -2877,10 +2890,10 @@ static int hardware_enable_all(void)
+ }
+@@ -2865,10 +2878,10 @@ static int hardware_enable_all(void)
  
        kvm_usage_count++;
        if (kvm_usage_count == 1) {
@@ -157992,7 +165230,7 @@ index f8f3f5fe..9bc113f 100644
                        hardware_disable_all_nolock();
                        r = -EBUSY;
                }
-@@ -3287,7 +3300,7 @@ static void kvm_sched_out(struct preempt_notifier *pn,
+@@ -3276,7 +3289,7 @@ static void kvm_sched_out(struct preempt_notifier *pn,
        kvm_arch_vcpu_put(vcpu);
  }
  
@@ -158001,7 +165239,7 @@ index f8f3f5fe..9bc113f 100644
                  struct module *module)
  {
        int r;
-@@ -3334,7 +3347,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
+@@ -3323,7 +3336,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
        if (!vcpu_align)
                vcpu_align = __alignof__(struct kvm_vcpu);
        kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
@@ -158010,7 +165248,7 @@ index f8f3f5fe..9bc113f 100644
        if (!kvm_vcpu_cache) {
                r = -ENOMEM;
                goto out_free_3;
-@@ -3344,9 +3357,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
+@@ -3333,9 +3346,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
        if (r)
                goto out_free;
  
@@ -158022,7 +165260,7 @@ index f8f3f5fe..9bc113f 100644
  
        r = misc_register(&kvm_dev);
        if (r) {
-@@ -3356,9 +3371,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
+@@ -3345,9 +3360,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
  
        register_syscore_ops(&kvm_syscore_ops);
  
@@ -158031,4 +165269,4 @@ index f8f3f5fe..9bc113f 100644
 -
        r = kvm_init_debug();
        if (r) {
-               printk(KERN_ERR "kvm: create debugfs files failed\n");
+               pr_err("kvm: create debugfs files failed\n");
diff --git a/kernel/patches/linux-4.0-arm-exynos-thumb2-fix-build.patch b/kernel/patches/linux-4.0-arm-exynos-thumb2-fix-build.patch
deleted file mode 100644 (file)
index 2662909..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-From 12833bacf5d904c2dac0c3f52b2ebde5f2c5a2bc Mon Sep 17 00:00:00 2001
-From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-Date: Wed, 25 Mar 2015 07:41:43 +0100
-Subject: ARM: 8325/1: exynos: move resume code to .text section
-
-This code calls cpu_resume() using a straight branch (b), so
-now that we have moved cpu_resume() back to .text, this should
-be moved there as well. Any direct references to symbols that will
-remain in the .data section are replaced with explicit PC-relative
-references.
-
-Acked-by: Nicolas Pitre <nico@linaro.org>
-Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-
-diff --git a/arch/arm/mach-exynos/sleep.S b/arch/arm/mach-exynos/sleep.S
-index 31d2583..cf95079 100644
---- a/arch/arm/mach-exynos/sleep.S
-+++ b/arch/arm/mach-exynos/sleep.S
-@@ -23,14 +23,7 @@
- #define CPU_MASK      0xff0ffff0
- #define CPU_CORTEX_A9 0x410fc090
--      /*
--       * The following code is located into the .data section. This is to
--       * allow l2x0_regs_phys to be accessed with a relative load while we
--       * can't rely on any MMU translation. We could have put l2x0_regs_phys
--       * in the .text section as well, but some setups might insist on it to
--       * be truly read-only. (Reference from: arch/arm/kernel/sleep.S)
--       */
--      .data
-+      .text
-       .align
-       /*
-@@ -69,10 +62,12 @@ ENTRY(exynos_cpu_resume_ns)
-       cmp     r0, r1
-       bne     skip_cp15
--      adr     r0, cp15_save_power
-+      adr     r0, _cp15_save_power
-       ldr     r1, [r0]
--      adr     r0, cp15_save_diag
-+      ldr     r1, [r0, r1]
-+      adr     r0, _cp15_save_diag
-       ldr     r2, [r0]
-+      ldr     r2, [r0, r2]
-       mov     r0, #SMC_CMD_C15RESUME
-       dsb
-       smc     #0
-@@ -118,14 +113,20 @@ skip_l2x0:
- skip_cp15:
-       b       cpu_resume
- ENDPROC(exynos_cpu_resume_ns)
-+
-+      .align
-+_cp15_save_power:
-+      .long   cp15_save_power - .
-+_cp15_save_diag:
-+      .long   cp15_save_diag - .
-+#ifdef CONFIG_CACHE_L2X0
-+1:    .long   l2x0_saved_regs - .
-+#endif /* CONFIG_CACHE_L2X0 */
-+
-+      .data
-       .globl cp15_save_diag
- cp15_save_diag:
-       .long   0       @ cp15 diagnostic
-       .globl cp15_save_power
- cp15_save_power:
-       .long   0       @ cp15 power control
--
--#ifdef CONFIG_CACHE_L2X0
--      .align
--1:    .long   l2x0_saved_regs - .
--#endif /* CONFIG_CACHE_L2X0 */
--- 
-cgit v0.10.2
-