Hi Rafael,
V1 only contained a single patch, i.e. 2/4 from this series. And then
there were few suggestions to incorporate.
All are marked for stable 4.3, as this got changed recently.
I have tested it on exynos (Yeah, I was able to reproduce the lockdep
with few config changes).
Viresh Kumar (4):
PM / OPP: Propagate error properly from dev_pm_opp_set_sharing_cpus()
PM / OPP: Protect updates to list_dev with mutex
PM / OPP: Hold dev_opp_list_lock for writers
PM / OPP: Add opp_rcu_lockdep_assert() to _find_device_opp()
drivers/base/power/opp/core.c | 21 +++++++++++++++++----
drivers/base/power/opp/cpu.c | 10 +++++-----
drivers/base/power/opp/opp.h | 3 +++
3 files changed, 25 insertions(+), 9 deletions(-)
--
2.6.2.198.g614a2ac
For the RT patchset, add a preempt-rt fragment to the "mainline"
fragment directory to make it easier to build automatically without
having to go into menuconfig and select the Fully Preemptible Kernel
(RT) to be the Preemption Model and to turn of CPU Frequency scaling. It
isn't mandatory to turn off CPU_FREQ. However, you get a more
predictable latency range.
Signed-off-by: Anders Roxell <anders.roxell(a)linaro.org>
---
Hi Andrey,
I'm unsure but can this fragment be added to the config-core-4.1 branch?
Cheers,
Anders
linaro/configs/preempt-rt.config | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 linaro/configs/preempt-rt.config
diff --git a/linaro/configs/preempt-rt.config b/linaro/configs/preempt-rt.config
new file mode 100644
index 0000000..7c6594f
--- /dev/null
+++ b/linaro/configs/preempt-rt.config
@@ -0,0 +1,3 @@
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_RT_FULL=y
+# CONFIG_CPU_FREQ is not set
--
2.1.4
Tree/Branch: master
Git describe: v4.3-7411-g5ebe0ee
Commit: 5ebe0ee802 Merge tag 'docs-for-linus' of git://git.lwn.net/linux
Build Time: 88 min 4 sec
Passed: 7 / 9 ( 77.78 %)
Failed: 2 / 9 ( 22.22 %)
Errors: 2
Warnings: 40
Section Mismatches: 0
Failed defconfigs:
arm-multi_v7_defconfig
arm-allmodconfig
Errors:
arm-multi_v7_defconfig
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
arm-allmodconfig
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
2 warnings 0 mismatches : arm64-allnoconfig
73 warnings 0 mismatches : arm64-allmodconfig
1 warnings 0 mismatches : arm-multi_v5_defconfig
3 warnings 0 mismatches : arm-multi_v7_defconfig
1 warnings 0 mismatches : x86_64-defconfig
12 warnings 0 mismatches : arm-allmodconfig
1 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Errors summary: 2
97 ERROR: Input tree has errors, aborting (use -f to force output)
97 ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
Warnings Summary: 40
17 ../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
17 ../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
10 ../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
10 ../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
3 ../drivers/regulator/core.c:142:6: warning: unused variable 'i' [-Wunused-variable]
2 ../include/linux/kernel.h:722:17: warning: comparison of distinct pointer types lacks a cast
1 ../sound/soc/samsung/dmaengine.c:60:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../sound/soc/samsung/dmaengine.c:53:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../net/netfilter/nfnetlink_log.c:320:14: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../net/bluetooth/mgmt.c:6635:8: warning: 'r192' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../net/bluetooth/mgmt.c:6635:8: warning: 'h192' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../kernel/sched/rt.c:68:13: warning: 'push_irq_work_func' declared 'static' but never defined [-Wunused-function]
1 ../include/uapi/linux/byteorder/big_endian.h:32:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../include/linux/bitops.h:6:19: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../fs/logfs/dev_bdev.c:84:14: warning: comparison of distinct pointer types lacks a cast [enabled by default]
1 ../fs/logfs/dev_bdev.c:174:14: warning: comparison of distinct pointer types lacks a cast [enabled by default]
1 ../drivers/spi/spi-bcm63xx.c:565:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'resource_size_t' [-Wformat=]
1 ../drivers/scsi/bnx2fc/bnx2fc_fcoe.c:2134:1: warning: the frame size of 1256 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/scsi/advansys.c:7806:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c:766:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c:675:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/ntb/ntb_transport.c:828:3: warning: right shift count >= width of type [enabled by default]
1 ../drivers/net/ethernet/qlogic/qed/qed_dev.c:1670:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mmc/host/sh_mmcif.c:418:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/mmc/host/sh_mmcif.c:417:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/mfd/wm8998-tables.c:50:10: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type [enabled by default]
1 ../drivers/mfd/wm8998-tables.c:49:10: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type
1 ../drivers/mfd/wm5110-tables.c:281:11: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type [enabled by default]
1 ../drivers/mfd/wm5110-tables.c:280:11: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/infiniband/hw/cxgb4/mem.c:147:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/infiniband/core/uverbs_cmd.c:1481:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/atm/iphase.h:127:0: warning: "isprint" redefined
1 ../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../arch/arm64/kernel/cpufeature.c:699:13: warning: 'cpus_have_hwcap' defined but not used [-Wunused-function]
1 ../arch/arm/mach-cns3xxx/pcie.c:266:1: warning: the frame size of 1088 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../arch/arm64/kernel/cpufeature.c:699:13: warning: 'cpus_have_hwcap' defined but not used [-Wunused-function]
../kernel/sched/rt.c:68:13: warning: 'push_irq_work_func' declared 'static' but never defined [-Wunused-function]
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 73 warnings, 0 section mismatches
Warnings:
../drivers/atm/iphase.h:127:0: warning: "isprint" redefined
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../include/linux/kernel.h:722:17: warning: comparison of distinct pointer types lacks a cast
../include/linux/kernel.h:722:17: warning: comparison of distinct pointer types lacks a cast
../sound/soc/samsung/dmaengine.c:53:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../sound/soc/samsung/dmaengine.c:60:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/mfd/wm5110-tables.c:280:11: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type
../drivers/mfd/wm8998-tables.c:49:10: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/mmc/host/sh_mmcif.c:417:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/mmc/host/sh_mmcif.c:418:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c:675:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c:766:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/spi/spi-bcm63xx.c:565:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'resource_size_t' [-Wformat=]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../include/uapi/linux/byteorder/big_endian.h:32:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../include/linux/bitops.h:6:19: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
-------------------------------------------------------------------------------
arm-multi_v5_defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../drivers/regulator/core.c:142:6: warning: unused variable 'i' [-Wunused-variable]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : FAIL, 96 errors, 3 warnings, 0 section mismatches
Errors:
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
Warnings:
../net/bluetooth/mgmt.c:6635:8: warning: 'r192' may be used uninitialized in this function [-Wmaybe-uninitialized]
../net/bluetooth/mgmt.c:6635:8: warning: 'h192' may be used uninitialized in this function [-Wmaybe-uninitialized]
../drivers/regulator/core.c:142:6: warning: unused variable 'i' [-Wunused-variable]
-------------------------------------------------------------------------------
x86_64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../net/netfilter/nfnetlink_log.c:320:14: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 98 errors, 12 warnings, 0 section mismatches
Errors:
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR (phandle_references): Reference to non-existent node or label "twl4030_madc"
ERROR: Input tree has errors, aborting (use -f to force output)
Warnings:
../arch/arm/mach-cns3xxx/pcie.c:266:1: warning: the frame size of 1088 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../fs/logfs/dev_bdev.c:84:14: warning: comparison of distinct pointer types lacks a cast [enabled by default]
../fs/logfs/dev_bdev.c:174:14: warning: comparison of distinct pointer types lacks a cast [enabled by default]
../drivers/infiniband/core/uverbs_cmd.c:1481:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/hw/cxgb4/mem.c:147:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/mfd/wm5110-tables.c:281:11: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type [enabled by default]
../drivers/mfd/wm8998-tables.c:50:10: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type [enabled by default]
../drivers/ntb/ntb_transport.c:828:3: warning: right shift count >= width of type [enabled by default]
../drivers/net/ethernet/qlogic/qed/qed_dev.c:1670:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/scsi/bnx2fc/bnx2fc_fcoe.c:2134:1: warning: the frame size of 1256 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/scsi/advansys.c:7806:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../drivers/regulator/core.c:142:6: warning: unused variable 'i' [-Wunused-variable]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-allnoconfig
arm-allnoconfig
Rafael,
These are some random cleanups, which were part of the multi-regulator
series earlier. Sending them separately to make that series a bit light
weight.
V1->V2:
- Just sending them separately.
Viresh Kumar (4):
PM / OPP: Improve debug print messages with pr_fmt
PM / OPP: Rename routines specific to old bindings with _v1
PM / OPP: Parse all power-supply related bindings together
PM / OPP: Create separate structure for regulator/supplies
drivers/base/power/opp/core.c | 78 +++++++++++++++++++++++++++----------------
drivers/base/power/opp/cpu.c | 3 ++
drivers/base/power/opp/opp.h | 29 +++++++++++-----
3 files changed, 73 insertions(+), 37 deletions(-)
--
2.4.0
gov_queue_work() acquires cpufreq_governor_lock to allow
cpufreq_governor_stop() to drain delayed work items possibly scheduled
on CPUs that share the policy with a CPU being taken offline.
However, the same goal may be achieved in a more straightforward way if
the policy pointer in the struct cpu_dbs_info matching the policy CPU is
reset upfront by cpufreq_governor_stop() under the timer_mutex belonging
to it and checked against NULL, under the same lock, at the beginning of
dbs_timer().
In that case every instance of dbs_timer() run for a struct cpu_dbs_info
sharing the policy pointer in question after cpufreq_governor_stop() has
started will notice that that pointer is NULL and bail out immediately
without queuing up any new work items. In turn, gov_cancel_work()
called by cpufreq_governor_stop() before destroying timer_mutex will
wait for all of the delayed work items currently running on the CPUs
sharing the policy to drop the mutex, so it may be destroyed safely.
Make cpufreq_governor_stop() and dbs_timer() work as described and
modify gov_queue_work() so it does not acquire cpufreq_governor_lock any
more.
Signed-off-by: Viresh Kumar <viresh.kumar(a)linaro.org>
---
@Rafael: Please apply this patch alone for now, let me work out with the
timer/work thing first before applying other patches.
V3->V4:
- Updated changelog as suggested by Rafael.
drivers/cpufreq/cpufreq_governor.c | 33 +++++++++++++++++++++++----------
1 file changed, 23 insertions(+), 10 deletions(-)
diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
index 11258c4c1b17..b260576ddb12 100644
--- a/drivers/cpufreq/cpufreq_governor.c
+++ b/drivers/cpufreq/cpufreq_governor.c
@@ -171,10 +171,6 @@ void gov_queue_work(struct dbs_data *dbs_data, struct cpufreq_policy *policy,
{
int i;
- mutex_lock(&cpufreq_governor_lock);
- if (!policy->governor_enabled)
- goto out_unlock;
-
if (!all_cpus) {
/*
* Use raw_smp_processor_id() to avoid preemptible warnings.
@@ -188,9 +184,6 @@ void gov_queue_work(struct dbs_data *dbs_data, struct cpufreq_policy *policy,
for_each_cpu(i, policy->cpus)
__gov_queue_work(i, dbs_data, delay);
}
-
-out_unlock:
- mutex_unlock(&cpufreq_governor_lock);
}
EXPORT_SYMBOL_GPL(gov_queue_work);
@@ -229,13 +222,24 @@ static void dbs_timer(struct work_struct *work)
struct cpu_dbs_info *cdbs = container_of(work, struct cpu_dbs_info,
dwork.work);
struct cpu_common_dbs_info *shared = cdbs->shared;
- struct cpufreq_policy *policy = shared->policy;
- struct dbs_data *dbs_data = policy->governor_data;
+ struct cpufreq_policy *policy;
+ struct dbs_data *dbs_data;
unsigned int sampling_rate, delay;
bool modify_all = true;
mutex_lock(&shared->timer_mutex);
+ policy = shared->policy;
+
+ /*
+ * Governor might already be disabled and there is no point continuing
+ * with the work-handler.
+ */
+ if (!policy)
+ goto unlock;
+
+ dbs_data = policy->governor_data;
+
if (dbs_data->cdata->governor == GOV_CONSERVATIVE) {
struct cs_dbs_tuners *cs_tuners = dbs_data->tuners;
@@ -252,6 +256,7 @@ static void dbs_timer(struct work_struct *work)
delay = dbs_data->cdata->gov_dbs_timer(cdbs, dbs_data, modify_all);
gov_queue_work(dbs_data, policy, delay, modify_all);
+unlock:
mutex_unlock(&shared->timer_mutex);
}
@@ -478,9 +483,17 @@ static int cpufreq_governor_stop(struct cpufreq_policy *policy,
if (!shared || !shared->policy)
return -EBUSY;
+ /*
+ * Work-handler must see this updated, as it should not proceed any
+ * further after governor is disabled. And so timer_mutex is taken while
+ * updating this value.
+ */
+ mutex_lock(&shared->timer_mutex);
+ shared->policy = NULL;
+ mutex_unlock(&shared->timer_mutex);
+
gov_cancel_work(dbs_data, policy);
- shared->policy = NULL;
mutex_destroy(&shared->timer_mutex);
return 0;
}
--
2.6.2.198.g614a2ac
Tree/Branch: next-20151105
Git describe: next-20151105
Commit: abac5a3f5c Add linux-next specific files for 20151105
Build Time: 151 min 35 sec
Passed: 9 / 9 (100.00 %)
Failed: 0 / 9 ( 0.00 %)
Errors: 0
Warnings: 43
Section Mismatches: 4
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
2 warnings 0 mismatches : arm64-allnoconfig
74 warnings 4 mismatches : arm64-allmodconfig
3 warnings 0 mismatches : arm-multi_v5_defconfig
6 warnings 0 mismatches : arm-multi_v7_defconfig
1 warnings 0 mismatches : x86_64-defconfig
16 warnings 0 mismatches : arm-allmodconfig
1 warnings 0 mismatches : arm-allnoconfig
1 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Warnings Summary: 43
17 ../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
17 ../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
10 ../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
10 ../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
7 <stdin>:1304:2: warning: #warning syscall mlock2 not implemented [-Wcpp]
3 ../drivers/regulator/core.c:142:6: warning: unused variable 'i' [-Wunused-variable]
3 ../drivers/gpu/drm/drm_gem_cma_helper.c:484:21: warning: unused variable 'dev' [-Wunused-variable]
2 ../drivers/mfd/rtsx_pcr.c:565:6: warning: unused variable 'err' [-Wunused-variable]
1 ../sound/soc/samsung/dmaengine.c:60:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../sound/soc/samsung/dmaengine.c:53:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../sound/soc/rockchip/rockchip_spdif.c:283:6: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../net/netfilter/nfnetlink_log.c:320:14: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../net/bluetooth/mgmt.c:6635:8: warning: 'r192' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../net/bluetooth/mgmt.c:6635:8: warning: 'h192' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../kernel/sched/rt.c:68:13: warning: 'push_irq_work_func' declared 'static' but never defined [-Wunused-function]
1 ../include/uapi/linux/byteorder/big_endian.h:32:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../include/linux/bitops.h:6:19: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../fs/orangefs/pvfs2-bufmap.c:552:2: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t' [-Wformat]
1 ../fs/orangefs/pvfs2-bufmap.c:520:2: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t' [-Wformat]
1 ../drivers/spi/spi-bcm63xx.c:565:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'resource_size_t' [-Wformat=]
1 ../drivers/scsi/bnx2fc/bnx2fc_fcoe.c:2133:1: warning: the frame size of 1256 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/scsi/advansys.c:7806:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c:766:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c:675:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/pci/host/pcie-altera-msi.c:192:5: warning: passing argument 1 of 'pci_msi_create_irq_domain' from incompatible pointer type [enabled by default]
1 ../drivers/ntb/ntb_transport.c:828:3: warning: right shift count >= width of type [enabled by default]
1 ../drivers/net/ethernet/qlogic/qed/qed_dev.c:1670:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mmc/host/sh_mmcif.c:418:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/mmc/host/sh_mmcif.c:417:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/hid/hid-gfrm.c:151:2: warning: initialization from incompatible pointer type [enabled by default]
1 ../drivers/hid/hid-gfrm.c:151:2: warning: (near initialization for 'gfrm_driver.input_configured') [enabled by default]
1 ../drivers/hid/hid-gfrm.c:151:22: warning: initialization from incompatible pointer type
1 ../drivers/hid/hid-gfrm.c:151:22: warning: (near initialization for 'gfrm_driver.input_configured')
1 ../drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:1079:7: warning: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'long long int' [-Wformat]
1 ../drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:1079:7: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'long long int' [-Wformat]
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/atm/iphase.h:127:0: warning: "isprint" redefined
1 ../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../arch/arm64/kernel/cpufeature.c:698:13: warning: 'cpus_have_hwcap' defined but not used [-Wunused-function]
Section Mismatch Summary: 4
1 WARNING: vmlinux.o(.data+0x1aba40): Section mismatch in reference from the variable hisi_pcie_driver to the function .init.text:hisi_pcie_probe()
1 WARNING: drivers/pci/host/built-in.o(.data+0x1948): Section mismatch in reference from the variable hisi_pcie_driver to the function .init.text:hisi_pcie_probe()
1 WARNING: drivers/pci/built-in.o(.data+0x12a98): Section mismatch in reference from the variable hisi_pcie_driver to the function .init.text:hisi_pcie_probe()
1 WARNING: drivers/built-in.o(.data+0x3d440): Section mismatch in reference from the variable hisi_pcie_driver to the function .init.text:hisi_pcie_probe()
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../arch/arm64/kernel/cpufeature.c:698:13: warning: 'cpus_have_hwcap' defined but not used [-Wunused-function]
../kernel/sched/rt.c:68:13: warning: 'push_irq_work_func' declared 'static' but never defined [-Wunused-function]
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 74 warnings, 4 section mismatches
Warnings:
../drivers/atm/iphase.h:127:0: warning: "isprint" redefined
../sound/soc/rockchip/rockchip_spdif.c:283:6: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../sound/soc/samsung/dmaengine.c:53:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../sound/soc/samsung/dmaengine.c:60:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../drivers/hid/hid-gfrm.c:151:22: warning: initialization from incompatible pointer type
../drivers/hid/hid-gfrm.c:151:22: warning: (near initialization for 'gfrm_driver.input_configured')
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/mfd/rtsx_pcr.c:565:6: warning: unused variable 'err' [-Wunused-variable]
../drivers/gpu/drm/drm_gem_cma_helper.c:484:21: warning: unused variable 'dev' [-Wunused-variable]
../drivers/mmc/host/sh_mmcif.c:417:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/mmc/host/sh_mmcif.c:418:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../include/linux/bitops.h:6:19: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c:675:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c:766:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/spi/spi-bcm63xx.c:565:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'resource_size_t' [-Wformat=]
../include/uapi/linux/byteorder/big_endian.h:32:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
Section Mismatches:
WARNING: drivers/pci/host/built-in.o(.data+0x1948): Section mismatch in reference from the variable hisi_pcie_driver to the function .init.text:hisi_pcie_probe()
WARNING: drivers/pci/built-in.o(.data+0x12a98): Section mismatch in reference from the variable hisi_pcie_driver to the function .init.text:hisi_pcie_probe()
WARNING: drivers/built-in.o(.data+0x3d440): Section mismatch in reference from the variable hisi_pcie_driver to the function .init.text:hisi_pcie_probe()
WARNING: vmlinux.o(.data+0x1aba40): Section mismatch in reference from the variable hisi_pcie_driver to the function .init.text:hisi_pcie_probe()
-------------------------------------------------------------------------------
arm-multi_v5_defconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
<stdin>:1304:2: warning: #warning syscall mlock2 not implemented [-Wcpp]
../drivers/regulator/core.c:142:6: warning: unused variable 'i' [-Wunused-variable]
<stdin>:1304:2: warning: #warning syscall mlock2 not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 6 warnings, 0 section mismatches
Warnings:
<stdin>:1304:2: warning: #warning syscall mlock2 not implemented [-Wcpp]
../net/bluetooth/mgmt.c:6635:8: warning: 'r192' may be used uninitialized in this function [-Wmaybe-uninitialized]
../net/bluetooth/mgmt.c:6635:8: warning: 'h192' may be used uninitialized in this function [-Wmaybe-uninitialized]
../drivers/gpu/drm/drm_gem_cma_helper.c:484:21: warning: unused variable 'dev' [-Wunused-variable]
../drivers/regulator/core.c:142:6: warning: unused variable 'i' [-Wunused-variable]
<stdin>:1304:2: warning: #warning syscall mlock2 not implemented [-Wcpp]
-------------------------------------------------------------------------------
x86_64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../net/netfilter/nfnetlink_log.c:320:14: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 16 warnings, 0 section mismatches
Warnings:
<stdin>:1304:2: warning: #warning syscall mlock2 not implemented [-Wcpp]
../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:1079:7: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'long long int' [-Wformat]
../drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:1079:7: warning: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'long long int' [-Wformat]
../drivers/hid/hid-gfrm.c:151:2: warning: initialization from incompatible pointer type [enabled by default]
../drivers/hid/hid-gfrm.c:151:2: warning: (near initialization for 'gfrm_driver.input_configured') [enabled by default]
../fs/orangefs/pvfs2-bufmap.c:520:2: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t' [-Wformat]
../fs/orangefs/pvfs2-bufmap.c:552:2: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t' [-Wformat]
../drivers/gpu/drm/drm_gem_cma_helper.c:484:21: warning: unused variable 'dev' [-Wunused-variable]
../drivers/mfd/rtsx_pcr.c:565:6: warning: unused variable 'err' [-Wunused-variable]
../drivers/ntb/ntb_transport.c:828:3: warning: right shift count >= width of type [enabled by default]
../drivers/pci/host/pcie-altera-msi.c:192:5: warning: passing argument 1 of 'pci_msi_create_irq_domain' from incompatible pointer type [enabled by default]
../drivers/scsi/bnx2fc/bnx2fc_fcoe.c:2133:1: warning: the frame size of 1256 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/scsi/advansys.c:7806:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../drivers/net/ethernet/qlogic/qed/qed_dev.c:1670:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]
<stdin>:1304:2: warning: #warning syscall mlock2 not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allnoconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
<stdin>:1304:2: warning: #warning syscall mlock2 not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../drivers/regulator/core.c:142:6: warning: unused variable 'i' [-Wunused-variable]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-allnoconfig
dev_opp_list_lock is used everywhere to protect device and OPP lists,
but dev_pm_opp_set_sharing_cpus() is missed somehow. And instead we used
rcu-lock, which wouldn't help here as we are adding a new list_dev.
This also fixes a problem where we have called kzalloc(..., GFP_KERNEL)
from within rcu-lock, which isn't allowed as kzalloc can sleep when
called with GFP_KERNEL.
With CONFIG_DEBUG_ATOMIC_SLEEP set, we will see the caller vomiting.
Fixes: 8d4d4e98acd6 ("PM / OPP: Add helpers for initializing CPU OPPs")
Reported-by: Michael Turquette <mturquette(a)baylibre.com>
Signed-off-by: Viresh Kumar <viresh.kumar(a)linaro.org>
---
Mike: Can you please verify if this fixes it for you..
drivers/base/power/opp/core.c | 2 +-
drivers/base/power/opp/cpu.c | 8 ++++----
drivers/base/power/opp/opp.h | 3 +++
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c
index d5c1149ff123..69f83cbe37b2 100644
--- a/drivers/base/power/opp/core.c
+++ b/drivers/base/power/opp/core.c
@@ -27,7 +27,7 @@
*/
static LIST_HEAD(dev_opp_list);
/* Lock to allow exclusive modification to the device and opp lists */
-static DEFINE_MUTEX(dev_opp_list_lock);
+DEFINE_MUTEX(dev_opp_list_lock);
#define opp_rcu_lockdep_assert() \
do { \
diff --git a/drivers/base/power/opp/cpu.c b/drivers/base/power/opp/cpu.c
index 7654c5606307..91f15b2e25ee 100644
--- a/drivers/base/power/opp/cpu.c
+++ b/drivers/base/power/opp/cpu.c
@@ -124,12 +124,12 @@ int dev_pm_opp_set_sharing_cpus(struct device *cpu_dev, cpumask_var_t cpumask)
struct device *dev;
int cpu, ret = 0;
- rcu_read_lock();
+ mutex_lock(&dev_opp_list_lock);
dev_opp = _find_device_opp(cpu_dev);
if (IS_ERR(dev_opp)) {
ret = -EINVAL;
- goto out_rcu_read_unlock;
+ goto unlock;
}
for_each_cpu(cpu, cpumask) {
@@ -150,8 +150,8 @@ int dev_pm_opp_set_sharing_cpus(struct device *cpu_dev, cpumask_var_t cpumask)
continue;
}
}
-out_rcu_read_unlock:
- rcu_read_unlock();
+unlock:
+ mutex_unlock(&dev_opp_list_lock);
return 0;
}
diff --git a/drivers/base/power/opp/opp.h b/drivers/base/power/opp/opp.h
index dcb38f78dae4..7366b2aa8997 100644
--- a/drivers/base/power/opp/opp.h
+++ b/drivers/base/power/opp/opp.h
@@ -21,6 +21,9 @@
#include <linux/rculist.h>
#include <linux/rcupdate.h>
+/* Lock to allow exclusive modification to the device and opp lists */
+extern struct mutex dev_opp_list_lock;
+
/*
* Internal data structure organization with the OPP layer library is as
* follows:
--
2.6.2.198.g614a2ac
Tree/Branch: master
Git describe: v4.3-3495-g0d51ce9
Commit: 0d51ce9ca1 Merge tag 'pm+acpi-4.4-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Build Time: 119 min 22 sec
Passed: 9 / 9 (100.00 %)
Failed: 0 / 9 ( 0.00 %)
Errors: 0
Warnings: 40
Section Mismatches: 1
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
2 warnings 0 mismatches : arm64-allnoconfig
80 warnings 3 mismatches : arm64-allmodconfig
2 warnings 0 mismatches : arm-multi_v7_defconfig
12 warnings 0 mismatches : arm-allmodconfig
1 warnings 0 mismatches : x86_64-defconfig
-------------------------------------------------------------------------------
Warnings Summary: 40
17 ../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
17 ../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
10 ../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
10 ../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
4 ../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:32:0: warning: "TRUE" redefined
4 ../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:31:0: warning: "FALSE" redefined
2 ../include/linux/kernel.h:722:17: warning: comparison of distinct pointer types lacks a cast
1 ../sound/soc/samsung/dmaengine.c:60:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../sound/soc/samsung/dmaengine.c:53:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../net/netfilter/nfnetlink_log.c:320:14: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../net/bluetooth/mgmt.c:6635:8: warning: 'r192' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../net/bluetooth/mgmt.c:6635:8: warning: 'h192' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../kernel/sched/rt.c:68:13: warning: 'push_irq_work_func' declared 'static' but never defined [-Wunused-function]
1 ../include/uapi/linux/byteorder/big_endian.h:32:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../include/linux/bitops.h:6:19: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../fs/logfs/dev_bdev.c:84:14: warning: comparison of distinct pointer types lacks a cast [enabled by default]
1 ../fs/logfs/dev_bdev.c:174:14: warning: comparison of distinct pointer types lacks a cast [enabled by default]
1 ../drivers/scsi/bnx2fc/bnx2fc_fcoe.c:2134:1: warning: the frame size of 1256 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/scsi/advansys.c:7806:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c:766:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c:675:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/ntb/ntb_transport.c:828:3: warning: right shift count >= width of type [enabled by default]
1 ../drivers/net/ethernet/qlogic/qed/qed_dev.c:1670:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mmc/host/sh_mmcif.c:418:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/mmc/host/sh_mmcif.c:417:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/mfd/wm8998-tables.c:50:10: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type [enabled by default]
1 ../drivers/mfd/wm8998-tables.c:49:10: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type
1 ../drivers/mfd/wm5110-tables.c:281:11: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type [enabled by default]
1 ../drivers/mfd/wm5110-tables.c:280:11: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/infiniband/hw/cxgb4/mem.c:147:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/infiniband/core/uverbs_cmd.c:1481:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/atm/iphase.h:127:0: warning: "isprint" redefined
1 ../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../arch/arm64/kernel/cpufeature.c:699:13: warning: 'cpus_have_hwcap' defined but not used [-Wunused-function]
1 ../arch/arm/mach-cns3xxx/pcie.c:266:1: warning: the frame size of 1088 bytes is larger than 1024 bytes [-Wframe-larger-than=]
Section Mismatch Summary: 1
3 WARNING: drivers/staging/fsl-mc/bus/mc-bus-driver.o(.init.text+0x16c): Section mismatch in reference from the function init_module() to the function .exit.text:dprc_driver_exit()
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../arch/arm64/kernel/cpufeature.c:699:13: warning: 'cpus_have_hwcap' defined but not used [-Wunused-function]
../kernel/sched/rt.c:68:13: warning: 'push_irq_work_func' declared 'static' but never defined [-Wunused-function]
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 80 warnings, 3 section mismatches
Warnings:
../drivers/atm/iphase.h:127:0: warning: "isprint" redefined
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../include/linux/kernel.h:722:17: warning: comparison of distinct pointer types lacks a cast
../include/linux/kernel.h:722:17: warning: comparison of distinct pointer types lacks a cast
../sound/soc/samsung/dmaengine.c:53:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../sound/soc/samsung/dmaengine.c:60:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/mfd/wm5110-tables.c:280:11: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type
../drivers/mfd/wm8998-tables.c:49:10: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
../drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
../drivers/mmc/host/sh_mmcif.c:417:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/mmc/host/sh_mmcif.c:418:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
../drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
../drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c:675:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c:766:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:31:0: warning: "FALSE" redefined
../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:32:0: warning: "TRUE" redefined
../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:31:0: warning: "FALSE" redefined
../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:32:0: warning: "TRUE" redefined
../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:31:0: warning: "FALSE" redefined
../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:32:0: warning: "TRUE" redefined
../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:31:0: warning: "FALSE" redefined
../drivers/staging/ft1000/ft1000-usb/ft1000_usb.h:32:0: warning: "TRUE" redefined
../include/uapi/linux/byteorder/big_endian.h:32:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../include/linux/bitops.h:6:19: warning: large integer implicitly truncated to unsigned type [-Woverflow]
Section Mismatches:
WARNING: drivers/staging/fsl-mc/bus/mc-bus-driver.o(.init.text+0x16c): Section mismatch in reference from the function init_module() to the function .exit.text:dprc_driver_exit()
WARNING: drivers/staging/fsl-mc/bus/mc-bus-driver.o(.init.text+0x16c): Section mismatch in reference from the function init_module() to the function .exit.text:dprc_driver_exit()
WARNING: drivers/staging/fsl-mc/bus/mc-bus-driver.o(.init.text+0x16c): Section mismatch in reference from the function init_module() to the function .exit.text:dprc_driver_exit()
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../net/bluetooth/mgmt.c:6635:8: warning: 'r192' may be used uninitialized in this function [-Wmaybe-uninitialized]
../net/bluetooth/mgmt.c:6635:8: warning: 'h192' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 12 warnings, 0 section mismatches
Warnings:
../arch/arm/mach-cns3xxx/pcie.c:266:1: warning: the frame size of 1088 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../fs/logfs/dev_bdev.c:84:14: warning: comparison of distinct pointer types lacks a cast [enabled by default]
../fs/logfs/dev_bdev.c:174:14: warning: comparison of distinct pointer types lacks a cast [enabled by default]
../drivers/infiniband/core/uverbs_cmd.c:1481:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/hw/cxgb4/mem.c:147:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/mfd/wm5110-tables.c:281:11: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type [enabled by default]
../drivers/mfd/wm8998-tables.c:50:10: warning: passing argument 2 of 'regmap_register_patch' from incompatible pointer type [enabled by default]
../drivers/ntb/ntb_transport.c:828:3: warning: right shift count >= width of type [enabled by default]
../drivers/scsi/bnx2fc/bnx2fc_fcoe.c:2134:1: warning: the frame size of 1256 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/net/ethernet/qlogic/qed/qed_dev.c:1670:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/scsi/advansys.c:7806:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
-------------------------------------------------------------------------------
x86_64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../net/netfilter/nfnetlink_log.c:320:14: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-allnoconfig
arm-allnoconfig
arm-multi_v5_defconfig
arm64-defconfig
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr