1. 24 Oct, 2014 2 commits
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1c45d9a9
      Linus Torvalds authored
      Pull ACPI and power management updates from Rafael Wysocki:
       "This is material that didn't make it to my 3.18-rc1 pull request for
        various reasons, mostly related to timing and travel (LinuxCon EU /
        LPC) plus a couple of fixes for recent bugs.
      
        The only really new thing here is the PM QoS class for memory
        bandwidth, but it is simple enough and users of it will be added in
        the next cycle.  One major change in behavior is that platform devices
        enumerated by ACPI will use 32-bit DMA mask by default.  Also included
        is an ACPICA update to a new upstream release, but that's mostly
        cleanups, changes in tools and similar.  The rest is fixes and
        cleanups mostly.
      
        Specifics:
      
         - Fix for a recent PCI power management change that overlooked the
           fact that some IRQ chips might not be able to configure PCIe PME
           for system wakeup from Lucas Stach.
      
         - Fix for a bug introduced in 3.17 where acpi_device_wakeup() is
           called with a wrong ordering of arguments from Zhang Rui.
      
         - A bunch of intel_pstate driver fixes (all -stable candidates) from
           Dirk Brandewie, Gabriele Mazzotta and Pali Rohár.
      
         - Fixes for a rather long-standing problem with the OOM killer and
           the freezer that frozen processes killed by the OOM do not actually
           release any memory until they are thawed, so OOM-killing them is
           rather pointless, with a couple of cleanups on top (Michal Hocko,
           Cong Wang, Rafael J Wysocki).
      
         - ACPICA update to upstream release 20140926, inlcuding mostly
           cleanups reducing differences between the upstream ACPICA and the
           kernel code, tools changes (acpidump, acpiexec) and support for the
           _DDN object (Bob Moore, Lv Zheng).
      
         - New PM QoS class for memory bandwidth from Tomeu Vizoso.
      
         - Default 32-bit DMA mask for platform devices enumerated by ACPI
           (this change is mostly needed for some drivers development in
           progress targeted at 3.19) from Heikki Krogerus.
      
         - ACPI EC driver cleanups, mostly related to debugging, from Lv
           Zheng.
      
         - cpufreq-dt driver updates from Thomas Petazzoni.
      
         - powernv cpuidle driver update from Preeti U Murthy"
      
      * tag 'pm+acpi-3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (34 commits)
        intel_pstate: Correct BYT VID values.
        intel_pstate: Fix BYT frequency reporting
        intel_pstate: Don't lose sysfs settings during cpu offline
        cpufreq: intel_pstate: Reflect current no_turbo state correctly
        cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers
        cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy
        PCI / PM: handle failure to enable wakeup on PCIe PME
        ACPI: invoke acpi_device_wakeup() with correct parameters
        PM / freezer: Clean up code after recent fixes
        PM: convert do_each_thread to for_each_process_thread
        OOM, PM: OOM killed task shouldn't escape PM suspend
        freezer: remove obsolete comments in __thaw_task()
        freezer: Do not freeze tasks killed by OOM killer
        ACPI / platform: provide default DMA mask
        cpuidle: powernv: Populate cpuidle state details by querying the device-tree
        cpufreq: cpufreq-dt: adjust message related to regulators
        cpufreq: cpufreq-dt: extend with platform_data
        cpufreq: allow driver-specific data
        ACPI / EC: Cleanup coding style.
        ACPI / EC: Refine event/query debugging messages.
        ...
      1c45d9a9
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 8264fce6
      Linus Torvalds authored
      Pull thermal management updates from Zhang Rui:
       "Sorry that I missed the merge window as there is a bug found in the
        last minute, and I have to fix it and wait for the code to be tested
        in linux-next tree for a few days.  Now the buggy patch has been
        dropped entirely from my next branch.  Thus I hope those changes can
        still be merged in 3.18-rc2 as most of them are platform thermal
        driver changes.
      
        Specifics:
      
         - introduce ACPI INT340X thermal drivers.
      
           Newer laptops and tablets may have thermal sensors and other
           devices with thermal control capabilities that are exposed for the
           OS to use via the ACPI INT340x device objects.  Several drivers are
           introduced to expose the temperature information and cooling
           ability from these objects to user-space via the normal thermal
           framework.
      
           From: Lu Aaron, Lan Tianyu, Jacob Pan and Zhang Rui.
      
         - introduce a new thermal governor, which just uses a hysteresis to
           switch abruptly on/off a cooling device.  This governor can be used
           to control certain fan devices that can not be throttled but just
           switched on or off.  From: Peter Feuerer.
      
         - introduce support for some new thermal interrupt functions on
           i.MX6SX, in IMX thermal driver.  From: Anson, Huang.
      
         - introduce tracing support on thermal framework.  From: Punit
           Agrawal.
      
         - small fixes in OF thermal and thermal step_wise governor"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (25 commits)
        Thermal: int340x thermal: select ACPI fan driver
        Thermal: int3400_thermal: use acpi_thermal_rel parsing APIs
        Thermal: int340x_thermal: expose acpi thermal relationship tables
        Thermal: introduce int3403 thermal driver
        Thermal: introduce INT3402 thermal driver
        Thermal: move the KELVIN_TO_MILLICELSIUS macro to thermal.h
        ACPI / Fan: support INT3404 thermal device
        ACPI / Fan: add ACPI 4.0 style fan support
        ACPI / fan: convert to platform driver
        ACPI / fan: use acpi_device_xxx_power instead of acpi_bus equivelant
        ACPI / fan: remove no need check for device pointer
        ACPI / fan: remove unused macro
        Thermal: int3400 thermal: register to thermal framework
        Thermal: int3400 thermal: add capability to detect supporting UUIDs
        Thermal: introduce int3400 thermal driver
        ACPI: add ACPI_TYPE_LOCAL_REFERENCE support to acpi_extract_package()
        ACPI: make acpi_create_platform_device() an external API
        thermal: step_wise: fix: Prevent from binary overflow when trend is dropping
        ACPI: introduce ACPI int340x thermal scan handler
        thermal: Added Bang-bang thermal governor
        ...
      8264fce6
  2. 23 Oct, 2014 18 commits
    • Linus Torvalds's avatar
      Merge tag 'remove-weak-declarations' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 816fb417
      Linus Torvalds authored
      Pull weak function declaration removal from Bjorn Helgaas:
       "The "weak" attribute is commonly used for the default version of a
        function, where an architecture can override it by providing a strong
        version.
      
        Some header file declarations included the "weak" attribute.  That's
        error-prone because it causes every implementation to be weak, with no
        strong version at all, and the linker chooses one based on link order.
      
        What we want is the "weak" attribute only on the *definition* of the
        default implementation.  These changes remove "weak" from the
        declarations, leaving it on the default definitions"
      
      * tag 'remove-weak-declarations' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        uprobes: Remove "weak" from function declarations
        memory-hotplug: Remove "weak" from memory_block_size_bytes() declaration
        kgdb: Remove "weak" from kgdb_arch_pc() declaration
        ARC: kgdb: generic kgdb_arch_pc() suffices
        vmcore: Remove "weak" from function declarations
        clocksource: Remove "weak" from clocksource_default_clock() declaration
        x86, intel-mid: Remove "weak" from function declarations
        audit: Remove "weak" from audit_classify_compat_syscall() declaration
      816fb417
    • Linus Torvalds's avatar
      Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8c81f48e
      Linus Torvalds authored
      Pull x86 EFI updates from Peter Anvin:
       "This patchset falls under the "maintainers that grovel" clause in the
        v3.18-rc1 announcement.  We had intended to push it late in the merge
        window since we got it into the -tip tree relatively late.
      
        Many of these are relatively simple things, but there are a couple of
        key bits, especially Ard's and Matt's patches"
      
      * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        rtc: Disable EFI rtc for x86
        efi: rtc-efi: Export platform:rtc-efi as module alias
        efi: Delete the in_nmi() conditional runtime locking
        efi: Provide a non-blocking SetVariable() operation
        x86/efi: Adding efi_printks on memory allocationa and pci.reads
        x86/efi: Mark initialization code as such
        x86/efi: Update comment regarding required phys mapped EFI services
        x86/efi: Unexport add_efi_memmap variable
        x86/efi: Remove unused efi_call* macros
        efi: Resolve some shadow warnings
        arm64: efi: Format EFI memory type & attrs with efi_md_typeattr_format()
        ia64: efi: Format EFI memory type & attrs with efi_md_typeattr_format()
        x86: efi: Format EFI memory type & attrs with efi_md_typeattr_format()
        efi: Introduce efi_md_typeattr_format()
        efi: Add macro for EFI_MEMORY_UCE memory attribute
        x86/efi: Clear EFI_RUNTIME_SERVICES if failing to enter virtual mode
        arm64/efi: Do not enter virtual mode if booting with efi=noruntime or noefi
        arm64/efi: uefi_init error handling fix
        efi: Add kernel param efi=noruntime
        lib: Add a generic cmdline parse function parse_option_str
        ...
      8c81f48e
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpuidle' and 'pm-cpufreq' · a91e99e2
      Rafael J. Wysocki authored
      * pm-cpuidle:
        cpuidle: powernv: Populate cpuidle state details by querying the device-tree
      
      * pm-cpufreq:
        intel_pstate: Correct BYT VID values.
        intel_pstate: Fix BYT frequency reporting
        intel_pstate: Don't lose sysfs settings during cpu offline
        cpufreq: intel_pstate: Reflect current no_turbo state correctly
        cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers
        cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy
        cpufreq: cpufreq-dt: adjust message related to regulators
        cpufreq: cpufreq-dt: extend with platform_data
        cpufreq: allow driver-specific data
      a91e99e2
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-pm' and 'pm-genirq' · 49fe0353
      Rafael J. Wysocki authored
      * acpi-pm:
        ACPI: invoke acpi_device_wakeup() with correct parameters
      
      * pm-genirq:
        PCI / PM: handle failure to enable wakeup on PCIe PME
      49fe0353
    • Rafael J. Wysocki's avatar
      Merge branch 'freezer' · 96ed7532
      Rafael J. Wysocki authored
      * freezer:
        PM / freezer: Clean up code after recent fixes
        PM: convert do_each_thread to for_each_process_thread
        OOM, PM: OOM killed task shouldn't escape PM suspend
        freezer: remove obsolete comments in __thaw_task()
        freezer: Do not freeze tasks killed by OOM killer
      96ed7532
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-qos' · 37c72cac
      Rafael J. Wysocki authored
      * pm-qos:
        PM / QoS: Add PM_QOS_MEMORY_BANDWIDTH class
      37c72cac
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-ec' and 'acpi-platform' · 286180d8
      Rafael J. Wysocki authored
      * acpi-ec:
        ACPI / EC: Cleanup coding style.
        ACPI / EC: Refine event/query debugging messages.
        ACPI / EC: Add detailed command/query debugging information.
        ACPI / EC: Enhance the logs to apply to QR_EC transactions.
        ACPI / EC: Add CPU ID to debugging messages.
      
      * acpi-platform:
        ACPI / platform: provide default DMA mask
      286180d8
    • Dirk Brandewie's avatar
      intel_pstate: Correct BYT VID values. · d022a65e
      Dirk Brandewie authored
      Using a VID value that is not high enough for the requested P state can
      cause machine checks. Add a ceiling function to ensure calulated VIDs
      with fractional values are set to the next highest integer VID value.
      
      The algorythm for calculating the non-trubo VID from the BIOS writers
      guide is:
       vid_ratio = (vid_max - vid_min) / (max_pstate - min_pstate)
       vid = ceiling(vid_min + (req_pstate - min_pstate) * vid_ratio)
      
      Cc: All applicable <stable@vger.kernel.org>
      Signed-off-by: default avatarDirk Brandewie <dirk.j.brandewie@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d022a65e
    • Dirk Brandewie's avatar
      intel_pstate: Fix BYT frequency reporting · b27580b0
      Dirk Brandewie authored
      BYT has a different conversion from P state to frequency than the core
      processors.  This causes the min/max and current frequency to be
      misreported on some BYT SKUs. Tested on BYT N2820, Ivybridge and
      Haswell processors.
      
      Link: https://bugzilla.yoctoproject.org/show_bug.cgi?id=6663
      Cc: All applicable <stable@vger.kernel.org>
      Signed-off-by: default avatarDirk Brandewie <dirk.j.brandewie@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b27580b0
    • Dirk Brandewie's avatar
      intel_pstate: Don't lose sysfs settings during cpu offline · c0348717
      Dirk Brandewie authored
      The user may have custom settings don't destroy them during suspend.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=80651Reported-by: default avatarTobias Jakobi <liquid.acid@gmx.net>
      Cc: All applicable <stable@vger.kernel.org>
      Signed-off-by: default avatarDirk Brandewie <dirk.j.brandewie@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      c0348717
    • Gabriele Mazzotta's avatar
      cpufreq: intel_pstate: Reflect current no_turbo state correctly · 4521e1a0
      Gabriele Mazzotta authored
      Some BIOSes modify the state of MSR_IA32_MISC_ENABLE_TURBO_DISABLE
      based on the current power source for the system battery AC vs
      battery. Reflect the correct current state and ability to modify the
      no_turbo sysfs file based on current state of
      MSR_IA32_MISC_ENABLE_TURBO_DISABLE.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=83151
      Cc: All applicable <stable@vger.kernel.org>
      Signed-off-by: default avatarGabriele Mazzotta <gabriele.mzt@gmail.com>
      Signed-off-by: default avatarDirk Brandewie <dirk.j.brandewie@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4521e1a0
    • Dirk Brandewie's avatar
      cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers · c034b02e
      Dirk Brandewie authored
      Currently the core does not expose scaling_cur_freq for set_policy()
      drivers this breaks some userspace monitoring tools.
      Change the core to expose this file for all drivers and if the
      set_policy() driver supports the get() callback use it to retrieve the
      current frequency.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=73741
      Cc: All applicable <stable@vger.kernel.org>
      Signed-off-by: default avatarDirk Brandewie <dirk.j.brandewie@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      c034b02e
    • Pali Rohár's avatar
      cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy · 36b4bed5
      Pali Rohár authored
      Code which changes policy to powersave changes also max_policy_pct based on
      max_freq. Code which change max_perf_pct has upper limit base on value
      max_policy_pct. When policy is changing from powersave back to performance
      then max_policy_pct is not changed. Which means that changing max_perf_pct is
      not possible to high values if max_freq was too low in powersave policy.
      
      Test case:
      
      $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
      800000
      $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
      3300000
      $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
      performance
      $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
      100
      
      $ echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
      $ echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
      $ echo 20 > /sys/devices/system/cpu/intel_pstate/max_perf_pct
      
      $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
      powersave
      $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
      800000
      $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
      20
      
      $ echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
      $ echo 3300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
      $ echo 100 > /sys/devices/system/cpu/intel_pstate/max_perf_pct
      
      $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
      performance
      $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
      3300000
      $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
      24
      
      And now intel_pstate driver allows to set maximal value for max_perf_pct based
      on max_policy_pct which is 24 for previous powersave max_freq 800000.
      
      This patch will set default value for max_policy_pct when setting policy to
      performance so it will allow to set also max value for max_perf_pct.
      Signed-off-by: default avatarPali Rohár <pali.rohar@gmail.com>
      Cc: All applicable <stable@vger.kernel.org>
      Acked-by: default avatarDirk Brandewie <dirk.j.brandewie@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      36b4bed5
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v3.18-rc2' of... · 5de551e0
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull a hwmon fix from Guenter Roeck:
       "Fix potential compile problem for menf21bmc hwmon driver"
      
      * tag 'hwmon-for-linus-v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (menf21bmc) Include linux/err.h
      5de551e0
    • Lucas Stach's avatar
      PCI / PM: handle failure to enable wakeup on PCIe PME · 5dfd7f9f
      Lucas Stach authored
      If the irqchip handling the PCIe PME interrupt is not able
      to enable interrupt wakeup we should properly reflect this
      in the PME suspend status.
      
      This fixes a kernel warning on resume, where it would try
      to disable the irq wakeup that failed to be activated while
      suspending, for example:
      
      WARNING: CPU: 0 PID: 609 at kernel/irq/manage.c:536 irq_set_irq_wake+0xc0/0xf8()
      Unbalanced IRQ 384 wake disable
      
      Fixes: 76cde7e4 (PCI / PM: Make PCIe PME interrupts wake up from suspend-to-idle)
      Reported-and-tested-by: default avatarRichard Zhu <richard.zhu@freescale.com>
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5dfd7f9f
    • Zhang Rui's avatar
      ACPI: invoke acpi_device_wakeup() with correct parameters · 67598a1d
      Zhang Rui authored
      Fix a bug that invokes acpi_device_wakeup() with wrong parameters.
      
      Fixes: f35cec25 (ACPI / PM: Always enable wakeup GPEs when enabling device wakeup)
      Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
      Cc: 3.17+ <stable@vger.kernel.org> # 3.17+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      67598a1d
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · eb0c5ff6
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Intel, nouveau, radeon and qxl.
      
        Mostly for bugs introduced in the merge window, nothing too shocking"
      
      [ And one cirrus fix added later and not mentioned in the pull request..  - Linus ]
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/cirrus: bind also to qemu-xen-traditional
        qxl: don't create too large primary surface
        drm/nouveau: fix regression on agp boards
        drm/gt215/gr: fix initialisation on gddr5 boards
        drm/radeon: reduce sparse false positive warnings
        drm/radeon: fix vm page table block size calculation
        drm/ttm: Don't evict BOs outside of the requested placement range
        drm/ttm: Don't skip fpfn check if lpfn is 0 in ttm_bo_mem_compat
        drm/radeon: use gart memory for DMA ring tests
        drm/radeon: fix speaker allocation setup
        drm/radeon: initialize sadb to NULL in the audio code
        drm/i915: fix short vs. long hpd detection
        drm/i915: Don't trust the DP_DETECT bit for eDP ports on CHV
        Revert "drm/radeon/dpm: drop clk/voltage dependency filters for SI"
        Revert "drm/radeon: drop btc_get_max_clock_from_voltage_dependency_table"
        drm/i915: properly reenable gen8 pipe IRQs
        drm/i915: Move DIV_ROUND_CLOSEST_ULL macro to header
        drm/i915: intel_backlight scale() math WA
      eb0c5ff6
    • Olaf Hering's avatar
      drm/cirrus: bind also to qemu-xen-traditional · c0c3e735
      Olaf Hering authored
      qemu as used by xend/xm toolstack uses a different subvendor id.
      Bind the drm driver also to this emulated card.
      Signed-off-by: default avatarOlaf Hering <olaf@aepfle.de>
      cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      c0c3e735
  3. 22 Oct, 2014 10 commits
  4. 21 Oct, 2014 10 commits
    • Michal Hocko's avatar
      PM: convert do_each_thread to for_each_process_thread · a28e785a
      Michal Hocko authored
      as per 0c740d0a (introduce for_each_thread() to replace the buggy
      while_each_thread()) get rid of do_each_thread { } while_each_thread()
      construct and replace it by a more error prone for_each_thread.
      
      This patch doesn't introduce any user visible change.
      Suggested-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a28e785a
    • Michal Hocko's avatar
      OOM, PM: OOM killed task shouldn't escape PM suspend · 5695be14
      Michal Hocko authored
      PM freezer relies on having all tasks frozen by the time devices are
      getting frozen so that no task will touch them while they are getting
      frozen. But OOM killer is allowed to kill an already frozen task in
      order to handle OOM situtation. In order to protect from late wake ups
      OOM killer is disabled after all tasks are frozen. This, however, still
      keeps a window open when a killed task didn't manage to die by the time
      freeze_processes finishes.
      
      Reduce the race window by checking all tasks after OOM killer has been
      disabled. This is still not race free completely unfortunately because
      oom_killer_disable cannot stop an already ongoing OOM killer so a task
      might still wake up from the fridge and get killed without
      freeze_processes noticing. Full synchronization of OOM and freezer is,
      however, too heavy weight for this highly unlikely case.
      
      Introduce and check oom_kills counter which gets incremented early when
      the allocator enters __alloc_pages_may_oom path and only check all the
      tasks if the counter changes during the freezing attempt. The counter
      is updated so early to reduce the race window since allocator checked
      oom_killer_disabled which is set by PM-freezing code. A false positive
      will push the PM-freezer into a slow path but that is not a big deal.
      
      Changes since v1
      - push the re-check loop out of freeze_processes into
        check_frozen_processes and invert the condition to make the code more
        readable as per Rafael
      
      Fixes: f660daac (oom: thaw threads if oom killed thread is frozen before deferring)
      Cc: 3.2+ <stable@vger.kernel.org> # 3.2+
      Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5695be14
    • Cong Wang's avatar
      freezer: remove obsolete comments in __thaw_task() · c05eb32f
      Cong Wang authored
      __thaw_task() no longer clears frozen flag since commit a3201227
      (freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE).
      Reviewed-by: default avatarMichal Hocko <mhocko@suse.cz>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      c05eb32f
    • Cong Wang's avatar
      freezer: Do not freeze tasks killed by OOM killer · 51fae6da
      Cong Wang authored
      Since f660daac (oom: thaw threads if oom killed thread is frozen
      before deferring) OOM killer relies on being able to thaw a frozen task
      to handle OOM situation but a3201227 (freezer: make freezing() test
      freeze conditions in effect instead of TIF_FREEZE) has reorganized the
      code and stopped clearing freeze flag in __thaw_task. This means that
      the target task only wakes up and goes into the fridge again because the
      freezing condition hasn't changed for it. This reintroduces the bug
      fixed by f660daac.
      
      Fix the issue by checking for TIF_MEMDIE thread flag in
      freezing_slow_path and exclude the task from freezing completely. If a
      task was already frozen it would get woken by __thaw_task from OOM killer
      and get out of freezer after rechecking freezing().
      
      Changes since v1
      - put TIF_MEMDIE check into freezing_slowpath rather than in __refrigerator
        as per Oleg
      - return __thaw_task into oom_scan_process_thread because
        oom_kill_process will not wake task in the fridge because it is
        sleeping uninterruptible
      
      [mhocko@suse.cz: rewrote the changelog]
      Fixes: a3201227 (freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE)
      Cc: 3.3+ <stable@vger.kernel.org> # 3.3+
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      51fae6da
    • Heikki Krogerus's avatar
      ACPI / platform: provide default DMA mask · 8a2f38dd
      Heikki Krogerus authored
      Most devices are configured for 32-bit DMA addresses.
      Setting the mask to 32-bit here removes the need for the
      drivers to do it separately.
      Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8a2f38dd
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · c3351dfa
      Linus Torvalds authored
      Pull SCSI target updates from Nicholas Bellinger:
       "Here are the target updates for v3.18-rc2 code.  These where
        originally destined for -rc1, but due to the combination of travel
        last week for KVM Forum and my mistake of taking the three week merge
        window literally, the pull request slipped..  Apologies for that.
      
        Things where reasonably quiet this round.  The highlights include:
      
         - New userspace backend driver (target_core_user.ko) by Shaohua Li
           and Andy Grover
         - A number of cleanups in target, iscsi-taret and qla_target code
           from Joern Engel
         - Fix an OOPs related to queue full handling with CHECK_CONDITION
           status from Quinn Tran
         - Fix to disable TX completion interrupt coalescing in iser-target,
           that was causing problems on some hardware
         - Fix for PR APTPL metadata handling with demo-mode ACLs
      
        I'm most excited about the new backend driver that uses UIO + shared
        memory ring to dispatch I/O and control commands into user-space.
        This was probably the most requested feature by users over the last
        couple of years, and opens up a new area of development + porting of
        existing user-space storage applications to LIO.  Thanks to Shaohua +
        Andy for making this happen.
      
        Also another honorable mention, a new Xen PV SCSI driver was merged
        via the xen/tip.git tree recently, which puts us now at 10 target
        drivers in upstream! Thanks to David Vrabel + Juergen Gross for their
        work to get this code merged"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (40 commits)
        target/file: fix inclusive vfs_fsync_range() end
        iser-target: Disable TX completion interrupt coalescing
        target: Add force_pr_aptpl device attribute
        target: Fix APTPL metadata handling for dynamic MappedLUNs
        qla_target: don't delete changed nacls
        target/user: Recalculate pad size inside is_ring_space_avail()
        tcm_loop: Fixup tag handling
        iser-target: Fix smatch warning
        target/user: Fix up smatch warnings in tcmu_netlink_event
        target: Add a user-passthrough backstore
        target: Add documentation on the target userspace pass-through driver
        uio: Export definition of struct uio_device
        target: Remove unneeded check in sbc_parse_cdb
        target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE
        qla_target: rearrange struct qla_tgt_prm
        qla_target: improve qlt_unmap_sg()
        qla_target: make some global functions static
        qla_target: remove unused parameter
        target: simplify core_tmr_abort_task
        target: encapsulate smp_mb__after_atomic()
        ...
      c3351dfa
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd · 848a5528
      Linus Torvalds authored
      Pull email address change from Boaz Harrosh.
      
      * 'for-linus' of git://git.open-osd.org/linux-open-osd:
        Boaz Harrosh - fix email in Documentation
        Boaz Harrosh - Fix broken email address
        MAINTAINERS: Change Boaz Harrosh's email
      848a5528
    • Linus Torvalds's avatar
      Merge branch 'mailbox-for-linus' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 43d451f1
      Linus Torvalds authored
      Pull mailbox framework from Jassi Brar:
       "A framework for Mailbox controllers and clients have been cooking for
        more than a year now.
      
        Everybody in the CC list had been copied on patchset revisions and
        most of them have made sounds of approval, though just one concrete
        Reviewed-by.  The patchset has also been in linux-next for a couple of
        weeks now and no conflict has been reported.  The framework has the
        backing of at least 5 platforms, though I can't say if/when they
        upstream their drivers (some businesses have 'changed')"
      
      (Further acked-by by Arnd Bergmann and Suman Anna in the pull request
      thread)
      
      * 'mailbox-for-linus' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        dt: mailbox: add generic bindings
        doc: add documentation for mailbox framework
        mailbox: Introduce framework for mailbox
        mailbox: rename pl320-ipc specific mailbox.h
      43d451f1
    • Linus Torvalds's avatar
      Merge git://www.linux-watchdog.org/linux-watchdog · 21d2271f
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
       - new Cadence WDT driver
       - new Ricoh RN5T618 watchdog
       - new DA9063 PMIC watchdog driver
       - new Meson WDT driver
       - add restart handling code
       - fixes and improvements
      
      * git://www.linux-watchdog.org/linux-watchdog: (25 commits)
        watchdog: meson: remove magic value for reboot
        watchdog: Let XILINX_WATCHDOG and TEGRA_WATCHDOG depend on HAS_IOMEM
        watchdog: sunxi: Add A31 watchdog support
        watchdog: sunxi: support parameterized compatible strings
        watchdog: imx2_wdt: add restart handler support
        watchdog: qcom: register a restart notifier
        watchdog: s3c2410: add restart handler
        watchdog: dw_wdt: add restart handler support
        ARM: defconfig: update multi_v7_defconfig
        ARM: meson: add watchdog driver
        ARM: docs: add documentation binding for meson watchdog
        stmp3xxx_rtc_wdt: Add suspend/resume PM support
        watchdog: Add DA9063 PMIC watchdog driver.
        watchdog: add driver for Ricoh RN5T618 watchdog
        watchdog: s3c2410_wdt: Add support for Watchdog device on Exynos7
        watchdog: qcom: document device tree bindings
        watchdog: qcom: add support for KPSS WDT
        watchdog: dw_wdt: initialise TOP_INIT in dw_wdt_set_top()
        devicetree: Add Cadence WDT devicetree bindings documentation
        watchdog: Add Cadence WDT driver
        ...
      21d2271f
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 045aaeda
      Linus Torvalds authored
      Pull LED update from Bryan Wu:
       "Basically we have some bug fixing and clean up and one big thing is we
        start to merge patch to add support LED Flash class"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: gpio: cleanup the leds-gpio driver
        led: gpio: Fix possible ZERO_SIZE_PTR pointer dereferencing error.
        led: gpio: Sort include headers alphabetically
        leds: Improve and export led_update_brightness
        leds: trigger: gpio: fix warning in gpio trigger for gpios whose accessor function may sleep
        leds: lp3944: fix sparse warning
        leds: avoid using DEVICE_ATTR macro for max_brightness attribute
        leds: make brightness type consistent across whole subsystem
        leds: Reorder include directives
      045aaeda