The order in which resources were freed in wm8994_device_exit() isn't
correct. The regulators are removed before they are disabled.
Fix it by reordering code a bit, which makes it exact opposite of
wm8994_device_init() as well.
Signed-off-by: Viresh Kumar <viresh.kumar(a)linaro.org>
---
drivers/mfd/wm8994-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
index 7eec619a6023..1e644aa53a2d 100644
--- a/drivers/mfd/wm8994-core.c
+++ b/drivers/mfd/wm8994-core.c
@@ -604,10 +604,10 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
static void wm8994_device_exit(struct wm8994 *wm8994)
{
pm_runtime_disable(wm8994->dev);
- mfd_remove_devices(wm8994->dev);
wm8994_irq_exit(wm8994);
regulator_bulk_disable(wm8994->num_supplies,
wm8994->supplies);
+ mfd_remove_devices(wm8994->dev);
}
static const struct of_device_id wm8994_of_match[] = {
--
2.7.1.410.g6faf27b
Tree/Branch: v4.7.4
Git describe: v4.7.4
Commit: bd333da7f0 Linux 4.7.4
Build Time: 70 min 32 sec
Passed: 9 / 9 (100.00 %)
Failed: 0 / 9 ( 0.00 %)
Errors: 0
Warnings: 2
Section Mismatches: 0
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
2 warnings 0 mismatches : arm64-allmodconfig
1 warnings 0 mismatches : arm-allmodconfig
-------------------------------------------------------------------------------
Warnings Summary: 2
2 ../include/linux/dynamic_debug.h:86:3: warning: 'virq' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../fs/reiserfs/ibalance.c:1156:2: warning: 'new_insert_key' may be used uninitialized in this function [-Wmaybe-uninitialized]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../include/linux/dynamic_debug.h:86:3: warning: 'virq' may be used uninitialized in this function [-Wmaybe-uninitialized]
../fs/reiserfs/ibalance.c:1156:2: warning: 'new_insert_key' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../include/linux/dynamic_debug.h:86:3: warning: 'virq' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
arm64-allnoconfig
arm-multi_v5_defconfig
arm-multi_v7_defconfig
x86_64-defconfig
arm-allnoconfig
x86_64-allnoconfig
arm64-defconfig
Hi Alex, Mark,
Please consider following linaro-android pull request for
"linux-linaro-lsk-v4.4-android" LSK branch.
EAS landed in aosp/android-4.4 last week. So heads up for this pretty
big pull request.
As usual build tested for x86_64(allmodconfig), arm64(defconfig +
android configs), arm(vexpress + android configs) and boot tested on
Qemu with Android M.
Regards,
Amit Pundir
The following changes since commit b56111f481e16510558a892d5d56cb90cadd96c0:
Merge branch 'linux-linaro-lsk-v4.4' into
linux-linaro-lsk-v4.4-android (2016-08-30 10:27:13 +0800)
are available in the git repository at:
git://android.git.linaro.org/kernel/linaro-android.git lsk-v4.4-android
for you to fetch changes up to d3a1d035ef89cfb89cf6e2128d44b95771f2c7b4:
UPSTREAM: audit: fix a double fetch in audit_log_single_execve_arg()
(2016-09-14 15:17:01 +0530)
----------------------------------------------------------------
Amit Pundir (4):
ANDROID: base-cfg: drop SECCOMP_FILTER config
sched/walt: include missing header for arm_timer_read_counter()
DEBUG: cpufreq: fix cpu_capacity tracing build for non-smp systems
sched/walt: use do_div instead of division operator
Ard Biesheuvel (1):
BACKPORT: arm64: mm: fix location of _etext
Badhri Jagan Sridharan (1):
ANDROID: dm: android-verity: Allow android-verity to be compiled
as an independent module
Balbir Singh (1):
RFC: FROMLIST: cgroup: reduce read locked section of
cgroup_threadgroup_rwsem during fork
Benjamin Tissoires (1):
UPSTREAM: HID: core: prevent out-of-bound readings
Chris Redpath (1):
arch_timer: add error handling when the MPM global timer is cleared
Christoph Lameter (1):
vmstat: make vmstat_updater deferrable again and shut down on idle
Dan Carpenter (1):
UPSTREAM: [media] xc2028: unlock on error in xc2028_set_config()
Dietmar Eggemann (17):
cpufreq: Frequency invariant scheduler load-tracking support
arm: Enable frequency invariant scheduler load-tracking support
arm64: Enable frequency invariant scheduler load-tracking support
sched: Store system-wide maximum cpu capacity in root domain
sched: Enable idle balance to pull single task towards cpu with
higher capacity
sched: Introduce energy data structures
sched: Initialize energy data structures
arm: Cpu invariant scheduler load-tracking and capacity support
sched: Determine the current sched_group idle-state
sched: Consider a not over-utilized energy-aware system as balanced
cpufreq: Max freq invariant scheduler load-tracking and cpu
capacity support
sched: Update max cpu capacity in case of max frequency constraints
arm: Enable max freq invariant scheduler load-tracking and
capacity support
arm64: Enable max freq invariant scheduler load-tracking and
capacity support
sched: Do eas idle balance regardless of the rq avg idle value
DEBUG: sched: add energy procfs interface
arm: topology: Define TC2 energy and provide it to the scheduler
Eric Biggers (1):
UPSTREAM: usercopy: avoid potentially undefined behavior in pointer math
Eric Dumazet (1):
UPSTREAM: tcp: fix use after free in tcp_xmit_retransmit_queue()
Guenter Roeck (1):
ANDROID: rcu_sync: Export rcu_sync_lockdep_assert
Hannes Frederic Sowa (1):
ipv6: fix endianness error in icmpv6_err
John Stultz (1):
cpufreq: Kconfig: Fixup incorrect selection by CPU_FREQ_DEFAULT_GOV_SCHED
Jon Medhurst (1):
arm: Fix #if/#ifdef typo in topology.c
Joonsoo Kim (1):
UPSTREAM: mm/slub: support left redzone
Joseph Lo (1):
CHROMIUM: sched: update the average of nr_running
Josh Poimboeuf (1):
UPSTREAM: usercopy: fix overlap check for kernel text
Jungseung Lee (1):
UPSTREAM: ARM: 8494/1: mm: Enable PXN when running non-LPAE
kernel on LPAE processor
Juri Lelli (13):
arm64: Cpu invariant scheduler load-tracking and capacity support
sched/fair: add triggers for OPP change requests
sched/{core,fair}: trigger OPP change request on fork()
sched/fair: cpufreq_sched triggers for load balancing
fixup! sched: scheduler-driven cpu frequency selection
fixup! sched/fair: jump to max OPP when crossing UP threshold
DEBUG: sched: add tracepoint for cpu/freq scale invariance
DEBUG: sched: add tracepoint for task load/util signals
DEBUG: sched: add tracepoint for CPU load/util signals
DEBUG: sched,cpufreq: add cpu_capacity change tracepoint
sched/fair: add tunable to force selection at cpu granularity
sched/cpufreq_sched: fix thermal capping events
sched/fair: call OPP update when going idle after migration
Kees Cook (5):
BACKPORT: ARM: 8583/1: mm: fix location of _etext
UPSTREAM: x86/uaccess: force copy_*_user() to be inlined
BACKPORT: usercopy: fold builtin_const check into inline function
UPSTREAM: usercopy: force check_object_size() inline
UPSTREAM: usercopy: remove page-spanning test for now
Linus Torvalds (2):
UPSTREAM: unsafe_[get|put]_user: change interface to use a error
target label
UPSTREAM: Make the hardened user-copy code depend on having a
hardened allocator
Lorenzo Colitti (1):
net: ipv6: Fix ping to link-local addresses.
Mark Salyzyn (1):
FROMLIST: pstore: drop pmsg bounce buffer
Matt Wagantall (2):
sched/rt: print RT tasks when RT throttling is activated
sched/rt: Add Kconfig option to enable panicking for RT throttling
Mauro Carvalho Chehab (1):
UPSTREAM: [media] xc2028: avoid use after free
Michael Turquette (2):
cpufreq: introduce cpufreq_driver_is_slow
sched: scheduler-driven cpu frequency selection
Mohamad Ayyash (1):
BACKPORT: Don't show empty tag stats for unprivileged uids
Mohan Srinivasan (2):
Android: MMC/UFS IO Latency Histograms.
Android: Fix build breakages.
Morten Rasmussen (20):
arm: Update arch_scale_cpu_capacity() to reflect change to define
sched: Add cpu capacity awareness to wakeup balancing
sched: Consider spare cpu capacity at task wake-up
sched: Prevent unnecessary active balance of single task in sched group
sched: Documentation for scheduler energy cost model
sched: Make energy awareness a sched feature
sched: Introduce SD_SHARE_CAP_STATES sched_domain flag
sched: Compute cpu capacity available at current frequency
sched: Relocated cpu_util() and change return type
sched: Highest energy aware balancing sched_domain level pointer
sched: Calculate energy consumption of sched_group
sched: Extend sched_group_energy to test load-balancing decisions
sched: Estimate energy impact of scheduling decisions
sched: Add over-utilization/tipping point indicator
sched, cpuidle: Track cpuidle state index in the scheduler
sched: Energy-aware wake-up task placement
sched: Disable energy-unfriendly nohz kicks
sched: Add per-cpu max capacity to sched_group_capacity
sched: Add group_misfit_task load-balance type
sched: Consider misfit tasks when load-balancing
Patrick Bellasi (31):
sched/tune: add detailed documentation
sched/tune: add sysctl interface to define a boost value
sched/fair: add function to convert boost value into "margin"
sched/fair: add boosted CPU usage
sched/tune: add initial support for CGroups based boosting
sched/tune: compute and keep track of per CPU boost value
sched/{fair,tune}: track RUNNABLE tasks impact on per CPU boost value
sched/fair: add boosted task utilization
sched/fair: keep track of energy/capacity variations
sched/tune: add support to compute normalized energy
sched/fair: filter energy_diff() based on energy_payoff value
DEBUG: schedtune: add tracepoint for SchedTune configuration update
DEBUG: schedtune: add tracepoint for CPU boost signal
DEBUG: schedtune: add tracepoint for schedtune_tasks_update() values
DEBUG: sched/tune: add tracepoint for task boost signal
DEBUG: sched/tune: add tracepoint for energy_diff() values
DEBUG: sched/tune: add tracepoint on P-E space filtering
FIXUP: sched: fix build for non-SMP target
FIX: sched/tune: update usage of boosted task utilisation on CPU selection
FIX: sched/tune: move schedtune_nornalize_energy into fair.c
FIXUP: sched/tune: fix payoff calculation for boost region
sched/{fair,tune}: simplify fair.c code
sched/tune: use a single initialisation function
FIXUP: sched/tune: fix accounting for runnable tasks
sched/tune: fix PB and PC cuts indexes definition
FIXUP: sched: fix set_cfs_cpu_capacity when WALT is in use
FIXUP: sched: fix SchedFreq integration for both PELT and WALT
DEBUG: sched: add tracepoint for RD overutilized
FIXUP: sched/tune: do initialization as a postcore_initicall
FIXUP: sched/tune: add fixes missing from a previous patch
FIXUP: sched/tune: update accouting before CPU capacity
Paul Moore (1):
UPSTREAM: audit: fix a double fetch in audit_log_single_execve_arg()
Peter Hurley (1):
UPSTREAM: tty: Prevent ldisc drivers from re-using stale tty fields
Peter Zijlstra (3):
RFC: FROMLIST: locking/percpu-rwsem: Optimize readers and reduce
global impact
RFC: FROMLIST: cgroup: avoid synchronize_sched() in __cgroup_procs_write()
UPSTREAM: sched: Fix a race between __kthread_bind() and
sched_setaffinity()
Phil Turnbull (1):
UPSTREAM: netfilter: nfnetlink: correctly validate length of
batch messages
Ricky Liang (1):
FIXUP: sched: scheduler-driven cpu frequency selection
Riley Andrews (1):
cpuset: Make cpusets restore on hotplug
Robin Randhawa (3):
Documentation: DT bindings for energy model cost data required by EAS
sched: Support for extracting EAS energy costs from DT
arm64, topology: Updates to use DT bindings for EAS costing data
Srinath Sridharan (7):
sched/cpufreq_sched: Consolidated update
sched: EAS: take cstate into account when selecting idle core
sched/tune: Add support for negative boost values
sched/walt: Accounting for number of irqs pending on each core
sched/tune: Introducing a new schedtune attribute prefer_idle
sched/fair: Picking cpus with low OPPs for tasks that prefer idle CPUs
sched/fair: Favor higher cpus only for boosted tasks
Srivatsa Vaddagiri (1):
sched: Introduce Window Assisted Load Tracking (WALT)
Steve Muckle (3):
sched/fair: jump to max OPP when crossing UP threshold
sched/cpufreq_sched: add trace events
arm: Fix build error "conflicting types for 'scale_cpu_capacity'"
Todd Kjos (6):
sched/fair: add tunable to set initial task load
sched/fair: optimize idle cpu selection for boosted tasks
sched: EAS: Avoid causing spikes to max-freq unnecessarily
FIXUP: sched/fair: Fix hang during suspend in sched_group_energy
FIXUP: sched: Fix double-release of spinlock in move_queued_task
sched: use util instead of capacity to select busy cpu
Vincent Guittot (3):
sched: remove call of sched_avg_update from sched_rt_avg_update
sched: deadline: use deadline bandwidth in scale_rt_capacity
sched: rt scheduler sets capacity requirement
Waiman Long (1):
sched/fair: Avoid redundant idle_cpu() call in update_sg_lb_stats()
Yongqin Liu (1):
ANDROID: base-cfg: enable SECCOMP config
Yuyang Du (1):
sched/fair: Fix new task's load avg removed from source CPU in
wake_up_new_task()
Documentation/devicetree/bindings/scheduler/sched-energy-costs.txt |
360 +++++++++++++++++++++++++
Documentation/scheduler/sched-energy.txt |
362 +++++++++++++++++++++++++
Documentation/scheduler/sched-tune.txt |
366 +++++++++++++++++++++++++
android/configs/android-base.cfg | 1 +
arch/arm/include/asm/topology.h | 7 +
arch/arm/kernel/setup.c | 2 +-
arch/arm/kernel/topology.c |
149 ++++++++++-
arch/arm/kernel/vmlinux.lds.S | 4 +-
arch/arm/mm/mmu.c | 2 +-
arch/arm64/include/asm/topology.h | 9 +
arch/arm64/kernel/setup.c | 2 +-
arch/arm64/kernel/topology.c |
81 ++++++
arch/arm64/kernel/vmlinux.lds.S | 7 +-
arch/arm64/mm/init.c | 4 +-
arch/arm64/mm/mmu.c | 20 +-
arch/x86/include/asm/uaccess.h | 20 +-
block/blk-core.c |
84 ++++++
drivers/cpufreq/Kconfig | 21 ++
drivers/cpufreq/cpufreq.c | 64 +++++
drivers/cpuidle/cpuidle.c | 4 +-
drivers/hid/hid-core.c | 3 +
drivers/md/Kconfig | 3 +-
drivers/md/Makefile | 5 +-
drivers/md/dm-linear.c | 6 +
drivers/md/dm-verity-target.c | 7 +
drivers/media/tuners/tuner-xc2028.c | 6 +-
drivers/mmc/core/core.c | 66 ++++-
drivers/mmc/core/host.c | 6 +-
drivers/mmc/core/host.h | 5 +
drivers/scsi/ufs/ufshcd.c |
81 ++++++
drivers/scsi/ufs/ufshcd.h | 3 +
drivers/tty/tty_ldisc.c | 7 +
fs/pstore/platform.c | 36 +++
fs/pstore/pmsg.c | 35 +--
fs/pstore/ram.c | 19 ++
fs/pstore/ram_core.c | 47 +++-
include/linux/blkdev.h |
76 ++++++
include/linux/cgroup_subsys.h | 4 +
include/linux/cpufreq.h | 16 ++
include/linux/cpuidle.h | 2 +-
include/linux/mmc/core.h | 2 +
include/linux/mmc/host.h | 6 +
include/linux/percpu-rwsem.h |
84 +++++-
include/linux/pstore.h | 11 +-
include/linux/pstore_ram.h | 7 +-
include/linux/rcu_sync.h | 1 +
include/linux/sched.h |
86 ++++++
include/linux/sched/sysctl.h | 26 ++
include/linux/sched_energy.h | 44 +++
include/linux/slub_def.h | 1 +
include/linux/thread_info.h | 7 +-
include/linux/uaccess.h | 4 +-
include/linux/vmstat.h | 2 +
include/net/tcp.h | 2 +
include/trace/events/cpufreq_sched.h |
87 ++++++
include/trace/events/power.h | 7 +
include/trace/events/sched.h |
498 ++++++++++++++++++++++++++++++++++
init/Kconfig | 53 ++++
kernel/auditsc.c |
332 ++++++++++++-----------
kernel/cgroup.c | 6 +
kernel/cpuset.c | 33 ++-
kernel/exit.c | 5 +
kernel/fork.c | 4 +-
kernel/locking/percpu-rwsem.c |
229 +++++++++-------
kernel/rcu/sync.c | 13 +
kernel/sched/Makefile | 5 +-
kernel/sched/core.c |
345 +++++++++++++++++++++++-
kernel/sched/cpufreq_sched.c |
499 ++++++++++++++++++++++++++++++++++
kernel/sched/cputime.c | 16 ++
kernel/sched/deadline.c | 33 ++-
kernel/sched/energy.c |
124 +++++++++
kernel/sched/fair.c |
1322 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
kernel/sched/features.h | 5 +
kernel/sched/idle.c | 4 +-
kernel/sched/rt.c |
106 +++++++-
kernel/sched/sched.h |
265 ++++++++++++++++++-
kernel/sched/stop_task.c | 3 +
kernel/sched/tune.c |
951 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
kernel/sched/tune.h | 55 ++++
kernel/sched/walt.c |
1171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
kernel/sched/walt.h | 62 +++++
kernel/sysctl.c | 73 +++++
lib/Kconfig.debug | 9 +
lib/strncpy_from_user.c | 8 +-
lib/strnlen_user.c | 7 +-
mm/slub.c |
100 +++++--
mm/usercopy.c | 65 +++--
mm/vmstat.c | 69 +++--
net/ipv6/icmp.c | 2 +-
net/ipv6/ping.c | 38 ++-
net/netfilter/nfnetlink.c | 10 +-
net/netfilter/xt_qtaguid.c | 5 +-
security/Kconfig | 12 +
93 files changed, 8306 insertions(+), 610 deletions(-)
create mode 100644
Documentation/devicetree/bindings/scheduler/sched-energy-costs.txt
create mode 100644 Documentation/scheduler/sched-energy.txt
create mode 100644 Documentation/scheduler/sched-tune.txt
create mode 100644 include/linux/sched_energy.h
create mode 100644 include/trace/events/cpufreq_sched.h
create mode 100644 kernel/sched/cpufreq_sched.c
create mode 100644 kernel/sched/energy.c
create mode 100644 kernel/sched/tune.c
create mode 100644 kernel/sched/tune.h
create mode 100644 kernel/sched/walt.c
create mode 100644 kernel/sched/walt.h