All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/3] usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe()
@ 2021-06-07 20:50 Andy Shevchenko
  2021-06-07 20:50 ` [PATCH v2 2/3] usb: typec: intel_pmc_mux: Add missed error check for devm_ioremap_resource() Andy Shevchenko
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Andy Shevchenko @ 2021-06-07 20:50 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, linux-usb, linux-kernel
  Cc: Andy Shevchenko

device_get_next_child_node() bumps a reference counting of a returned variable.
We have to balance it whenever we return to the caller.

Fixes: 6701adfa9693 ("usb: typec: driver for Intel PMC mux control")
Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
v2: moved put call into the conditional inside the loop (Heikki)
 drivers/usb/typec/mux/intel_pmc_mux.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/typec/mux/intel_pmc_mux.c b/drivers/usb/typec/mux/intel_pmc_mux.c
index dc8689db0100..221aa1c0e77a 100644
--- a/drivers/usb/typec/mux/intel_pmc_mux.c
+++ b/drivers/usb/typec/mux/intel_pmc_mux.c
@@ -654,8 +654,10 @@ static int pmc_usb_probe(struct platform_device *pdev)
 			break;
 
 		ret = pmc_usb_register_port(pmc, i, fwnode);
-		if (ret)
+		if (ret) {
+			fwnode_handle_put(fwnode);
 			goto err_remove_ports;
+		}
 	}
 
 	platform_set_drvdata(pdev, pmc);
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/3] usb: typec: intel_pmc_mux: Add missed error check for devm_ioremap_resource()
  2021-06-07 20:50 [PATCH v2 1/3] usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe() Andy Shevchenko
@ 2021-06-07 20:50 ` Andy Shevchenko
  2021-06-07 20:50 ` [PATCH v2 3/3] usb: typec: intel_pmc_mux: Put ACPI device using acpi_dev_put() Andy Shevchenko
  2021-06-08 13:19 ` [PATCH v2 1/3] usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe() Heikki Krogerus
  2 siblings, 0 replies; 4+ messages in thread
From: Andy Shevchenko @ 2021-06-07 20:50 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, linux-usb, linux-kernel
  Cc: Andy Shevchenko

devm_ioremap_resource() can return an error, add missed check for it.

Fixes: 43d596e32276 ("usb: typec: intel_pmc_mux: Check the port status before connect")
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
---
v2: added Rb tag (Heikki)
 drivers/usb/typec/mux/intel_pmc_mux.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/usb/typec/mux/intel_pmc_mux.c b/drivers/usb/typec/mux/intel_pmc_mux.c
index 221aa1c0e77a..34e1662ad6ef 100644
--- a/drivers/usb/typec/mux/intel_pmc_mux.c
+++ b/drivers/usb/typec/mux/intel_pmc_mux.c
@@ -604,6 +604,11 @@ static int pmc_usb_probe_iom(struct pmc_usb *pmc)
 		return -ENOMEM;
 	}
 
+	if (IS_ERR(pmc->iom_base)) {
+		put_device(&adev->dev);
+		return PTR_ERR(pmc->iom_base);
+	}
+
 	pmc->iom_adev = adev;
 
 	return 0;
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 3/3] usb: typec: intel_pmc_mux: Put ACPI device using acpi_dev_put()
  2021-06-07 20:50 [PATCH v2 1/3] usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe() Andy Shevchenko
  2021-06-07 20:50 ` [PATCH v2 2/3] usb: typec: intel_pmc_mux: Add missed error check for devm_ioremap_resource() Andy Shevchenko
@ 2021-06-07 20:50 ` Andy Shevchenko
  2021-06-08 13:19 ` [PATCH v2 1/3] usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe() Heikki Krogerus
  2 siblings, 0 replies; 4+ messages in thread
From: Andy Shevchenko @ 2021-06-07 20:50 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, linux-usb, linux-kernel
  Cc: Andy Shevchenko

For ACPI devices we have a symmetric API to put them, so use it in the driver.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
---
v2: added Rb tag (Heikki)
 drivers/usb/typec/mux/intel_pmc_mux.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/typec/mux/intel_pmc_mux.c b/drivers/usb/typec/mux/intel_pmc_mux.c
index 34e1662ad6ef..2cdd22130834 100644
--- a/drivers/usb/typec/mux/intel_pmc_mux.c
+++ b/drivers/usb/typec/mux/intel_pmc_mux.c
@@ -600,12 +600,12 @@ static int pmc_usb_probe_iom(struct pmc_usb *pmc)
 	acpi_dev_free_resource_list(&resource_list);
 
 	if (!pmc->iom_base) {
-		put_device(&adev->dev);
+		acpi_dev_put(adev);
 		return -ENOMEM;
 	}
 
 	if (IS_ERR(pmc->iom_base)) {
-		put_device(&adev->dev);
+		acpi_dev_put(adev);
 		return PTR_ERR(pmc->iom_base);
 	}
 
@@ -676,7 +676,7 @@ static int pmc_usb_probe(struct platform_device *pdev)
 		usb_role_switch_unregister(pmc->port[i].usb_sw);
 	}
 
-	put_device(&pmc->iom_adev->dev);
+	acpi_dev_put(pmc->iom_adev);
 
 	return ret;
 }
@@ -692,7 +692,7 @@ static int pmc_usb_remove(struct platform_device *pdev)
 		usb_role_switch_unregister(pmc->port[i].usb_sw);
 	}
 
-	put_device(&pmc->iom_adev->dev);
+	acpi_dev_put(pmc->iom_adev);
 
 	return 0;
 }
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 1/3] usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe()
  2021-06-07 20:50 [PATCH v2 1/3] usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe() Andy Shevchenko
  2021-06-07 20:50 ` [PATCH v2 2/3] usb: typec: intel_pmc_mux: Add missed error check for devm_ioremap_resource() Andy Shevchenko
  2021-06-07 20:50 ` [PATCH v2 3/3] usb: typec: intel_pmc_mux: Put ACPI device using acpi_dev_put() Andy Shevchenko
@ 2021-06-08 13:19 ` Heikki Krogerus
  2 siblings, 0 replies; 4+ messages in thread
From: Heikki Krogerus @ 2021-06-08 13:19 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Greg Kroah-Hartman, linux-usb, linux-kernel

On Mon, Jun 07, 2021 at 11:50:05PM +0300, Andy Shevchenko wrote:
> device_get_next_child_node() bumps a reference counting of a returned variable.
> We have to balance it whenever we return to the caller.
> 
> Fixes: 6701adfa9693 ("usb: typec: driver for Intel PMC mux control")
> Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>

Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>

> ---
> v2: moved put call into the conditional inside the loop (Heikki)
>  drivers/usb/typec/mux/intel_pmc_mux.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/typec/mux/intel_pmc_mux.c b/drivers/usb/typec/mux/intel_pmc_mux.c
> index dc8689db0100..221aa1c0e77a 100644
> --- a/drivers/usb/typec/mux/intel_pmc_mux.c
> +++ b/drivers/usb/typec/mux/intel_pmc_mux.c
> @@ -654,8 +654,10 @@ static int pmc_usb_probe(struct platform_device *pdev)
>  			break;
>  
>  		ret = pmc_usb_register_port(pmc, i, fwnode);
> -		if (ret)
> +		if (ret) {
> +			fwnode_handle_put(fwnode);
>  			goto err_remove_ports;
> +		}
>  	}
>  
>  	platform_set_drvdata(pdev, pmc);
> -- 
> 2.32.0

-- 
heikki

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-06-08 13:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-07 20:50 [PATCH v2 1/3] usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe() Andy Shevchenko
2021-06-07 20:50 ` [PATCH v2 2/3] usb: typec: intel_pmc_mux: Add missed error check for devm_ioremap_resource() Andy Shevchenko
2021-06-07 20:50 ` [PATCH v2 3/3] usb: typec: intel_pmc_mux: Put ACPI device using acpi_dev_put() Andy Shevchenko
2021-06-08 13:19 ` [PATCH v2 1/3] usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe() Heikki Krogerus

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.