Skip to content

CPUFreq: Fix {PRE|POST}CHANGE notification sequence

Viresh Kumar cpufreq linux-pm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest13 patches 18 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13cpufreq: acpi: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/acpi-cpufreq.c+4 -20 replies
2/13cpufreq: arm-big-little: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/arm_big_little.c+1 -30 replies
3/13cpufreq: davinci: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/davinci-cpufreq.c+3 -01 reply
4/13cpufreq: dbx500: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/dbx500-cpufreq.c+2 -21 reply
5/13cpufreq: e_powersave: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/e_powersaver.c+3 -03 replies
6/13cpufreq: exynos: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/exynos-cpufreq.c+8 -20 replies
7/13cpufreq: imx6q: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/imx6q-cpufreq.c+11 -61 reply
8/13cpufreq: omap: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/omap-cpufreq.c+3 -31 reply
9/13cpufreq: pcc: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/pcc-cpufreq.c+2 -00 replies
10/13cpufreq: powernow-k8: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/powernow-k8.c+3 -30 replies
11/13cpufreq: s3c64xx: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/s3c64xx-cpufreq.c+6 -20 replies
12/13cpufreq: tegra: call CPUFREQ_POSTCHANGE notfier in error casesdrivers/cpufreq/tegra-cpufreq.c+2 -21 reply
13/13cpufreq: make sure frequency transitions are serializeddrivers/cpufreq/cpufreq.c+9 -09 replies

Reviews trailers per patch

5 of 13 patches have a Reviewed-by or Acked-by.

PatchSekhar NoriSantosh ShilimkarStephen WarrenLinus WalleijShawn Guo
1/13
2/13
3/13A-b
4/13A-b
5/13
6/13
7/13A-b
8/13A-b
9/13
10/13
11/13
12/13A-b
13/13

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.

Read the v1 thread

Cover letter [PATCH 00/13] CPUFreq: Fix {PRE|POST}CHANGE notification sequence

PRECHANGE and POSTCHANGE notifiers must be called in groups, i.e either both should be called or both shouldn't be.

In case we have started PRECHANGE notifier and found an error, we must call POSTCHANGE notifier with freqs.new = freqs.old to guarantee that sequence of calling notifiers is complete.

This isn't obeyed by many of the drivers and core wasn't forcing it.

This patchset first fixes all the driver to follow it strictly and then adds some protection against this. Now, we keep track of the last transaction and see if something went wrong.

Last patch is intentionally kept towards the end, so that git bisect still works well for all the faulty drivers.

This is pushed here and a pull request for 3.11 would be sent after few days.

git://git.linaro.org/people/vireshk/linux.git cpufreq-fix-notification

Viresh Kumar (13):
cpufreq: acpi: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: arm-big-little: call CPUFREQ_POSTCHANGE notfier in error
cases
cpufreq: davinci: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: dbx500: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: e_powersave: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: exynos: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: imx6q: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: omap: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: pcc: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: powernow-k8: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: s3c64xx: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: tegra: call CPUFREQ_POSTCHANGE notfier in error cases
cpufreq: make sure frequency transitions are serialized

 drivers/cpufreq/acpi-cpufreq.c    |  6 ++++--
 drivers/cpufreq/arm_big_little.c  |  4 +---
 drivers/cpufreq/cpufreq.c         |  9 +++++++++
 drivers/cpufreq/davinci-cpufreq.c |  3 +++
 drivers/cpufreq/dbx500-cpufreq.c  |  4 ++--
 drivers/cpufreq/e_powersaver.c    |  3 +++
 drivers/cpufreq/exynos-cpufreq.c  | 10 ++++++++--
 drivers/cpufreq/imx6q-cpufreq.c   | 17 +++++++++++------
 drivers/cpufreq/omap-cpufreq.c    |  6 +++---
 drivers/cpufreq/pcc-cpufreq.c     |  2 ++
 drivers/cpufreq/powernow-k8.c     |  6 +++---
 drivers/cpufreq/s3c64xx-cpufreq.c |  8 ++++++--
 drivers/cpufreq/tegra-cpufreq.c   |  4 ++--
 13 files changed, 57 insertions(+), 25 deletions(-)
Signature · 1 line
1.7.12.rc2.18.g61b472e