]> Git Repo - linux.git/commitdiff
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livep...
authorLinus Torvalds <[email protected]>
Wed, 18 May 2016 00:11:27 +0000 (17:11 -0700)
committerLinus Torvalds <[email protected]>
Wed, 18 May 2016 00:11:27 +0000 (17:11 -0700)
Pull livepatching updates from Jiri Kosina:

 - remove of our own implementation of architecture-specific relocation
   code and leveraging existing code in the module loader to perform
   arch-dependent work, from Jessica Yu.

   The relevant patches have been acked by Rusty (for module.c) and
   Heiko (for s390).

 - live patching support for ppc64le, which is a joint work of Michael
   Ellerman and Torsten Duwe.  This is coming from topic branch that is
   share between livepatching.git and ppc tree.

 - addition of livepatching documentation from Petr Mladek

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
  livepatch: make object/func-walking helpers more robust
  livepatch: Add some basic livepatch documentation
  powerpc/livepatch: Add live patching support on ppc64le
  powerpc/livepatch: Add livepatch stack to struct thread_info
  powerpc/livepatch: Add livepatch header
  livepatch: Allow architectures to specify an alternate ftrace location
  ftrace: Make ftrace_location_range() global
  livepatch: robustify klp_register_patch() API error checking
  Documentation: livepatch: outline Elf format and requirements for patch modules
  livepatch: reuse module loader code to write relocations
  module: s390: keep mod_arch_specific for livepatch modules
  module: preserve Elf information for livepatch modules
  Elf: add livepatch-specific Elf constants

1  2 
MAINTAINERS
arch/powerpc/Kconfig
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/entry_64.S
arch/powerpc/kernel/process.c
arch/x86/kernel/Makefile
include/linux/ftrace.h
kernel/trace/ftrace.c

diff --combined MAINTAINERS
index 6210ae21d3118805070ab2e5c1a0cabade66f798,c6baaa68a3af364510c919d80983509901e0446d..1dd9335de071e69c7ebaa1da1e15ca3f3d934335
@@@ -151,7 -151,7 +151,7 @@@ S: Maintaine
  F:    drivers/scsi/53c700*
  
  6LOWPAN GENERIC (BTLE/IEEE 802.15.4)
 -M:    Alexander Aring <a[email protected]>
 +M:    Alexander Aring <a[email protected]>
  M:    Jukka Rissanen <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -228,13 -228,13 +228,13 @@@ F:      kernel/sys_ni.
  
  ABIT UGURU 1,2 HARDWARE MONITOR DRIVER
  M:    Hans de Goede <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    drivers/hwmon/abituguru.c
  
  ABIT UGURU 3 HARDWARE MONITOR DRIVER
  M:    Alistair John Strachan <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    drivers/hwmon/abituguru3.c
  
@@@ -392,14 -392,14 +392,14 @@@ F:      Documentation/devicetree/bindings/ne
  
  ADM1025 HARDWARE MONITOR DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/adm1025
  F:    drivers/hwmon/adm1025.c
  
  ADM1029 HARDWARE MONITOR DRIVER
  M:    Corentin Labbe <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    drivers/hwmon/adm1029.c
  
@@@ -444,7 -444,7 +444,7 @@@ F: drivers/video/backlight/adp8860_bl.
  
  ADS1015 HARDWARE MONITOR DRIVER
  M:    Dirk Eibach <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/ads1015
  F:    drivers/hwmon/ads1015.c
@@@ -457,7 -457,7 +457,7 @@@ F: drivers/macintosh/therm_adt746x.
  
  ADT7475 HARDWARE MONITOR DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/adt7475
  F:    drivers/hwmon/adt7475.c
@@@ -627,7 -627,6 +627,7 @@@ F: include/linux/altera_jtaguart.
  
  AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER
  M:    Tom Lendacky <[email protected]>
 +M:    Gary Hook <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/crypto/ccp/
@@@ -635,7 -634,7 +635,7 @@@ F: include/linux/ccp.
  
  AMD FAM15H PROCESSOR POWER MONITORING DRIVER
  M:    Huang Rui <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Supported
  F:    Documentation/hwmon/fam15h_power
  F:    drivers/hwmon/fam15h_power.c
@@@ -680,19 -679,11 +680,19 @@@ F:      drivers/gpu/drm/radeon/radeon_kfd.
  F:    drivers/gpu/drm/radeon/radeon_kfd.h
  F:    include/uapi/linux/kfd_ioctl.h
  
 +AMD SEATTLE DEVICE TREE SUPPORT
 +M:    Brijesh Singh <[email protected]>
 +M:    Suravee Suthikulpanit <[email protected]>
 +M:    Tom Lendacky <[email protected]>
 +S:    Supported
 +F:    arch/arm64/boot/dts/amd/
 +
  AMD XGBE DRIVER
  M:    Tom Lendacky <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/amd/xgbe/
 +F:    arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
  
  AMS (Apple Motion Sensor) DRIVER
  M:    Michael Hanselmann <[email protected]>
