aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/edac')
-rw-r--r--drivers/edac/edac_mc.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index 616d90bcb3a..7c0df4af9ef 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -538,7 +538,7 @@ static void edac_mc_workq_setup(struct mem_ctl_info *mci, unsigned msec)
538 return; 538 return;
539 539
540 INIT_DELAYED_WORK(&mci->work, edac_mc_workq_function); 540 INIT_DELAYED_WORK(&mci->work, edac_mc_workq_function);
541 queue_delayed_work(edac_workqueue, &mci->work, msecs_to_jiffies(msec)); 541 mod_delayed_work(edac_workqueue, &mci->work, msecs_to_jiffies(msec));
542} 542}
543 543
544/* 544/*
@@ -578,21 +578,6 @@ void edac_mc_reset_delay_period(int value)
578 578
579 mutex_lock(&mem_ctls_mutex); 579 mutex_lock(&mem_ctls_mutex);
580 580
581 /* scan the list and turn off all workq timers, doing so under lock
582 */
583 list_for_each(item, &mc_devices) {
584 mci = list_entry(item, struct mem_ctl_info, link);
585
586 if (mci->op_state == OP_RUNNING_POLL)
587 cancel_delayed_work(&mci->work);
588 }
589
590 mutex_unlock(&mem_ctls_mutex);
591
592
593 /* re-walk the list, and reset the poll delay */
594 mutex_lock(&mem_ctls_mutex);
595
596 list_for_each(item, &mc_devices) { 581 list_for_each(item, &mc_devices) {
597 mci = list_entry(item, struct mem_ctl_info, link); 582 mci = list_entry(item, struct mem_ctl_info, link);
598 583