diff options
author | Rohit Vaswani <rvaswani@codeaurora.org> | 2014-10-03 13:13:15 -0700 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-22 11:16:27 -0700 |
commit | 8469f207b4fdc573f5b92bae424a5fd8ab3e84ae (patch) | |
tree | 9693806dd92edfccf270bfca36e64d2d3e84d8c8 | |
parent | 0e0c931df1fb9908adc99e681c4e5a14e391f601 (diff) |
edac: Allow the option of creating a deferrable work for polling
EDAC provides a mechanism to poll for errors using a callback function
and uses a delayed timer to schedule it. Provide an option to create
a deferrable timer if the error checking is not worth waking up
the cpu from idle.
Change-Id: Ia25216323eabf7fa4b894897c950414006921f3f
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
-rw-r--r-- | drivers/edac/edac_core.h | 1 | ||||
-rw-r--r-- | drivers/edac/edac_device.c | 6 |
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/edac/edac_core.h b/drivers/edac/edac_core.h index 67691a6d0708..1fa7a36f417b 100644 --- a/drivers/edac/edac_core.h +++ b/drivers/edac/edac_core.h @@ -227,6 +227,7 @@ struct edac_device_ctl_info { int panic_on_ue; /* boolean for panic'ing on an UE */ unsigned poll_msec; /* number of milliseconds to poll interval */ unsigned long delay; /* number of jiffies for poll_msec */ + bool defer_work; /* Create a deferrable work for polling */ /* Additional top controller level attributes, but specified * by the low level driver. diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c index dc786c26a1e4..27884ff645d8 100644 --- a/drivers/edac/edac_device.c +++ b/drivers/edac/edac_device.c @@ -414,7 +414,11 @@ void edac_device_workq_setup(struct edac_device_ctl_info *edac_dev, edac_dev->poll_msec = msec; edac_dev->delay = msecs_to_jiffies(msec); - INIT_DELAYED_WORK(&edac_dev->work, edac_device_workq_function); + if (edac_dev->defer_work) + INIT_DEFERRABLE_WORK(&edac_dev->work, + edac_device_workq_function); + else + INIT_DELAYED_WORK(&edac_dev->work, edac_device_workq_function); /* optimize here for the 1 second case, which will be normal value, to * fire ON the 1 second time event. This helps reduce all sorts of |