1. 05 1月, 2015 1 次提交
  2. 19 12月, 2014 1 次提交
    • T
      tick/powerclamp: Remove tick_nohz_idle abuse · a5fd9733
      Thomas Gleixner 提交于
      commit 4dbd2771 "tick: export nohz tick idle symbols for module
      use" was merged via the thermal tree without an explicit ack from the
      relevant maintainers.
      
      The exports are abused by the intel powerclamp driver which implements
      a fake idle state from a sched FIFO task. This causes all kinds of
      wreckage in the NOHZ core code which rightfully assumes that
      tick_nohz_idle_enter/exit() are only called from the idle task itself.
      
      Recent changes in the NOHZ core lead to a failure of the powerclamp
      driver and now people try to hack completely broken and backwards
      workarounds into the NOHZ core code. This is completely unacceptable
      and just papers over the real problem. There are way more subtle
      issues lurking around the corner.
      
      The real solution is to fix the powerclamp driver by rewriting it with
      a sane concept, but that's beyond the scope of this.
      
      So the only solution for now is to remove the calls into the core NOHZ
      code from the powerclamp trainwreck along with the exports. 
      
      Fixes: d6d71ee4 "PM: Introduce Intel PowerClamp Driver"
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Preeti U Murthy <preeti@linux.vnet.ibm.com>
      Cc: Viresh Kumar <viresh.kumar@linaro.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Fengguang Wu <fengguang.wu@intel.com>
      Cc: Frederic Weisbecker <frederic@kernel.org>
      Cc: Pan Jacob jun <jacob.jun.pan@intel.com>
      Cc: LKP <lkp@01.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: stable@vger.kernel.org
      Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1412181110110.17382@nanosSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      a5fd9733
  3. 11 12月, 2014 14 次提交
    • L
      Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3a5dc1fa
      Linus Torvalds 提交于
      Pull x86 microcode loading updates from Ingo Molnar:
       "The main changes in this cycle are:
      
         - Reload microcode when resuming and the case when only the early
           loader has been utilized.  (Borislav Petkov)
      
         - Also, do not load the driver on paravirt guests.  (Boris
           Ostrovsky)"
      
      * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/intel: Fish out the stashed microcode for the BSP
        x86, microcode: Reload microcode on resume
        x86, microcode: Don't initialize microcode code on paravirt
        x86, microcode, intel: Drop unused parameter
        x86, microcode, AMD: Do not use smp_processor_id() in preemtible context
      3a5dc1fa
    • L
      Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3100e448
      Linus Torvalds 提交于
      Pull x86 vdso updates from Ingo Molnar:
       "Various vDSO updates from Andy Lutomirski, mostly cleanups and
        reorganization to improve maintainability, but also some
        micro-optimizations and robustization changes"
      
      * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86_64/vsyscall: Restore orig_ax after vsyscall seccomp
        x86_64: Add a comment explaining the TASK_SIZE_MAX guard page
        x86_64,vsyscall: Make vsyscall emulation configurable
        x86_64, vsyscall: Rewrite comment and clean up headers in vsyscall code
        x86_64, vsyscall: Turn vsyscalls all the way off when vsyscall==none
        x86,vdso: Use LSL unconditionally for vgetcpu
        x86: vdso: Fix build with older gcc
        x86_64/vdso: Clean up vgetcpu init and merge the vdso initcalls
        x86_64/vdso: Remove jiffies from the vvar page
        x86/vdso: Make the PER_CPU segment 32 bits
        x86/vdso: Make the PER_CPU segment start out accessed
        x86/vdso: Change the PER_CPU segment to use struct desc_struct
        x86_64/vdso: Move getcpu code from vsyscall_64.c to vdso/vma.c
        x86_64/vsyscall: Move all of the gate_area code to vsyscall_64.c
      3100e448
    • L
      Merge branch 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c9f861c7
      Linus Torvalds 提交于
      Pull x86 RAS update from Ingo Molnar:
       "The biggest change in this cycle is better support for UCNA
        (UnCorrected No Action) events:
      
          "Handle all uncorrected error reports in the same way (soft
           offline the page). We used to only do that for SRAO
           (software recoverable action optional) machine checks, but
           it makes sense to also do it for UCNA (UnCorrected No
           Action) logs found by CMCI or polling."
      
        plus various x86 MCE handling updates and fixes"
      
      * 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Spell "panicked" correctly
        x86, mce: Support memory error recovery for both UCNA and Deferred error in machine_check_poll
        x86, mce, severity: Extend the the mce_severity mechanism to handle UCNA/DEFERRED error
        x86, MCE, AMD: Assign interrupt handler only when bank supports it
        x86, MCE, AMD: Drop software-defined bank in error thresholding
        x86, MCE, AMD: Move invariant code out from loop body
        x86, MCE, AMD: Correct thresholding error logging
        x86, MCE, AMD: Use macros to compute bank MSRs
        RAS, HWPOISON: Fix wrong error recovery status
        GHES: Make ghes_estatus_caches static
        APEI, GHES: Cleanup unnecessary function for lockless list
      c9f861c7
    • L
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a023748d
      Linus Torvalds 提交于
      Pull x86 mm tree changes from Ingo Molnar:
       "The biggest change is full PAT support from Jürgen Gross:
      
           The x86 architecture offers via the PAT (Page Attribute Table) a
           way to specify different caching modes in page table entries.  The
           PAT MSR contains 8 entries each specifying one of 6 possible cache
           modes.  A pte references one of those entries via 3 bits:
           _PAGE_PAT, _PAGE_PWT and _PAGE_PCD.
      
           The Linux kernel currently supports only 4 different cache modes.
           The PAT MSR is set up in a way that the setting of _PAGE_PAT in a
           pte doesn't matter: the top 4 entries in the PAT MSR are the same
           as the 4 lower entries.
      
           This results in the kernel not supporting e.g. write-through mode.
           Especially this cache mode would speed up drivers of video cards
           which now have to use uncached accesses.
      
           OTOH some old processors (Pentium) don't support PAT correctly and
           the Xen hypervisor has been using a different PAT MSR configuration
           for some time now and can't change that as this setting is part of
           the ABI.
      
           This patch set abstracts the cache mode from the pte and introduces
           tables to translate between cache mode and pte bits (the default
           cache mode "write back" is hard-wired to PAT entry 0).  The tables
           are statically initialized with values being compatible to old
           processors and current usage.  As soon as the PAT MSR is changed
           (or - in case of Xen - is read at boot time) the tables are changed
           accordingly.  Requests of mappings with special cache modes are
           always possible now, in case they are not supported there will be a
           fallback to a compatible but slower mode.
      
           Summing it up, this patch set adds the following features:
      
            - capability to support WT and WP cache modes on processors with
              full PAT support
      
            - processors with no or uncorrect PAT support are still working as
              today, even if WT or WP cache mode are selected by drivers for
              some pages
      
            - reduction of Xen special handling regarding cache mode
      
        Another change is a boot speedup on ridiculously large RAM systems,
        plus other smaller fixes"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        x86: mm: Move PAT only functions to mm/pat.c
        xen: Support Xen pv-domains using PAT
        x86: Enable PAT to use cache mode translation tables
        x86: Respect PAT bit when copying pte values between large and normal pages
        x86: Support PAT bit in pagetable dump for lower levels
        x86: Clean up pgtable_types.h
        x86: Use new cache mode type in memtype related functions
        x86: Use new cache mode type in mm/ioremap.c
        x86: Use new cache mode type in setting page attributes
        x86: Remove looking for setting of _PAGE_PAT_LARGE in pageattr.c
        x86: Use new cache mode type in track_pfn_remap() and track_pfn_insert()
        x86: Use new cache mode type in mm/iomap_32.c
        x86: Use new cache mode type in asm/pgtable.h
        x86: Use new cache mode type in arch/x86/mm/init_64.c
        x86: Use new cache mode type in arch/x86/pci
        x86: Use new cache mode type in drivers/video/fbdev/vermilion
        x86: Use new cache mode type in drivers/video/fbdev/gbefb.c
        x86: Use new cache mode type in include/asm/fb.h
        x86: Make page cache mode a real type
        x86: mm: Use 2GB memory block size on large-memory x86-64 systems
        ...
      a023748d
    • L
      Merge branches 'x86-platform-for-linus' and 'x86-uv-for-linus' of... · 773fed91
      Linus Torvalds 提交于
      Merge branches 'x86-platform-for-linus' and 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull x86 platform changes from Ingo Molnar:
       "A handful of numachip APIC driver updates/fixes, and two small SGI/UV
        fixes"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: numachip: APIC driver cleanups
        x86: numachip: Elide self-IPI ICR polling
        x86: numachip: Fix 16-bit APIC ID truncation
      
      * 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: UV BAU: Increase maximum CPUs per socket/hub
        x86: UV BAU: Avoid NULL pointer reference in ptc_seq_show
      773fed91
    • L
      Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 81395481
      Linus Torvalds 提交于
      Pull EFI updates from Ingo Molnar:
       "Changes in this cycle are:
      
         - support module unload for efivarfs (Mathias Krause)
      
         - another attempt at moving x86 to libstub taking advantage of the
           __pure attribute (Ard Biesheuvel)
      
         - add EFI runtime services section to ptdump (Mathias Krause)"
      
      * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, ptdump: Add section for EFI runtime services
        efi/x86: Move x86 back to libstub
        efivarfs: Allow unloading when build as module
      81395481
    • L
      Merge branches 'x86-build-for-linus', 'x86-cleanups-for-linus' and... · 206f18f2
      Linus Torvalds 提交于
      Merge branches 'x86-build-for-linus', 'x86-cleanups-for-linus' and 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull x86 build, cleanup and defconfig updates from Ingo Molnar:
       "A single minor build change to suppress a repetitive build messages,
        misc cleanups and a defconfig update"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/purgatory, build: Suppress kexec-purgatory.c is up to date message
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, CPU, AMD: Move K8 TLB flush filter workaround to K8 code
        x86, espfix: Remove stale ptemask
        x86, msr: Use seek definitions instead of hard-coded values
        x86, msr: Convert printk to pr_foo()
        x86, msr: Use PTR_ERR_OR_ZERO
        x86/simplefb: Use PTR_ERR_OR_ZERO
        x86/sysfb: Use PTR_ERR_OR_ZERO
        x86, cpuid: Use PTR_ERR_OR_ZERO
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kconfig/defconfig: Enable CONFIG_FHANDLE=y
      206f18f2
    • L
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b6444bd0
      Linus Torvalds 提交于
      Pull x86 boot and percpu updates from Ingo Molnar:
       "This tree contains a bootable images documentation update plus three
        slightly misplaced x86/asm percpu changes/optimizations"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86-64: Use RIP-relative addressing for most per-CPU accesses
        x86-64: Handle PC-relative relocations on per-CPU data
        x86: Convert a few more per-CPU items to read-mostly ones
        x86, boot: Document intermediates more clearly
      b6444bd0
    • L
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9d0cf6f5
      Linus Torvalds 提交于
      Pull x86 asm updates from Ingo Molnar:
       "Misc changes:
      
         - context switch micro-optimization
         - debug printout micro-optimization
         - comment enhancements and typo fix"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Replace seq_printf() with seq_puts()
        x86/asm: Fix typo in arch/x86/kernel/asm_offset_64.c
        sched/x86: Add a comment clarifying LDT context switching
        sched/x86_64: Don't save flags on context switch
      9d0cf6f5
    • L
      Merge branch 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d8201269
      Linus Torvalds 提交于
      Pull more 2038 timer work from Thomas Gleixner:
       "Two more patches for the ongoing 2038 work:
      
         - New accessors to clock MONOTONIC and REALTIME seconds
      
        This is a seperate branch as Arnd has follow up work depending on
        this"
      
      * 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timekeeping: Provide y2038 safe accessor to the seconds portion of CLOCK_REALTIME
        timekeeping: Provide fast accessor to the seconds part of CLOCK_MONOTONIC
      d8201269
    • L
      Merge branch 'x86-mpx-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3eb5b893
      Linus Torvalds 提交于
      Pull x86 MPX support from Thomas Gleixner:
       "This enables support for x86 MPX.
      
        MPX is a new debug feature for bound checking in user space.  It
        requires kernel support to handle the bound tables and decode the
        bound violating instruction in the trap handler"
      
      * 'x86-mpx-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        asm-generic: Remove asm-generic arch_bprm_mm_init()
        mm: Make arch_unmap()/bprm_mm_init() available to all architectures
        x86: Cleanly separate use of asm-generic/mm_hooks.h
        x86 mpx: Change return type of get_reg_offset()
        fs: Do not include mpx.h in exec.c
        x86, mpx: Add documentation on Intel MPX
        x86, mpx: Cleanup unused bound tables
        x86, mpx: On-demand kernel allocation of bounds tables
        x86, mpx: Decode MPX instruction to get bound violation information
        x86, mpx: Add MPX-specific mmap interface
        x86, mpx: Introduce VM_MPX to indicate that a VMA is MPX specific
        x86, mpx: Add MPX to disabled features
        ia64: Sync struct siginfo with general version
        mips: Sync struct siginfo with general version
        mpx: Extend siginfo structure to include bound violation information
        x86, mpx: Rename cfg_reg_u and status_reg
        x86: mpx: Give bndX registers actual names
        x86: Remove arbitrary instruction size limit in instruction decoder
      3eb5b893
    • L
      Merge branch 'irq-irqdomain-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9e66645d
      Linus Torvalds 提交于
      Pull irq domain updates from Thomas Gleixner:
       "The real interesting irq updates:
      
         - Support for hierarchical irq domains:
      
           For complex interrupt routing scenarios where more than one
           interrupt related chip is involved we had no proper representation
           in the generic interrupt infrastructure so far.  That made people
           implement rather ugly constructs in their nested irq chip
           implementations.  The main offenders are x86 and arm/gic.
      
           To distangle that mess we have now hierarchical irqdomains which
           seperate the various interrupt chips and connect them via the
           hierarchical domains.  That keeps the domain specific details
           internal to the particular hierarchy level and removes the
           criss/cross referencing of chip internals.  The resulting hierarchy
           for a complex x86 system will look like this:
      
              vector          mapped: 74
                msi-0         mapped: 2
                dmar-ir-1     mapped: 69
                  ioapic-1    mapped: 4
                  ioapic-0    mapped: 20
                  pci-msi-2   mapped: 45
                dmar-ir-0     mapped: 3
                  ioapic-2    mapped: 1
                  pci-msi-1   mapped: 2
                htirq         mapped: 0
      
           Neither ioapic nor pci-msi know about the dmar interrupt remapping
           between themself and the vector domain.  If interrupt remapping is
           disabled ioapic and pci-msi become direct childs of the vector
           domain.
      
           In hindsight we should have done that years ago, but in hindsight
           we always know better :)
      
         - Support for generic MSI interrupt domain handling
      
           We have more and more non PCI related MSI interrupts, so providing
           a generic infrastructure for this is better than having all
           affected architectures implementing their own private hacks.
      
         - Support for PCI-MSI interrupt domain handling, based on the generic
           MSI support.
      
           This part carries the pci/msi branch from Bjorn Helgaas pci tree to
           avoid a massive conflict.  The PCI/MSI parts are acked by Bjorn.
      
        I have two more branches on top of this.  The full conversion of x86
        to hierarchical domains and a partial conversion of arm/gic"
      
      * 'irq-irqdomain-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
        genirq: Move irq_chip_write_msi_msg() helper to core
        PCI/MSI: Allow an msi_controller to be associated to an irq domain
        PCI/MSI: Provide mechanism to alloc/free MSI/MSIX interrupt from irqdomain
        PCI/MSI: Enhance core to support hierarchy irqdomain
        PCI/MSI: Move cached entry functions to irq core
        genirq: Provide default callbacks for msi_domain_ops
        genirq: Introduce msi_domain_alloc/free_irqs()
        asm-generic: Add msi.h
        genirq: Add generic msi irq domain support
        genirq: Introduce callback irq_chip.irq_write_msi_msg
        genirq: Work around __irq_set_handler vs stacked domains ordering issues
        irqdomain: Introduce helper function irq_domain_add_hierarchy()
        irqdomain: Implement a method to automatically call parent domains alloc/free
        genirq: Introduce helper irq_domain_set_info() to reduce duplicated code
        genirq: Split out flow handler typedefs into seperate header file
        genirq: Add IRQ_SET_MASK_OK_DONE to support stacked irqchip
        genirq: Introduce irq_chip.irq_compose_msi_msg() to support stacked irqchip
        genirq: Add more helper functions to support stacked irq_chip
        genirq: Introduce helper functions to support stacked irq_chip
        irqdomain: Do irq_find_mapping and set_type for hierarchy irqdomain in case OF
        ...
      9e66645d
    • L
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ecb50f0a
      Linus Torvalds 提交于
      Pull irq core updates from Thomas Gleixner:
       "This is the first (boring) part of irq updates:
      
         - support for big endian I/O accessors in the generic irq chip
      
         - cleanup of brcmstb/bcm7120 drivers so they can be reused for non
           ARM SoCs
      
         - the usual pile of fixes and updates for the various ARM irq chips"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
        irqchip: dw-apb-ictl: Add PM support
        irqchip: dw-apb-ictl: Enable IRQ_GC_MASK_CACHE_PER_TYPE
        irqchip: dw-apb-ictl: Always use use {readl|writel}_relaxed
        ARM: orion: convert the irq_reg_{readl,writel} calls to the new API
        irqchip: atmel-aic: Add missing entry for rm9200 irq fixups
        irqchip: atmel-aic: Rename at91sam9_aic_irq_fixup for naming consistency
        irqchip: atmel-aic: Add specific irq fixup function for sam9g45 and sam9rl
        irqchip: atmel-aic: Add irq fixups for at91sam926x SoCs
        irqchip: atmel-aic: Add irq fixup for RTT block
        irqchip: brcmstb-l2: Convert driver to use irq_reg_{readl,writel}
        irqchip: bcm7120-l2: Convert driver to use irq_reg_{readl,writel}
        irqchip: bcm7120-l2: Decouple driver from brcmstb-l2
        irqchip: bcm7120-l2: Extend driver to support 64+ bit controllers
        irqchip: bcm7120-l2: Use gc->mask_cache to simplify suspend/resume functions
        irqchip: bcm7120-l2: Fix missing nibble in gc->unused mask
        irqchip: bcm7120-l2: Make sure all register accesses use base+offset
        irqchip: bcm7120-l2, brcmstb-l2: Remove ARM Kconfig dependency
        irqchip: bcm7120-l2: Eliminate bad IRQ check
        irqchip: brcmstb-l2: Eliminate dependency on ARM code
        genirq: Generic chip: Add big endian I/O accessors
        ...
      ecb50f0a
    • L
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a157508c
      Linus Torvalds 提交于
      Pull timer core updates from Thomas Gleixner:
       "The time(r) departement provides:
      
         - more infrastructure work on the year 2038 issue
      
         - a few fixes in the Armada SoC timers
      
         - the usual pile of fixlets and improvements"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource: armada-370-xp: Use the reference clock on A375 SoC
        watchdog: orion: Use the reference clock on Armada 375 SoC
        clocksource: armada-370-xp: Add missing clock enable
        time: Fix sign bug in NTP mult overflow warning
        time: Remove timekeeping_inject_sleeptime()
        rtc: Update suspend/resume timing to use 64bit time
        rtc/lib: Provide y2038 safe rtc_tm_to_time()/rtc_time_to_tm() replacement
        time: Fixup comments to reflect usage of timespec64
        time: Expose get_monotonic_coarse64() for in-kernel uses
        time: Expose getrawmonotonic64 for in-kernel uses
        time: Provide y2038 safe mktime() replacement
        time: Provide y2038 safe timekeeping_inject_sleeptime() replacement
        time: Provide y2038 safe do_settimeofday() replacement
        time: Complete NTP adjustment threshold judging conditions
        time: Avoid possible NTP adjustment mult overflow.
        time: Rename udelay_test.c to test_udelay.c
        clocksource: sirf: Remove hard-coded clock rate
      a157508c
  4. 10 12月, 2014 19 次提交
    • B
      x86/microcode/intel: Fish out the stashed microcode for the BSP · 25cdb9c8
      Borislav Petkov 提交于
      I'm such a moron! The simple solution of saving the BSP patch
      for use on resume was too simple (and wrong!), hint:
      sizeof(struct microcode_intel).
      
      What needs to be done instead is to fish out the microcode patch
      we have stashed previously and apply that on the BSP in case the
      late loader hasn't been utilized.
      
      So do that instead.
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: http://lkml.kernel.org/r/20141208110820.GB20057@pd.tnicSigned-off-by: NIngo Molnar <mingo@kernel.org>
      25cdb9c8
    • L
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 86c6a2fd
      Linus Torvalds 提交于
      Pull scheduler updates from Ingo Molnar:
       "The main changes in this cycle are:
      
         - 'Nested Sleep Debugging', activated when CONFIG_DEBUG_ATOMIC_SLEEP=y.
      
           This instruments might_sleep() checks to catch places that nest
           blocking primitives - such as mutex usage in a wait loop.  Such
           bugs can result in hard to debug races/hangs.
      
           Another category of invalid nesting that this facility will detect
           is the calling of blocking functions from within schedule() ->
           sched_submit_work() -> blk_schedule_flush_plug().
      
           There's some potential for false positives (if secondary blocking
           primitives themselves are not ready yet for this facility), but the
           kernel will warn once about such bugs per bootup, so the warning
           isn't much of a nuisance.
      
           This feature comes with a number of fixes, for problems uncovered
           with it, so no messages are expected normally.
      
         - Another round of sched/numa optimizations and refinements, for
           CONFIG_NUMA_BALANCING=y.
      
         - Another round of sched/dl fixes and refinements.
      
        Plus various smaller fixes and cleanups"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits)
        sched: Add missing rcu protection to wake_up_all_idle_cpus
        sched/deadline: Introduce start_hrtick_dl() for !CONFIG_SCHED_HRTICK
        sched/numa: Init numa balancing fields of init_task
        sched/deadline: Remove unnecessary definitions in cpudeadline.h
        sched/cpupri: Remove unnecessary definitions in cpupri.h
        sched/deadline: Fix rq->dl.pushable_tasks bug in push_dl_task()
        sched/fair: Fix stale overloaded status in the busiest group finding logic
        sched: Move p->nr_cpus_allowed check to select_task_rq()
        sched/completion: Document when to use wait_for_completion_io_*()
        sched: Update comments about CLONE_NEWUTS and CLONE_NEWIPC
        sched/fair: Kill task_struct::numa_entry and numa_group::task_list
        sched: Refactor task_struct to use numa_faults instead of numa_* pointers
        sched/deadline: Don't check CONFIG_SMP in switched_from_dl()
        sched/deadline: Reschedule from switched_from_dl() after a successful pull
        sched/deadline: Push task away if the deadline is equal to curr during wakeup
        sched/deadline: Add deadline rq status print
        sched/deadline: Fix artificial overrun introduced by yield_task_dl()
        sched/rt: Clean up check_preempt_equal_prio()
        sched/core: Use dl_bw_of() under rcu_read_lock_sched()
        sched: Check if we got a shallowest_idle_cpu before searching for least_loaded_cpu
        ...
      86c6a2fd
    • L
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bee2782f
      Linus Torvalds 提交于
      Pull leftover perf fixes from Ingo Molnar:
       "Two perf fixes left over from the previous cycle"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf session: Do not fail on processing out of order event
        x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and sync_regs
      bee2782f
    • L
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5706ffd0
      Linus Torvalds 提交于
      Pull perf events update from Ingo Molnar:
       "On the kernel side there's few changes, the one that stands out is
        PEBS machine state sampling support on x86, by Stephane Eranian.
      
        On the tooling side:
      
        User visible tooling changes:
      
         - Don't open the DWARF info multiple times, keeping instead a dwfl
           handle in struct dso, greatly speeding up 'perf report' on powerpc.
           (Sukadev Bhattiprolu)
      
         - Introduce PARSE_OPT_DISABLED option flag and use it to avoid
           showing undersired options in tools that provides frontends to
           'perf record', like sched, kvm, etc (Namhyung Kim)
      
         - Fallback to kallsyms when using the minimal 'ELF' loader (Arnaldo
           Carvalho de Melo)
      
         - Fix annotation with kcore (Adrian Hunter)
      
         - Support source line numbers in annotate using a hotkey (Andi Kleen)
      
         - Callchain improvements including:
           * Enable printing the srcline in the history
           * Make get_srcline fall back to sym+offset (Andi Kleen)
      
         - TUI hist_entry browser fixes, including showing missing overhead
           value for first level callchain.  Detected comparing the output of
           --stdio/--gui (that matched) with --tui, that had this problem.
           (Namhyung Kim)
      
         - Support handling complete branch stacks as histograms (Andi Kleen)
      
        Tooling infrastructure changes:
      
         - Prep work for supporting per-pkg and snapshot counters in 'perf
           stat' (Jiri Olsa)
      
         - 'perf stat' refactorings, moving stuff from it to evsel.c to use in
           per-pkg/snapshot format changes (Jiri Olsa)
      
         - Add per-pkg format file parsing (Matt Fleming)
      
         - Clean up libelf feature support code (Namhyung Kim)
      
         - Add gzip decompression support for kernel modules (Namhyung Kim)
      
         - More prep patches for Intel PT, including a a thread stack and more
           stuff made available via the database export mechanism (Adrian
           Hunter)
      
         - More Intel PT work, including a facility to export sample data
           (comms, threads, symbol names, etc) in a database friendly way,
           with an script to use this to create a postgresql database.
           (Adrian Hunter)
      
         - Make sure that thread->mg->machine points to the machine where the
           thread exists (it was being set only for the kmaps kernel modules
           case, do it as well for the mmaps) and use it to shorten function
           signatures (Arnaldo Carvalho de Melo)
      
        ... and lots of other fixes and smaller improvements"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (91 commits)
        perf report: In branch stack mode use address history sorting
        perf report: Add --branch-history option
        perf callchain: Support handling complete branch stacks as histograms
        perf stat: Add support for snapshot counters
        perf stat: Add support for per-pkg counters
        perf tools: Remove perf_evsel__read interface
        perf stat: Use read_counter in read_counter_aggr
        perf stat: Make read_counter work over the thread dimension
        perf stat: Use perf_evsel__read_cb in read_counter
        perf tools: Add snapshot format file parsing
        perf tools: Add per-pkg format file parsing
        perf evsel: Introduce perf_evsel__read_cb function
        perf evsel: Introduce perf_counts_values__scale function
        perf evsel: Introduce perf_evsel__compute_deltas function
        perf tools: Allow to force redirect pr_debug to stderr.
        perf tools: Fix segfault due to invalid kernel dso access
        perf callchain: Make get_srcline fall back to sym+offset
        perf symbols: Move bfd_demangle stubbing to its only user
        perf callchain: Enable printing the srcline in the history
        perf tools: Collapse first level callchain entry if it has sibling
        ...
      5706ffd0
    • L
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c3011060
      Linus Torvalds 提交于
      Pull RCU updates from Ingo Molnar:
       "These are the main changes in this cycle:
      
          - Streamline RCU's use of per-CPU variables, shifting from "cpu"
            arguments to functions to "this_"-style per-CPU variable
            accessors.
      
          - signal-handling RCU updates.
      
          - real-time updates.
      
          - torture-test updates.
      
          - miscellaneous fixes.
      
          - documentation updates"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
        rcu: Fix FIXME in rcu_tasks_kthread()
        rcu: More info about potential deadlocks with rcu_read_unlock()
        rcu: Optimize cond_resched_rcu_qs()
        rcu: Add sparse check for RCU_INIT_POINTER()
        documentation: memory-barriers.txt: Correct example for reorderings
        documentation: Add atomic_long_t to atomic_ops.txt
        documentation: Additional restriction for control dependencies
        documentation: Document RCU self test boot params
        rcutorture: Fix rcu_torture_cbflood() memory leak
        rcutorture: Remove obsolete kversion param in kvm.sh
        rcutorture: Remove stale test configurations
        rcutorture: Enable RCU self test in configs
        rcutorture: Add early boot self tests
        torture: Run Linux-kernel binary out of results directory
        cpu: Avoid puts_pending overflow
        rcu: Remove "cpu" argument to rcu_cleanup_after_idle()
        rcu: Remove "cpu" argument to rcu_prepare_for_idle()
        rcu: Remove "cpu" argument to rcu_needs_cpu()
        rcu: Remove "cpu" argument to rcu_note_context_switch()
        rcu: Remove "cpu" argument to rcu_preempt_check_callbacks()
        ...
      c3011060
    • L
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9c37f959
      Linus Torvalds 提交于
      Pull locking tree changes from Ingo Molnar:
       "Two changes: a documentation update and a ticket locks live lock fix"
      
      * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ticketlock: Fix spin_unlock_wait() livelock
        locking/lglocks: Add documentation of current lglocks implementation
      9c37f959
    • L
      Merge tag 'asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · a0e44677
      Linus Torvalds 提交于
      Pull asm-generic asm/io.h rewrite from Arnd Bergmann:
       "While there normally is no reason to have a pull request for
        asm-generic but have all changes get merged through whichever tree
        needs them, I do have a series for 3.19.
      
        There are two sets of patches that change significant portions of
        asm/io.h, and this branch contains both in order to resolve the
        conflicts:
      
         - Will Deacon has done a set of patches to ensure that all
           architectures define {read,write}{b,w,l,q}_relaxed() functions or
           get them by including asm-generic/io.h.
      
           These functions are commonly used on ARM specific drivers to avoid
           expensive L2 cache synchronization implied by the normal
           {read,write}{b,w,l,q}, but we need to define them on all
           architectures in order to share the drivers across architectures
           and to enable CONFIG_COMPILE_TEST configurations for them
      
         - Thierry Reding has done an unrelated set of patches that extends
           the asm-generic/io.h file to the degree necessary to make it useful
           on ARM64 and potentially other architectures"
      
      * tag 'asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: (29 commits)
        ARM64: use GENERIC_PCI_IOMAP
        sparc: io: remove duplicate relaxed accessors on sparc32
        ARM: sa11x0: Use void __iomem * in MMIO accessors
        arm64: Use include/asm-generic/io.h
        ARM: Use include/asm-generic/io.h
        asm-generic/io.h: Implement generic {read,write}s*()
        asm-generic/io.h: Reconcile I/O accessor overrides
        /dev/mem: Use more consistent data types
        Change xlate_dev_{kmem,mem}_ptr() prototypes
        ARM: ixp4xx: Properly override I/O accessors
        ARM: ixp4xx: Fix build with IXP4XX_INDIRECT_PCI
        ARM: ebsa110: Properly override I/O accessors
        ARC: Remove redundant PCI_IOBASE declaration
        documentation: memory-barriers: clarify relaxed io accessor semantics
        x86: io: implement dummy relaxed accessor macros for writes
        tile: io: implement dummy relaxed accessor macros for writes
        sparc: io: implement dummy relaxed accessor macros for writes
        powerpc: io: implement dummy relaxed accessor macros for writes
        parisc: io: implement dummy relaxed accessor macros for writes
        mn10300: io: implement dummy relaxed accessor macros for writes
        ...
      a0e44677
    • L
      Merge tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · ed8efd2d
      Linus Torvalds 提交于
      Pull ARM64 SoC changes from Arnd Bergmann:
       "This adds support for two new ARM64 platforms:
      
         - ARM Juno
         - AMD Seattle
      
        We had submissions for a number of additional platforms from Samsung,
        Freescale and Spreadtrum but are still working out the best process
        for getting these merged"
      
      * tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        arm64: amd-seattle: Fix PCI bus range due to SMMU limitation
        arm64: ARM: Fix the Generic Timers interrupt active level description
        arm64: amd-seattle: Adding device tree for AMD Seattle platform
        arm64: Add Juno board device tree.
        arm64: Create link to include/dt-bindings to enable C preprocessor use.
      ed8efd2d
    • L
      Merge tag 'defconfig-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 151cd976
      Linus Torvalds 提交于
      Pull ARM SoC defconfig changes from Arnd Bergmann:
       "This is a collection of the various changes to defconfig files, most
        importantly enabling some additional platforms in the
        multi_v7_defconfig file.  These are split out into a separate branch
        to avoid most of the merge conflicts in the defconfig files.
      
        This also touches 12 other defconfig files for shmobile, at91,
        hisilicon, keystone, mvebu, omap, and tegra"
      
      * tag 'defconfig-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (36 commits)
        ARM: omap2plus_defconfig: enable ECAP and EHRPWM
        ARM: omap2plus_defconfig: enable XHCI
        ARM: omap2plus_defconfig: enable AM33XX SoC sound
        ARM: omap2plus_defconfig: enable EDT FT5X06 touchscreen
        ARM: omap2plus_defconfig: remove unwanted ethernet drivers
        ARM: multi_v7_defconfig: enable MAX77686 PMIC drivers for exynos4412-prime based SoCs
        ARM: at91/defconfig: add DM9000 to at91_dt
        ARM: at91/defconfig: add QT1070 to at91_dt
        ARM: at91/defconfig: add TCB PWM driver selection
        ARM: at91/defconfig: add the XDMA driver
        ARM: at91: sama5: update defconfig
        ARM: defconfig: imx_v6_v7_defconfig updates
        ARM: multi_v7_defconfig: add driver support for hix5hd2
        ARM: exynos_defconfig: Use 16 minors per MMC block device
        ARM: mvebu: add MTD_BLOCK to mvebu_v7_defconfig
        ARM: mvebu: enable i2c device in mvebu_v7_defconfig
        ARM: mvebu: re-enable SDHCI driver for Armada 38x SoC in v7 defconfig
        ARM: tegra: Regenerate default configuration
        ARM: multi_v7_defconfig: Enable cgroups
        ARM: multi_v7_defconfig: Enable Broadcom Cygnus
        ...
      151cd976
    • L
      Merge tag 'omap-gpmc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · fe78c54b
      Linus Torvalds 提交于
      Pull ARM SoC/OMAP GPMC driver cleanup and move from Arnd Bergmann:
       "The GPMC driver has traditionally been considered a part of the OMAP
        platform code and tightly interweaved with some of the boards.
      
        With this cleanup, it has finally come to the point where it makes
        sense to move it out of arch/arm into drivers/memory, where we already
        have other drivers for similar hardware.  The cleanups are still
        ongoing, with the goal of eventually having a standalone driver that
        does not require an interface to architecture code.
      
        This is a separate branch because of dependencies on multiple other
        branches, and to keep the drivers changes separate from the normal
        cleanups"
      
      * tag 'omap-gpmc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        memory: gpmc: Move omap gpmc code to live under drivers
        ARM: OMAP2+: Move GPMC initcall to devices.c
        ARM: OMAP2+: Prepare to move GPMC to drivers by platform data header
        ARM: OMAP2+: Remove unnecesary include in GPMC driver
        ARM: OMAP2+: Drop board file for 3430sdp
        ARM: OMAP2+: Drop board file for ti8168evm
        ARM: OMAP2+: Drop legacy code for gpmc-smc91x.c
        ARM: OMAP2+: Require proper GPMC timings for devices
        ARM: OMAP2+: Show bootloader GPMC timings to allow configuring the .dts file
        ARM: OMAP2+: Fix support for multiple devices on a GPMC chip select
        ARM: OMAP2+: gpmc: Sanity check GPMC fck on probe
        ARM: OMAP2+: gpmc: Keep Chip Select disabled while configuring it
        ARM: OMAP2+: gpmc: Always enable A26-A11 for non NAND devices
        ARM: OMAP2+: gpmc: Error out if timings fail in gpmc_probe_generic_child()
        ARM: OMAP2+: gpmc: Print error message in set_gpmc_timing_reg()
      fe78c54b
    • L
      Merge tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 6da31412
      Linus Torvalds 提交于
      Pull ARM SoC DT updates from Arnd Bergmann:
       "The DT branch adds a lot of new stuff for additional SoC and board
        support.  The branch is the largest one and contains 513 out of the
        total 972 non-merge arm-soc changesets for 3.19.
      
        Most of the changes are about enabling additional on-chip devices for
        existing machines, but there are also an unusual number of new SoC
        types being added this time:
      
         - AMLogic Meson8
         - ARM Realview in DT mode
         - Allwinner A80
         - Broadcom BCM47081
         - Broadcom Cygnus
         - Freescale LS1021A
         - Freescale Vybrid 500 series
         - Mediatek MT6592, MT8127, MT8135
         - STMicroelectronics STiH410
         - Samsung Exynos4415
      
        The level of support for the above differs widely, some are just stubs
        with nothing more than CPU, memory and a UART, but others are fairly
        complete.  As usual, these get extended over time.
      
        There are also many new boards getting added, this is the list of
        model strings that are showing up in new dts files:
      
         - ARM RealView PB1176
         - Altera SOCFPGA Arria 10
         - Asus RT-N18U (BCM47081)
         - Buffalo WZR-1750DHP (BCM4708)
         - Buffalo WZR-600DHP2 (BCM47081)
         - Cygnus Enterprise Phone (BCM911360_ENTPHN)
         - D-Link DIR-665
         - Google Spring
         - IGEP COM MODULE Rev. G (TI OMAP AM/DM37x)
         - IGEPv2 Rev. F (TI OMAP AM/DM37x)
         - LS1021A QDS Board
         - LS1021A TWR Board
         - LeMaker Banana Pi
         - MarsBoard RK3066
         - MediaTek MT8127 Moose Board
         - MediaTek MT8135 evaluation board
         - Mele M3
         - Merrii A80 Optimus Board
         - Netgear R6300 V2 (BCM4708)
         - Nomadik STN8815NHK
         - NovaTech OrionLXm
         - Olimex A20-OLinuXino-LIME2
         - Raspberry Pi Model B+
         - STiH410 B2120
         - Samsung Monk board
         - Samsung Rinato board
         - Synology DS213j
         - Synology DS414
         - TBS2910 Matrix ARM mini PC
         - TI AM5728 BeagleBoard-X15
         - Toradex Colibri VF50 on Colibri Evaluation Board
         - Zynq ZYBO Development Board
      
        Other notable changes include:
      
         - exynos: cleanup of existing dts files
         - mvebu: improved pinctrl support for Armada 370/XP
         - nomadik: restructuring dts files
         - omap: added CAN bus support
         - shmobile: added clock support for some SoCs
         - shmobile: added sound support for some SoCs
         - sirf: reset controller support
         - sunxi: continuing the relicensing under dual GPL/MIT
         - sunxi: lots of new on-chip device support
         - sunxi: working simplefb support (long awaited)
         - various: provide stdout-path property for earlycon"
      
      * tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (510 commits)
        ARM: dts: rk3288: add arm,cpu-registers-not-fw-configured
        Revert "ARM: dts: rockchip: temporarily disable smp on rk3288"
        ARM: BCM5301X: Add DT for Buffalo WZR-600DHP2
        ARM: BCM5301X: Add DT for Asus RT-N18U
        ARM: BCM5301X: Add DT for Buffalo WZR-1750DHP
        ARM: BCM5301X: Add DT for Netgear R6300 V2
        ARM: BCM5301X: Add buttons for Netgear R6250
        ARM: dts: rockchip: Add input voltage supply regulators in pmic for Marsboard
        ARM: BCM5301X: Add IRQs to Broadcom's bus-axi in DTS file
        arm: dts: zynq: Add Digilent ZYBO board
        arm: dts: zynq: Move crystal freq. to board level
        doc: dt: vendor-prefixes: Add Digilent Inc
        Documentation: devicetree: Fix Xilinx VDMA specification
        ARM: dts: rockchip: set FIFO size for SDMMC, SDIO and EMMC on rk3066 and rk3188
        ARM: dts: rockchip: add label property for leds on Radxa Rock
        ARM: BCM5301X: Add LEDs for Netgear R6250 V1
        ARM: BCM5301X: Add Broadcom's bus-axi to the DTS file
        ARM: dts: add sysreg phandle to i2c device nodes for exynos
        ARM: dts: Remove unused bootargs from exynos3250-rinato
        ARM: dts: add board dts file for Exynos3250-based Monk board
        ...
      6da31412
    • L
      Merge tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 3a647c1d
      Linus Torvalds 提交于
      Pull ARM SoC driver updates from Arnd Bergmann:
       "These are changes for drivers that are intimately tied to some SoC and
        for some reason could not get merged through the respective subsystem
        maintainer tree.
      
        The largest single change here this time around is the Tegra
        iommu/memory controller driver, which gets updated to the new iommu DT
        binding.  More drivers like this are likely to follow for the
        following merge window, but we should be able to do those through the
        iommu maintainer.
      
        Other notable changes are:
         - reset controller drivers from the reset maintainer (socfpga, sti,
           berlin)
         - fixes for the keystone navigator driver merged last time
         - at91 rtc driver changes related to the at91 cleanups
         - ARM perf driver changes from Will Deacon
         - updates for the brcmstb_gisb driver"
      
      * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (53 commits)
        clocksource: arch_timer: Allow the device tree to specify uninitialized timer registers
        clocksource: arch_timer: Fix code to use physical timers when requested
        memory: Add NVIDIA Tegra memory controller support
        bus: brcmstb_gisb: Add register offset tables for older chips
        bus: brcmstb_gisb: Look up register offsets in a table
        bus: brcmstb_gisb: Introduce wrapper functions for MMIO accesses
        bus: brcmstb_gisb: Make the driver buildable on MIPS
        of: Add NVIDIA Tegra memory controller binding
        ARM: tegra: Move AHB Kconfig to drivers/amba
        amba: Add Kconfig file
        clk: tegra: Implement memory-controller clock
        serial: samsung: Fix serial config dependencies for exynos7
        bus: brcmstb_gisb: resolve section mismatch
        ARM: common: edma: edma_pm_resume may be unused
        ARM: common: edma: add suspend resume hook
        powerpc/iommu: Rename iommu_[un]map_sg functions
        rtc: at91sam9: add DT bindings documentation
        rtc: at91sam9: use clk API instead of relying on AT91_SLOW_CLOCK
        ARM: at91: add clk_lookup entry for RTT devices
        rtc: at91sam9: rework the Kconfig description
        ...
      3a647c1d
    • L
      Merge tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 6cd94d5e
      Linus Torvalds 提交于
      Pull ARM SoC platform changes from Arnd Bergmann:
       "New and updated SoC support, notable changes include:
      
         - bcm:
              brcmstb SMP support
              initial iproc/cygnus support
         - exynos:
              Exynos4415 SoC support
              PMU and suspend support for Exynos5420
              PMU support for Exynos3250
              pm related maintenance
         - imx:
              new LS1021A SoC support
              vybrid 610 global timer support
         - integrator:
              convert to using multiplatform configuration
         - mediatek:
              earlyprintk support for mt8127/mt8135
         - meson:
              meson8 soc and l2 cache controller support
         - mvebu:
              Armada 38x CPU hotplug support
              drop support for prerelease Armada 375 Z1 stepping
              extended suspend support, now works on Armada 370/XP
         - omap:
              hwmod related maintenance
              prcm cleanup
         - pxa:
              initial pxa27x DT handling
         - rockchip:
              SMP support for rk3288
              add cpu frequency scaling support
         - shmobile:
              r8a7740 power domain support
              various small restart, timer, pci apmu changes
         - sunxi:
              Allwinner A80 (sun9i) earlyprintk support
         - ux500:
              power domain support
      
        Overall, a significant chunk of changes, coming mostly from the usual
        suspects: omap, shmobile, samsung and mvebu, all of which already
        contain a lot of platform specific code in arch/arm"
      
      * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (187 commits)
        ARM: mvebu: use the cpufreq-dt platform_data for independent clocks
        soc: integrator: Add terminating entry for integrator_cm_match
        ARM: mvebu: add SDRAM controller description for Armada XP
        ARM: mvebu: adjust mbus controller description on Armada 370/XP
        ARM: mvebu: add suspend/resume DT information for Armada XP GP
        ARM: mvebu: synchronize secondary CPU clocks on resume
        ARM: mvebu: make sure MMU is disabled in armada_370_xp_cpu_resume
        ARM: mvebu: Armada XP GP specific suspend/resume code
        ARM: mvebu: reserve the first 10 KB of each memory bank for suspend/resume
        ARM: mvebu: implement suspend/resume support for Armada XP
        clk: mvebu: add suspend/resume for gatable clocks
        bus: mvebu-mbus: provide a mechanism to save SDRAM window configuration
        bus: mvebu-mbus: suspend/resume support
        clocksource: time-armada-370-xp: add suspend/resume support
        irqchip: armada-370-xp: Add suspend/resume support
        ARM: add lolevel debug support for asm9260
        ARM: add mach-asm9260
        ARM: EXYNOS: use u8 for val[] in struct exynos_pmu_conf
        power: reset: imx-snvs-poweroff: add power off driver for i.mx6
        ARM: imx: temporarily remove CONFIG_SOC_FSL from LS1021A
        ...
      6cd94d5e
    • L
      Merge tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 6c9e9247
      Linus Torvalds 提交于
      Pull ARM SoC cleanups from Arnd Bergmann:
       "The remaining cleanups for 3.19 are to a large part result of
        devicetree conversion nearing completion on two other platforms
        besides AT91:
      
         - Like AT91, Renesas shmobile is in the process to migrate to DT and
           multiplatform, but using a different approach of doing it one SoC
           at a time.  For 3.19, the r8a7791 platform and associated "Koelsch"
           board are considered complete and we remove the non-DT
           non-multiplatform support for this.
      
         - The ARM Versatile Express has supported DT and multiplatform for a
           long time, but we have still kept the legacy board files around,
           because not all drivers were fully working before.  We have finally
           taken the last step to remove the board files.
      
        Other changes in this branch are preparation for the later branches or
        just unrelated to the more interesting changes:
      
         - The dts files for arm64 get moved into per-vendor directories for a
           clearer structure.
      
         - Some dead code removal (zynq, exynos, davinci, imx)
      
         - Using pr_*() macros more consistently instead of printk(KERN_*) in
           some platform code"
      
      * tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (71 commits)
        ARM: zynq: Remove secondary_startup() declaration from header
        ARM: vexpress: Enable regulator framework when MMCI is in use
        ARM: vexpress: Remove non-DT code
        ARM: imx: Remove unneeded .map_io initialization
        ARM: dts: imx6qdl-sabresd: Fix the microphone route
        ARM: imx: refactor mxc_iomux_mode()
        ARM: imx: simplify clk_pllv3_prepare()
        ARM: imx6q: drop unnecessary semicolon
        ARM: imx: clean up machine mxc_arch_reset_init_dt reset init
        ARM: dts: imx6qdl-rex: Remove unneeded 'fsl,mode' property
        ARM: dts: imx6qdl-gw5x: Remove unneeded 'fsl,mode' property
        ARM: dts: imx6qdl-sabresd: Use IMX6QDL_CLK_CKO define
        ARM: at91: remove useless init_time for DT-only SoCs
        ARM: davinci: Remove redundant casts
        ARM: davinci: Use standard logging styles
        ARM: shmobile: r8a7779: Spelling/grammar s/entity/identity/, s/map/mapping/
        ARM: shmobile: sh7372: Spelling/grammar s/entity map/identity mapping/
        ARM: shmobile: sh73a0: Spelling/grammar s/entity map/identity mapping/
        ARM: EXYNOS: Remove unused static iomapping
        ARM: at91: fix build breakage due to legacy board removals
        ...
      6c9e9247
    • L
      Merge tag 'at91-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 0563fdc0
      Linus Torvalds 提交于
      Pull ARM SoC cleanup on mach-at91 from Arnd Bergmann:
       "On Atmel AT91, the conversion to device tree is now considered
        complete, and all machines that were not already converted in 3.18 are
        assumed to be unused and dropped by the maintainer.
      
        All remaining board files that were written in C are dropped, and the
        ancient at91x40 sub-platform (based on an MMU-less ARM7) is removed
        altogether.  Cleaning up the last pieces was great fun, so I took the
        time to do some of the coding myself and removed several hundred code
        lines that ended up unused after the board files were done.
      
        There are still a couple of AT91 specific device drivers that are not
        converted to DT (CF, USB-OTG) and currently not working, and the
        platform itself is not "multiplatform"-enabled, but both issues are
        going to be taken care of in the 3.20 cycle.
      
        This is split out from the other cleanups purely based on the size of
        the branch"
      
      * tag 'at91-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (33 commits)
        ARM: at91: remove unused board.h file
        ARM: at91: remove unneeded header files
        ARM: at91/clocksource: remove !DT PIT initializations
        ARM: at91: at91rm9200 ST initialization is now DT only
        ARM: at91: remove old AT91-specific drivers
        ARM: at91: cleanup initilisation code by removing dead code
        ARM: at91/Kconfig: select board files automatically
        ARM: at91: remove unused IRQ function declarations
        ARM: at91: remove legacy IRQ driver and related code
        ARM: at91: remove old at91-specific clock driver
        ARM: at91: remove clock data in at91sam9n12.c and at91sam9x5.c files
        ARM: at91: remove all !DT related configuration options
        ARM: at91/trivial: update Kconfig comment to mention SAMA5
        ARM: at91: always USE_OF from now on
        ARM: at91/Kconfig: remove ARCH_AT91RM9200 option for drivers
        ARM: at91: switch configuration option to SOC_AT91RM9200
        ARM: at91: remove at91rm9200 legacy board support
        ARM: at91: remove at91rm9200 legacy boards files
        ARM: at91/Kconfig: remove useless fbdev Kconfig options
        ARM: at91: remove at91sam9261/at91sam9g10 legacy board support
        ...
      0563fdc0
    • L
      Merge tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 0a9e0acd
      Linus Torvalds 提交于
      Pull ARM SoC non-critical bug fixes from Arnd Bergmann:
       "These are bug fixes for harmless problems that were not important
        enough to get fixed in 3.19.  This contains updates to the MAINTAINERS
        file, in particular:
      
         - Ben Dooks stepped down as Samsung co-maintainer (thanks Ben for
           long years of maintaining this).  Kukjin Kim, who has been doing
           the work de-facto by himself recently is now the only maintainer.
      
         - Liviu, Sudeep and Lorenzo from ARM now officially maintain the
           Versatile Express platform, which was orphaned (thanks for
      
         - Gregory Fong and Florian Fainelli help out on the Broadcom BCM7XXX
           platform
      
         - Ray Jui and Scott Branden are the future maintainers for the newly
           merged Broadcom Cygnus platform.  Welcome!
      
        In terms of actual fixes, we have the usual set of OMAP bug fixes,
        which Tony Lindgren separates out well from the other OMAP changes,
        one really ep93xx regression fix against 3.11 that didn't make it for
        3.18, a few GIC changes from Marc Zyngier as a preparation for later
        rework (the current code is wrong in a harmless way), on Tegra
        regression and one samsung spelling fix"
      
      * tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: imx6: fix bogus use of irq_get_irq_data
        ARM: imx: irq: fix buggy usage of irq_data irq field
        MAINTAINERS: ARM Versatile Express platform, add missing pattern
        MAINTAINERS: ARM Versatile Express platform
        arm: ep93xx: add dma_masks for the M2P and M2M DMA controllers
        MAINTAINERS: Add ahci_st.c to ARCH/STI architecture
        MAINTAINERS: add entry for the GISB arbiter driver
        MAINTAINERS: update brcmstb entries
        MAINTAINERS: update email address and cleanup for exynos entry
        ARM: tegra: Re-add removed SoC id macro to tegra_resume()
        MAINTAINERS: Entry for Cygnus/iproc arm architecture
        ARM: OMAP: serial: remove last vestige of DTR_gpio support.
        ARM: OMAP2+: gpmc: Get rid of "ti,elm-id not found" warning
        ARM: EXYNOS: fix typo in static struct name "exynos5_list_diable_wfi_wfe"
        ARM: OMAP2: Remove unnecessary KERN_* in omap_phy_internal.c
        ARM: OMAP4+: Remove unused omap_l3_noc platform init
        ARM: dts: Add twl keypad map for omap3 EVM
        ARM: dts: Add twl keypad map for LDP
        ARM: dts: Fix NAND last partition size on LDP
        ARM: OMAP3: Fix errors for omap_l3_smx when booted with device tree
      0a9e0acd
    • L
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · b64bb1d7
      Linus Torvalds 提交于
      Pull arm64 updates from Will Deacon:
       "Here's the usual mixed bag of arm64 updates, also including some
        related EFI changes (Acked by Matt) and the MMU gather range cleanup
        (Acked by you).
      
        Changes include:
         - support for alternative instruction patching from Andre
         - seccomp from Akashi
         - some AArch32 instruction emulation, required by the Android folks
         - optimisations for exception entry/exit code, cmpxchg, pcpu atomics
         - mmu_gather range calculations moved into core code
         - EFI updates from Ard, including long-awaited SMBIOS support
         - /proc/cpuinfo fixes to align with the format used by arch/arm/
         - a few non-critical fixes across the architecture"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (70 commits)
        arm64: remove the unnecessary arm64_swiotlb_init()
        arm64: add module support for alternatives fixups
        arm64: perf: Prevent wraparound during overflow
        arm64/include/asm: Fixed a warning about 'struct pt_regs'
        arm64: Provide a namespace to NCAPS
        arm64: bpf: lift restriction on last instruction
        arm64: Implement support for read-mostly sections
        arm64: compat: align cacheflush syscall with arch/arm
        arm64: add seccomp support
        arm64: add SIGSYS siginfo for compat task
        arm64: add seccomp syscall for compat task
        asm-generic: add generic seccomp.h for secure computing mode 1
        arm64: ptrace: allow tracer to skip a system call
        arm64: ptrace: add NT_ARM_SYSTEM_CALL regset
        arm64: Move some head.text functions to executable section
        arm64: jump labels: NOP out NOP -> NOP replacement
        arm64: add support to dump the kernel page tables
        arm64: Add FIX_HOLE to permanent fixed addresses
        arm64: alternatives: fix pr_fmt string for consistency
        arm64: vmlinux.lds.S: don't discard .exit.* sections at link-time
        ...
      b64bb1d7
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 50569687
      Linus Torvalds 提交于
      Pull m68k updates from Geert Uytterhoeven.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k/mm: Eliminate memset after alloc_bootmem_pages
        nubus: Remove superfluous interrupt disable/restore
      50569687
    • L
      Merge tag 'nios2-v3.19-rc1' of git://git.rocketboards.org/linux-socfpga-next · a4a26e8e
      Linus Torvalds 提交于
      Pull Altera Nios II processor support from Ley Foon Tan:
       "Here is the Linux port for Nios II processor (from Altera) arch/nios2/
        tree for v3.19.
      
        The patchset has been discussed on the kernel mailing lists since
        April and has gone through 6 revisions of review.  The additional
        changes since then have been mostly further cleanups and fixes when
        merged with other trees.
      
        The arch code is in arch/nios2 and one asm-generic change (acked by
        Arnd)"
      
      Arnd Bergmann says:
       "I've reviewed the architecture port in the past and it looks good in
        its latest version"
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      
      * tag 'nios2-v3.19-rc1' of git://git.rocketboards.org/linux-socfpga-next: (40 commits)
        nios2: Make NIOS2_CMDLINE_IGNORE_DTB depend on CMDLINE_BOOL
        nios2: Add missing NR_CPUS to Kconfig
        nios2: asm-offsets: Remove unused definition TI_TASK
        nios2: Remove write-only struct member from nios2_timer
        nios2: Remove unused extern declaration of shm_align_mask
        nios2: include linux/type.h in io.h
        nios2: move include asm-generic/io.h to end of file
        nios2: remove include asm-generic/iomap.h from io.h
        nios2: remove unnecessary space before define
        nios2: fix error handling of irq_of_parse_and_map
        nios2: Use IS_ENABLED instead of #ifdefs to check config symbols
        nios2: Build infrastructure
        Documentation: Add documentation for Nios2 architecture
        MAINTAINERS: Add nios2 maintainer
        nios2: ptrace support
        nios2: Module support
        nios2: Nios2 registers
        nios2: Miscellaneous header files
        nios2: Cpuinfo handling
        nios2: Time keeping
        ...
      a4a26e8e
  5. 09 12月, 2014 5 次提交
    • L
      Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · f3f62a38
      Linus Torvalds 提交于
      Pull SCSI updates from James Bottomley:
       "This patch is the usual mix of driver updates (srp, ipr, scsi_debug,
        NCR5380, fnic, 53c974, ses, wd719x, hpsa, megaraid_sas).
      
        Of those, wd7a9x is new and 53c974 is a rewrite of the old tmscsim
        driver and the extensive work by Finn Thain rewrites all the NCR5380
        based drivers.
      
        There's also extensive infrastructure updates: a new logging
        infrastructure for sense information and a rewrite of the tagged
        command queue API and an assortment of minor updates"
      
      * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (183 commits)
        scsi: set fmt to NULL scsi_extd_sense_format() by default
        libsas: remove task_collector mode
        wd719x: remove dma_cache_sync call
        scsi_debug: add Report supported opcodes+tmfs; Compare and write
        scsi_debug: change SCSI command parser to table driven
        scsi_debug: add Capacity Changed Unit Attention
        scsi_debug: append inject error flags onto scsi_cmnd object
        scsi_debug: pinpoint invalid field in sense data
        wd719x: Add firmware documentation
        wd719x: Introduce Western Digital WD7193/7197/7296 PCI SCSI card driver
        eeprom-93cx6: Add (read-only) support for 8-bit mode
        esas2r: fix an oversight in setting return value
        esas2r: fix an error path in esas2r_ioctl_handler
        esas2r: fir error handling in do_fm_api
        scsi: add SPC-3 command definitions
        scsi: rename SERVICE_ACTION_IN to SERVICE_ACTION_IN_16
        scsi: remove scsi_driver owner field
        scsi: move scsi_dispatch_cmd to scsi_lib.c
        scsi: stop passing a gfp_mask argument down the command setup path
        scsi: remove scsi_next_command
        ...
      f3f62a38
    • L
      Merge tag 'dm-3.19-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 140dfc92
      Linus Torvalds 提交于
      Pull device mapper updates from Mike Snitzer:
      
       - Significant DM thin-provisioning performance improvements to meet
         performance requirements that were requested by the Gluster
         distributed filesystem.
      
         Specifically, dm-thinp now takes care to aggregate IO that will be
         issued to the same thinp block before issuing IO to the underlying
         devices.  This really helps improve performance on HW RAID6 devices
         that have a writeback cache because it avoids RMW in the HW RAID
         controller.
      
       - Some stable fixes: fix leak in DM bufio if integrity profiles were
         enabled, use memzero_explicit in DM crypt to avoid any potential for
         information leak, and a DM cache fix to properly mark a cache block
         dirty if it was promoted to the cache via the overwrite optimization.
      
       - A few simple DM persistent data library fixes
      
       - DM cache multiqueue policy block promotion improvements.
      
       - DM cache discard improvements that take advantage of range
         (multiblock) discard support in the DM bio-prison.  This allows for
         much more efficient bulk discard processing (e.g.  when mkfs.xfs
         discards the entire device).
      
       - Some small optimizations in DM core and RCU deference cleanups
      
       - DM core changes to suspend/resume code to introduce the new internal
         suspend/resume interface that the DM thin-pool target now uses to
         suspend/resume active thin devices when the thin-pool must
         suspend/resume.
      
         This avoids forcing userspace to track all active thin volumes in a
         thin-pool when the thin-pool is suspended for the purposes of
         metadata or data space resize.
      
      * tag 'dm-3.19-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (49 commits)
        dm crypt: use memzero_explicit for on-stack buffer
        dm space map metadata: fix sm_bootstrap_get_count()
        dm space map metadata: fix sm_bootstrap_get_nr_blocks()
        dm bufio: fix memleak when using a dm_buffer's inline bio
        dm cache: fix spurious cell_defer when dealing with partial block at end of device
        dm cache: dirty flag was mistakenly being cleared when promoting via overwrite
        dm cache: only use overwrite optimisation for promotion when in writeback mode
        dm cache: discard block size must be a multiple of cache block size
        dm cache: fix a harmless race when working out if a block is discarded
        dm cache: when reloading a discard bitset allow for a different discard block size
        dm cache: fix some issues with the new discard range support
        dm array: if resizing the array is a noop set the new root to the old one
        dm: use rcu_dereference_protected instead of rcu_dereference
        dm thin: fix pool_io_hints to avoid looking at max_hw_sectors
        dm thin: suspend/resume active thin devices when reloading thin-pool
        dm: enhance internal suspend and resume interface
        dm thin: do not allow thin device activation while pool is suspended
        dm: add presuspend_undo hook to target_type
        dm: return earlier from dm_blk_ioctl if target doesn't implement .ioctl
        dm thin: remove stale 'trim' message in block comment above pool_message
        ...
      140dfc92
    • L
      Merge tag 'regulator-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · f94784bd
      Linus Torvalds 提交于
      Pull regulator updates from Mark Brown:
       "The main thing this time around is support for suspend mode
        configuration from DT which will enable some very useful power savings
        on systems where we can't rely on the bootloader configuration.  We
        still don't really support dynamic configuration of this at runtime,
        that may come later if there is any demand.
      
        Summary:
         - Support for specifying the target regulation mode and voltage
           during system suspend via DT, enabling power savings in that mode.
         - Reduce the default verbosity of the logging on boot, improving boot
           times especially for systems with very large numbers of regulators.
         - Lots of cleanups and fixes for Maxim PMIC drivers.
         - New driver for Richtek RT5033"
      
      * tag 'regulator-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (62 commits)
        regulator: core: Fix regualtor_ena_gpio_free not to access pin after freeing
        regulator: sky81452: Modify Device Tree structure
        regulator: sky81452: Modify Device Tree structure
        dt-bindings: Update documentation for "system-power-controller" and fix misspellings
        of: Rename "poweroff-source" property to "system-power-controller"
        regulator: max77686: Remove support for board files
        regulator: max77802: Remove support for board files
        regulator: max77802: Fill regulator modes translation callback
        regulator: max77802: Document binding for regulator operating modes
        regulator: of: Add support for parsing initial and suspend modes
        regulator: of: Pass the regulator description in the match table
        regulator: of: Add regulator desc param to of_get_regulator_init_data()
        regulator: Add mode mapping function to struct regulator_desc
        regulator: Document binding for initial and suspend modes
        regulator: core: Add PRE_DISABLE notification
        regulator: gpio: fix parsing of gpio list
        regulator: rpm: add support for RPM-controller SMB208
        regulator: da9063: Do not transform local IRQ to virtual
        regulator: sky81452: Modify dependent Kconfig symbol
        regulator: rt5033: Add RT5033 Regulator device driver
        ...
      f94784bd
    • L
      Merge tag 'regmap-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · de740386
      Linus Torvalds 提交于
      Pull regmap updates from Mark Brown:
       "A couple of new features this time around, nothing that should have
        any impact on most users:
      
         - Cleanups and optimization of the path for reading back the register
           defaults from the hardware at startup, reducing boot times for
           devices that use this (most don't, either populating on demand or
           providing defaults).
         - A bus implementation for AC'97 devices"
      
      * tag 'regmap-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: ac97: Add generic AC'97 callbacks
        regmap: cache: Sort include headers alphabetically
        regmap: cache: Fix possible ZERO_SIZE_PTR pointer dereferencing error.
        regmap: cache: use kmalloc_array instead of kmalloc
        regmap: cache: speed regcache_hw_init() up.
        regmap: cache: fix errno in regcache_hw_init()
        regmap: cache: cleanup regcache_hw_init()
        regmap: cache: fix errno in regcache_hw_init()
      de740386
    • L
      Merge tag 'hwmon-for-linus-3.19' of... · 177808cd
      Linus Torvalds 提交于
      Merge tag 'hwmon-for-linus-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
       "Notable changes:
         - new driver for NCT7802Y
         - support for TMP435, LM95233, LM95235, NCT6792D, and NXP LM75B
         - regulator support for PMBus chips, specifically LTX2978
         - support for humidity sensors to iio-hwmon bridge driver
      
      * tag 'hwmon-for-linus-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (21 commits)
        hwmon: (tmp401) Detect TMP435 on all addresses it supports
        hwmon: (lm75) Strengthen detect function
        hwmon: (gpio-fan) Add a shutdown handler to poweroff the fans
        hwmon: (gpio-fan) Allow usage of gpio operations that may sleep
        hwmon: (tmp401) Bail out from tmp401_probe() in case of write errors
        hwmon: (tmp401) Add support for TI TMP435
        hwmon: (lm95234) Add support for LM95233
        hwmon: (lm95245) Add support for LM95235
        hwmon: (ina2xx) bail-out from ina2xx_probe() in case of configuration errors
        hwmon: (nct6775) Add blank lines after declarations
        hwmon: (nct6775) Add support for NCT6792D
        hwmon: (nct6775) Documentation updates
        hwmon: (lm75) Add support for the NXP LM75B
        hwmon: Driver for Nuvoton NCT7802Y
        hwmon: (ibmpowernv) Convert to module_platform_driver
        hwmon: (ibmpowernv) Use platform 'id_table' to probe the device
        hwmon: (iio_hwmon) Add support for humidity sensors
        hwmon: (ltc2978) Add regulator support
        hwmon: (pmbus) Add regulator support
        hwmon: (pmbus) add helpers for byte write and read modify write
        ...
      177808cd