Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5149cc4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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
parents 45d7f32c 9a919c46
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -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);

+2 −2
Original line number Diff line number Diff line
@@ -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) {