Skip to content

Commit

Permalink
extcon: ptn5150: Add queue work sync before driver release
Browse files Browse the repository at this point in the history
Add device managed action to sync pending queue work, otherwise
the queued work may run after the work is destroyed.

Fixes: 4ed754d ("extcon: Add support for ptn5150 extcon driver")
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Li Jun <jun.li@nxp.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
  • Loading branch information
Junlisuzhou authored and chanwoochoi committed May 13, 2022
1 parent a84df1c commit 782cd93
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions drivers/extcon/extcon-ptn5150.c
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,13 @@ static int ptn5150_init_dev_type(struct ptn5150_info *info)
return 0;
}

static void ptn5150_work_sync_and_put(void *data)
{
struct ptn5150_info *info = data;

cancel_work_sync(&info->irq_work);
}

static int ptn5150_i2c_probe(struct i2c_client *i2c)
{
struct device *dev = &i2c->dev;
Expand Down Expand Up @@ -284,6 +291,10 @@ static int ptn5150_i2c_probe(struct i2c_client *i2c)
if (ret)
return -EINVAL;

ret = devm_add_action_or_reset(dev, ptn5150_work_sync_and_put, info);
if (ret)
return ret;

/*
* Update current extcon state if for example OTG connection was there
* before the probe
Expand Down

0 comments on commit 782cd93

Please sign in to comment.