revert: debug: Make CONFIG_EXPERT select CONFIG_DEBUG_KERNEL to unhide debug options

and also disable DEBUG_KERNEL and several other DEBUG options

Conflicts:
	arch/arm/configs/cyanogenmod_e975_defconfig
Unhide DEBUG_BUGVERBOSE when EXPERT=y, even if DEBUG_KERNEL=n

CONFIG_DEBUG_BUGVERBOSE defaults to y.  Embedded systems might want to
disable this to save space; however, disabling it requires enabling
CONFIG_DEBUG_KERNEL to see it.  Unhide it for CONFIG_EXPERT=y as well,
so it shows up as an option for embedded users without having to turn on
CONFIG_DEBUG_KERNEL.

Also make the option show up if CONFIG_DEBUG_KERNEL=y and
CONFIG_EXPERT=n, which seems sensible for a debug feature.

Signed-off-by: Josh Triplett <josh@joshtriplett.org>
---
To me, it seemed highly counterintuitive to have to enable
CONFIG_DEBUG_KERNEL in order to *disable* debugging features; hence this
patch to expose one of the two that defaults to y.

Conflicts:
	arch/arm/configs/cyanogenmod_e975_defconfig
disable DEBUG in Prima WiFi driver
what a messy code! ... Why did you guys bother defining a DEBUG build
parameter if you were going to hardcode debugging in the end? Sheesh!

I think the WiFi driver is working with these changes saving ~200K in
compressed kernel size.
--mrg666
autogroup sched: per-uid task group for android
and enable autogroup scheduler

Thanks to Andrea Righi
http://arighi.blogspot.com/2011/01/android-automated-per-uid-task-group.html

Conflicts:
	arch/arm/configs/cyanogenmod_e975_defconfig
remove MSM_RUN_QUEUE_STATS
this is not necessary since user-space msm_mpdecision will not be used
disable MSM-DCVS
this is not needed since msm_mpdecision will be replaced
add kernel-based msm_autosmp.c
bring msm_mpdecision.c from my shooter kernel, renamed as msm_autosmp.c
to avoid confusing with msm_mpdecision.c in the original source,
also modified for quad-core cpu
workqueue: backport from Linux 3.6.11
to get the following patches by Tejun Heo that improves the latency of cpu
hotplug events.
workqueue: simplify CPU hotplug code
workqueue: remove CPU offline trustee
workqueue: don't butcher idle workers on an offline CPU
workqueue: reimplement CPU online rebinding to handle idle workers
https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/Hotplug#Workqueue

Conflicts:
	kernel/workqueue.c
workqueue: cond_resched() after processing each work item
commit b22ce27 upstream.

If !PREEMPT, a kworker running work items back to back can hog CPU.
This becomes dangerous when a self-requeueing work item which is
waiting for something to happen races against stop_machine.  Such
self-requeueing work item would requeue itself indefinitely hogging
the kworker and CPU it's running on while stop_machine would wait for
that CPU to enter stop_machine while preventing anything else from
happening on all other CPUs.  The two would deadlock.

Jamie Liu reports that this deadlock scenario exists around
scsi_requeue_run_queue() and libata port multiplier support, where one
port may exclude command processing from other ports.  With the right
timing, scsi_requeue_run_queue() can end up requeueing itself trying
to execute an IO which is asked to be retried while another device has
an exclusive access, which in turn can't make forward progress due to
stop_machine.

Fix it by invoking cond_resched() after executing each work item.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Jamie Liu <jamieliu@google.com>
References: http://thread.gmane.org/gmane.linux.kernel/1552567
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>