24 Aug, 2020

1 commit


19 Jun, 2019

1 commit

  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 4122 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

20 Sep, 2018

3 commits

  • Only one platform was depending on this feature and it is already
    updated now. Stop removing dynamic OPPs from _dev_pm_opp_remove_table().
    This simplifies lot of paths and removes unnecessary parameters.

    Tested-by: Niklas Cassel
    Signed-off-by: Viresh Kumar

    Viresh Kumar
     
  • The dev_list needs to be protected with a lock, else we may have
    simultaneous access (addition/removal) to it and that would be racy.
    Extend scope of the opp_table lock to protect dev_list as well.

    Tested-by: Niklas Cassel
    Signed-off-by: Viresh Kumar

    Viresh Kumar
     
  • dev_pm_opp_of_cpumask_add_table() creates the OPP table for all CPUs
    present in the cpumask and on errors it should revert all changes it has
    done.

    It actually is doing a bit more than that. On errors, it tries to free
    all the OPP tables, even the one it hasn't created yet. This may also
    end up freeing the OPP tables which were created from separate path,
    like dev_pm_opp_set_supported_hw().

    Reported-and-tested-by: Niklas Cassel
    Signed-off-by: Viresh Kumar

    Viresh Kumar
     

12 Feb, 2018

1 commit

  • After checking all possible call chains to
    dev_pm_opp_init_cpufreq_table() here,
    my tool finds that this function is never called in atomic context,
    namely never in an interrupt handler or holding a spinlock.
    And dev_pm_opp_init_cpufreq_table() calls dev_pm_opp_get_opp_count(),
    which calls mutex_lock that can sleep.
    It indicates that atmtcp_v_send() can call functions which may sleep.
    Thus GFP_ATOMIC is not necessary, and it can be replaced with GFP_KERNEL.

    This is found by a static analysis tool named DCNS written by myself.

    Signed-off-by: Jia-Ju Bai
    Signed-off-by: Viresh Kumar

    Jia-Ju Bai
     

03 Oct, 2017

1 commit

  • The drivers/base/power/ directory is special and contains code related
    to power management core like system suspend/resume, hibernation, etc.
    It was fine to keep the OPP code inside it when we had just one file for
    it, but it is growing now and already has a directory for itself.

    Lets move it directly under drivers/ directory, just like cpufreq and
    cpuidle.

    Signed-off-by: Viresh Kumar
    Acked-by: Stephen Boyd
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar