Message ID | 20250406204051.63446-1-krzysztof.kozlowski@linaro.org |
---|---|
State | New |
Headers | show |
Series | [1/2] usb: typec: tcpci: Fix wakeup source leaks on device unbind | expand |
On Sun, Apr 06, 2025 at 10:40:50PM +0200, Krzysztof Kozlowski wrote: > Device can be unbound, so driver must also release memory for the wakeup > source. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> I this should be marked as a fix. In any case, FWIW: Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > drivers/usb/typec/tcpm/tcpci_maxim_core.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/typec/tcpm/tcpci_maxim_core.c b/drivers/usb/typec/tcpm/tcpci_maxim_core.c > index fd1b80593367..29a4aa89d1a1 100644 > --- a/drivers/usb/typec/tcpm/tcpci_maxim_core.c > +++ b/drivers/usb/typec/tcpm/tcpci_maxim_core.c > @@ -536,7 +536,10 @@ static int max_tcpci_probe(struct i2c_client *client) > return dev_err_probe(&client->dev, ret, > "IRQ initialization failed\n"); > > - device_init_wakeup(chip->dev, true); > + ret = devm_device_init_wakeup(chip->dev); > + if (ret) > + return dev_err_probe(chip->dev, ret, "Failed to init wakeup\n"); > + > return 0; > } > > -- > 2.45.2
diff --git a/drivers/usb/typec/tcpm/tcpci_maxim_core.c b/drivers/usb/typec/tcpm/tcpci_maxim_core.c index fd1b80593367..29a4aa89d1a1 100644 --- a/drivers/usb/typec/tcpm/tcpci_maxim_core.c +++ b/drivers/usb/typec/tcpm/tcpci_maxim_core.c @@ -536,7 +536,10 @@ static int max_tcpci_probe(struct i2c_client *client) return dev_err_probe(&client->dev, ret, "IRQ initialization failed\n"); - device_init_wakeup(chip->dev, true); + ret = devm_device_init_wakeup(chip->dev); + if (ret) + return dev_err_probe(chip->dev, ret, "Failed to init wakeup\n"); + return 0; }
Device can be unbound, so driver must also release memory for the wakeup source. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- drivers/usb/typec/tcpm/tcpci_maxim_core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)