bq27x00_battery: Fix OOPS caused by unregistring bq27x00 driver
* power_supply_unregister call bq27x00_battery_get_property which call bq27x00_battery_poll * make sure that bq27x00_battery_poll will not call schedule_delayed_work again after unregister (which cause OOPS) Signed-off-by: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
This commit is contained in:
parent
c6cd4f267d
commit
8cfaaa8118
|
@ -598,6 +598,14 @@ static int bq27x00_powersupply_init(struct bq27x00_device_info *di)
|
|||
|
||||
static void bq27x00_powersupply_unregister(struct bq27x00_device_info *di)
|
||||
{
|
||||
/*
|
||||
* power_supply_unregister call bq27x00_battery_get_property which
|
||||
* call bq27x00_battery_poll.
|
||||
* Make sure that bq27x00_battery_poll will not call
|
||||
* schedule_delayed_work again after unregister (which cause OOPS).
|
||||
*/
|
||||
poll_interval = 0;
|
||||
|
||||
cancel_delayed_work_sync(&di->work);
|
||||
|
||||
power_supply_unregister(&di->bat);
|
||||
|
|
Loading…
Reference in New Issue