Message ID | 20230421101720.34318-1-rogerq@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 94ea04ec790887b5b0e43429a92c18a1e692ec08 |
Headers | show |
Series | usb: typec: tps6598x: Fix fault at module removal | expand |
On Fri, Apr 21, 2023 at 01:17:20PM +0300, Roger Quadros wrote: > We need to cancel the delayed workqueue if it is being used > else it will cause paging request fault during module removal. > > Fixes: 0d6a119cecd7 ("usb: typec: tps6598x: Add support for polling interrupts status") > Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > drivers/usb/typec/tipd/core.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c > index 8b075ca82ef6..438cc40660a1 100644 > --- a/drivers/usb/typec/tipd/core.c > +++ b/drivers/usb/typec/tipd/core.c > @@ -886,6 +886,9 @@ static void tps6598x_remove(struct i2c_client *client) > { > struct tps6598x *tps = i2c_get_clientdata(client); > > + if (!client->irq) > + cancel_delayed_work_sync(&tps->wq_poll); > + > tps6598x_disconnect(tps, 0); > typec_unregister_port(tps->port); > usb_role_switch_put(tps->role_sw); > -- > 2.34.1
diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c index 8b075ca82ef6..438cc40660a1 100644 --- a/drivers/usb/typec/tipd/core.c +++ b/drivers/usb/typec/tipd/core.c @@ -886,6 +886,9 @@ static void tps6598x_remove(struct i2c_client *client) { struct tps6598x *tps = i2c_get_clientdata(client); + if (!client->irq) + cancel_delayed_work_sync(&tps->wq_poll); + tps6598x_disconnect(tps, 0); typec_unregister_port(tps->port); usb_role_switch_put(tps->role_sw);
We need to cancel the delayed workqueue if it is being used else it will cause paging request fault during module removal. Fixes: 0d6a119cecd7 ("usb: typec: tps6598x: Add support for polling interrupts status") Signed-off-by: Roger Quadros <rogerq@kernel.org> --- drivers/usb/typec/tipd/core.c | 3 +++ 1 file changed, 3 insertions(+)