diff options
Diffstat (limited to 'drivers/edac')
-rw-r--r-- | drivers/edac/edac_mc.c | 17 |
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 | ||