Skip to content

Commit

Permalink
hwmon: (adt7470) Allow faster removal
Browse files Browse the repository at this point in the history
adt7470_remove will wait for the update thread to complete before
returning. This had a worst-case time of up to the user-configurable
auto_update_interval.

Replace msleep_interruptible with set_current_state and schedule_timeout
so that kthread_stop will interrupt the sleep.

Signed-off-by: Joshua Scott <joshua.scott@alliedtelesis.co.nz>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
  • Loading branch information
Joshua Scott authored and groeck committed Sep 10, 2016
1 parent feca313 commit 93cacfd
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/hwmon/adt7470.c
Original file line number Diff line number Diff line change
Expand Up @@ -273,9 +273,12 @@ static int adt7470_update_thread(void *p)
mutex_lock(&data->lock);
adt7470_read_temperatures(client, data);
mutex_unlock(&data->lock);

set_current_state(TASK_INTERRUPTIBLE);
if (kthread_should_stop())
break;
msleep_interruptible(data->auto_update_interval);

schedule_timeout(msecs_to_jiffies(data->auto_update_interval));
}

complete_all(&data->auto_update_stop);
Expand Down

0 comments on commit 93cacfd

Please sign in to comment.