mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 13:41:30 +00:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: drm: fix fallouts from slow-work -> wq conversion workqueue: workqueue_cpu_callback() should be cpu_notifier instead of hotcpu_notifier workqueue: add missing __percpu markup in kernel/workqueue.c
This commit is contained in:
commit
e5149cc44c
2 changed files with 6 additions and 14 deletions
|
@ -839,7 +839,6 @@ static void output_poll_execute(struct work_struct *work)
|
||||||
struct drm_connector *connector;
|
struct drm_connector *connector;
|
||||||
enum drm_connector_status old_status, status;
|
enum drm_connector_status old_status, status;
|
||||||
bool repoll = false, changed = false;
|
bool repoll = false, changed = false;
|
||||||
int ret;
|
|
||||||
|
|
||||||
mutex_lock(&dev->mode_config.mutex);
|
mutex_lock(&dev->mode_config.mutex);
|
||||||
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
|
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);
|
dev->mode_config.funcs->output_poll_changed(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (repoll) {
|
if (repoll)
|
||||||
ret = queue_delayed_work(system_nrt_wq, delayed_work, DRM_OUTPUT_POLL_PERIOD);
|
queue_delayed_work(system_nrt_wq, delayed_work, DRM_OUTPUT_POLL_PERIOD);
|
||||||
if (ret)
|
|
||||||
DRM_ERROR("delayed enqueue failed %d\n", ret);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void drm_kms_helper_poll_disable(struct drm_device *dev)
|
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;
|
bool poll = false;
|
||||||
struct drm_connector *connector;
|
struct drm_connector *connector;
|
||||||
int ret;
|
|
||||||
|
|
||||||
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
|
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
|
||||||
if (connector->polled)
|
if (connector->polled)
|
||||||
poll = true;
|
poll = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (poll) {
|
if (poll)
|
||||||
ret = queue_delayed_work(system_nrt_wq, &dev->mode_config.output_poll_work, DRM_OUTPUT_POLL_PERIOD);
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_kms_helper_poll_enable);
|
EXPORT_SYMBOL(drm_kms_helper_poll_enable);
|
||||||
|
|
||||||
|
|
|
@ -2568,7 +2568,7 @@ EXPORT_SYMBOL(schedule_delayed_work_on);
|
||||||
int schedule_on_each_cpu(work_func_t func)
|
int schedule_on_each_cpu(work_func_t func)
|
||||||
{
|
{
|
||||||
int cpu;
|
int cpu;
|
||||||
struct work_struct *works;
|
struct work_struct __percpu *works;
|
||||||
|
|
||||||
works = alloc_percpu(struct work_struct);
|
works = alloc_percpu(struct work_struct);
|
||||||
if (!works)
|
if (!works)
|
||||||
|
@ -3527,7 +3527,7 @@ static int __init init_workqueues(void)
|
||||||
unsigned int cpu;
|
unsigned int cpu;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
hotcpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE);
|
cpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE);
|
||||||
|
|
||||||
/* initialize gcwqs */
|
/* initialize gcwqs */
|
||||||
for_each_gcwq_cpu(cpu) {
|
for_each_gcwq_cpu(cpu) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue