1. 01 Aug, 2016 39 commits
  2. 31 Jul, 2016 1 commit
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · bad60e6f
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Highlights:
         - PowerNV PCI hotplug support.
         - Lots more Power9 support.
         - eBPF JIT support on ppc64le.
         - Lots of cxl updates.
         - Boot code consolidation.
      
        Bug fixes:
         - Fix spin_unlock_wait() from Boqun Feng
         - Fix stack pointer corruption in __tm_recheckpoint() from Michael
           Neuling
         - Fix multiple bugs in memory_hotplug_max() from Bharata B Rao
         - mm: Ensure "special" zones are empty from Oliver O'Halloran
         - ftrace: Separate the heuristics for checking call sites from
           Michael Ellerman
         - modules: Never restore r2 for a mprofile-kernel style mcount() call
           from Michael Ellerman
         - Fix endianness when reading TCEs from Alexey Kardashevskiy
         - start rtasd before PCI probing from Greg Kurz
         - PCI: rpaphp: Fix slot registration for multiple slots under a PHB
           from Tyrel Datwyler
         - powerpc/mm: Add memory barrier in __hugepte_alloc() from Sukadev
           Bhattiprolu
      
        Cleanups & fixes:
         - Drop support for MPIC in pseries from Rashmica Gupta
         - Define and use PPC64_ELF_ABI_v2/v1 from Michael Ellerman
         - Remove unused symbols in asm-offsets.c from Rashmica Gupta
         - Fix SRIOV not building without EEH enabled from Russell Currey
         - Remove kretprobe_trampoline_holder from Thiago Jung Bauermann
         - Reduce log level of PCI I/O space warning from Benjamin
           Herrenschmidt
         - Add array bounds checking to crash_shutdown_handlers from Suraj
           Jitindar Singh
         - Avoid -maltivec when using clang integrated assembler from Anton
           Blanchard
         - Fix array overrun in ppc_rtas() syscall from Andrew Donnellan
         - Fix error return value in cmm_mem_going_offline() from Rasmus
           Villemoes
         - export cpu_to_core_id() from Mauricio Faria de Oliveira
         - Remove old symbols from defconfigs from Andrew Donnellan
         - Update obsolete comments in setup_32.c about entry conditions from
           Benjamin Herrenschmidt
         - Add comment explaining the purpose of setup_kdump_trampoline() from
           Benjamin Herrenschmidt
         - Merge the RELOCATABLE config entries for ppc32 and ppc64 from Kevin
           Hao
         - Remove RELOCATABLE_PPC32 from Kevin Hao
         - Fix .long's in tlb-radix.c to more meaningful from Balbir Singh
      
        Minor cleanups & fixes:
         - Andrew Donnellan, Anna-Maria Gleixner, Anton Blanchard, Benjamin
           Herrenschmidt, Bharata B Rao, Christophe Leroy, Colin Ian King,
           Geliang Tang, Greg Kurz, Madhavan Srinivasan, Michael Ellerman,
           Michael Ellerman, Stephen Rothwell, Stewart Smith.
      
        Freescale updates from Scott:
         - "Highlights include more 8xx optimizations, device tree updates,
           and MVME7100 support."
      
        PowerNV PCI hotplug from Gavin Shan:
         - PCI: Add pcibios_setup_bridge()
         - Override pcibios_setup_bridge()
         - Remove PCI_RESET_DELAY_US
         - Move pnv_pci_ioda_setup_opal_tce_kill() around
         - Increase PE# capacity
         - Allocate PE# in reverse order
         - Create PEs in pcibios_setup_bridge()
         - Setup PE for root bus
         - Extend PCI bridge resources
         - Make pnv_ioda_deconfigure_pe() visible
         - Dynamically release PE
         - Update bridge windows on PCI plug
         - Delay populating pdn
         - Support PCI slot ID
         - Use PCI slot reset infrastructure
         - Introduce pnv_pci_get_slot_id()
         - Functions to get/set PCI slot state
         - PCI/hotplug: PowerPC PowerNV PCI hotplug driver
         - Print correct PHB type names
      
        Power9 idle support from Shreyas B. Prabhu:
         - set power_save func after the idle states are initialized
         - Use PNV_THREAD_WINKLE macro while requesting for winkle
         - make hypervisor state restore a function
         - Rename idle_power7.S to idle_book3s.S
         - Rename reusable idle functions to hardware agnostic names
         - Make pnv_powersave_common more generic
         - abstraction for saving SPRs before entering deep idle states
         - Add platform support for stop instruction
         - cpuidle/powernv: Use CPUIDLE_STATE_MAX instead of MAX_POWERNV_IDLE_STATES
         - cpuidle/powernv: cleanup cpuidle-powernv.c
         - cpuidle/powernv: Add support for POWER ISA v3 idle states
         - Use deepest stop state when cpu is offlined
      
        Power9 PMU from Madhavan Srinivasan:
         - factor out power8 pmu macros and defines
         - factor out power8 pmu functions
         - factor out power8 __init_pmu code
         - Add power9 event list macros for generic and cache events
         - Power9 PMU support
         - Export Power9 generic and cache events to sysfs
      
        Power9 preliminary interrupt & PCI support from Benjamin Herrenschmidt:
         - Add XICS emulation APIs
         - Move a few exception common handlers to make room
         - Add support for HV virtualization interrupts
         - Add mechanism to force a replay of interrupts
         - Add ICP OPAL backend
         - Discover IODA3 PHBs
         - pci: Remove obsolete SW invalidate
         - opal: Add real mode call wrappers
         - Rename TCE invalidation calls
         - Remove SWINV constants and obsolete TCE code
         - Rework accessing the TCE invalidate register
         - Fallback to OPAL for TCE invalidations
         - Use the device-tree to get available range of M64's
         - Check status of a PHB before using it
         - pci: Don't try to allocate resources that will be reassigned
      
        Other Power9:
         - Send SIGBUS on unaligned copy and paste from Chris Smart
         - Large Decrementer support from Oliver O'Halloran
         - Load Monitor Register Support from Jack Miller
      
        Performance improvements from Anton Blanchard:
         - Avoid load hit store in __giveup_fpu() and __giveup_altivec()
         - Avoid load hit store in setup_sigcontext()
         - Remove assembly versions of strcpy, strcat, strlen and strcmp
         - Align hot loops of some string functions
      
        eBPF JIT from Naveen N. Rao:
         - Fix/enhance 32-bit Load Immediate implementation
         - Optimize 64-bit Immediate loads
         - Introduce rotate immediate instructions
         - A few cleanups
         - Isolate classic BPF JIT specifics into a separate header
         - Implement JIT compiler for extended BPF
      
        Operator Panel driver from Suraj Jitindar Singh:
         - devicetree/bindings: Add binding for operator panel on FSP machines
         - Add inline function to get rc from an ASYNC_COMP opal_msg
         - Add driver for operator panel on FSP machines
      
        Sparse fixes from Daniel Axtens:
         - make some things static
         - Introduce asm-prototypes.h
         - Include headers containing prototypes
         - Use #ifdef __BIG_ENDIAN__ #else for REG_BYTE
         - kvm: Clarify __user annotations
         - Pass endianness to sparse
         - Make ppc_md.{halt, restart} __noreturn
      
        MM fixes & cleanups from Aneesh Kumar K.V:
         - radix: Update LPCR HR bit as per ISA
         - use _raw variant of page table accessors
         - Compile out radix related functions if RADIX_MMU is disabled
         - Clear top 16 bits of va only on older cpus
         - Print formation regarding the the MMU mode
         - hash: Update SDR1 size encoding as documented in ISA 3.0
         - radix: Update PID switch sequence
         - radix: Update machine call back to support new HCALL.
         - radix: Add LPID based tlb flush helpers
         - radix: Add a kernel command line to disable radix
         - Cleanup LPCR defines
      
        Boot code consolidation from Benjamin Herrenschmidt:
         - Move epapr_paravirt_early_init() to early_init_devtree()
         - cell: Don't use flat device-tree after boot
         - ge_imp3a: Don't use the flat device-tree after boot
         - mpc85xx_ds: Don't use the flat device-tree after boot
         - mpc85xx_rdb: Don't use the flat device-tree after boot
         - Don't test for machine type in rtas_initialize()
         - Don't test for machine type in smp_setup_cpu_maps()
         - dt: Add of_device_compatible_match()
         - Factor do_feature_fixup calls
         - Move 64-bit feature fixup earlier
         - Move 64-bit memory reserves to setup_arch()
         - Use a cachable DART
         - Move FW feature probing out of pseries probe()
         - Put exception configuration in a common place
         - Remove early allocation of the SMU command buffer
         - Move MMU backend selection out of platform code
         - pasemi: Remove IOBMAP allocation from platform probe()
         - mm/hash: Don't use machine_is() early during boot
         - Don't test for machine type to detect HEA special case
         - pmac: Remove spurrious machine type test
         - Move hash table ops to a separate structure
         - Ensure that ppc_md is empty before probing for machine type
         - Move 64-bit probe_machine() to later in the boot process
         - Move 32-bit probe() machine to later in the boot process
         - Get rid of ppc_md.init_early()
         - Move the boot time info banner to a separate function
         - Move setting of {i,d}cache_bsize to initialize_cache_info()
         - Move the content of setup_system() to setup_arch()
         - Move cache info inits to a separate function
         - Re-order the call to smp_setup_cpu_maps()
         - Re-order setup_panic()
         - Make a few boot functions __init
         - Merge 32-bit and 64-bit setup_arch()
      
        Other new features:
         - tty/hvc: Use IRQF_SHARED for OPAL hvc consoles from Sam Mendoza-Jonas
         - tty/hvc: Use opal irqchip interface if available from Sam Mendoza-Jonas
         - powerpc: Add module autoloading based on CPU features from Alastair D'Silva
         - crypto: vmx - Convert to CPU feature based module autoloading from Alastair D'Silva
         - Wake up kopald polling thread before waiting for events from Benjamin Herrenschmidt
         - xmon: Dump ISA 2.06 SPRs from Michael Ellerman
         - xmon: Dump ISA 2.07 SPRs from Michael Ellerman
         - Add a parameter to disable 1TB segs from Oliver O'Halloran
         - powerpc/boot: Add OPAL console to epapr wrappers from Oliver O'Halloran
         - Assign fixed PHB number based on device-tree properties from Guilherme G. Piccoli
         - pseries: Add pseries hotplug workqueue from John Allen
         - pseries: Add support for hotplug interrupt source from John Allen
         - pseries: Use kernel hotplug queue for PowerVM hotplug events from John Allen
         - pseries: Move property cloning into its own routine from Nathan Fontenot
         - pseries: Dynamic add entires to associativity lookup array from Nathan Fontenot
         - pseries: Auto-online hotplugged memory from Nathan Fontenot
         - pseries: Remove call to memblock_add() from Nathan Fontenot
      
        cxl:
         - Add set and get private data to context struct from Michael Neuling
         - make base more explicitly non-modular from Paul Gortmaker
         - Use for_each_compatible_node() macro from Wei Yongjun
         - Frederic Barrat
         - Abstract the differences between the PSL and XSL
         - Make vPHB device node match adapter's
         - Philippe Bergheaud
         - Add mechanism for delivering AFU driver specific events
         - Ignore CAPI adapters misplaced in switched slots
         - Refine slice error debug messages
         - Andrew Donnellan
         - static-ify variables to fix sparse warnings
         - PCI/hotplug: pnv_php: export symbols and move struct types needed by cxl
         - PCI/hotplug: pnv_php: handle OPAL_PCI_SLOT_OFFLINE power state
         - Add cxl_check_and_switch_mode() API to switch bi-modal cards
         - remove dead Kconfig options
         - fix potential NULL dereference in free_adapter()
         - Ian Munsie
         - Update process element after allocating interrupts
         - Add support for CAPP DMA mode
         - Fix allowing bogus AFU descriptors with 0 maximum processes
         - Fix allocating a minimum of 2 pages for the SPA
         - Fix bug where AFU disable operation had no effect
         - Workaround XSL bug that does not clear the RA bit after a reset
         - Fix NULL pointer dereference on kernel contexts with no AFU interrupts
         - powerpc/powernv: Split cxl code out into a separate file
         - Add cxl_slot_is_supported API
         - Enable bus mastering for devices using CAPP DMA mode
         - Move cxl_afu_get / cxl_afu_put to base
         - Allow a default context to be associated with an external pci_dev
         - Do not create vPHB if there are no AFU configuration records
         - powerpc/powernv: Add support for the cxl kernel api on the real phb
         - Add support for using the kernel API with a real PHB
         - Add kernel APIs to get & set the max irqs per context
         - Add preliminary workaround for CX4 interrupt limitation
         - Add support for interrupts on the Mellanox CX4
         - Workaround PE=0 hardware limitation in Mellanox CX4
         - powerpc/powernv: Fix pci-cxl.c build when CONFIG_MODULES=n
      
        selftests:
         - Test unaligned copy and paste from Chris Smart
         - Load Monitor Register Tests from Jack Miller
         - Cyril Bur
         - exec() with suspended transaction
         - Use signed long to read perf_event_paranoid
         - Fix usage message in context_switch
         - Fix generation of vector instructions/types in context_switch
         - Michael Ellerman
         - Use "Delta" rather than "Error" in normal output
         - Import Anton's mmap & futex micro benchmarks
         - Add a test for PROT_SAO"
      
      * tag 'powerpc-4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (263 commits)
        powerpc/mm: Parenthesise IS_ENABLED() in if condition
        tty/hvc: Use opal irqchip interface if available
        tty/hvc: Use IRQF_SHARED for OPAL hvc consoles
        selftests/powerpc: exec() with suspended transaction
        powerpc: Improve comment explaining why we modify VRSAVE
        powerpc/mm: Drop unused externs for hpte_init_beat[_v3]()
        powerpc/mm: Rename hpte_init_lpar() and move the fallback to a header
        powerpc/mm: Fix build break when PPC_NATIVE=n
        crypto: vmx - Convert to CPU feature based module autoloading
        powerpc: Add module autoloading based on CPU features
        powerpc/powernv/ioda: Fix endianness when reading TCEs
        powerpc/mm: Add memory barrier in __hugepte_alloc()
        powerpc/modules: Never restore r2 for a mprofile-kernel style mcount() call
        powerpc/ftrace: Separate the heuristics for checking call sites
        powerpc: Merge 32-bit and 64-bit setup_arch()
        powerpc/64: Make a few boot functions __init
        powerpc: Re-order setup_panic()
        powerpc: Re-order the call to smp_setup_cpu_maps()
        powerpc/32: Move cache info inits to a separate function
        powerpc/64: Move the content of setup_system() to setup_arch()
        ...
      bad60e6f