From: Tejun Heo <tj@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>,
lkml <linux-kernel@vger.kernel.org>,
namhyung@gmail.com, w41ter@gmail.com,
Markus Trippelsdorf <markus@trippelsdorf.de>,
David Airlie <airlied@linux.ie>
Subject: [GIT PULL] workqueue: fixes for v2.6.36
Date: Mon, 09 Aug 2010 23:54:30 +0200 [thread overview]
Message-ID: <4C607916.80803@kernel.org> (raw)
Hello,
Please pull from the following branch to receive workqueue fixes for
v2.6.36.
git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git for-linus
The branch contains three patches. One is major and the other are
minor.
workqueue is now initialized during early_init and thus relies on
workqueue_cpu_callback() being called for non boot cpus during boot.
However, the cpu callback was registered as hotcpu_notifier and didn't
get called if CONFIG_CPU_HOTPLUG was disabled. This is fixed by
changing it to cpu_notifier.
One of the minor two adds missing __percpu notation and the other
removes spurious warning messages caused by incorrect conversion from
slow-work to wq.
Thanks.
Namhyung Kim (1):
workqueue: add missing __percpu markup in kernel/workqueue.c
Tejun Heo (2):
workqueue: workqueue_cpu_callback() should be cpu_notifier instead of hotcpu_notifier
drm: fix fallouts from slow-work -> wq conversion
drivers/gpu/drm/drm_crtc_helper.c | 16 ++++------------
kernel/workqueue.c | 4 ++--
2 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 4598130..b9e4dbf 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -839,7 +839,6 @@ static void output_poll_execute(struct work_struct *work)
struct drm_connector *connector;
enum drm_connector_status old_status, status;
bool repoll = false, changed = false;
- int ret;
mutex_lock(&dev->mode_config.mutex);
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
@@ -874,11 +873,8 @@ static void output_poll_execute(struct work_struct *work)
dev->mode_config.funcs->output_poll_changed(dev);
}
- if (repoll) {
- ret = queue_delayed_work(system_nrt_wq, delayed_work, DRM_OUTPUT_POLL_PERIOD);
- if (ret)
- DRM_ERROR("delayed enqueue failed %d\n", ret);
- }
+ if (repoll)
+ queue_delayed_work(system_nrt_wq, delayed_work, DRM_OUTPUT_POLL_PERIOD);
}
void drm_kms_helper_poll_disable(struct drm_device *dev)
@@ -893,18 +889,14 @@ void drm_kms_helper_poll_enable(struct drm_device *dev)
{
bool poll = false;
struct drm_connector *connector;
- int ret;
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
if (connector->polled)
poll = true;
}
- if (poll) {
- ret = queue_delayed_work(system_nrt_wq, &dev->mode_config.output_poll_work, DRM_OUTPUT_POLL_PERIOD);
- if (ret)
- DRM_ERROR("delayed enqueue failed %d\n", ret);
- }
+ if (poll)
+ queue_delayed_work(system_nrt_wq, &dev->mode_config.output_poll_work, DRM_OUTPUT_POLL_PERIOD);
}
EXPORT_SYMBOL(drm_kms_helper_poll_enable);
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 9ca34cd..2994a0e 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -2568,7 +2568,7 @@ EXPORT_SYMBOL(schedule_delayed_work_on);
int schedule_on_each_cpu(work_func_t func)
{
int cpu;
- struct work_struct *works;
+ struct work_struct __percpu *works;
works = alloc_percpu(struct work_struct);
if (!works)
@@ -3527,7 +3527,7 @@ static int __init init_workqueues(void)
unsigned int cpu;
int i;
- hotcpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE);
+ cpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE);
/* initialize gcwqs */
for_each_gcwq_cpu(cpu) {
reply other threads:[~2010-08-09 21:55 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C607916.80803@kernel.org \
--to=tj@kernel.org \
--cc=airlied@linux.ie \
--cc=linux-kernel@vger.kernel.org \
--cc=markus@trippelsdorf.de \
--cc=namhyung@gmail.com \
--cc=torvalds@linux-foundation.org \
--cc=w41ter@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.