The workqueue "monitor_wqueue" is used to monitor the PMIC battery status.
It queues a single work item (pbi->monitor_battery) and hence doesn't
require ordering. Hence, alloc_workqueue has been used to replace the
deprecated create_singlethread_workqueue instance.

Since PMIC battery status needs to be monitored for any change, the
WQ_MEM_RECLAIM flag has been set to ensure forward progress under memory
pressure.

Since there is a single work item, explicit concurrency
limit is unnecessary here.

Signed-off-by: Bhaktipriya Shridhar <bhaktipriy...@gmail.com>
---
 drivers/power/intel_mid_battery.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/power/intel_mid_battery.c 
b/drivers/power/intel_mid_battery.c
index 9fa4acc..dc7feef 100644
--- a/drivers/power/intel_mid_battery.c
+++ b/drivers/power/intel_mid_battery.c
@@ -689,8 +689,7 @@ static int probe(int irq, struct device *dev)
        /* initialize all required framework before enabling interrupts */
        INIT_WORK(&pbi->handler, pmic_battery_handle_intrpt);
        INIT_DELAYED_WORK(&pbi->monitor_battery, pmic_battery_monitor);
-       pbi->monitor_wqueue =
-                       create_singlethread_workqueue(dev_name(dev));
+       pbi->monitor_wqueue = alloc_workqueue(dev_name(dev), WQ_MEM_RECLAIM, 0);
        if (!pbi->monitor_wqueue) {
                dev_err(dev, "%s(): wqueue init failed\n", __func__);
                retval = -ESRCH;
--
2.1.4

Reply via email to