1. 14 10月, 2016 2 次提交
    • R
      Merge branches 'pm-cpufreq' and 'pm-devfreq' · 383731d9
      Rafael J. Wysocki 提交于
      * pm-cpufreq:
        cpufreq: CPPC: Correct desired_perf calculation
        cpufreq: conservative: Fix next frequency selection
        cpufreq: skip invalid entries when searching the frequency
        cpufreq: intel_pstate: Fix struct pstate_adjust_policy kerneldoc
        cpufreq: intel_pstate: Proportional algorithm for Atom
        cpufreq: intel_pstate: Clarify comment in get_target_pstate_use_performance()
        cpufreq: intel_pstate: Fix unsafe HWP MSR access
      
      * pm-devfreq:
        PM / devfreq: Skip status update on uninitialized previous_freq
        PM / devfreq: Add proper locking around list_del()
        PM / devfreq: exynos-nocp: Remove redundant code
        PM / devfreq: exynos-nocp: Select REGMAP_MMIO
      383731d9
    • H
      cpufreq: CPPC: Correct desired_perf calculation · c197d758
      Hoan Tran 提交于
      The desired_perf is an abstract performance number. Its value should
      be in the range of [lowest perf, highest perf] of CPPC.
      The correct calculation is
        desired_perf = freq * cppc_highest_perf / cppc_dmi_max_khz
      
      And cppc_cpufreq_set_target() returns if desired_perf is exactly
      the same with the old perf.
      Signed-off-by: NHoan Tran <hotran@apm.com>
      Reviewed-by: NPrashanth Prakash <pprakash@codeaurora.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      c197d758
  2. 13 10月, 2016 4 次提交
  3. 11 10月, 2016 4 次提交
  4. 10 10月, 2016 2 次提交
    • R
      cpufreq: intel_pstate: Clarify comment in get_target_pstate_use_performance() · f00593a4
      Rafael J. Wysocki 提交于
      Make the comment explaining the meaning of the perf_scaled variable
      in get_target_pstate_use_performance() more straightforward.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f00593a4
    • S
      cpufreq: intel_pstate: Fix unsafe HWP MSR access · f9f4872d
      Srinivas Pandruvada 提交于
      This is a requirement that MSR MSR_PM_ENABLE must be set to 0x01 before
      reading MSR_HWP_CAPABILITIES on a given CPU. If cpufreq init() is
      scheduled on a CPU which is not same as policy->cpu or migrates to a
      different CPU before calling msr read for MSR_HWP_CAPABILITIES, it
      is possible that MSR_PM_ENABLE was not to set to 0x01 on that CPU.
      This will cause GP fault. So like other places in this path
      rdmsrl_on_cpu should be used instead of rdmsrl.
      
      Moreover the scope of MSR_HWP_CAPABILITIES is on per thread basis, so it
      should be read from the same CPU, for which MSR MSR_HWP_REQUEST is
      getting set.
      
      dmesg dump or warning:
      
      [   22.014488] WARNING: CPU: 139 PID: 1 at arch/x86/mm/extable.c:50 ex_handler_rdmsr_unsafe+0x68/0x70
      [   22.014492] unchecked MSR access error: RDMSR from 0x771
      [   22.014493] Modules linked in:
      [   22.014507] CPU: 139 PID: 1 Comm: swapper/0 Not tainted 4.7.5+ #1
      ...
      ...
      [   22.014516] Call Trace:
      [   22.014542]  [<ffffffff813d7dd1>] dump_stack+0x63/0x82
      [   22.014558]  [<ffffffff8107bc8b>] __warn+0xcb/0xf0
      [   22.014561]  [<ffffffff8107bcff>] warn_slowpath_fmt+0x4f/0x60
      [   22.014563]  [<ffffffff810676f8>] ex_handler_rdmsr_unsafe+0x68/0x70
      [   22.014564]  [<ffffffff810677d9>] fixup_exception+0x39/0x50
      [   22.014604]  [<ffffffff8102e400>] do_general_protection+0x80/0x150
      [   22.014610]  [<ffffffff817f9ec8>] general_protection+0x28/0x30
      [   22.014635]  [<ffffffff81687940>] ? get_target_pstate_use_performance+0xb0/0xb0
      [   22.014642]  [<ffffffff810600c7>] ? native_read_msr+0x7/0x40
      [   22.014657]  [<ffffffff81688123>] intel_pstate_hwp_set+0x23/0x130
      [   22.014660]  [<ffffffff81688406>] intel_pstate_set_policy+0x1b6/0x340
      [   22.014662]  [<ffffffff816829bb>] cpufreq_set_policy+0xeb/0x2c0
      [   22.014664]  [<ffffffff81682f39>] cpufreq_init_policy+0x79/0xe0
      [   22.014666]  [<ffffffff81682cb0>] ? cpufreq_update_policy+0x120/0x120
      [   22.014669]  [<ffffffff816833a6>] cpufreq_online+0x406/0x820
      [   22.014671]  [<ffffffff8168381f>] cpufreq_add_dev+0x5f/0x90
      [   22.014717]  [<ffffffff81530ac8>] subsys_interface_register+0xb8/0x100
      [   22.014719]  [<ffffffff816821bc>] cpufreq_register_driver+0x14c/0x210
      [   22.014749]  [<ffffffff81fe1d90>] intel_pstate_init+0x39d/0x4d5
      [   22.014751]  [<ffffffff81fe13f2>] ? cpufreq_gov_dbs_init+0x12/0x12
      
      Cc: 4.3+ <stable@vger.kernel.org> # 4.3+
      Signed-off-by: NSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f9f4872d
  5. 04 10月, 2016 1 次提交
    • L
      Merge tag 'pm-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 72ec9456
      Linus Torvalds 提交于
      Pull power management updates from Rafael Wysocki:
       "Traditionally, cpufreq is the area with the greatest number of
        changes, but there are fewer of them than last time. There also is
        some activity in the generic power domains and the devfreq frameworks,
        a couple of system suspend and hibernation fixes and some assorted
        changes in other places.
      
        One new feature is the cpufreq change to allow the scheduler to pass
        hints to the governors' utilization update callbacks and some code
        rework based on that. Another one is the support for domain removal in
        the generic power domains framework. Also it is now possible to use
        hibernation with PAGE_POISONING_ZERO enabled and devfreq supports the
        RockChip DFI controller and the rk3399 DMC.
      
        The rest of the changes is mostly fixes and cleanups in a number of
        places.
      
        Specifics:
      
         - Add a mechanism for passing hints from the scheduler to cpufreq
           governors via their utilization update callbacks and use it to
           introduce "IOwait boosting" into the schedutil governor and
           intel_pstate that will make them boost performance if the enqueued
           task was previously waiting on I/O (Rafael Wysocki).
      
         - Fix a schedutil governor problem that causes it to overestimate
           utilization if SMT is in use (Steve Muckle).
      
         - Update defconfigs trying to use the schedutil governor as a module
           which is not possible any more (Javier Martinez Canillas).
      
         - Update the intel_pstate's pstate_sample tracepoint to take "IOwait
           boosting" into account (Srinivas Pandruvada).
      
         - Fix a problem in the cpufreq core causing it to mishandle the
           initialization of CPUs registered after the cpufreq driver (Viresh
           Kumar, Rafael Wysocki).
      
         - Make the cpufreq-dt driver support per-policy governor tunables,
           clean it up and update its Kconfig description (Viresh Kumar).
      
         - Add support for more ARM platforms to the cpufreq-dt driver
           (Chanwoo Choi, Dave Gerlach, Geert Uytterhoeven).
      
         - Make the cpufreq CPPC driver report frequencies in KHz to avoid
           user space compatiblility issues (Al Stone, Hoan Tran).
      
         - Clean up a few cpufreq drivers (st, kirkwood, SCPI) a bit (Colin
           Ian King, Markus Elfring).
      
         - Constify some local structures in the intel_pstate driver (Julia
           Lawall).
      
         - Add a Documentation/cpu-freq/ entry to MAINTAINERS (Jean Delvare).
      
         - Add support for PM domain removal to the generic power domains
           (genpd) framework, add new DT helper functions to it and make it
           always enable debugfs support if available (Jon Hunter, Tomeu
           Vizoso).
      
         - Clean up the generic power domains (genpd) framework and make it
           avoid measuring power-on and power-off latencies during system-wide
           PM transitions (Ulf Hansson).
      
         - Add support for the RockChip DFI controller and the rk3399 DMC to
           the devfreq framework (Lin Huang, Axel Lin, Arnd Bergmann).
      
         - Add COMPILE_TEST to the devfreq framework (Krzysztof Kozlowski,
           Stephen Rothwell).
      
         - Fix a minor issue in the exynos-ppmu devfreq driver and fix up
           devfreq Kconfig indentation style (Wei Yongjun, Jisheng Zhang).
      
         - Fix the system suspend interface to make suspend-to-idle work if
           platform suspend operations have not been registered (Sudeep
           Holla).
      
         - Make it possible to use hibernation with PAGE_POISONING_ZERO
           enabled (Anisse Astier).
      
         - Increas the default timeout of the system suspend/resume watchdog
           and make it depend on EXPERT (Chen Yu).
      
         - Make the operating performance points (OPP) framework avoid using
           OPPs that aren't supported by the platform and fix a build warning
           in it (Dave Gerlach, Arnd Bergmann).
      
         - Fix the ARM cpuidle driver's return value (Christophe Jaillet).
      
         - Make the SmartReflex AVS (Adaptive Voltage Scaling) driver use more
           common logging style (Joe Perches)"
      
      * tag 'pm-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (58 commits)
        PM / OPP: Don't support OPP if it provides supported-hw but platform does not
        cpufreq: st: add missing \n to end of dev_err message
        cpufreq: kirkwood: add missing \n to end of dev_err messages
        PM / Domains: Rename pm_genpd_sync_poweron|poweroff()
        PM / Domains: Don't measure latency of ->power_on|off() during system PM
        PM / Domains: Remove redundant system PM callbacks
        PM / Domains: Simplify detaching a device from its genpd
        PM / devfreq: rk3399_dmc: Remove explictly regulator_put call in .remove
        PM / devfreq: rockchip: add PM_DEVFREQ_EVENT dependency
        PM / OPP: avoid maybe-uninitialized warning
        PM / Domains: Allow holes in genpd_data.domains array
        cpufreq: CPPC: Avoid overflow when calculating desired_perf
        cpufreq: ti: Use generic platdev driver
        cpufreq: intel_pstate: Add io_boost trace
        partial revert of "PM / devfreq: Add COMPILE_TEST for build coverage"
        cpufreq: intel_pstate: Use IOWAIT flag in Atom algorithm
        cpufreq: schedutil: Add iowait boosting
        cpufreq / sched: SCHED_CPUFREQ_IOWAIT flag to indicate iowait condition
        PM / Domains: Add support for removing nested PM domains by provider
        PM / Domains: Add support for removing PM domains
        ...
      72ec9456
  6. 03 10月, 2016 8 次提交
    • L
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 7af8a0f8
      Linus Torvalds 提交于
      Pull arm64 updates from Will Deacon:
       "It's a bit all over the place this time with no "killer feature" to
        speak of.  Support for mismatched cache line sizes should help people
        seeing whacky JIT failures on some SoCs, and the big.LITTLE perf
        updates have been a long time coming, but a lot of the changes here
        are cleanups.
      
        We stray outside arch/arm64 in a few areas: the arch/arm/ arch_timer
        workaround is acked by Russell, the DT/OF bits are acked by Rob, the
        arch_timer clocksource changes acked by Marc, CPU hotplug by tglx and
        jump_label by Peter (all CC'd).
      
        Summary:
      
         - Support for execute-only page permissions
         - Support for hibernate and DEBUG_PAGEALLOC
         - Support for heterogeneous systems with mismatches cache line sizes
         - Errata workarounds (A53 843419 update and QorIQ A-008585 timer bug)
         - arm64 PMU perf updates, including cpumasks for heterogeneous systems
         - Set UTS_MACHINE for building rpm packages
         - Yet another head.S tidy-up
         - Some cleanups and refactoring, particularly in the NUMA code
         - Lots of random, non-critical fixes across the board"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (100 commits)
        arm64: tlbflush.h: add __tlbi() macro
        arm64: Kconfig: remove SMP dependence for NUMA
        arm64: Kconfig: select OF/ACPI_NUMA under NUMA config
        arm64: fix dump_backtrace/unwind_frame with NULL tsk
        arm/arm64: arch_timer: Use archdata to indicate vdso suitability
        arm64: arch_timer: Work around QorIQ Erratum A-008585
        arm64: arch_timer: Add device tree binding for A-008585 erratum
        arm64: Correctly bounds check virt_addr_valid
        arm64: migrate exception table users off module.h and onto extable.h
        arm64: pmu: Hoist pmu platform device name
        arm64: pmu: Probe default hw/cache counters
        arm64: pmu: add fallback probe table
        MAINTAINERS: Update ARM PMU PROFILING AND DEBUGGING entry
        arm64: Improve kprobes test for atomic sequence
        arm64/kvm: use alternative auto-nop
        arm64: use alternative auto-nop
        arm64: alternative: add auto-nop infrastructure
        arm64: lse: convert lse alternatives NOP padding to use __nops
        arm64: barriers: introduce nops and __nops macros for NOP sequences
        arm64: sysreg: replace open-coded mrs_s/msr_s with {read,write}_sysreg_s
        ...
      7af8a0f8
    • L
      Linux 4.8 · c8d2bc9b
      Linus Torvalds 提交于
      c8d2bc9b
    • L
      Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm · f76d9c61
      Linus Torvalds 提交于
      Pull ARM fixes from Russell King:
       "Three relatively small fixes for ARM:
      
         - Roger noticed that dma_max_pfn() was calculating the upper limit
           wrongly, by adding the PFN offset of memory twice.
      
         - A fix from Robin to correct parsing of MPIDR values when the
           address size is larger than one BE32 unit.
      
         - A fix from Srinivas to ensure that we do not rely on the boot
           loader (or previous Linux kernel) setting the translation table
           base register a certain way in the decompressor, which can lead to
           crashes"
      
      * 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 8618/1: decompressor: reset ttbcr fields to use TTBR0 on ARMv7
        ARM: 8617/1: dma: fix dma_max_pfn()
        ARM: 8616/1: dt: Respect property size when parsing CPUs
      f76d9c61
    • S
      ARM: 8618/1: decompressor: reset ttbcr fields to use TTBR0 on ARMv7 · 117e5e9c
      Srinivas Ramana 提交于
      If the bootloader uses the long descriptor format and jumps to
      kernel decompressor code, TTBCR may not be in a right state.
      Before enabling the MMU, it is required to clear the TTBCR.PD0
      field to use TTBR0 for translation table walks.
      
      The commit dbece458 ("ARM: 7501/1: decompressor:
      reset ttbcr for VMSA ARMv7 cores") does the reset of TTBCR.N, but
      doesn't consider all the bits for the size of TTBCR.N.
      
      Clear TTBCR.PD0 field and reset all the three bits of TTBCR.N to
      indicate the use of TTBR0 and the correct base address width.
      
      Fixes: dbece458 ("ARM: 7501/1: decompressor: reset ttbcr for VMSA ARMv7 cores")
      Acked-by: NRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: NSrinivas Ramana <sramana@codeaurora.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      117e5e9c
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · be67d60b
      Linus Torvalds 提交于
      Pull x86 fixes from Thomas Gleixner:
       "The last regression fixes for 4.8 final:
      
         - Two patches addressing the fallout of the CR4 optimizations which
           caused CR4-less machines to fail.
      
         - Fix the VDSO build on big endian machines
      
         - Take care of FPU initialization if no CPUID is available otherwise
           task struct size ends up being zero
      
         - Fix up context tracking in case load_gs_index fails"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/entry/64: Fix context tracking state warning when load_gs_index fails
        x86/boot: Initialize FPU and X86_FEATURE_ALWAYS even if we don't have CPUID
        x86/vdso: Fix building on big endian host
        x86/boot: Fix another __read_cr4() case on 486
        x86/init: Fix cr4_init_shadow() on CR4-less machines
      be67d60b
    • L
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 66188fb1
      Linus Torvalds 提交于
      Pull MIPS fixes from Ralf Baechle:
       "Another round of fixes:
      
         - CM: Fix mips_cm_max_vp_width for non-MT kernels on MT systems
         - CPS: Avoid BUG() when offlining pre-r6 CPUs
         - DEC: Avoid gas warnings due to suspicious instruction scheduling by
           manually expanding assembler macros.
         - FTLB: Fix configuration by moving confiuguratoin after probing
         - FTLB: clear execution hazard after changing FTLB enable
         - Highmem: Fix detection of unsupported highmem with cache aliases
         - I6400: Don't touch FTLBP chicken bits
         - microMIPS: Fix BUILD_ROLLBACK_PROLOGUE
         - Malta: Fix IOCU disable switch read for MIPS64
         - Octeon: Fix probing of devices attached to GPIO lines
         - uprobes: Misc small fixes"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: CM: Fix mips_cm_max_vp_width for non-MT kernels on MT systems
        MIPS: Fix detection of unsupported highmem with cache aliases
        MIPS: Malta: Fix IOCU disable switch read for MIPS64
        MIPS: Fix BUILD_ROLLBACK_PROLOGUE for microMIPS
        MIPS: clear execution hazard after changing FTLB enable
        MIPS: Configure FTLB after probing TLB sizes from config4
        MIPS: Stop setting I6400 FTLBP
        MIPS: DEC: Avoid la pseudo-instruction in delay slots
        MIPS: Octeon: mark GPIO controller node not populated after IRQ init.
        MIPS: uprobes: fix use of uninitialised variable
        MIPS: uprobes: remove incorrect set_orig_insn
        MIPS: fix uretprobe implementation
        MIPS: smp-cps: Avoid BUG() when offlining pre-r6 CPUs
      66188fb1
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 0c7fc30f
      Linus Torvalds 提交于
      Pull sparc fixes from David Miller:
      
       1) Fix section mismatches in some builds, from Paul Gortmaker.
      
       2) Need to count huge zero page mappings when doing TSB sizing, from
          Mike Kravetz.
      
       3) Fix handing of cpu_possible_mask when nr_cpus module option is
          specified, from Atish Patra.
      
       4) Don't allocate irq stacks until nr_irqs has been processed, also
          from Atish Patra.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc64: Fix non-SMP build.
        sparc64: Fix irq stack bootmem allocation.
        sparc64: Fix cpu_possible_mask if nr_cpus is set
        sparc64 mm: Fix more TSB sizing issues
        sparc64: fix section mismatch in find_numa_latencies_for_group
      0c7fc30f
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · bb6bbc7c
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Fix wrong TCP checksums on MTU probing when checksum offloading is
          disabled, from Douglas Caetano dos Santos.
      
       2) Fix qdisc backlog updates in qfq and sfb schedulers, from Cong Wang.
      
       3) Route lookup flow key protocol value is wrong in ip6gre_xmit_other(),
          fix from Lance Richardson.
      
       4) Scheduling while atomic in multicast routing code of ipv4 and ipv6,
          fix from Nikolay Aleksandrov.
      
       5) Fix packet alignment in fec driver, from Eric Nelson.
      
       6) Fix perf regression in sctp due to struct layout and cache misses,
          from Xin Long.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        sctp: fix the issue sctp_diag uses lock_sock in rcu_read_lock
        sctp: change to check peer prsctp_capable when using prsctp polices
        sctp: remove prsctp_param from sctp_chunk
        sctp: move sent_count to the memory hole in sctp_chunk
        tg3: Avoid NULL pointer dereference in tg3_io_error_detected()
        act_ife: Fix false encoding
        act_ife: Fix external mac header on encode
        VSOCK: Don't dec ack backlog twice for rejected connections
        Revert "net: ethernet: bcmgenet: use phydev from struct net_device"
        net: fec: align IP header in hardware
        net: fec: remove QUIRK_HAS_RACC from i.mx27
        net: fec: remove QUIRK_HAS_RACC from i.mx25
        ipmr, ip6mr: fix scheduling while atomic and a deadlock with ipmr_get_route
        ip6_gre: fix flowi6_proto value in ip6gre_xmit_other()
        tcp: fix a compile error in DBGUNDO()
        tcp: fix wrong checksum calculation on MTU probing
        sch_sfb: keep backlog updated with qlen
        sch_qfq: keep backlog updated with qlen
        can: dev: fix deadlock reported after bus-off
      bb6bbc7c
  7. 02 10月, 2016 6 次提交
    • R
      Merge branches 'pm-devfreq' and 'pm-sleep' · 993eb0ae
      Rafael J. Wysocki 提交于
      * pm-devfreq:
        PM / devfreq: rk3399_dmc: Remove explictly regulator_put call in .remove
        PM / devfreq: rockchip: add PM_DEVFREQ_EVENT dependency
        partial revert of "PM / devfreq: Add COMPILE_TEST for build coverage"
        PM / devfreq: rockchip: add devfreq driver for rk3399 dmc
        Documentation: bindings: add dt documentation for rk3399 dmc
        PM / devfreq: event: support rockchip dfi controller
        Documentation: bindings: add dt documentation for dfi controller
        PM / devfreq: event: remove duplicate devfreq_event_get_drvdata()
        PM / devfreq: fix Kconfig indent style
        PM / devfreq: Add COMPILE_TEST for build coverage
        PM / devfreq: exynos-ppmu: remove unneeded of_node_put()
      
      * pm-sleep:
        PM / Hibernate: allow hibernation with PAGE_POISONING_ZERO
        PM / sleep: enable suspend-to-idle even without registered suspend_ops
        PM / sleep: Increase default DPM watchdog timeout to 120
      993eb0ae
    • R
      Merge branches 'pm-cpuidle', 'pm-opp' and 'pm-avs' · e35db92b
      Rafael J. Wysocki 提交于
      * pm-cpuidle:
        ARM: cpuidle: Fix error return code
      
      * pm-opp:
        PM / OPP: Don't support OPP if it provides supported-hw but platform does not
        PM / OPP: avoid maybe-uninitialized warning
      
      * pm-avs:
        PM / AVS: SmartReflex: Neaten logging
      e35db92b
    • R
      Merge branch 'pm-cpufreq' · 7005f6dc
      Rafael J. Wysocki 提交于
      * pm-cpufreq: (24 commits)
        cpufreq: st: add missing \n to end of dev_err message
        cpufreq: kirkwood: add missing \n to end of dev_err messages
        cpufreq: CPPC: Avoid overflow when calculating desired_perf
        cpufreq: ti: Use generic platdev driver
        cpufreq: intel_pstate: Add io_boost trace
        cpufreq: intel_pstate: Use IOWAIT flag in Atom algorithm
        cpufreq: schedutil: Add iowait boosting
        cpufreq / sched: SCHED_CPUFREQ_IOWAIT flag to indicate iowait condition
        cpufreq: CPPC: Force reporting values in KHz to fix user space interface
        cpufreq: create link to policy only for registered CPUs
        intel_pstate: constify local structures
        cpufreq: dt: Support governor tunables per policy
        cpufreq: dt: Update kconfig description
        cpufreq: dt: Remove unused code
        MAINTAINERS: Add Documentation/cpu-freq/
        cpufreq: dt: Add support for r8a7792
        cpufreq / sched: ignore SMT when determining max cpu capacity
        cpufreq: Drop unnecessary check from cpufreq_policy_alloc()
        ARM: multi_v7_defconfig: Don't attempt to enable schedutil governor as module
        ARM: exynos_defconfig: Don't attempt to enable schedutil governor as module
        ...
      7005f6dc
    • R
      Merge branch 'pm-cpufreq-sched' into pm-cpufreq · b6e25117
      Rafael J. Wysocki 提交于
      b6e25117
    • R
      Merge branch 'pm-domains' · 2dc3c72c
      Rafael J. Wysocki 提交于
      * pm-domains:
        PM / Domains: Rename pm_genpd_sync_poweron|poweroff()
        PM / Domains: Don't measure latency of ->power_on|off() during system PM
        PM / Domains: Remove redundant system PM callbacks
        PM / Domains: Simplify detaching a device from its genpd
        PM / Domains: Allow holes in genpd_data.domains array
        PM / Domains: Add support for removing nested PM domains by provider
        PM / Domains: Add support for removing PM domains
        PM / Domains: Store the provider in the PM domain structure
        PM / Domains: Prepare for adding support to remove PM domains
        PM / Domains: Verify the PM domain is present when adding a provider
        PM / Domains: Don't expose xlate and provider helper functions
        PM / Domains: Don't expose generic_pm_domain structure to clients
        staging: board: Remove calls to of_genpd_get_from_provider()
        ARM: EXYNOS: Remove calls to of_genpd_get_from_provider()
        PM / Domains: Add new helper functions for device-tree
        PM / Domains: Always enable debugfs support if available
      2dc3c72c
    • P
      MIPS: CM: Fix mips_cm_max_vp_width for non-MT kernels on MT systems · 6605d156
      Paul Burton 提交于
      When discovering the number of VPEs per core, smp_num_siblings will be
      incorrect for kernels built without support for the MIPS MultiThreading
      (MT) ASE running on systems which implement said ASE. This leads to
      accesses to VPEs in secondary cores being performed incorrectly since
      mips_cm_vp_id calculates the wrong ID to write to the local "other"
      registers. Fix this by examining the number of VPEs in the core as
      reported by the CM.
      
      This patch presumes that the number of VPEs will be the same in each
      core of the system. As this path only applies to systems with CM version
      2.5 or lower, and this property is true of all such known systems, this
      is likely to be fine but is described in a comment for good measure.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/14338/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      6605d156
  8. 01 10月, 2016 7 次提交
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · f51fdffa
      Linus Torvalds 提交于
      Pull SCSI fix from James Bottomley:
       "One final fix before 4.8.
      
        There was a memory leak triggered by turning scsi mq off due to the
        fact that we assume on host release that the already running hosts
        weren't mq based because that's the state of the global flag (even
        though they were).
      
        Fix it by tracking this on a per host host basis"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: Avoid that toggling use_blk_mq triggers a memory leak
      f51fdffa
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 2161a2a6
      Linus Torvalds 提交于
      Pull input fix from Dmitry Torokhov:
       "One small change to make joydev (which is used by older games) to bind
        to devices that export Z axis but not X or Y (such as TRC rudder)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: joydev - recognize devices with Z axis as joysticks
      2161a2a6
    • L
      Merge branch 'akpm' (patches from Andrew) · dbd8805b
      Linus Torvalds 提交于
      Merge more fixes from Andrew Morton:
       "Three fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        include/linux/property.h: fix typo/compile error
        ocfs2: fix deadlock on mmapped page in ocfs2_write_begin_nolock()
        mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page()
      dbd8805b
    • J
      include/linux/property.h: fix typo/compile error · 37aa7271
      John Youn 提交于
      This fixes commit d76eebfa ("include/linux/property.h: fix build
      issues with gcc-4.4.4").
      
      With that commit we get the following compile error when using the
      PROPERTY_ENTRY_INTEGER_ARRAY macro.
      
       include/linux/property.h:201:39: error: `u32_data' undeclared (first
                       use in this function)
        PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u32, _val_)
                                             ^
       include/linux/property.h:193:17: note: in definition of macro
                       `PROPERTY_ENTRY_INTEGER_ARRAY'
        { .pointer = { _type_##_data = _val_ } },  \
                       ^
      
      This needs a '.' to reference the union member.  It seems this was just
      overlooked here since it is done correctly in similar constructs in
      other parts of the original commit.
      
      This fix is in preparation of upcoming commits that will use this macro.
      
      Fixes: commit d76eebfa ("include/linux/property.h: fix build issues with gcc-4.4.4")
      Link: http://lkml.kernel.org/r/2de3b929290d88a723ed829a3e3cbd02044714df.1475114627.git.johnyoun@synopsys.comSigned-off-by: NJohn Youn <johnyoun@synopsys.com>
      Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      37aa7271
    • E
      ocfs2: fix deadlock on mmapped page in ocfs2_write_begin_nolock() · c33f0785
      Eric Ren 提交于
      The testcase "mmaptruncate" of ocfs2-test deadlocks occasionally.
      
      In this testcase, we create a 2*CLUSTER_SIZE file and mmap() on it;
      there are 2 process repeatedly performing the following operations
      respectively: one is doing memset(mmaped_addr + 2*CLUSTER_SIZE - 1, 'a',
      1), while the another is playing ftruncate(fd, 2*CLUSTER_SIZE) and then
      ftruncate(fd, CLUSTER_SIZE) again and again.
      
      This is the backtrace when the deadlock happens:
      
         __wait_on_bit_lock+0x50/0xa0
         __lock_page+0xb7/0xc0
         ocfs2_write_begin_nolock+0x163f/0x1790 [ocfs2]
         ocfs2_page_mkwrite+0x1c7/0x2a0 [ocfs2]
         do_page_mkwrite+0x66/0xc0
         handle_mm_fault+0x685/0x1350
         __do_page_fault+0x1d8/0x4d0
         trace_do_page_fault+0x37/0xf0
         do_async_page_fault+0x19/0x70
         async_page_fault+0x28/0x30
      
      In ocfs2_write_begin_nolock(), we first grab the pages and then allocate
      disk space for this write; ocfs2_try_to_free_truncate_log() will be
      called if -ENOSPC is returned; if we're lucky to get enough clusters,
      which is usually the case, we start over again.
      
      But in ocfs2_free_write_ctxt() the target page isn't unlocked, so we
      will deadlock when trying to grab the target page again.
      
      Also, -ENOMEM might be returned in ocfs2_grab_pages_for_write().
      Another deadlock will happen in __do_page_mkwrite() if
      ocfs2_page_mkwrite() returns non-VM_FAULT_LOCKED, and along with a
      locked target page.
      
      These two errors fail on the same path, so fix them by unlocking the
      target page manually before ocfs2_free_write_ctxt().
      
      Jan Kara helps me clear out the JBD2 part, and suggest the hint for root
      cause.
      
      Changes since v1:
      1. Also put ENOMEM error case into consideration.
      
      Link: http://lkml.kernel.org/r/1474173902-32075-1-git-send-email-zren@suse.comSigned-off-by: NEric Ren <zren@suse.com>
      Reviewed-by: NHe Gang <ghe@suse.com>
      Acked-by: NJoseph Qi <joseph.qi@huawei.com>
      Cc: Mark Fasheh <mfasheh@suse.de>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c33f0785
    • J
      mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page() · 22f2ac51
      Johannes Weiner 提交于
      Antonio reports the following crash when using fuse under memory pressure:
      
        kernel BUG at /build/linux-a2WvEb/linux-4.4.0/mm/workingset.c:346!
        invalid opcode: 0000 [#1] SMP
        Modules linked in: all of them
        CPU: 2 PID: 63 Comm: kswapd0 Not tainted 4.4.0-36-generic #55-Ubuntu
        Hardware name: System manufacturer System Product Name/P8H67-M PRO, BIOS 3904 04/27/2013
        task: ffff88040cae6040 ti: ffff880407488000 task.ti: ffff880407488000
        RIP: shadow_lru_isolate+0x181/0x190
        Call Trace:
          __list_lru_walk_one.isra.3+0x8f/0x130
          list_lru_walk_one+0x23/0x30
          scan_shadow_nodes+0x34/0x50
          shrink_slab.part.40+0x1ed/0x3d0
          shrink_zone+0x2ca/0x2e0
          kswapd+0x51e/0x990
          kthread+0xd8/0xf0
          ret_from_fork+0x3f/0x70
      
      which corresponds to the following sanity check in the shadow node
      tracking:
      
        BUG_ON(node->count & RADIX_TREE_COUNT_MASK);
      
      The workingset code tracks radix tree nodes that exclusively contain
      shadow entries of evicted pages in them, and this (somewhat obscure)
      line checks whether there are real pages left that would interfere with
      reclaim of the radix tree node under memory pressure.
      
      While discussing ways how fuse might sneak pages into the radix tree
      past the workingset code, Miklos pointed to replace_page_cache_page(),
      and indeed there is a problem there: it properly accounts for the old
      page being removed - __delete_from_page_cache() does that - but then
      does a raw raw radix_tree_insert(), not accounting for the replacement
      page.  Eventually the page count bits in node->count underflow while
      leaving the node incorrectly linked to the shadow node LRU.
      
      To address this, make sure replace_page_cache_page() uses the tracked
      page insertion code, page_cache_tree_insert().  This fixes the page
      accounting and makes sure page-containing nodes are properly unlinked
      from the shadow node LRU again.
      
      Also, make the sanity checks a bit less obscure by using the helpers for
      checking the number of pages and shadows in a radix tree node.
      
      Fixes: 449dd698 ("mm: keep page cache radix tree nodes in check")
      Link: http://lkml.kernel.org/r/20160919155822.29498-1-hannes@cmpxchg.orgSigned-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Reported-by: NAntonio SJ Musumeci <trapexit@spawn.link>
      Debugged-by: NMiklos Szeredi <miklos@szeredi.hu>
      Cc: <stable@vger.kernel.org>	[3.15+]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      22f2ac51
    • J
      MAINTAINERS: Switch to kernel.org email address for Javi Merino · 9a2172a8
      Javi Merino 提交于
      Change my email address to my kernel.org account instead of the ARM one.
      Signed-off-by: NJavi Merino <javi.merino@arm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9a2172a8
  9. 30 9月, 2016 6 次提交