@@@ -784,12 -775,6 +784,12 @@@ L:       [email protected] (moderat
  S:    Maintained
  F:    sound/aoa/
  
 +APEX EMBEDDED SYSTEMS STX104 DAC DRIVER
 +M:    William Breathitt Gray <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/iio/dac/stx104.c
 +
  APM DRIVER
  M:    Jiri Kosina <[email protected]>
  S:    Odd fixes
@@@ -807,7 -792,7 +807,7 @@@ F: drivers/input/mouse/bcm5974.
  
  APPLE SMC DRIVER
  M:    Henrik Rydberg <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Odd fixes
  F:    drivers/hwmon/applesmc.c
  
@@@ -848,12 -833,6 +848,12 @@@ S:       Maintaine
  F:    drivers/net/arcnet/
  F:    include/uapi/linux/if_arcnet.h
  
 +ARM HDLCD DRM DRIVER
 +M:    Liviu Dudau <[email protected]>
 +S:    Supported
 +F:    drivers/gpu/drm/arm/
 +F:    Documentation/devicetree/bindings/display/arm,hdlcd.txt
 +
  ARM MFM AND FLOPPY DRIVERS
  M:    Ian Molton <[email protected]>
  S:    Maintained
@@@ -873,9 -852,9 +873,9 @@@ F: drivers/perf/arm_pmu.
  F:    include/linux/perf/arm_pmu.h
  
  ARM PORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/
  
@@@ -887,35 -866,35 +887,35 @@@ F:      arch/arm/plat-*
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git
  
  ARM PRIMECELL AACI PL041 DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    sound/arm/aaci.*
  
  ARM PRIMECELL CLCD PL110 DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/video/fbdev/amba-clcd.*
  
  ARM PRIMECELL KMI PL050 DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/input/serio/ambakmi.*
  F:    include/linux/amba/kmi.h
  
  ARM PRIMECELL MMCI PL180/1 DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/mmc/host/mmci.*
  F:    include/linux/amba/mmci.h
  
  ARM PRIMECELL UART PL010 AND PL011 DRIVERS
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/tty/serial/amba-pl01*.c
  F:    include/linux/amba/serial.h
  
  ARM PRIMECELL BUS SUPPORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/amba/
  F:    include/linux/amba/bus.h
@@@ -966,16 -945,6 +966,16 @@@ F:       arch/arm/boot/dts/alpine
  F:    arch/arm64/boot/dts/al/
  F:    drivers/*/*alpine*
  
 +ARM/ARTPEC MACHINE SUPPORT
 +M:    Jesper Nilsson <[email protected]>
 +M:    Lars Persson <[email protected]>
 +M:    Niklas Cassel <[email protected]>
 +S:    Maintained
 +L:    [email protected]
 +F:    arch/arm/mach-artpec
 +F:    arch/arm/boot/dts/artpec6*
 +F:    drivers/clk/clk-artpec6.c
 +
  ARM/ATMEL AT91RM9200, AT91SAM9 AND SAMA5 SOC SUPPORT
  M:    Nicolas Ferre <[email protected]>
  M:    Alexandre Belloni <[email protected]>
@@@ -1037,7 -1006,7 +1037,7 @@@ L:      [email protected]
  S:    Maintained
  
  ARM/CLKDEV SUPPORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/include/asm/clkdev.h
@@@ -1094,9 -1063,9 +1094,9 @@@ F:      arch/arm/boot/dts/cx92755
  N:    digicolor
  
  ARM/EBSA110 MACHINE SUPPORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/mach-ebsa110/
  F:    drivers/net/ethernet/amd/am79c961a.*
@@@ -1125,9 -1094,9 +1125,9 @@@ T:      git git://git.berlios.de/gemini-boar
  F:    arch/arm/mm/*-fa*
  
  ARM/FOOTBRIDGE ARCHITECTURE
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/include/asm/hardware/dec21285.h
  F:    arch/arm/mach-footbridge/
@@@ -1322,8 -1291,6 +1322,8 @@@ F:      arch/arm/mach-mvebu
  F:    drivers/rtc/rtc-armada38x.c
  F:    arch/arm/boot/dts/armada*
  F:    arch/arm/boot/dts/kirkwood*
 +F:    arch/arm64/boot/dts/marvell/armada*
 +F:    drivers/cpufreq/mvebu-cpufreq.c
  
  
  ARM/Marvell Berlin SoC support
@@@ -1459,7 -1426,7 +1459,7 @@@ S:      Maintaine
  ARM/PT DIGITAL BOARD PORT
  M:    Stefan Eletzhofer <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  
  ARM/QUALCOMM SUPPORT
@@@ -1472,10 -1439,7 +1472,10 @@@ F:    arch/arm/boot/dts/qcom-*.dt
  F:    arch/arm/boot/dts/qcom-*.dtsi
  F:    arch/arm/mach-qcom/
  F:    arch/arm64/boot/dts/qcom/*
 +F:    drivers/i2c/busses/i2c-qup.c
 +F:    drivers/clk/qcom/
  F:    drivers/soc/qcom/
 +F:    drivers/spi/spi-qup.c
  F:    drivers/tty/serial/msm_serial.h
  F:    drivers/tty/serial/msm_serial.c
  F:    drivers/*/pm8???-*
@@@ -1498,9 -1462,9 +1498,9 @@@ S:      Supporte
  F:    arch/arm64/boot/dts/renesas/
  
  ARM/RISCPC ARCHITECTURE
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/include/asm/hardware/entry-macro-iomd.S
  F:    arch/arm/include/asm/hardware/ioc.h
@@@ -1545,7 -1509,6 +1545,7 @@@ F:      arch/arm/mach-s5p*
  F:    arch/arm/mach-exynos*/
  F:    drivers/*/*s3c2410*
  F:    drivers/*/*/*s3c2410*
 +F:    drivers/soc/samsung/*
  F:    drivers/spi/spi-s3c*
  F:    sound/soc/samsung/*
  F:    Documentation/arm/Samsung/
@@@ -1778,9 -1741,9 +1778,9 @@@ F:      drivers/clk/versatile/clk-vexpress-o
  F:    drivers/clocksource/versatile.c
  
  ARM/VFP SUPPORT
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    arch/arm/vfp/
  
@@@ -1843,13 -1806,11 +1843,13 @@@ F:   drivers/edac/synopsys_edac.
  
  ARM SMMU DRIVERS
  M:    Will Deacon <[email protected]>
 +R:    Robin Murphy <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/iommu/arm-smmu.c
  F:    drivers/iommu/arm-smmu-v3.c
  F:    drivers/iommu/io-pgtable-arm.c
 +F:    drivers/iommu/io-pgtable-arm-v7s.c
  
  ARM64 PORT (AARCH64 ARCHITECTURE)
  M:    Catalin Marinas <[email protected]>
@@@ -1870,7 -1831,7 +1870,7 @@@ F:      include/media/i2c/as3645a.
  
  ASC7621 HARDWARE MONITOR DRIVER
  M:    George Joseph <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/asc7621
  F:    drivers/hwmon/asc7621.c
@@@ -1963,7 -1924,7 +1963,7 @@@ F:      drivers/net/wireless/ath/carl9170
  
  ATK0110 HWMON DRIVER
  M:    Luca Tettamanti <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    drivers/hwmon/asus_atk0110.c
  
@@@ -2001,12 -1962,6 +2001,12 @@@ M:    Nicolas Ferre <[email protected]
  S:    Supported
  F:    drivers/tty/serial/atmel_serial.c
  
 +ATMEL SAMA5D2 ADC DRIVER
 +M:    Ludovic Desroches <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/iio/adc/at91-sama5d2_adc.c
 +
  ATMEL Audio ALSA driver
  M:    Nicolas Ferre <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -2208,13 -2163,9 +2208,13 @@@ BATMAN ADVANCE
  M:    Marek Lindner <[email protected]>
  M:    Simon Wunderlich <[email protected]>
  M:    Antonio Quartulli <[email protected]>
 -L:    [email protected]
 -W:    http://www.open-mesh.org/
 +L:    [email protected] (moderated for non-subscribers)
 +W:    https://www.open-mesh.org/
 +Q:    https://patchwork.open-mesh.org/project/batman/list/
  S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-class-net-batman-adv
 +F:    Documentation/ABI/testing/sysfs-class-net-mesh
 +F:    Documentation/networking/batman-adv.txt
  F:    net/batman-adv/
  
  BAYCOM/HDLCDRV DRIVERS FOR AX.25
@@@ -2442,9 -2393,8 +2442,9 @@@ F:      arch/arm/boot/dts/bcm470
  
  BROADCOM BCM63XX ARM ARCHITECTURE
  M:    Florian Fainelli <[email protected]>
 -L:    [email protected]
 -T:    git git://github.com/broadcom/arm-bcm63xx.git
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +T:    git git://github.com/broadcom/stblinux.git
  S:    Maintained
  F:    arch/arm/mach-bcm/bcm63xx.c
  F:    arch/arm/include/debug/bcm63xx.S
@@@ -2485,7 -2435,6 +2485,7 @@@ F:      include/linux/bcm963xx_nvram.
  F:    include/linux/bcm963xx_tag.h
  
  BROADCOM TG3 GIGABIT ETHERNET DRIVER
 +M:    Siva Reddy Kallam <[email protected]>
  M:    Prashant Sreedharan <[email protected]>
  M:    Michael Chan <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bcmsysport.*
  
 +BROADCOM VULCAN ARM64 SOC
 +M:    Jayachandran C. <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    arch/arm64/boot/dts/broadcom/vulcan*
 +
  BROCADE BFA FC SCSI DRIVER
  M:    Anil Gurumurthy <[email protected]>
  M:    Sudarsana Kalluru <[email protected]>
@@@ -2929,7 -2871,7 +2929,7 @@@ F:      mm/cleancache.
  F:    include/linux/cleancache.h
  
  CLK API
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    include/linux/clk.h
@@@ -3102,7 -3044,7 +3102,7 @@@ F:      mm/swap_cgroup.
  
  CORETEMP HARDWARE MONITORING DRIVER
  M:    Fenghua Yu <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/coretemp
  F:    drivers/hwmon/coretemp.c
@@@ -3356,16 -3298,15 +3356,16 @@@ F:   Documentation/powerpc/cxlflash.tx
  
  STMMAC ETHERNET DRIVER
  M:    Giuseppe Cavallaro <[email protected]>
 +M:    Alexandre Torgue <[email protected]>
  L:    [email protected]
  W:    http://www.stlinux.com
  S:    Supported
  F:    drivers/net/ethernet/stmicro/stmmac/
  
  CYBERPRO FB DRIVER
 -M:    Russell King <linux@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.arm.linux.org.uk/
 +W:    http://www.armlinux.org.uk/
  S:    Maintained
  F:    drivers/video/fbdev/cyber2000fb.*
  
@@@ -3548,15 -3489,6 +3548,15 @@@ F:    drivers/devfreq/devfreq-event.
  F:    include/linux/devfreq-event.h
  F:    Documentation/devicetree/bindings/devfreq/event/
  
 +BUS FREQUENCY DRIVER FOR SAMSUNG EXYNOS
 +M:    Chanwoo Choi <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq.git
 +S:    Maintained
 +F:    drivers/devfreq/exynos-bus.c
 +F:    Documentation/devicetree/bindings/devfreq/exynos-bus.txt
 +
  DEVICE NUMBER REGISTRY
  M:    Torben Mathiasen <[email protected]>
  W:    http://lanana.org/docs/device-list/index.html
@@@ -3579,14 -3511,6 +3579,14 @@@ F:    include/linux/device-mapper.
  F:    include/linux/dm-*.h
  F:    include/uapi/linux/dm-*.h
  
 +DEVLINK
 +M:    Jiri Pirko <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    net/core/devlink.c
 +F:    include/net/devlink.h
 +F:    include/uapi/linux/devlink.h
 +
  DIALOG SEMICONDUCTOR DRIVERS
  M:    Support Opensource <[email protected]>
  W:    http://www.dialog-semiconductor.com/products
  S:    Maintained
  F:    drivers/staging/dgnc/
  
 -DIGI EPCA PCI PRODUCTS
 -M:    Lidza Louina <[email protected]>
 -M:    Daeseok Youn <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/staging/dgap/
 -
  DIOLAN U2C-12 I2C DRIVER
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
@@@ -3701,7 -3632,7 +3701,7 @@@ T:      git git://git.infradead.org/users/vk
  
  DME1737 HARDWARE MONITOR DRIVER
  M:    Juerg Haefliger <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/dme1737
  F:    drivers/hwmon/dme1737.c
@@@ -3780,7 -3711,7 +3780,7 @@@ F:      drivers/gpu/vga
  F:    include/drm/
  F:    include/uapi/drm/
  
 -RADEON DRM DRIVERS
 +RADEON and AMDGPU DRM DRIVERS
  M:    Alex Deucher <[email protected]>
  M:    Christian König <[email protected]>
  L:    [email protected]
@@@ -3788,8 -3719,6 +3788,8 @@@ T:      git git://people.freedesktop.org/~ag
  S:    Supported
  F:    drivers/gpu/drm/radeon/
  F:    include/uapi/drm/radeon*
 +F:    drivers/gpu/drm/amd/
 +F:    include/uapi/drm/amdgpu*
  
  DRM PANEL DRIVERS
  M:    Thierry Reding <[email protected]>
@@@ -3834,7 -3763,7 +3834,7 @@@ F:      include/drm/exynos
  F:    include/uapi/drm/exynos*
  
  DRM DRIVERS FOR FREESCALE DCU
 -M:    Jianwei Wang <[email protected]>
 +M:    Stefan Agner <[email protected]>
  M:    Alison Wang <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -3899,7 -3828,7 +3899,7 @@@ F:      Documentation/devicetree/bindings/di
  
  DRM DRIVERS FOR VIVANTE GPU IP
  M:    Lucas Stach <[email protected]>
 -R:    Russell King <linux+etnaviv@arm.linux.org.uk>
 +R:    Russell King <[email protected]>
  R:    Christian Gmeiner <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -4241,8 -4170,8 +4241,8 @@@ F:      Documentation/efi-stub.tx
  F:    arch/ia64/kernel/efi.c
  F:    arch/x86/boot/compressed/eboot.[ch]
  F:    arch/x86/include/asm/efi.h
 -F:    arch/x86/platform/efi/*
 -F:    drivers/firmware/efi/*
 +F:    arch/x86/platform/efi/
 +F:    drivers/firmware/efi/
  F:    include/linux/efi*.h
  
  EFI VARIABLE FILESYSTEM
@@@ -4306,6 -4235,13 +4306,6 @@@ M:     Maxim Levitsky <maximlevitsky@gmail.
  S:    Maintained
  F:    drivers/media/rc/ene_ir.*
  
 -ENHANCED ERROR HANDLING (EEH)
 -M:    Gavin Shan <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -F:    Documentation/powerpc/eeh-pci-error-recovery.txt
 -F:    arch/powerpc/kernel/eeh*.c
 -
  EPSON S1D13XXX FRAMEBUFFER DRIVER
  M:    Kristoffer Ericson <[email protected]>
  S:    Maintained
@@@ -4320,7 -4256,7 +4320,7 @@@ F:      drivers/net/ethernet/agere
  
  ETHERNET BRIDGE
  M:    Stephen Hemminger <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  W:    http://www.linuxfoundation.org/en/Net:Bridge
  S:    Maintained
  S:    Maintained
  F:    drivers/gpu/drm/exynos/exynos_dp*
  
 +EXYNOS SYSMMU (IOMMU) driver
 +M:    Marek Szyprowski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/iommu/exynos-iommu.c
 +
  EXYNOS MIPI DISPLAY DRIVERS
  M:    Inki Dae <[email protected]>
  M:    Donghwa Lee <[email protected]>
@@@ -4399,7 -4329,7 +4399,7 @@@ F:      include/video/exynos_mipi
  
  F71805F HARDWARE MONITORING DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/f71805f
  F:    drivers/hwmon/f71805f.c
@@@ -4478,7 -4408,7 +4478,7 @@@ F:      fs/
  
  FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  M:    Riku Voipio <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    drivers/hwmon/f75375s.c
  F:    include/linux/f75375s.h
@@@ -4762,7 -4692,7 +4762,7 @@@ F:      drivers/platform/x86/fujitsu-tablet.
  
  FUSE: FILESYSTEM IN USERSPACE
  M:    Miklos Szeredi <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  W:    http://fuse.sourceforge.net/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git
  S:    Maintained
@@@ -4921,7 -4851,7 +4921,7 @@@ F:      net/ipv4/gre_offload.
  F:    include/net/gre.h
  
  GRETH 10/100/1G Ethernet MAC device driver
 -M:    Kristoffer Glembo <kristoffer@gaisler.com>
 +M:    Andreas Larsson <andreas@gaisler.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/aeroflex/
@@@ -5039,8 -4969,8 +5039,8 @@@ F:      drivers/media/usb/hackrf
  HARDWARE MONITORING
  M:    Jean Delvare <[email protected]>
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 -W:    http://www.lm-sensors.org/
 +L:    l[email protected].org
 +W:    http://hwmon.wiki.kernel.org/
  T:    quilt http://jdelvare.nerim.net/devel/linux/jdelvare-hwmon/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
  S:    Maintained
@@@ -5060,7 -4990,6 +5060,7 @@@ F:      include/linux/hw_random.
  HARDWARE SPINLOCK CORE
  M:    Ohad Ben-Cohen <[email protected]>
  M:    Bjorn Andersson <[email protected]>
 +L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock.git
  F:    Documentation/hwspinlock.txt
@@@ -5082,6 -5011,12 +5082,6 @@@ T:     git git://linuxtv.org/anttip/media_t
  S:    Maintained
  F:    drivers/media/dvb-frontends/hd29l2*
  
 -HEWLETT-PACKARD SMART2 RAID DRIVER
 -L:    [email protected]
 -S:    Orphan
 -F:    Documentation/blockdev/cpqarray.txt
 -F:    drivers/block/cpqarray.*
 -
  HEWLETT-PACKARD SMART ARRAY RAID DRIVER (hpsa)
  M:    Don Brace <[email protected]>
  L:    [email protected]
@@@ -5094,9 -5029,9 +5094,9 @@@ F:      include/linux/cciss*.
  F:    include/uapi/linux/cciss*.h
  
  HEWLETT-PACKARD SMART CISS RAID DRIVER (cciss)
 -M:    Don Brace <don.brace@pmcs.com>
 +M:    Don Brace <don.brace@microsemi.com>
  L:    [email protected]
 -L:    storagedev@pmcs.com
 +L:    esc.storagedev@microsemi.com
  L:    [email protected]
  S:    Supported
  F:    Documentation/blockdev/cciss.txt
@@@ -5289,16 -5224,6 +5289,16 @@@ F:    include/linux/hyperv.
  F:    tools/hv/
  F:    Documentation/ABI/stable/sysfs-bus-vmbus
  
 +I2C MUXES
 +M:    Peter Rosin <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/i2c/muxes/
 +F:    Documentation/devicetree/bindings/i2c/i2c-mux*
 +F:    drivers/i2c/i2c-mux.c
 +F:    drivers/i2c/muxes/
 +F:    include/linux/i2c-mux.h
 +
  I2C OVER PARALLEL PORT
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
@@@ -5523,11 -5448,10 +5523,11 @@@ S:   Supporte
  F:    drivers/idle/i7300_idle.c
  
  IEEE 802.15.4 SUBSYSTEM
 -M:    Alexander Aring <a[email protected]>
 +M:    Alexander Aring <a[email protected]>
  L:    [email protected]
 -W:    https://github.com/linux-wpan
 -T:    git git://github.com/linux-wpan/linux-wpan-next.git
 +W:    http://wpan.cakelab.org/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
  S:    Maintained
  F:    net/ieee802154/
  F:    net/mac802154/
@@@ -5573,7 -5497,7 +5573,7 @@@ F:      drivers/usb/atm/ueagle-atm.
  
  INA209 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/ina209
  F:    Documentation/devicetree/bindings/i2c/ina209.txt
@@@ -5581,7 -5505,7 +5581,7 @@@ F:      drivers/hwmon/ina209.
  
  INA2XX HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/ina2xx
  F:    drivers/hwmon/ina2xx.c
@@@ -5657,7 -5581,6 +5657,7 @@@ F:      drivers/input
  F:    include/linux/input.h
  F:    include/uapi/linux/input.h
  F:    include/linux/input/
 +F:    Documentation/devicetree/bindings/input/
  
  INPUT MULTITOUCH (MT) PROTOCOL
  M:    Henrik Rydberg <[email protected]>
@@@ -5762,7 -5685,14 +5762,7 @@@ F:     drivers/char/hw_random/ixp4xx-rng.
  
  INTEL ETHERNET DRIVERS
  M:    Jeff Kirsher <[email protected]>
 -R:    Jesse Brandeburg <[email protected]>
 -R:    Shannon Nelson <[email protected]>
 -R:    Carolyn Wyborny <[email protected]>
 -R:    Don Skidmore <[email protected]>
 -R:    Bruce Allan <[email protected]>
 -R:    John Ronciak <[email protected]>
 -R:    Mitch Williams <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  W:    http://www.intel.com/support/feedback.htm
  W:    http://e1000.sourceforge.net/
  Q:    http://patchwork.ozlabs.org/project/intel-wired-lan/list/
@@@ -5782,16 -5712,6 +5782,16 @@@ F:    Documentation/networking/i40evf.tx
  F:    drivers/net/ethernet/intel/
  F:    drivers/net/ethernet/intel/*/
  
 +INTEL RDMA RNIC DRIVER
 +M:     Faisal Latif <[email protected]>
 +R:     Chien Tin Tung <[email protected]>
 +R:     Mustafa Ismail <[email protected]>
 +R:     Shiraz Saleem <[email protected]>
 +R:     Tatyana Nikolova <[email protected]>
 +L:     [email protected]
 +S:     Supported
 +F:     drivers/infiniband/hw/i40iw/
 +
  INTEL-MID GPIO DRIVER
  M:    David Cohen <[email protected]>
  L:    [email protected]
@@@ -6038,7 -5958,7 +6038,7 @@@ F:      include/scsi/*iscsi
  
  ISCSI EXTENSIONS FOR RDMA (ISER) INITIATOR
  M:    Or Gerlitz <[email protected]>
 -M:    Sagi Grimberg <sagi[email protected]>
 +M:    Sagi Grimberg <sagi@grimberg.me>
  M:    Roi Dayan <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -6048,7 -5968,7 +6048,7 @@@ Q:      http://patchwork.kernel.org/project/
  F:    drivers/infiniband/ulp/iser/
  
  ISCSI EXTENSIONS FOR RDMA (ISER) TARGET
 -M:    Sagi Grimberg <sagi[email protected]>
 +M:    Sagi Grimberg <sagi@grimberg.me>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git master
  L:    [email protected]
  L:    [email protected]
@@@ -6079,7 -5999,7 +6079,7 @@@ F:      drivers/isdn/hardware/eicon
  
  IT87 HARDWARE MONITORING DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/it87
  F:    drivers/hwmon/it87.c
@@@ -6115,7 -6035,7 +6115,7 @@@ F:      drivers/media/dvb-frontends/ix2505v
  
  JC42.4 TEMPERATURE SENSOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    drivers/hwmon/jc42.c
  F:    Documentation/hwmon/jc42
@@@ -6165,32 -6085,18 +6165,32 @@@ F:   drivers/tty/serial/jsm
  
  K10TEMP HARDWARE MONITORING DRIVER
  M:    Clemens Ladisch <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/k10temp
  F:    drivers/hwmon/k10temp.c
  
  K8TEMP HARDWARE MONITORING DRIVER
  M:    Rudolf Marek <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/k8temp
  F:    drivers/hwmon/k8temp.c
  
 +KASAN
 +M:    Andrey Ryabinin <[email protected]>
 +R:    Alexander Potapenko <[email protected]>
 +R:    Dmitry Vyukov <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    arch/*/include/asm/kasan.h
 +F:    arch/*/mm/kasan_init*
 +F:    Documentation/kasan.txt
 +F:    include/linux/kasan.h
 +F:    lib/test_kasan.c
 +F:    mm/kasan/
 +F:    scripts/Makefile.kasan
 +
  KCONFIG
  M:    "Yann E. MORIN" <[email protected]>
  L:    [email protected]
@@@ -6263,8 -6169,8 +6263,8 @@@ S:      Maintaine
  F:    tools/testing/selftests
  
  KERNEL VIRTUAL MACHINE (KVM)
 -M:    Gleb Natapov <[email protected]>
  M:    Paolo Bonzini <[email protected]>
 +M:    Radim Krčmář <[email protected]>
  L:    [email protected]
  W:    http://www.linux-kvm.org
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
@@@ -6411,10 -6317,10 +6411,10 @@@ F:   mm/kmemleak.
  F:    mm/kmemleak-test.c
  
  KPROBES
 -M:    Ananth N Mavinakayanahalli <ananth@in.ibm.com>
 +M:    Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
  M:    Anil S Keshavamurthy <[email protected]>
  M:    "David S. Miller" <[email protected]>
 -M:    Masami Hiramatsu <m[email protected]>
 +M:    Masami Hiramatsu <m[email protected]>
  S:    Maintained
  F:    Documentation/kprobes.txt
  F:    include/linux/kprobes.h
@@@ -6699,6 -6605,7 +6699,7 @@@ F:      kernel/livepatch
  F:    include/linux/livepatch.h
  F:    arch/x86/include/asm/livepatch.h
  F:    arch/x86/kernel/livepatch.c
+ F:    Documentation/livepatch/
  F:    Documentation/ABI/testing/sysfs-kernel-livepatch
  F:    samples/livepatch/
  L:    [email protected]
@@@ -6719,27 -6626,27 +6720,27 @@@ F:   net/llc
  
  LM73 HARDWARE MONITOR DRIVER
  M:    Guillaume Ligneul <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    drivers/hwmon/lm73.c
  
  LM78 HARDWARE MONITOR DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/lm78
  F:    drivers/hwmon/lm78.c
  
  LM83 HARDWARE MONITOR DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/lm83
  F:    drivers/hwmon/lm83.c
  
  LM90 HARDWARE MONITOR DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/lm90
  F:    Documentation/devicetree/bindings/hwmon/lm90.txt
@@@ -6747,7 -6654,7 +6748,7 @@@ F:      drivers/hwmon/lm90.
  
  LM95234 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/lm95234
  F:    drivers/hwmon/lm95234.c
@@@ -6813,7 -6720,7 +6814,7 @@@ F:      drivers/scsi/sym53c8xx_2
  
  LTC4261 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/ltc4261
  F:    drivers/hwmon/ltc4261.c
@@@ -6916,7 -6823,7 +6917,7 @@@ L:      [email protected]
  S:    Maintained
  
  MARVELL ARMADA DRM SUPPORT
 -M:    Russell King <rmk+kernel@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Maintained
  F:    drivers/gpu/drm/armada/
  
@@@ -6983,28 -6890,28 +6984,28 @@@ F:   include/uapi/linux/matroxfb.
  
  MAX16065 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/max16065
  F:    drivers/hwmon/max16065.c
  
  MAX20751 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/max20751
  F:    drivers/hwmon/max20751.c
  
  MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  M:    "Hans J. Koch" <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/max6650
  F:    drivers/hwmon/max6650.c
  
  MAX6697 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/max6697
  F:    Documentation/devicetree/bindings/i2c/max6697.txt
@@@ -7031,9 -6938,9 +7032,9 @@@ M:      Chanwoo Choi <[email protected]
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    drivers/*/max14577.c
 +F:    drivers/*/max14577*.c
  F:    drivers/*/max77686*.c
 -F:    drivers/*/max77693.c
 +F:    drivers/*/max77693*.c
  F:    drivers/extcon/extcon-max14577.c
  F:    drivers/extcon/extcon-max77693.c
  F:    drivers/rtc/rtc-max77686.c
@@@ -7137,13 -7044,6 +7138,13 @@@ F:    include/uapi/linux/meye.
  F:    include/uapi/linux/ivtv*
  F:    include/uapi/linux/uvcvideo.h
  
 +MEDIATEK ETHERNET DRIVER
 +M:    Felix Fietkau <[email protected]>
 +M:    John Crispin <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/mediatek/
 +
  MEDIATEK MT7601U WIRELESS LAN DRIVER
  M:    Jakub Kicinski <[email protected]>
  L:    [email protected]
@@@ -7573,7 -7473,7 +7574,7 @@@ F:      drivers/scsi/NCR_D700.
  
  NCT6775 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/nct6775
  F:    drivers/hwmon/nct6775.c
@@@ -7587,7 -7487,7 +7588,7 @@@ F:      drivers/infiniband/hw/nes
  
  NETEM NETWORK EMULATOR
  M:    Stephen Hemminger <[email protected]>
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    net/sched/sch_netem.c
  
@@@ -7641,6 -7541,7 +7642,6 @@@ F:      net/netrom
  
  NETRONOME ETHERNET DRIVERS
  M:    Jakub Kicinski <[email protected]>
 -M:    Rolf Neugebauer <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/netronome/
@@@ -7777,6 -7678,7 +7778,6 @@@ F:      net/nfc
  F:    include/net/nfc/
  F:    include/uapi/linux/nfc.h
  F:    drivers/nfc/
 -F:    include/linux/platform_data/microread.h
  F:    include/linux/platform_data/nfcmrvl.h
  F:    include/linux/platform_data/nxp-nci.h
  F:    include/linux/platform_data/pn544.h
@@@ -7916,7 -7818,7 +7917,7 @@@ S:      Supporte
  F:    drivers/nfc/nxp-nci
  
  NXP TDA998X DRM DRIVER
 -M:    Russell King <rmk+kernel@arm.linux.org.uk>
 +M:    Russell King <[email protected]>
  S:    Supported
  F:    drivers/gpu/drm/i2c/tda998x_drv.c
  F:    include/drm/i2c/tda998x.h
@@@ -7927,11 -7829,6 +7928,11 @@@ L:    [email protected] (moderat
  S:    Maintained
  F:    sound/soc/codecs/tfa9879*
  
 +OBJTOOL
 +M:    Josh Poimboeuf <[email protected]>
 +S:    Supported
 +F:    tools/objtool/
 +
  OMAP SUPPORT
  M:    Tony Lindgren <[email protected]>
  L:    [email protected]
@@@ -7982,14 -7879,14 +7983,14 @@@ S:   Maintaine
  F:    arch/arm/*omap*/*clock*
  
  OMAP POWER MANAGEMENT SUPPORT
 -M:    Kevin Hilman <khilman@deeprootsystems.com>
 +M:    Kevin Hilman <khilman@kernel.org>
  L:    [email protected]
  S:    Maintained
  F:    arch/arm/*omap*/*pm*
  F:    drivers/cpufreq/omap-cpufreq.c
  
  OMAP POWERDOMAIN SOC ADAPTATION LAYER SUPPORT
 -M:    Rajendra Nayak <rnayak@ti.com>
 +M:    Rajendra Nayak <rnayak@codeaurora.org>
  M:    Paul Walmsley <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -8086,7 -7983,7 +8087,7 @@@ F:      arch/arm/*omap*/usb
  OMAP GPIO DRIVER
  M:    Grygorii Strashko <[email protected]>
  M:    Santosh Shilimkar <[email protected]>
 -M:    Kevin Hilman <khilman@deeprootsystems.com>
 +M:    Kevin Hilman <khilman@kernel.org>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/gpio/gpio-omap.txt
@@@ -8263,14 -8160,6 +8264,14 @@@ S:    Supporte
  F:    fs/overlayfs/
  F:    Documentation/filesystems/overlayfs.txt
  
 +ORANGEFS FILESYSTEM
 +M:    Mike Marshall <[email protected]>
 +L:    [email protected] (subscribers-only)
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux.git
 +S:    Supported
 +F:    fs/orangefs/
 +F:    Documentation/filesystems/orangefs.txt
 +
  P54 WIRELESS DRIVER
  M:    Christian Lamparter <[email protected]>
  L:    [email protected]
@@@ -8313,13 -8202,6 +8314,13 @@@ S:    Maintaine
  F:    Documentation/mn10300/
  F:    arch/mn10300/
  
 +PARALLEL LCD/KEYPAD PANEL DRIVER
 +M:      Willy Tarreau <[email protected]>
 +M:      Ksenija Stanojevic <[email protected]>
 +S:      Odd Fixes
 +F:      Documentation/misc-devices/lcd-panel-cgram.txt
 +F:      drivers/misc/panel.c
 +
  PARALLEL PORT SUBSYSTEM
  M:    Sudip Mukherjee <[email protected]>
  M:    Sudip Mukherjee <[email protected]>
@@@ -8371,7 -8253,7 +8372,7 @@@ F:      drivers/video/logo/logo_parisc
  
  PC87360 HARDWARE MONITORING DRIVER
  M:    Jim Cromie <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/pc87360
  F:    drivers/hwmon/pc87360.c
@@@ -8383,7 -8265,7 +8384,7 @@@ F:      drivers/char/pc8736x_gpio.
  
  PC87427 HARDWARE MONITORING DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/pc87427
  F:    drivers/hwmon/pc87427.c
  S:    Supported
  F:    Documentation/PCI/pci-error-recovery.txt
  
 +PCI ENHANCED ERROR HANDLING (EEH) FOR POWERPC
 +M:    Russell Currey <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/powerpc/eeh-pci-error-recovery.txt
 +F:    arch/powerpc/kernel/eeh*.c
 +F:    arch/powerpc/platforms/*/eeh*.c
 +F:    arch/powerpc/include/*/eeh*.h
 +
  PCI SUBSYSTEM
  M:    Bjorn Helgaas <[email protected]>
  L:    [email protected]
@@@ -8619,7 -8492,7 +8620,7 @@@ F:      include/crypto/pcrypt.
  
  PER-CPU MEMORY ALLOCATOR
  M:    Tejun Heo <[email protected]>
 -M:    Christoph Lameter <cl@linux-foundation.org>
 +M:    Christoph Lameter <cl@linux.com>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git
  S:    Maintained
  F:    include/linux/percpu*.h
@@@ -8723,8 -8596,6 +8724,8 @@@ F:      drivers/pinctrl/sh-pfc
  
  PIN CONTROLLER - SAMSUNG
  M:    Tomasz Figa <[email protected]>
 +M:    Krzysztof Kozlowski <[email protected]>
 +M:    Sylwester Nawrocki <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -8765,8 -8636,8 +8766,8 @@@ F:      drivers/rtc/rtc-puv3.
  
  PMBUS HARDWARE MONITORING DRIVERS
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 -W:    http://www.lm-sensors.org/
 +L:    l[email protected].org
 +W:    http://hwmon.wiki.kernel.org/
  W:    http://www.roeck-us.net/linux/drivers/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
  S:    Maintained
@@@ -8971,7 -8842,7 +8972,7 @@@ F:      drivers/media/usb/pwc/
  
  PWM FAN DRIVER
  M:    Kamil Debski <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Supported
  F:    Documentation/devicetree/bindings/hwmon/pwm-fan.txt
  F:    Documentation/hwmon/pwm-fan
@@@ -9153,13 -9024,6 +9154,13 @@@ T:    git git://github.com/KrasnikovEugene
  S:    Supported
  F:    drivers/net/wireless/ath/wcn36xx/
  
 +QEMU MACHINE EMULATOR AND VIRTUALIZER SUPPORT
 +M:    Gabriel Somlo <[email protected]>
 +M:    "Michael S. Tsirkin" <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/firmware/qemu_fw_cfg.c
 +
  RADOS BLOCK DEVICE (RBD)
  M:    Ilya Dryomov <[email protected]>
  M:    Sage Weil <[email protected]>
@@@ -9268,20 -9132,10 +9269,20 @@@ S:   Maintaine
  F:    drivers/net/ethernet/rdc/r6040.c
  
  RDS - RELIABLE DATAGRAM SOCKETS
 -M:    Chien Yen <[email protected]>
 +M:    Santosh Shilimkar <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
 +W:    https://oss.oracle.com/projects/rds/
  S:    Supported
  F:    net/rds/
 +F:    Documentation/networking/rds.txt
 +
 +RDMAVT - RDMA verbs software
 +M:    Dennis Dalessandro <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/infiniband/sw/rdmavt
  
  READ-COPY UPDATE (RCU)
  M:    "Paul E. McKenney" <[email protected]>
@@@ -9335,7 -9189,6 +9336,7 @@@ F:      include/linux/regmap.
  REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM
  M:    Ohad Ben-Cohen <[email protected]>
  M:    Bjorn Andersson <[email protected]>
 +L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc.git
  S:    Maintained
  F:    drivers/remoteproc/
@@@ -9345,7 -9198,6 +9346,7 @@@ F:      include/linux/remoteproc.
  REMOTE PROCESSOR MESSAGING (RPMSG) SUBSYSTEM
  M:    Ohad Ben-Cohen <[email protected]>
  M:    Bjorn Andersson <[email protected]>
 +L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ohad/rpmsg.git
  S:    Maintained
  F:    drivers/rpmsg/
@@@ -9500,7 -9352,7 +9501,7 @@@ F:      drivers/net/wireless/realtek/rtlwifi
  RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
  M:    Jes Sorensen <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8723au-mac80211
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8xxxu-devel
  S:    Maintained
  F:    drivers/net/wireless/realtek/rtl8xxxu/
  
@@@ -9684,7 -9536,6 +9685,7 @@@ F:      drivers/media/i2c/s5k5baf.
  
  SAMSUNG S3FWRN5 NFC DRIVER
  M:    Robert Baldyga <[email protected]>
 +M:    Krzysztof Opasiak <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    drivers/nfc/s3fwrn5
@@@ -9747,9 -9598,9 +9748,9 @@@ F: Documentation/devicetree/bindings/ne
  F: drivers/net/ethernet/synopsys/dwc_eth_qos.c
  
  SYNOPSYS DESIGNWARE I2C DRIVER
 -M:    Andy Shevchenko <[email protected]>
  M:    Jarkko Nikula <[email protected]>
 -M:    Mika Westerberg <[email protected]>
 +R:    Andy Shevchenko <[email protected]>
 +R:    Mika Westerberg <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/i2c/busses/i2c-designware-*
@@@ -9915,12 -9766,10 +9916,12 @@@ S:   Maintaine
  F:    drivers/mmc/host/sdricoh_cs.c
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
 +M:    Adrian Hunter <[email protected]>
  L:    [email protected]
 -S:    Orphan
 -F:    drivers/mmc/host/sdhci.*
 -F:    drivers/mmc/host/sdhci-pltfm.[ch]
 +T:    git git://git.infradead.org/users/ahunter/linux-sdhci.git
 +S:    Maintained
 +F:    drivers/mmc/host/sdhci*
 +F:    include/linux/mmc/sdhci*
  
  SECURE COMPUTING
  M:    Kees Cook <[email protected]>
@@@ -10025,8 -9874,7 +10026,8 @@@ F:    drivers/infiniband/hw/ocrdma
  
  SFC NETWORK DRIVER
  M:    Solarflare linux maintainers <[email protected]>
 -M:    Shradha Shah <[email protected]>
 +M:    Edward Cree <[email protected]>
 +M:    Bert Kenward <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/sfc/
@@@ -10171,7 -10019,7 +10172,7 @@@ F:   arch/arm/mach-s3c24xx/bast-irq.
  
  TI DAVINCI MACHINE SUPPORT
  M:    Sekhar Nori <[email protected]>
 -M:    Kevin Hilman <khilman@deeprootsystems.com>
 +M:    Kevin Hilman <khilman@kernel.org>
  T:    git git://gitorious.org/linux-davinci/linux-davinci.git
  Q:    http://patchwork.kernel.org/project/linux-davinci/list/
  S:    Supported
@@@ -10302,28 -10150,28 +10303,28 @@@ F:        Documentation/devicetree/bindings/me
  
  SMM665 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/smm665
  F:    drivers/hwmon/smm665.c
  
  SMSC EMC2103 HARDWARE MONITOR DRIVER
  M:    Steve Glendinning <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/emc2103
  F:    drivers/hwmon/emc2103.c
  
  SMSC SCH5627 HARDWARE MONITOR DRIVER
  M:    Hans de Goede <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Supported
  F:    Documentation/hwmon/sch5627
  F:    drivers/hwmon/sch5627.c
  
  SMSC47B397 HARDWARE MONITOR DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/smsc47b397
  F:    drivers/hwmon/smsc47b397.c
@@@ -10373,7 -10221,7 +10374,7 @@@ F:   drivers/media/pci/solo6x10
  SOFTWARE RAID (Multiple Disks) SUPPORT
  M:    Shaohua Li <[email protected]>
  L:    [email protected]
 -T:    git git://neil.brown.name/md
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shli/md.git
  S:    Supported
  F:    drivers/md/
  F:    include/linux/raid/
@@@ -10615,6 -10463,11 +10616,6 @@@ W:  http://wiki.laptop.org/go/DCO
  S:    Maintained
  F:    drivers/staging/olpc_dcon/
  
 -STAGING - PARALLEL LCD/KEYPAD PANEL DRIVER
 -M:    Willy Tarreau <[email protected]>
 -S:    Odd Fixes
 -F:    drivers/staging/panel/
 -
  STAGING - REALTEK RTL8712U DRIVERS
  M:    Larry Finger <[email protected]>
  M:    Florian Schilhabel <[email protected]>.
@@@ -11083,15 -10936,6 +11084,15 @@@ S: Maintaine
  F:    drivers/clk/ti/
  F:    include/linux/clk/ti.h
  
 +TI ETHERNET SWITCH DRIVER (CPSW)
 +M:    Mugunthan V N <[email protected]>
 +R:    Grygorii Strashko <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/ti/cpsw*
 +F:    drivers/net/ethernet/ti/davinci*
 +
  TI FLASH MEDIA INTERFACE DRIVER
  M:    Alex Dubov <[email protected]>
  S:    Maintained
@@@ -11178,8 -11022,8 +11179,8 @@@ F:   include/uapi/linux/tipc*.
  F:    net/tipc/
  
  TILE ARCHITECTURE
 -M:    Chris Metcalf <cmetcalf@ezchip.com>
 -W:    http://www.ezchip.com/scm/
 +M:    Chris Metcalf <cmetcalf@mellanox.com>
 +W:    http://www.mellanox.com/repository/solutions/tile-scm/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile.git
  S:    Supported
  F:    arch/tile/
@@@ -11257,17 -11101,18 +11258,17 @@@ S:        Maintaine
  F:    drivers/media/i2c/tc358743*
  F:    include/media/i2c/tc358743.h
  
 -TMIO MMC DRIVER
 -M:    Ian Molton <[email protected]>
 +TMIO/SDHI MMC DRIVER
 +M:    Wolfram Sang <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    drivers/mmc/host/tmio_mmc*
  F:    drivers/mmc/host/sh_mobile_sdhi.c
 -F:    include/linux/mmc/tmio.h
 -F:    include/linux/mmc/sh_mobile_sdhi.h
 +F:    include/linux/mfd/tmio.h
  
  TMP401 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/tmp401
  F:    drivers/hwmon/tmp401.c
@@@ -11328,20 -11173,6 +11329,20 @@@ F: include/trace
  F:    kernel/trace/
  F:    tools/testing/selftests/ftrace/
  
 +TRACING MMIO ACCESSES (MMIOTRACE)
 +M:    Steven Rostedt <[email protected]>
 +M:    Ingo Molnar <[email protected]>
 +R:    Karol Herbst <[email protected]>
 +R:    Pekka Paalanen <[email protected]>
 +S:    Maintained
 +L:    [email protected]
 +L:    [email protected]
 +F:    kernel/trace/trace_mmiotrace.c
 +F:    include/linux/mmiotrace.h
 +F:    arch/x86/mm/kmmio.c
 +F:    arch/x86/mm/mmio-mod.c
 +F:    arch/x86/mm/testmmiotrace.c
 +
  TRIVIAL PATCHES
  M:    Jiri Kosina <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
@@@ -11402,13 -11233,12 +11403,13 @@@ S:        Maintaine
  F:    drivers/scsi/u14-34f.c
  
  UBI FILE SYSTEM (UBIFS)
 +M:    Richard Weinberger <[email protected]>
  M:    Artem Bityutskiy <[email protected]>
  M:    Adrian Hunter <[email protected]>
  L:    [email protected]
  T:    git git://git.infradead.org/ubifs-2.6.git
  W:    http://www.linux-mtd.infradead.org/doc/ubifs.html
 -S:    Maintained
 +S:    Supported
  F:    Documentation/filesystems/ubifs.txt
  F:    fs/ubifs/
  
@@@ -11473,6 -11303,7 +11474,6 @@@ F:   include/linux/cdrom.
  F:    include/uapi/linux/cdrom.h
  
  UNISYS S-PAR DRIVERS
 -M:    Benjamin Romer <[email protected]>
  M:    David Kershner <[email protected]>
  L:    [email protected] (Unisys internal)
  S:    Supported
@@@ -11582,13 -11413,6 +11583,13 @@@ S: Maintaine
  F:    drivers/usb/host/isp116x*
  F:    include/linux/usb/isp116x.h
  
 +USB LAN78XX ETHERNET DRIVER
 +M:    Woojung Huh <[email protected]>
 +M:    Microchip Linux Driver Support <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/usb/lan78xx.*
 +
  USB MASS STORAGE DRIVER
  M:    Matthew Dharm <[email protected]>
  L:    [email protected]
  W:    http://www.slimlogic.co.uk/?p=48
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
  S:    Supported
 +F:    Documentation/devicetree/bindings/regulator/
  F:    drivers/regulator/
 +F:    include/dt-bindings/regulator/
  F:    include/linux/regulator/
  
  VRF
@@@ -12036,14 -11858,14 +12037,14 @@@ F:        Documentation/networking/vrf.tx
  
  VT1211 HARDWARE MONITOR DRIVER
  M:    Juerg Haefliger <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/vt1211
  F:    drivers/hwmon/vt1211.c
  
  VT8231 HARDWARE MONITOR DRIVER
  M:    Roger Lucas <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    drivers/hwmon/vt8231.c
  
@@@ -12062,21 -11884,21 +12063,21 @@@ F:        drivers/w1
  
  W83791D HARDWARE MONITORING DRIVER
  M:    Marc Hulsman <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/w83791d
  F:    drivers/hwmon/w83791d.c
  
  W83793 HARDWARE MONITORING DRIVER
  M:    Rudolf Marek <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    Documentation/hwmon/w83793
  F:    drivers/hwmon/w83793.c
  
  W83795 HARDWARE MONITORING DRIVER
  M:    Jean Delvare <[email protected]>
 -L:    lm-sensors@lm-sensors.org
 +L:    l[email protected].org
  S:    Maintained
  F:    drivers/hwmon/w83795.c
  
@@@ -12121,12 -11943,6 +12122,12 @@@ M: David Härdeman <[email protected]
  S:    Maintained
  F:    drivers/media/rc/winbond-cir.c
  
 +WINSYSTEMS EBC-C384 WATCHDOG DRIVER
 +M:    William Breathitt Gray <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/watchdog/ebc-c384_wdt.c
 +
  WINSYSTEMS WS16C48 GPIO DRIVER
  M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
@@@ -12258,9 -12074,9 +12259,9 @@@ S:   Maintaine
  F:    drivers/media/tuners/tuner-xc2028.*
  
  XEN HYPERVISOR INTERFACE
 -M:    Konrad Rzeszutek Wilk <[email protected]>
  M:    Boris Ostrovsky <[email protected]>
  M:    David Vrabel <[email protected]>
 +M:    Juergen Gross <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git
  S:    Supported
@@@ -12272,16 -12088,16 +12273,16 @@@ F:        include/xen
  F:    include/uapi/xen/
  
  XEN HYPERVISOR ARM
 -M:    Stefano Stabellini <s[email protected]>
 +M:    Stefano Stabellini <s[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Supported
 +S:    Maintained
  F:    arch/arm/xen/
  F:    arch/arm/include/asm/xen/
  
  XEN HYPERVISOR ARM64
 -M:    Stefano Stabellini <s[email protected]>
 +M:    Stefano Stabellini <s[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Supported
 +S:    Maintained
  F:    arch/arm64/xen/
  F:    arch/arm64/include/asm/xen/
  
diff --combined arch/powerpc/Kconfig
index 2fdb73d9198a0905f40ba06b543a86ec9ca6d9ec,944a79a2768ff49d34d7fe2678c6e69212b31742..a18a0dcd57b7402cfb54490f2892297d0375c5c9
@@@ -126,7 -126,7 +126,7 @@@ config PP
        select IRQ_FORCED_THREADING
        select HAVE_RCU_TABLE_FREE if SMP
        select HAVE_SYSCALL_TRACEPOINTS
 -      select HAVE_BPF_JIT
 +      select HAVE_CBPF_JIT
        select HAVE_ARCH_JUMP_LABEL
        select ARCH_HAVE_NMI_SAFE_CMPXCHG
        select ARCH_HAS_GCOV_PROFILE_ALL
        select ARCH_HAS_DEVMEM_IS_ALLOWED
        select HAVE_ARCH_SECCOMP_FILTER
        select ARCH_HAS_UBSAN_SANITIZE_ALL
 +      select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
+       select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
  
  config GENERIC_CSUM
        def_bool CPU_LITTLE_ENDIAN
@@@ -305,7 -305,7 +306,7 @@@ config ZONE_DMA3
  config PGTABLE_LEVELS
        int
        default 2 if !PPC64
 -      default 3 if PPC_64K_PAGES
 +      default 3 if PPC_64K_PAGES && !PPC_BOOK3S_64
        default 4
  
  source "init/Kconfig"
@@@ -409,7 -409,7 +410,7 @@@ config SWIOTL
  config HOTPLUG_CPU
        bool "Support for enabling/disabling CPUs"
        depends on SMP && (PPC_PSERIES || \
 -      PPC_PMAC || PPC_POWERNV || (PPC_85xx && !PPC_E500MC))
 +      PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE)
        ---help---
          Say Y here to be able to disable and re-enable individual
          CPUs at runtime on SMP machines.
@@@ -1107,3 -1107,5 +1108,5 @@@ config PPC_LIB_RHEA
        bool
  
  source "arch/powerpc/kvm/Kconfig"
+ source "kernel/livepatch/Kconfig"
index 0d0183d3180a434beb5b4772bb0469e370f17940,723efac2d917393347c8de59c3ba8142fef71fa5..c9370d4e36bdadf580f2d9fde751c550add3ffea
@@@ -86,6 -86,10 +86,10 @@@ int main(void
        DEFINE(KSP_LIMIT, offsetof(struct thread_struct, ksp_limit));
  #endif /* CONFIG_PPC64 */
  
+ #ifdef CONFIG_LIVEPATCH
+       DEFINE(TI_livepatch_sp, offsetof(struct thread_info, livepatch_sp));
+ #endif
        DEFINE(KSP, offsetof(struct thread_struct, ksp));
        DEFINE(PT_REGS, offsetof(struct thread_struct, regs));
  #ifdef CONFIG_BOOKE
        DEFINE(THREAD_FPSTATE, offsetof(struct thread_struct, fp_state));
        DEFINE(THREAD_FPSAVEAREA, offsetof(struct thread_struct, fp_save_area));
        DEFINE(FPSTATE_FPSCR, offsetof(struct thread_fp_state, fpscr));
 +      DEFINE(THREAD_LOAD_FP, offsetof(struct thread_struct, load_fp));
  #ifdef CONFIG_ALTIVEC
        DEFINE(THREAD_VRSTATE, offsetof(struct thread_struct, vr_state));
        DEFINE(THREAD_VRSAVEAREA, offsetof(struct thread_struct, vr_save_area));
        DEFINE(THREAD_VRSAVE, offsetof(struct thread_struct, vrsave));
        DEFINE(THREAD_USED_VR, offsetof(struct thread_struct, used_vr));
        DEFINE(VRSTATE_VSCR, offsetof(struct thread_vr_state, vscr));
 +      DEFINE(THREAD_LOAD_VEC, offsetof(struct thread_struct, load_vec));
  #endif /* CONFIG_ALTIVEC */
  #ifdef CONFIG_VSX
        DEFINE(THREAD_USED_VSR, offsetof(struct thread_struct, used_vsr));
        DEFINE(CPU_SPEC_FEATURES, offsetof(struct cpu_spec, cpu_features));
        DEFINE(CPU_SPEC_SETUP, offsetof(struct cpu_spec, cpu_setup));
        DEFINE(CPU_SPEC_RESTORE, offsetof(struct cpu_spec, cpu_restore));
 +      DEFINE(CPU_DOWN_FLUSH, offsetof(struct cpu_spec, cpu_down_flush));
  
        DEFINE(pbe_address, offsetof(struct pbe, address));
        DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address));
index 9916d150b28c151bac0920aeb822545a41c40738,47dbede3bddd5295b8f4c4765fa2133792109a48..39a79c89a4b6e8edab082c8e35cda58ef2b00ddf
@@@ -20,6 -20,7 +20,7 @@@
  
  #include <linux/errno.h>
  #include <linux/err.h>
+ #include <linux/magic.h>
  #include <asm/unistd.h>
  #include <asm/processor.h>
  #include <asm/page.h>
@@@ -210,29 -211,7 +211,29 @@@ system_call:                     /* label this so stack t
        li      r11,-MAX_ERRNO
        andi.   r0,r9,(_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)
        bne-    syscall_exit_work
 -      cmpld   r3,r11
 +
 +      andi.   r0,r8,MSR_FP
 +      beq 2f
 +#ifdef CONFIG_ALTIVEC
 +      andis.  r0,r8,MSR_VEC@h
 +      bne     3f
 +#endif
 +2:    addi    r3,r1,STACK_FRAME_OVERHEAD
 +#ifdef CONFIG_PPC_BOOK3S
 +      mtmsrd  r10,1           /* Restore RI */
 +#endif
 +      bl      restore_math
 +#ifdef CONFIG_PPC_BOOK3S
 +      ld      r10,PACAKMSR(r13)
 +      li      r9,MSR_RI
 +      andc    r11,r10,r9 /* Re-clear RI */
 +      mtmsrd  r11,1
 +#endif
 +      ld      r8,_MSR(r1)
 +      ld      r3,RESULT(r1)
 +      li      r11,-MAX_ERRNO
 +
 +3:    cmpld   r3,r11
        ld      r5,_CCR(r1)
        bge-    syscall_error
  .Lsyscall_error_cont:
@@@ -624,8 -603,8 +625,8 @@@ _GLOBAL(ret_from_except_lite
  
        /* Check current_thread_info()->flags */
        andi.   r0,r4,_TIF_USER_WORK_MASK
 -#ifdef CONFIG_PPC_BOOK3E
        bne     1f
 +#ifdef CONFIG_PPC_BOOK3E
        /*
         * Check to see if the dbcr0 register is set up to debug.
         * Use the internal debug mode bit to do this.
        mtspr   SPRN_DBSR,r10
        b       restore
  #else
 -      beq     restore
 +      addi    r3,r1,STACK_FRAME_OVERHEAD
 +      bl      restore_math
 +      b       restore
  #endif
  1:    andi.   r0,r4,_TIF_NEED_RESCHED
        beq     2f
@@@ -1248,6 -1225,9 +1249,9 @@@ _GLOBAL(ftrace_caller
        addi    r3,r3,function_trace_op@toc@l
        ld      r5,0(r3)
  
+ #ifdef CONFIG_LIVEPATCH
+       mr      r14,r7          /* remember old NIP */
+ #endif
        /* Calculate ip from nip-4 into r3 for call below */
        subi    r3, r7, MCOUNT_INSN_SIZE
  
@@@ -1272,6 -1252,9 +1276,9 @@@ ftrace_call
        /* Load ctr with the possibly modified NIP */
        ld      r3, _NIP(r1)
        mtctr   r3
+ #ifdef CONFIG_LIVEPATCH
+       cmpd    r14,r3          /* has NIP been altered? */
+ #endif
  
        /* Restore gprs */
        REST_8GPRS(0,r1)
        ld      r0, LRSAVE(r1)
        mtlr    r0
  
+ #ifdef CONFIG_LIVEPATCH
+         /* Based on the cmpd above, if the NIP was altered handle livepatch */
+       bne-    livepatch_handler
+ #endif
  #ifdef CONFIG_FUNCTION_GRAPH_TRACER
        stdu    r1, -112(r1)
  .globl ftrace_graph_call
@@@ -1305,6 -1293,91 +1317,91 @@@ _GLOBAL(ftrace_graph_stub
  
  _GLOBAL(ftrace_stub)
        blr
+ #ifdef CONFIG_LIVEPATCH
+       /*
+        * This function runs in the mcount context, between two functions. As
+        * such it can only clobber registers which are volatile and used in
+        * function linkage.
+        *
+        * We get here when a function A, calls another function B, but B has
+        * been live patched with a new function C.
+        *
+        * On entry:
+        *  - we have no stack frame and can not allocate one
+        *  - LR points back to the original caller (in A)
+        *  - CTR holds the new NIP in C
+        *  - r0 & r12 are free
+        *
+        * r0 can't be used as the base register for a DS-form load or store, so
+        * we temporarily shuffle r1 (stack pointer) into r0 and then put it back.
+        */
+ livepatch_handler:
+       CURRENT_THREAD_INFO(r12, r1)
+       /* Save stack pointer into r0 */
+       mr      r0, r1
+       /* Allocate 3 x 8 bytes */
+       ld      r1, TI_livepatch_sp(r12)
+       addi    r1, r1, 24
+       std     r1, TI_livepatch_sp(r12)
+       /* Save toc & real LR on livepatch stack */
+       std     r2,  -24(r1)
+       mflr    r12
+       std     r12, -16(r1)
+       /* Store stack end marker */
+       lis     r12, STACK_END_MAGIC@h
+       ori     r12, r12, STACK_END_MAGIC@l
+       std     r12, -8(r1)
+       /* Restore real stack pointer */
+       mr      r1, r0
+       /* Put ctr in r12 for global entry and branch there */
+       mfctr   r12
+       bctrl
+       /*
+        * Now we are returning from the patched function to the original
+        * caller A. We are free to use r0 and r12, and we can use r2 until we
+        * restore it.
+        */
+       CURRENT_THREAD_INFO(r12, r1)
+       /* Save stack pointer into r0 */
+       mr      r0, r1
+       ld      r1, TI_livepatch_sp(r12)
+       /* Check stack marker hasn't been trashed */
+       lis     r2,  STACK_END_MAGIC@h
+       ori     r2,  r2, STACK_END_MAGIC@l
+       ld      r12, -8(r1)
+ 1:    tdne    r12, r2
+       EMIT_BUG_ENTRY 1b, __FILE__, __LINE__ - 1, 0
+       /* Restore LR & toc from livepatch stack */
+       ld      r12, -16(r1)
+       mtlr    r12
+       ld      r2,  -24(r1)
+       /* Pop livepatch stack frame */
+       CURRENT_THREAD_INFO(r12, r0)
+       subi    r1, r1, 24
+       std     r1, TI_livepatch_sp(r12)
+       /* Restore real stack pointer */
+       mr      r1, r0
+       /* Return to original caller of live patched function */
+       blr
+ #endif
  #else
  _GLOBAL_TOC(_mcount)
        /* Taken from output of objdump from lib64/glibc */
index b8500b4ac7fead4c78bc6478d109e3b0a6a50c76,a290ee374aa042dca1059d6e32e2f5ba66621c3b..2a9280b945e02bfe45dc4f7fd466fed678d42d43
@@@ -55,6 -55,8 +55,8 @@@
  #include <asm/firmware.h>
  #endif
  #include <asm/code-patching.h>
+ #include <asm/livepatch.h>
  #include <linux/kprobes.h>
  #include <linux/kdebug.h>
  
@@@ -133,16 -135,6 +135,16 @@@ void __msr_check_and_clear(unsigned lon
  EXPORT_SYMBOL(__msr_check_and_clear);
  
  #ifdef CONFIG_PPC_FPU
 +void __giveup_fpu(struct task_struct *tsk)
 +{
 +      save_fpu(tsk);
 +      tsk->thread.regs->msr &= ~MSR_FP;
 +#ifdef CONFIG_VSX
 +      if (cpu_has_feature(CPU_FTR_VSX))
 +              tsk->thread.regs->msr &= ~MSR_VSX;
 +#endif
 +}
 +
  void giveup_fpu(struct task_struct *tsk)
  {
        check_if_tm_restore_required(tsk);
@@@ -197,32 -189,9 +199,32 @@@ void enable_kernel_fp(void
        }
  }
  EXPORT_SYMBOL(enable_kernel_fp);
 +
 +static int restore_fp(struct task_struct *tsk) {
 +      if (tsk->thread.load_fp) {
 +              load_fp_state(&current->thread.fp_state);
 +              current->thread.load_fp++;
 +              return 1;
 +      }
 +      return 0;
 +}
 +#else
 +static int restore_fp(struct task_struct *tsk) { return 0; }
  #endif /* CONFIG_PPC_FPU */
  
  #ifdef CONFIG_ALTIVEC
 +#define loadvec(thr) ((thr).load_vec)
 +
 +static void __giveup_altivec(struct task_struct *tsk)
 +{
 +      save_altivec(tsk);
 +      tsk->thread.regs->msr &= ~MSR_VEC;
 +#ifdef CONFIG_VSX
 +      if (cpu_has_feature(CPU_FTR_VSX))
 +              tsk->thread.regs->msr &= ~MSR_VSX;
 +#endif
 +}
 +
  void giveup_altivec(struct task_struct *tsk)
  {
        check_if_tm_restore_required(tsk);
@@@ -262,49 -231,22 +264,49 @@@ void flush_altivec_to_thread(struct tas
        }
  }
  EXPORT_SYMBOL_GPL(flush_altivec_to_thread);
 +
 +static int restore_altivec(struct task_struct *tsk)
 +{
 +      if (cpu_has_feature(CPU_FTR_ALTIVEC) && tsk->thread.load_vec) {
 +              load_vr_state(&tsk->thread.vr_state);
 +              tsk->thread.used_vr = 1;
 +              tsk->thread.load_vec++;
 +
 +              return 1;
 +      }
 +      return 0;
 +}
 +#else
 +#define loadvec(thr) 0
 +static inline int restore_altivec(struct task_struct *tsk) { return 0; }
  #endif /* CONFIG_ALTIVEC */
  
  #ifdef CONFIG_VSX
 -void giveup_vsx(struct task_struct *tsk)
 +static void __giveup_vsx(struct task_struct *tsk)
  {
 -      check_if_tm_restore_required(tsk);
 -
 -      msr_check_and_set(MSR_FP|MSR_VEC|MSR_VSX);
        if (tsk->thread.regs->msr & MSR_FP)
                __giveup_fpu(tsk);
        if (tsk->thread.regs->msr & MSR_VEC)
                __giveup_altivec(tsk);
 +      tsk->thread.regs->msr &= ~MSR_VSX;
 +}
 +
 +static void giveup_vsx(struct task_struct *tsk)
 +{
 +      check_if_tm_restore_required(tsk);
 +
 +      msr_check_and_set(MSR_FP|MSR_VEC|MSR_VSX);
        __giveup_vsx(tsk);
        msr_check_and_clear(MSR_FP|MSR_VEC|MSR_VSX);
  }
 -EXPORT_SYMBOL(giveup_vsx);
 +
 +static void save_vsx(struct task_struct *tsk)
 +{
 +      if (tsk->thread.regs->msr & MSR_FP)
 +              save_fpu(tsk);
 +      if (tsk->thread.regs->msr & MSR_VEC)
 +              save_altivec(tsk);
 +}
  
  void enable_kernel_vsx(void)
  {
@@@ -335,19 -277,6 +337,19 @@@ void flush_vsx_to_thread(struct task_st
        }
  }
  EXPORT_SYMBOL_GPL(flush_vsx_to_thread);
 +
 +static int restore_vsx(struct task_struct *tsk)
 +{
 +      if (cpu_has_feature(CPU_FTR_VSX)) {
 +              tsk->thread.used_vsr = 1;
 +              return 1;
 +      }
 +
 +      return 0;
 +}
 +#else
 +static inline int restore_vsx(struct task_struct *tsk) { return 0; }
 +static inline void save_vsx(struct task_struct *tsk) { }
  #endif /* CONFIG_VSX */
  
  #ifdef CONFIG_SPE
@@@ -447,76 -376,12 +449,76 @@@ void giveup_all(struct task_struct *tsk
  }
  EXPORT_SYMBOL(giveup_all);
  
 +void restore_math(struct pt_regs *regs)
 +{
 +      unsigned long msr;
 +
 +      if (!current->thread.load_fp && !loadvec(current->thread))
 +              return;
 +
 +      msr = regs->msr;
 +      msr_check_and_set(msr_all_available);
 +
 +      /*
 +       * Only reload if the bit is not set in the user MSR, the bit BEING set
 +       * indicates that the registers are hot
 +       */
 +      if ((!(msr & MSR_FP)) && restore_fp(current))
 +              msr |= MSR_FP | current->thread.fpexc_mode;
 +
 +      if ((!(msr & MSR_VEC)) && restore_altivec(current))
 +              msr |= MSR_VEC;
 +
 +      if ((msr & (MSR_FP | MSR_VEC)) == (MSR_FP | MSR_VEC) &&
 +                      restore_vsx(current)) {
 +              msr |= MSR_VSX;
 +      }
 +
 +      msr_check_and_clear(msr_all_available);
 +
 +      regs->msr = msr;
 +}
 +
 +void save_all(struct task_struct *tsk)
 +{
 +      unsigned long usermsr;
 +
 +      if (!tsk->thread.regs)
 +              return;
 +
 +      usermsr = tsk->thread.regs->msr;
 +
 +      if ((usermsr & msr_all_available) == 0)
 +              return;
 +
 +      msr_check_and_set(msr_all_available);
 +
 +      /*
 +       * Saving the way the register space is in hardware, save_vsx boils
 +       * down to a save_fpu() and save_altivec()
 +       */
 +      if (usermsr & MSR_VSX) {
 +              save_vsx(tsk);
 +      } else {
 +              if (usermsr & MSR_FP)
 +                      save_fpu(tsk);
 +
 +              if (usermsr & MSR_VEC)
 +                      save_altivec(tsk);
 +      }
 +
 +      if (usermsr & MSR_SPE)
 +              __giveup_spe(tsk);
 +
 +      msr_check_and_clear(msr_all_available);
 +}
 +
  void flush_all_to_thread(struct task_struct *tsk)
  {
        if (tsk->thread.regs) {
                preempt_disable();
                BUG_ON(tsk != current);
 -              giveup_all(tsk);
 +              save_all(tsk);
  
  #ifdef CONFIG_SPE
                if (tsk->thread.regs->msr & MSR_SPE)
@@@ -969,9 -834,17 +971,9 @@@ void restore_tm_state(struct pt_regs *r
  
        msr_diff = current->thread.ckpt_regs.msr & ~regs->msr;
        msr_diff &= MSR_FP | MSR_VEC | MSR_VSX;
 -      if (msr_diff & MSR_FP) {
 -              msr_check_and_set(MSR_FP);
 -              load_fp_state(&current->thread.fp_state);
 -              msr_check_and_clear(MSR_FP);
 -              regs->msr |= current->thread.fpexc_mode;
 -      }
 -      if (msr_diff & MSR_VEC) {
 -              msr_check_and_set(MSR_VEC);
 -              load_vr_state(&current->thread.vr_state);
 -              msr_check_and_clear(MSR_VEC);
 -      }
 +
 +      restore_math(regs);
 +
        regs->msr |= msr_diff;
  }
  
  static inline void save_sprs(struct thread_struct *t)
  {
  #ifdef CONFIG_ALTIVEC
 -      if (cpu_has_feature(cpu_has_feature(CPU_FTR_ALTIVEC)))
 +      if (cpu_has_feature(CPU_FTR_ALTIVEC))
                t->vrsave = mfspr(SPRN_VRSAVE);
  #endif
  #ifdef CONFIG_PPC_BOOK3S_64
@@@ -1135,10 -1008,6 +1137,10 @@@ struct task_struct *__switch_to(struct 
                batch = this_cpu_ptr(&ppc64_tlb_batch);
                batch->active = 1;
        }
 +
 +      if (current_thread_info()->task->thread.regs)
 +              restore_math(current_thread_info()->task->thread.regs);
 +
  #endif /* CONFIG_PPC_BOOK3S_64 */
  
        return last;
@@@ -1400,13 -1269,15 +1402,15 @@@ int copy_thread(unsigned long clone_fla
        extern void ret_from_kernel_thread(void);
        void (*f)(void);
        unsigned long sp = (unsigned long)task_stack_page(p) + THREAD_SIZE;
+       struct thread_info *ti = task_thread_info(p);
+       klp_init_thread_info(ti);
  
        /* Copy registers */
        sp -= sizeof(struct pt_regs);
        childregs = (struct pt_regs *) sp;
        if (unlikely(p->flags & PF_KTHREAD)) {
                /* kernel thread */
-               struct thread_info *ti = (void *)task_stack_page(p);
                memset(childregs, 0, sizeof(struct pt_regs));
                childregs->gpr[1] = sp + sizeof(struct pt_regs);
                /* function */
  
                f = ret_from_fork;
        }
 +      childregs->msr &= ~(MSR_FP|MSR_VEC|MSR_VSX);
        sp -= STACK_FRAME_OVERHEAD;
  
        /*
diff --combined arch/x86/kernel/Makefile
index 9abf8551c7e4d3cec1d8312f484ecad78f3d78cc,c5e9a5cf976ba70fde5d73d955f5c22a0c74015b..0503f5bfb18d221d35139ecd525f9b1af9e0761f
@@@ -2,11 -2,7 +2,11 @@@
  # Makefile for the linux kernel.
  #
  
 -extra-y                := head_$(BITS).o head$(BITS).o head.o vmlinux.lds
 +extra-y       := head_$(BITS).o
 +extra-y       += head$(BITS).o
 +extra-y       += ebda.o
 +extra-y       += platform-quirks.o
 +extra-y       += vmlinux.lds
  
  CPPFLAGS_vmlinux.lds += -U$(UTS_MACHINE)
  
@@@ -20,21 -16,9 +20,21 @@@ CFLAGS_REMOVE_ftrace.o = -p
  CFLAGS_REMOVE_early_printk.o = -pg
  endif
  
 -KASAN_SANITIZE_head$(BITS).o := n
 -KASAN_SANITIZE_dumpstack.o := n
 -KASAN_SANITIZE_dumpstack_$(BITS).o := n
 +KASAN_SANITIZE_head$(BITS).o                          := n
 +KASAN_SANITIZE_dumpstack.o                            := n
 +KASAN_SANITIZE_dumpstack_$(BITS).o                    := n
 +KASAN_SANITIZE_stacktrace.o := n
 +
 +OBJECT_FILES_NON_STANDARD_head_$(BITS).o              := y
 +OBJECT_FILES_NON_STANDARD_relocate_kernel_$(BITS).o   := y
 +OBJECT_FILES_NON_STANDARD_mcount_$(BITS).o            := y
 +OBJECT_FILES_NON_STANDARD_test_nx.o                   := y
 +
 +# If instrumentation of this dir is enabled, boot hangs during first second.
 +# Probably could be more selective here, but note that files related to irqs,
 +# boot, dumpstack/stacktrace, etc are either non-interesting or can lead to
 +# non-deterministic coverage.
 +KCOV_INSTRUMENT               := n
  
  CFLAGS_irq.o := -I$(src)/../include/asm/trace
  
@@@ -83,7 -67,6 +83,6 @@@ obj-$(CONFIG_X86_MPPARSE)     += mpparse.
  obj-y                         += apic/
  obj-$(CONFIG_X86_REBOOTFIXUPS)        += reboot_fixups_32.o
  obj-$(CONFIG_DYNAMIC_FTRACE)  += ftrace.o
- obj-$(CONFIG_LIVEPATCH)               += livepatch.o
  obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
  obj-$(CONFIG_FTRACE_SYSCALLS) += ftrace.o
  obj-$(CONFIG_X86_TSC)         += trace_clock.o
diff --combined include/linux/ftrace.h
index dea12a6e413bcf49711fa101ca22abed1f446d78,93230e97e897be6ee14beab7d6bbf0016256ec8c..66a36a815f0a410f34c462fee1ec2a887a8a91ac
@@@ -455,6 -455,7 +455,7 @@@ int ftrace_update_record(struct dyn_ftr
  int ftrace_test_record(struct dyn_ftrace *rec, int enable);
  void ftrace_run_stop_machine(int command);
  unsigned long ftrace_location(unsigned long ip);
+ unsigned long ftrace_location_range(unsigned long start, unsigned long end);
  unsigned long ftrace_get_addr_new(struct dyn_ftrace *rec);
  unsigned long ftrace_get_addr_curr(struct dyn_ftrace *rec);
  
@@@ -811,6 -812,16 +812,6 @@@ ftrace_push_return_trace(unsigned long 
   */
  #define __notrace_funcgraph           notrace
  
 -/*
 - * We want to which function is an entrypoint of a hardirq.
 - * That will help us to put a signal on output.
 - */
 -#define __irq_entry            __attribute__((__section__(".irqentry.text")))
 -
 -/* Limits of hardirq entrypoints */
 -extern char __irqentry_text_start[];
 -extern char __irqentry_text_end[];
 -
  #define FTRACE_NOTRACE_DEPTH 65536
  #define FTRACE_RETFUNC_DEPTH 50
  #define FTRACE_RETSTACK_ALLOC_SIZE 32
@@@ -847,6 -858,7 +848,6 @@@ static inline void unpause_graph_tracin
  #else /* !CONFIG_FUNCTION_GRAPH_TRACER */
  
  #define __notrace_funcgraph
 -#define __irq_entry
  #define INIT_FTRACE_GRAPH
  
  static inline void ftrace_graph_init_task(struct task_struct *t) { }
diff --combined kernel/trace/ftrace.c
index b1870fbd2b67f552ef1cc8ac730a12792689769a,f4e6aae6ebe76cd2e7b0d27bcc3be90a7cdf1247..7e8d792da9630ee9db915e7e849de268ff999878
@@@ -1030,7 -1030,8 +1030,7 @@@ static __init void ftrace_profile_trace
        for_each_possible_cpu(cpu) {
                stat = &per_cpu(ftrace_profile_stats, cpu);
  
 -              /* allocate enough for function name + cpu number */
 -              name = kmalloc(32, GFP_KERNEL);
 +              name = kasprintf(GFP_KERNEL, "function%d", cpu);
                if (!name) {
                        /*
                         * The files created are permanent, if something happens
                        return;
                }
                stat->stat = function_stats;
 -              snprintf(name, 32, "function%d", cpu);
                stat->stat.name = name;
                ret = register_stat_tracer(&stat->stat);
                if (ret) {
        entry = tracefs_create_file("function_profile_enabled", 0644,
                                    d_tracer, NULL, &ftrace_profile_fops);
        if (!entry)
 -              pr_warning("Could not create tracefs "
 -                         "'function_profile_enabled' entry\n");
 +              pr_warn("Could not create tracefs 'function_profile_enabled' entry\n");
  }
  
  #else /* CONFIG_FUNCTION_PROFILER */
@@@ -1530,7 -1533,19 +1530,19 @@@ static int ftrace_cmp_recs(const void *
        return 0;
  }
  
- static unsigned long ftrace_location_range(unsigned long start, unsigned long end)
+ /**
+  * ftrace_location_range - return the first address of a traced location
+  *    if it touches the given ip range
+  * @start: start of range to search.
+  * @end: end of range to search (inclusive). @end points to the last byte
+  *    to check.
+  *
+  * Returns rec->ip if the related ftrace location is a least partly within
+  * the given address range. That is, the first address of the instruction
+  * that is either a NOP or call to the function tracer. It checks the ftrace
+  * internal tables to determine if the address belongs or not.
+  */
+ unsigned long ftrace_location_range(unsigned long start, unsigned long end)
  {
        struct ftrace_page *pg;
        struct dyn_ftrace *rec;
@@@ -1607,7 -1622,7 +1619,7 @@@ static bool test_rec_ops_needs_regs(str
        return  keep_regs;
  }
  
 -static void __ftrace_hash_rec_update(struct ftrace_ops *ops,
 +static bool __ftrace_hash_rec_update(struct ftrace_ops *ops,
                                     int filter_hash,
                                     bool inc)
  {
        struct ftrace_hash *other_hash;
        struct ftrace_page *pg;
        struct dyn_ftrace *rec;
 +      bool update = false;
        int count = 0;
        int all = 0;
  
        /* Only update if the ops has been registered */
        if (!(ops->flags & FTRACE_OPS_FL_ENABLED))
 -              return;
 +              return false;
  
        /*
         * In the filter_hash case:
                 * then there's nothing to do.
                 */
                if (ftrace_hash_empty(hash))
 -                      return;
 +                      return false;
        }
  
        do_for_each_ftrace_rec(pg, rec) {
                if (inc) {
                        rec->flags++;
                        if (FTRACE_WARN_ON(ftrace_rec_count(rec) == FTRACE_REF_MAX))
 -                              return;
 +                              return false;
  
                        /*
                         * If there's only a single callback registered to a
                                rec->flags |= FTRACE_FL_REGS;
                } else {
                        if (FTRACE_WARN_ON(ftrace_rec_count(rec) == 0))
 -                              return;
 +                              return false;
                        rec->flags--;
  
                        /*
                         */
                }
                count++;
 +
 +              /* Must match FTRACE_UPDATE_CALLS in ftrace_modify_all_code() */
 +              update |= ftrace_test_record(rec, 1) != FTRACE_UPDATE_IGNORE;
 +
                /* Shortcut, if we handled all records, we are done. */
                if (!all && count == hash->count)
 -                      return;
 +                      return update;
        } while_for_each_ftrace_rec();
 +
 +      return update;
  }
  
 -static void ftrace_hash_rec_disable(struct ftrace_ops *ops,
 +static bool ftrace_hash_rec_disable(struct ftrace_ops *ops,
                                    int filter_hash)
  {
 -      __ftrace_hash_rec_update(ops, filter_hash, 0);
 +      return __ftrace_hash_rec_update(ops, filter_hash, 0);
  }
  
 -static void ftrace_hash_rec_enable(struct ftrace_ops *ops,
 +static bool ftrace_hash_rec_enable(struct ftrace_ops *ops,
                                   int filter_hash)
  {
 -      __ftrace_hash_rec_update(ops, filter_hash, 1);
 +      return __ftrace_hash_rec_update(ops, filter_hash, 1);
  }
  
  static void ftrace_hash_rec_update_modify(struct ftrace_ops *ops,
@@@ -2318,8 -2326,8 +2330,8 @@@ unsigned long ftrace_get_addr_curr(stru
        if (rec->flags & FTRACE_FL_TRAMP_EN) {
                ops = ftrace_find_tramp_ops_curr(rec);
                if (FTRACE_WARN_ON(!ops)) {
 -                      pr_warning("Bad trampoline accounting at: %p (%pS)\n",
 -                                  (void *)rec->ip, (void *)rec->ip);
 +                      pr_warn("Bad trampoline accounting at: %p (%pS)\n",
 +                              (void *)rec->ip, (void *)rec->ip);
                        /* Ftrace is shutting down, return anything */
                        return (unsigned long)FTRACE_ADDR;
                }
@@@ -2648,6 -2656,7 +2660,6 @@@ static int ftrace_startup(struct ftrace
                return ret;
  
        ftrace_start_up++;
 -      command |= FTRACE_UPDATE_CALLS;
  
        /*
         * Note that ftrace probes uses this to start up
                return ret;
        }
  
 -      ftrace_hash_rec_enable(ops, 1);
 +      if (ftrace_hash_rec_enable(ops, 1))
 +              command |= FTRACE_UPDATE_CALLS;
  
        ftrace_startup_enable(command);
  
@@@ -2699,11 -2707,11 +2711,11 @@@ static int ftrace_shutdown(struct ftrac
  
        /* Disabling ipmodify never fails */
        ftrace_hash_ipmodify_disable(ops);
 -      ftrace_hash_rec_disable(ops, 1);
  
 -      ops->flags &= ~FTRACE_OPS_FL_ENABLED;
 +      if (ftrace_hash_rec_disable(ops, 1))
 +              command |= FTRACE_UPDATE_CALLS;
  
 -      command |= FTRACE_UPDATE_CALLS;
 +      ops->flags &= ~FTRACE_OPS_FL_ENABLED;
  
        if (saved_ftrace_func != ftrace_trace_function) {
                saved_ftrace_func = ftrace_trace_function;
This page took 0.200847 seconds and 4 git commands to generate.